blob: 5e5be765247583b710c1229af2be22b06fa7cf85 [file] [log] [blame]
The Android Open Source Projecta27d2ba2008-10-21 07:00:00 -07001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 ****************************************************************************
11 ****************************************************************************/
12#ifndef __ASM_ARCH_DMA_H
13#define __ASM_ARCH_DMA_H
14
15#define OMAP_DMA_BASE (0xfffed800)
16#define OMAP_DMA_GCR (OMAP_DMA_BASE + 0x400)
17#define OMAP_DMA_GSCR (OMAP_DMA_BASE + 0x404)
18#define OMAP_DMA_GRST (OMAP_DMA_BASE + 0x408)
19#define OMAP_DMA_HW_ID (OMAP_DMA_BASE + 0x442)
20#define OMAP_DMA_PCH2_ID (OMAP_DMA_BASE + 0x444)
21#define OMAP_DMA_PCH0_ID (OMAP_DMA_BASE + 0x446)
22#define OMAP_DMA_PCH1_ID (OMAP_DMA_BASE + 0x448)
23#define OMAP_DMA_PCHG_ID (OMAP_DMA_BASE + 0x44a)
24#define OMAP_DMA_PCHD_ID (OMAP_DMA_BASE + 0x44c)
25#define OMAP_DMA_CAPS_0_U (OMAP_DMA_BASE + 0x44e)
26#define OMAP_DMA_CAPS_0_L (OMAP_DMA_BASE + 0x450)
27#define OMAP_DMA_CAPS_1_U (OMAP_DMA_BASE + 0x452)
28#define OMAP_DMA_CAPS_1_L (OMAP_DMA_BASE + 0x454)
29#define OMAP_DMA_CAPS_2 (OMAP_DMA_BASE + 0x456)
30#define OMAP_DMA_CAPS_3 (OMAP_DMA_BASE + 0x458)
31#define OMAP_DMA_CAPS_4 (OMAP_DMA_BASE + 0x45a)
32#define OMAP_DMA_PCH2_SR (OMAP_DMA_BASE + 0x460)
33#define OMAP_DMA_PCH0_SR (OMAP_DMA_BASE + 0x480)
34#define OMAP_DMA_PCH1_SR (OMAP_DMA_BASE + 0x482)
35#define OMAP_DMA_PCHD_SR (OMAP_DMA_BASE + 0x4c0)
36
37#define OMAP24XX_DMA_BASE (L4_24XX_BASE + 0x56000)
38#define OMAP_DMA4_REVISION (OMAP24XX_DMA_BASE + 0x00)
39#define OMAP_DMA4_GCR_REG (OMAP24XX_DMA_BASE + 0x78)
40#define OMAP_DMA4_IRQSTATUS_L0 (OMAP24XX_DMA_BASE + 0x08)
41#define OMAP_DMA4_IRQSTATUS_L1 (OMAP24XX_DMA_BASE + 0x0c)
42#define OMAP_DMA4_IRQSTATUS_L2 (OMAP24XX_DMA_BASE + 0x10)
43#define OMAP_DMA4_IRQSTATUS_L3 (OMAP24XX_DMA_BASE + 0x14)
44#define OMAP_DMA4_IRQENABLE_L0 (OMAP24XX_DMA_BASE + 0x18)
45#define OMAP_DMA4_IRQENABLE_L1 (OMAP24XX_DMA_BASE + 0x1c)
46#define OMAP_DMA4_IRQENABLE_L2 (OMAP24XX_DMA_BASE + 0x20)
47#define OMAP_DMA4_IRQENABLE_L3 (OMAP24XX_DMA_BASE + 0x24)
48#define OMAP_DMA4_SYSSTATUS (OMAP24XX_DMA_BASE + 0x28)
49#define OMAP_DMA4_CAPS_0 (OMAP24XX_DMA_BASE + 0x64)
50#define OMAP_DMA4_CAPS_2 (OMAP24XX_DMA_BASE + 0x6c)
51#define OMAP_DMA4_CAPS_3 (OMAP24XX_DMA_BASE + 0x70)
52#define OMAP_DMA4_CAPS_4 (OMAP24XX_DMA_BASE + 0x74)
53
54#define OMAP_LOGICAL_DMA_CH_COUNT 32
55
56#define OMAP_DMA_CCR_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0x80)
57#define OMAP_DMA_CLNK_CTRL_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0x84)
58#define OMAP_DMA_CICR_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0x88)
59#define OMAP_DMA_CSR_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0x8c)
60#define OMAP_DMA_CSDP_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0x90)
61#define OMAP_DMA_CEN_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0x94)
62#define OMAP_DMA_CFN_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0x98)
63#define OMAP_DMA_CSEI_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0xa4)
64#define OMAP_DMA_CSFI_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0xa8)
65#define OMAP_DMA_CDEI_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0xac)
66#define OMAP_DMA_CDFI_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0xb0)
67#define OMAP_DMA_CSAC_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0xb4)
68#define OMAP_DMA_CDAC_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0xb8)
69
70#define OMAP1_DMA_CSSA_L_REG(n) __REG16(OMAP_DMA_BASE + 0x40 * (n) + 0x08)
71#define OMAP1_DMA_CSSA_U_REG(n) __REG16(OMAP_DMA_BASE + 0x40 * (n) + 0x0a)
72#define OMAP1_DMA_CDSA_L_REG(n) __REG16(OMAP_DMA_BASE + 0x40 * (n) + 0x0c)
73#define OMAP1_DMA_CDSA_U_REG(n) __REG16(OMAP_DMA_BASE + 0x40 * (n) + 0x0e)
74#define OMAP1_DMA_COLOR_L_REG(n) __REG16(OMAP_DMA_BASE + 0x40 * (n) + 0x20)
75#define OMAP1_DMA_CCR2_REG(n) __REG16(OMAP_DMA_BASE + 0x40 * (n) + 0x24)
76#define OMAP1_DMA_COLOR_U_REG(n) __REG16(OMAP_DMA_BASE + 0x40 * (n) + 0x22)
77#define OMAP1_DMA_LCH_CTRL_REG(n) __REG16(OMAP_DMA_BASE + 0x40 * (n) + 0x2a)
78
79#define OMAP2_DMA_CSSA_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0x9c)
80#define OMAP2_DMA_CDSA_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0xa0)
81#define OMAP2_DMA_CCEN_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0xbc)
82#define OMAP2_DMA_CCFN_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0xc0)
83#define OMAP2_DMA_COLOR_REG(n) __REG32(OMAP24XX_DMA_BASE + 0x60 * (n) + 0xc4)
84
85#define OMAP_DMA_NO_DEVICE 0
86#define OMAP_DMA_MCSI1_TX 1
87#define OMAP_DMA_MCSI1_RX 2
88#define OMAP_DMA_I2C_RX 3
89#define OMAP_DMA_I2C_TX 4
90#define OMAP_DMA_EXT_NDMA_REQ 5
91#define OMAP_DMA_EXT_NDMA_REQ2 6
92#define OMAP_DMA_UWIRE_TX 7
93#define OMAP_DMA_MCBSP1_TX 8
94#define OMAP_DMA_MCBSP1_RX 9
95#define OMAP_DMA_MCBSP3_TX 10
96#define OMAP_DMA_MCBSP3_RX 11
97#define OMAP_DMA_UART1_TX 12
98#define OMAP_DMA_UART1_RX 13
99#define OMAP_DMA_UART2_TX 14
100#define OMAP_DMA_UART2_RX 15
101#define OMAP_DMA_MCBSP2_TX 16
102#define OMAP_DMA_MCBSP2_RX 17
103#define OMAP_DMA_UART3_TX 18
104#define OMAP_DMA_UART3_RX 19
105#define OMAP_DMA_CAMERA_IF_RX 20
106#define OMAP_DMA_MMC_TX 21
107#define OMAP_DMA_MMC_RX 22
108#define OMAP_DMA_NAND 23
109#define OMAP_DMA_IRQ_LCD_LINE 24
110#define OMAP_DMA_MEMORY_STICK 25
111#define OMAP_DMA_USB_W2FC_RX0 26
112#define OMAP_DMA_USB_W2FC_RX1 27
113#define OMAP_DMA_USB_W2FC_RX2 28
114#define OMAP_DMA_USB_W2FC_TX0 29
115#define OMAP_DMA_USB_W2FC_TX1 30
116#define OMAP_DMA_USB_W2FC_TX2 31
117
118#define OMAP_DMA_CRYPTO_DES_IN 32
119#define OMAP_DMA_SPI_TX 33
120#define OMAP_DMA_SPI_RX 34
121#define OMAP_DMA_CRYPTO_HASH 35
122#define OMAP_DMA_CCP_ATTN 36
123#define OMAP_DMA_CCP_FIFO_NOT_EMPTY 37
124#define OMAP_DMA_CMT_APE_TX_CHAN_0 38
125#define OMAP_DMA_CMT_APE_RV_CHAN_0 39
126#define OMAP_DMA_CMT_APE_TX_CHAN_1 40
127#define OMAP_DMA_CMT_APE_RV_CHAN_1 41
128#define OMAP_DMA_CMT_APE_TX_CHAN_2 42
129#define OMAP_DMA_CMT_APE_RV_CHAN_2 43
130#define OMAP_DMA_CMT_APE_TX_CHAN_3 44
131#define OMAP_DMA_CMT_APE_RV_CHAN_3 45
132#define OMAP_DMA_CMT_APE_TX_CHAN_4 46
133#define OMAP_DMA_CMT_APE_RV_CHAN_4 47
134#define OMAP_DMA_CMT_APE_TX_CHAN_5 48
135#define OMAP_DMA_CMT_APE_RV_CHAN_5 49
136#define OMAP_DMA_CMT_APE_TX_CHAN_6 50
137#define OMAP_DMA_CMT_APE_RV_CHAN_6 51
138#define OMAP_DMA_CMT_APE_TX_CHAN_7 52
139#define OMAP_DMA_CMT_APE_RV_CHAN_7 53
140#define OMAP_DMA_MMC2_TX 54
141#define OMAP_DMA_MMC2_RX 55
142#define OMAP_DMA_CRYPTO_DES_OUT 56
143
144#define OMAP24XX_DMA_NO_DEVICE 0
145#define OMAP24XX_DMA_XTI_DMA 1
146#define OMAP24XX_DMA_EXT_DMAREQ0 2
147#define OMAP24XX_DMA_EXT_DMAREQ1 3
148#define OMAP24XX_DMA_GPMC 4
149#define OMAP24XX_DMA_GFX 5
150#define OMAP24XX_DMA_DSS 6
151#define OMAP24XX_DMA_VLYNQ_TX 7
152#define OMAP24XX_DMA_CWT 8
153#define OMAP24XX_DMA_AES_TX 9
154#define OMAP24XX_DMA_AES_RX 10
155#define OMAP24XX_DMA_DES_TX 11
156#define OMAP24XX_DMA_DES_RX 12
157#define OMAP24XX_DMA_SHA1MD5_RX 13
158#define OMAP24XX_DMA_EXT_DMAREQ2 14
159#define OMAP24XX_DMA_EXT_DMAREQ3 15
160#define OMAP24XX_DMA_EXT_DMAREQ4 16
161#define OMAP24XX_DMA_EAC_AC_RD 17
162#define OMAP24XX_DMA_EAC_AC_WR 18
163#define OMAP24XX_DMA_EAC_MD_UL_RD 19
164#define OMAP24XX_DMA_EAC_MD_UL_WR 20
165#define OMAP24XX_DMA_EAC_MD_DL_RD 21
166#define OMAP24XX_DMA_EAC_MD_DL_WR 22
167#define OMAP24XX_DMA_EAC_BT_UL_RD 23
168#define OMAP24XX_DMA_EAC_BT_UL_WR 24
169#define OMAP24XX_DMA_EAC_BT_DL_RD 25
170#define OMAP24XX_DMA_EAC_BT_DL_WR 26
171#define OMAP24XX_DMA_I2C1_TX 27
172#define OMAP24XX_DMA_I2C1_RX 28
173#define OMAP24XX_DMA_I2C2_TX 29
174#define OMAP24XX_DMA_I2C2_RX 30
175#define OMAP24XX_DMA_MCBSP1_TX 31
176#define OMAP24XX_DMA_MCBSP1_RX 32
177#define OMAP24XX_DMA_MCBSP2_TX 33
178#define OMAP24XX_DMA_MCBSP2_RX 34
179#define OMAP24XX_DMA_SPI1_TX0 35
180#define OMAP24XX_DMA_SPI1_RX0 36
181#define OMAP24XX_DMA_SPI1_TX1 37
182#define OMAP24XX_DMA_SPI1_RX1 38
183#define OMAP24XX_DMA_SPI1_TX2 39
184#define OMAP24XX_DMA_SPI1_RX2 40
185#define OMAP24XX_DMA_SPI1_TX3 41
186#define OMAP24XX_DMA_SPI1_RX3 42
187#define OMAP24XX_DMA_SPI2_TX0 43
188#define OMAP24XX_DMA_SPI2_RX0 44
189#define OMAP24XX_DMA_SPI2_TX1 45
190#define OMAP24XX_DMA_SPI2_RX1 46
191
192#define OMAP24XX_DMA_UART1_TX 49
193#define OMAP24XX_DMA_UART1_RX 50
194#define OMAP24XX_DMA_UART2_TX 51
195#define OMAP24XX_DMA_UART2_RX 52
196#define OMAP24XX_DMA_UART3_TX 53
197#define OMAP24XX_DMA_UART3_RX 54
198#define OMAP24XX_DMA_USB_W2FC_TX0 55
199#define OMAP24XX_DMA_USB_W2FC_RX0 56
200#define OMAP24XX_DMA_USB_W2FC_TX1 57
201#define OMAP24XX_DMA_USB_W2FC_RX1 58
202#define OMAP24XX_DMA_USB_W2FC_TX2 59
203#define OMAP24XX_DMA_USB_W2FC_RX2 60
204#define OMAP24XX_DMA_MMC1_TX 61
205#define OMAP24XX_DMA_MMC1_RX 62
206#define OMAP24XX_DMA_MS 63
207#define OMAP24XX_DMA_EXT_DMAREQ5 64
208
209#define OMAP1510_DMA_LCD_BASE (0xfffedb00)
210#define OMAP1510_DMA_LCD_CTRL (OMAP1510_DMA_LCD_BASE + 0x00)
211#define OMAP1510_DMA_LCD_TOP_F1_L (OMAP1510_DMA_LCD_BASE + 0x02)
212#define OMAP1510_DMA_LCD_TOP_F1_U (OMAP1510_DMA_LCD_BASE + 0x04)
213#define OMAP1510_DMA_LCD_BOT_F1_L (OMAP1510_DMA_LCD_BASE + 0x06)
214#define OMAP1510_DMA_LCD_BOT_F1_U (OMAP1510_DMA_LCD_BASE + 0x08)
215
216#define OMAP1610_DMA_LCD_BASE (0xfffee300)
217#define OMAP1610_DMA_LCD_CSDP (OMAP1610_DMA_LCD_BASE + 0xc0)
218#define OMAP1610_DMA_LCD_CCR (OMAP1610_DMA_LCD_BASE + 0xc2)
219#define OMAP1610_DMA_LCD_CTRL (OMAP1610_DMA_LCD_BASE + 0xc4)
220#define OMAP1610_DMA_LCD_TOP_B1_L (OMAP1610_DMA_LCD_BASE + 0xc8)
221#define OMAP1610_DMA_LCD_TOP_B1_U (OMAP1610_DMA_LCD_BASE + 0xca)
222#define OMAP1610_DMA_LCD_BOT_B1_L (OMAP1610_DMA_LCD_BASE + 0xcc)
223#define OMAP1610_DMA_LCD_BOT_B1_U (OMAP1610_DMA_LCD_BASE + 0xce)
224#define OMAP1610_DMA_LCD_TOP_B2_L (OMAP1610_DMA_LCD_BASE + 0xd0)
225#define OMAP1610_DMA_LCD_TOP_B2_U (OMAP1610_DMA_LCD_BASE + 0xd2)
226#define OMAP1610_DMA_LCD_BOT_B2_L (OMAP1610_DMA_LCD_BASE + 0xd4)
227#define OMAP1610_DMA_LCD_BOT_B2_U (OMAP1610_DMA_LCD_BASE + 0xd6)
228#define OMAP1610_DMA_LCD_SRC_EI_B1 (OMAP1610_DMA_LCD_BASE + 0xd8)
229#define OMAP1610_DMA_LCD_SRC_FI_B1_L (OMAP1610_DMA_LCD_BASE + 0xda)
230#define OMAP1610_DMA_LCD_SRC_EN_B1 (OMAP1610_DMA_LCD_BASE + 0xe0)
231#define OMAP1610_DMA_LCD_SRC_FN_B1 (OMAP1610_DMA_LCD_BASE + 0xe4)
232#define OMAP1610_DMA_LCD_LCH_CTRL (OMAP1610_DMA_LCD_BASE + 0xea)
233#define OMAP1610_DMA_LCD_SRC_FI_B1_U (OMAP1610_DMA_LCD_BASE + 0xf4)
234
235#define OMAP1_DMA_TOUT_IRQ (1 << 0)
236#define OMAP_DMA_DROP_IRQ (1 << 1)
237#define OMAP_DMA_HALF_IRQ (1 << 2)
238#define OMAP_DMA_FRAME_IRQ (1 << 3)
239#define OMAP_DMA_LAST_IRQ (1 << 4)
240#define OMAP_DMA_BLOCK_IRQ (1 << 5)
241#define OMAP1_DMA_SYNC_IRQ (1 << 6)
242#define OMAP2_DMA_PKT_IRQ (1 << 7)
243#define OMAP2_DMA_TRANS_ERR_IRQ (1 << 8)
244#define OMAP2_DMA_SECURE_ERR_IRQ (1 << 9)
245#define OMAP2_DMA_SUPERVISOR_ERR_IRQ (1 << 10)
246#define OMAP2_DMA_MISALIGNED_ERR_IRQ (1 << 11)
247
248#define OMAP_DMA_DATA_TYPE_S8 0x00
249#define OMAP_DMA_DATA_TYPE_S16 0x01
250#define OMAP_DMA_DATA_TYPE_S32 0x02
251
252#define OMAP_DMA_SYNC_ELEMENT 0x00
253#define OMAP_DMA_SYNC_FRAME 0x01
254#define OMAP_DMA_SYNC_BLOCK 0x02
255
256#define OMAP_DMA_PORT_EMIFF 0x00
257#define OMAP_DMA_PORT_EMIFS 0x01
258#define OMAP_DMA_PORT_OCP_T1 0x02
259#define OMAP_DMA_PORT_TIPB 0x03
260#define OMAP_DMA_PORT_OCP_T2 0x04
261#define OMAP_DMA_PORT_MPUI 0x05
262
263#define OMAP_DMA_AMODE_CONSTANT 0x00
264#define OMAP_DMA_AMODE_POST_INC 0x01
265#define OMAP_DMA_AMODE_SINGLE_IDX 0x02
266#define OMAP_DMA_AMODE_DOUBLE_IDX 0x03
267
268enum {
269 OMAP_LCD_DMA_B1_TOP,
270 OMAP_LCD_DMA_B1_BOTTOM,
271 OMAP_LCD_DMA_B2_TOP,
272 OMAP_LCD_DMA_B2_BOTTOM
273};
274
275enum omap_dma_burst_mode {
276 OMAP_DMA_DATA_BURST_DIS = 0,
277 OMAP_DMA_DATA_BURST_4,
278 OMAP_DMA_DATA_BURST_8,
279 OMAP_DMA_DATA_BURST_16,
280};
281
282enum omap_dma_color_mode {
283 OMAP_DMA_COLOR_DIS = 0,
284 OMAP_DMA_CONSTANT_FILL,
285 OMAP_DMA_TRANSPARENT_COPY
286};
287
288enum omap_dma_write_mode {
289 OMAP_DMA_WRITE_NON_POSTED = 0,
290 OMAP_DMA_WRITE_POSTED,
291 OMAP_DMA_WRITE_LAST_NON_POSTED
292};
293
294struct omap_dma_channel_params {
295 int data_type;
296 int elem_count;
297 int frame_count;
298
299 int src_port;
300 int src_amode;
301 unsigned long src_start;
302 int src_ei;
303 int src_fi;
304
305 int dst_port;
306 int dst_amode;
307 unsigned long dst_start;
308 int dst_ei;
309 int dst_fi;
310
311 int trigger;
312 int sync_mode;
313 int src_or_dst_synch;
314
315 int ie;
316};
317
318#endif