Home | History | Annotate | Download | only in arch
      1 /****************************************************************************
      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 
    268 enum {
    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 
    275 enum 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 
    282 enum omap_dma_color_mode {
    283  OMAP_DMA_COLOR_DIS = 0,
    284  OMAP_DMA_CONSTANT_FILL,
    285  OMAP_DMA_TRANSPARENT_COPY
    286 };
    287 
    288 enum 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 
    294 struct 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
    319