home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / arm / plat-mxc / include / mach / mx51.h < prev    next >
Encoding:
C/C++ Source or Header  |  2009-09-09  |  16.0 KB  |  521 lines

  1. /*
  2.  * Copyright 2008-2009 Freescale Semiconductor, Inc. All Rights Reserved.
  3.  */
  4.  
  5. /*
  6.  * The code contained herein is licensed under the GNU General Public
  7.  * License. You may obtain a copy of the GNU General Public License
  8.  * Version 2 or later at the following locations:
  9.  *
  10.  * http://www.opensource.org/licenses/gpl-license.html
  11.  * http://www.gnu.org/copyleft/gpl.html
  12.  */
  13.  
  14. #ifndef __ASM_ARCH_MXC_MX51_H__
  15. #define __ASM_ARCH_MXC_MX51_H__
  16.  
  17. #ifndef __ASM_ARCH_MXC_HARDWARE_H__
  18. #error "Do not include directly."
  19. #endif
  20.  
  21. /*!
  22.  * @file arch-mxc/mx51.h
  23.  * @brief This file contains register definitions.
  24.  *
  25.  * @ingroup MSL_MX51
  26.  */
  27. /*!
  28.  * defines the hardware clock tick rate
  29.  */
  30. #define CLOCK_TICK_RATE        8000000
  31.  
  32. /*!
  33.  * Register an interrupt handler for the SMN as well as the SCC.  In some
  34.  * implementations, the SMN is not connected at all, and in others, it is
  35.  * on the same interrupt line as the SCM. Comment this line out accordingly
  36.  */
  37. #define USE_SMN_INTERRUPT
  38.  
  39. /*
  40.  * UART Chip level Configuration that a user may not have to edit. These
  41.  * configuration vary depending on how the UART module is integrated with
  42.  * the ARM core
  43.  */
  44. #define MXC_UART_NR 3
  45. /*!
  46.  * This option is used to set or clear the RXDMUXSEL bit in control reg 3.
  47.  * Certain platforms need this bit to be set in order to receive Irda data.
  48.  */
  49. #define MXC_UART_IR_RXDMUX      0x0004
  50. /*!
  51.  * This option is used to set or clear the RXDMUXSEL bit in control reg 3.
  52.  * Certain platforms need this bit to be set in order to receive UART data.
  53.  */
  54. #define MXC_UART_RXDMUX         0x0004
  55.  
  56. /*!
  57.  * This option is used to set or clear the dspdma bit in the SDMA config
  58.  * register.
  59.  */
  60. #define MXC_SDMA_DSPDMA         0
  61.  
  62. /*!
  63.  * Define this option to specify we are using the newer SDMA module.
  64.  */
  65. #define MXC_SDMA_V2
  66.  
  67.  /*
  68.  * IRAM
  69.  */
  70. #define IRAM_BASE_ADDR        0x1FFE0000    /* internal ram */
  71. #define IRAM_BASE_ADDR_VIRT    0xFA3E0000
  72. #define IRAM_PARTITIONS        16
  73. #define IRAM_PARTITIONS_TO1    12
  74. #define IRAM_SIZE        (IRAM_PARTITIONS*SZ_8K)    /* 128KB */
  75.  
  76. #if defined(CONFIG_MXC_SECURITY_SCC2) \
  77.     || defined(CONFIG_MXC_SECURITY_SCC2_MODULE)
  78. #define SCC_IRAM_SIZE  SZ_16K
  79. #else
  80. #define SCC_IRAM_SIZE  0
  81. #endif
  82.  
  83. #ifdef CONFIG_SDMA_IRAM
  84. #define SDMA_IRAM_SIZE  CONFIG_SDMA_IRAM_SIZE
  85. #else
  86. #define SDMA_IRAM_SIZE  0
  87. #endif
  88.  
  89. #ifdef CONFIG_SND_MXC_SOC_IRAM
  90. #define SND_RAM_SIZE 0x6000
  91. #else
  92. #define SND_RAM_SIZE 0
  93. #endif
  94.  
  95. #ifdef CONFIG_MXC_VPU_IRAM
  96. #define VPU_IRAM_SIZE  0x7000
  97. #else
  98. #define VPU_IRAM_SIZE 0
  99. #endif
  100.  
  101. #if (IRAM_SIZE < (SDMA_IRAM_SIZE + SND_RAM_SIZE + VPU_IRAM_SIZE + \
  102.     SCC_IRAM_SIZE))
  103. #error "IRAM size exceeded"
  104. #endif
  105.  
  106. #define SCC_IRAM_BASE_ADDR    (IRAM_BASE_ADDR + IRAM_SIZE - SCC_IRAM_SIZE)
  107. #define VPU_IRAM_BASE_ADDR    (SCC_IRAM_BASE_ADDR - VPU_IRAM_SIZE)
  108. #define SND_RAM_BASE_ADDR    (VPU_IRAM_BASE_ADDR - SND_RAM_SIZE)
  109. #define SDMA_IRAM_BASE_ADDR    (SND_RAM_BASE_ADDR - SDMA_IRAM_SIZE)
  110. #define IDLE_IRAM_BASE_ADDR    (SDMA_IRAM_BASE_ADDR - SZ_4K)
  111.  
  112. /*
  113.  * NFC
  114.  */
  115. #define NFC_BASE_ADDR_AXI        0xCFFF0000    /* NAND flash AXI */
  116. #define NFC_BASE_ADDR_AXI_VIRT    0xF9000000
  117. #define NFC_AXI_SIZE        SZ_64K
  118.  
  119. /*
  120.  * Graphics Memory of GPU
  121.  */
  122. #define GPU_BASE_ADDR            0x20000000
  123.  
  124. #define TZIC_BASE_ADDR        0x8FFFC000
  125. #define TZIC_BASE_ADDR_VIRT    0xFA100000
  126. #define TZIC_SIZE        SZ_16K
  127.  
  128. #define DEBUG_BASE_ADDR    0x60000000
  129. #define DEBUG_BASE_ADDR_VIRT    0xFA200000
  130. #define DEBUG_SIZE        SZ_1M
  131. #define ETB_BASE_ADDR        (DEBUG_BASE_ADDR + 0x00001000)
  132. #define ETM_BASE_ADDR        (DEBUG_BASE_ADDR + 0x00002000)
  133. #define TPIU_BASE_ADDR        (DEBUG_BASE_ADDR + 0x00003000)
  134. #define CTI0_BASE_ADDR        (DEBUG_BASE_ADDR + 0x00004000)
  135. #define CTI1_BASE_ADDR        (DEBUG_BASE_ADDR + 0x00005000)
  136. #define CTI2_BASE_ADDR        (DEBUG_BASE_ADDR + 0x00006000)
  137. #define CTI3_BASE_ADDR        (DEBUG_BASE_ADDR + 0x00007000)
  138. #define CORTEX_DBG_BASE_ADDR    (DEBUG_BASE_ADDR + 0x00008000)
  139.  
  140. /*
  141.  * SPBA global module enabled #0
  142.  */
  143. #define SPBA0_BASE_ADDR     0x70000000
  144. #define SPBA0_BASE_ADDR_VIRT    0xFB100000
  145. #define SPBA0_SIZE        SZ_1M
  146.  
  147. #define MMC_SDHC1_BASE_ADDR    (SPBA0_BASE_ADDR + 0x00004000)
  148. #define MMC_SDHC2_BASE_ADDR    (SPBA0_BASE_ADDR + 0x00008000)
  149. #define UART3_BASE_ADDR     (SPBA0_BASE_ADDR + 0x0000C000)
  150. #define CSPI1_BASE_ADDR     (SPBA0_BASE_ADDR + 0x00010000)
  151. #define SSI2_BASE_ADDR        (SPBA0_BASE_ADDR + 0x00014000)
  152. #define MMC_SDHC3_BASE_ADDR    (SPBA0_BASE_ADDR + 0x00020000)
  153. #define MMC_SDHC4_BASE_ADDR    (SPBA0_BASE_ADDR + 0x00024000)
  154. #define SPDIF_BASE_ADDR        (SPBA0_BASE_ADDR + 0x00028000)
  155. #define ATA_DMA_BASE_ADDR    (SPBA0_BASE_ADDR + 0x00030000)
  156. #define SLIM_DMA_BASE_ADDR    (SPBA0_BASE_ADDR + 0x00034000)
  157. #define HSI2C_DMA_BASE_ADDR    (SPBA0_BASE_ADDR + 0x00038000)
  158. #define SPBA_CTRL_BASE_ADDR    (SPBA0_BASE_ADDR + 0x0003C000)
  159.  
  160. /*!
  161.  * defines for SPBA modules
  162.  */
  163. #define SPBA_SDHC1    0x04
  164. #define SPBA_SDHC2    0x08
  165. #define SPBA_UART3    0x0C
  166. #define SPBA_CSPI1    0x10
  167. #define SPBA_SSI2    0x14
  168. #define SPBA_SDHC3    0x20
  169. #define SPBA_SDHC4    0x24
  170. #define SPBA_SPDIF    0x28
  171. #define SPBA_ATA    0x30
  172. #define SPBA_SLIM    0x34
  173. #define SPBA_HSI2C    0x38
  174. #define SPBA_CTRL    0x3C
  175.  
  176. /*
  177.  * AIPS 1
  178.  */
  179. #define AIPS1_BASE_ADDR     0x73F00000
  180. #define AIPS1_BASE_ADDR_VIRT    0xFB000000
  181. #define AIPS1_SIZE        SZ_1M
  182.  
  183. #define OTG_BASE_ADDR    (AIPS1_BASE_ADDR + 0x00080000)
  184. #define GPIO1_BASE_ADDR    (AIPS1_BASE_ADDR + 0x00084000)
  185. #define GPIO2_BASE_ADDR    (AIPS1_BASE_ADDR + 0x00088000)
  186. #define GPIO3_BASE_ADDR    (AIPS1_BASE_ADDR + 0x0008C000)
  187. #define GPIO4_BASE_ADDR    (AIPS1_BASE_ADDR + 0x00090000)
  188. #define KPP_BASE_ADDR        (AIPS1_BASE_ADDR + 0x00094000)
  189. #define WDOG1_BASE_ADDR    (AIPS1_BASE_ADDR + 0x00098000)
  190. #define WDOG2_BASE_ADDR    (AIPS1_BASE_ADDR + 0x0009C000)
  191. #define GPT1_BASE_ADDR        (AIPS1_BASE_ADDR + 0x000A0000)
  192. #define SRTC_BASE_ADDR        (AIPS1_BASE_ADDR + 0x000A4000)
  193. #define IOMUXC_BASE_ADDR    (AIPS1_BASE_ADDR + 0x000A8000)
  194. #define EPIT1_BASE_ADDR    (AIPS1_BASE_ADDR + 0x000AC000)
  195. #define EPIT2_BASE_ADDR    (AIPS1_BASE_ADDR + 0x000B0000)
  196. #define PWM1_BASE_ADDR    (AIPS1_BASE_ADDR + 0x000B4000)
  197. #define PWM2_BASE_ADDR    (AIPS1_BASE_ADDR + 0x000B8000)
  198. #define UART1_BASE_ADDR    (AIPS1_BASE_ADDR + 0x000BC000)
  199. #define UART2_BASE_ADDR    (AIPS1_BASE_ADDR + 0x000C0000)
  200. #define SRC_BASE_ADDR        (AIPS1_BASE_ADDR + 0x000D0000)
  201. #define CCM_BASE_ADDR        (AIPS1_BASE_ADDR + 0x000D4000)
  202. #define GPC_BASE_ADDR        (AIPS1_BASE_ADDR + 0x000D8000)
  203.  
  204. /*!
  205.  * Defines for modules using static and dynamic DMA channels
  206.  */
  207. #define MXC_DMA_CHANNEL_IRAM         30
  208. #define MXC_DMA_CHANNEL_SPDIF_TX        MXC_DMA_DYNAMIC_CHANNEL
  209. #define MXC_DMA_CHANNEL_UART1_RX    MXC_DMA_DYNAMIC_CHANNEL
  210. #define MXC_DMA_CHANNEL_UART1_TX    MXC_DMA_DYNAMIC_CHANNEL
  211. #define MXC_DMA_CHANNEL_UART2_RX    MXC_DMA_DYNAMIC_CHANNEL
  212. #define MXC_DMA_CHANNEL_UART2_TX    MXC_DMA_DYNAMIC_CHANNEL
  213. #define MXC_DMA_CHANNEL_UART3_RX    MXC_DMA_DYNAMIC_CHANNEL
  214. #define MXC_DMA_CHANNEL_UART3_TX    MXC_DMA_DYNAMIC_CHANNEL
  215. #define MXC_DMA_CHANNEL_MMC1        MXC_DMA_DYNAMIC_CHANNEL
  216. #define MXC_DMA_CHANNEL_MMC2        MXC_DMA_DYNAMIC_CHANNEL
  217. #define MXC_DMA_CHANNEL_SSI1_RX        MXC_DMA_DYNAMIC_CHANNEL
  218. #define MXC_DMA_CHANNEL_SSI1_TX        MXC_DMA_DYNAMIC_CHANNEL
  219. #define MXC_DMA_CHANNEL_SSI2_RX        MXC_DMA_DYNAMIC_CHANNEL
  220. #ifdef CONFIG_SDMA_IRAM
  221. #define MXC_DMA_CHANNEL_SSI2_TX  (MXC_DMA_CHANNEL_IRAM + 1)
  222. #else                /*CONFIG_SDMA_IRAM */
  223. #define MXC_DMA_CHANNEL_SSI2_TX        MXC_DMA_DYNAMIC_CHANNEL
  224. #endif                /*CONFIG_SDMA_IRAM */
  225. #define MXC_DMA_CHANNEL_CSPI1_RX    MXC_DMA_DYNAMIC_CHANNEL
  226. #define MXC_DMA_CHANNEL_CSPI1_TX    MXC_DMA_DYNAMIC_CHANNEL
  227. #define MXC_DMA_CHANNEL_CSPI2_RX    MXC_DMA_DYNAMIC_CHANNEL
  228. #define MXC_DMA_CHANNEL_CSPI2_TX    MXC_DMA_DYNAMIC_CHANNEL
  229. #define MXC_DMA_CHANNEL_CSPI3_RX    MXC_DMA_DYNAMIC_CHANNEL
  230. #define MXC_DMA_CHANNEL_CSPI3_TX    MXC_DMA_DYNAMIC_CHANNEL
  231. #define MXC_DMA_CHANNEL_ATA_RX        MXC_DMA_DYNAMIC_CHANNEL
  232. #define MXC_DMA_CHANNEL_ATA_TX        MXC_DMA_DYNAMIC_CHANNEL
  233. #define MXC_DMA_CHANNEL_MEMORY        MXC_DMA_DYNAMIC_CHANNEL
  234.  
  235. /*
  236.  * AIPS 2
  237.  */
  238. #define AIPS2_BASE_ADDR    0x83F00000
  239. #define AIPS2_BASE_ADDR_VIRT    0xFB200000
  240. #define AIPS2_SIZE        SZ_1M
  241.  
  242. #define PLL1_BASE_ADDR        (AIPS2_BASE_ADDR + 0x00080000)
  243. #define PLL2_BASE_ADDR        (AIPS2_BASE_ADDR + 0x00084000)
  244. #define PLL3_BASE_ADDR        (AIPS2_BASE_ADDR + 0x00088000)
  245. #define AHBMAX_BASE_ADDR    (AIPS2_BASE_ADDR + 0x00094000)
  246. #define IIM_BASE_ADDR        (AIPS2_BASE_ADDR + 0x00098000)
  247. #define CSU_BASE_ADDR        (AIPS2_BASE_ADDR + 0x0009C000)
  248. #define ARM_BASE_ADDR        (AIPS2_BASE_ADDR + 0x000A0000)
  249. #define OWIRE_BASE_ADDR     (AIPS2_BASE_ADDR + 0x000A4000)
  250. #define FIRI_BASE_ADDR        (AIPS2_BASE_ADDR + 0x000A8000)
  251. #define CSPI2_BASE_ADDR    (AIPS2_BASE_ADDR + 0x000AC000)
  252. #define SDMA_BASE_ADDR    (AIPS2_BASE_ADDR + 0x000B0000)
  253. #define SCC_BASE_ADDR        (AIPS2_BASE_ADDR + 0x000B4000)
  254. #define ROMCP_BASE_ADDR    (AIPS2_BASE_ADDR + 0x000B8000)
  255. #define RTIC_BASE_ADDR        (AIPS2_BASE_ADDR + 0x000BC000)
  256. #define CSPI3_BASE_ADDR    (AIPS2_BASE_ADDR + 0x000C0000)
  257. #define I2C2_BASE_ADDR        (AIPS2_BASE_ADDR + 0x000C4000)
  258. #define I2C1_BASE_ADDR        (AIPS2_BASE_ADDR + 0x000C8000)
  259. #define SSI1_BASE_ADDR        (AIPS2_BASE_ADDR + 0x000CC000)
  260. #define AUDMUX_BASE_ADDR    (AIPS2_BASE_ADDR + 0x000D0000)
  261. #define M4IF_BASE_ADDR        (AIPS2_BASE_ADDR + 0x000D8000)
  262. #define ESDCTL_BASE_ADDR    (AIPS2_BASE_ADDR + 0x000D9000)
  263. #define WEIM_BASE_ADDR    (AIPS2_BASE_ADDR + 0x000DA000)
  264. #define NFC_BASE_ADDR        (AIPS2_BASE_ADDR + 0x000DB000)
  265. #define EMI_BASE_ADDR        (AIPS2_BASE_ADDR + 0x000DBF00)
  266. #define MIPI_HSC_BASE_ADDR    (AIPS2_BASE_ADDR + 0x000DC000)
  267. #define ATA_BASE_ADDR        (AIPS2_BASE_ADDR + 0x000E0000)
  268. #define SIM_BASE_ADDR        (AIPS2_BASE_ADDR + 0x000E4000)
  269. #define SSI3BASE_ADDR        (AIPS2_BASE_ADDR + 0x000E8000)
  270. #define FEC_BASE_ADDR        (AIPS2_BASE_ADDR + 0x000EC000)
  271. #define TVE_BASE_ADDR        (AIPS2_BASE_ADDR + 0x000F0000)
  272. #define VPU_BASE_ADDR        (AIPS2_BASE_ADDR + 0x000F4000)
  273. #define SAHARA_BASE_ADDR    (AIPS2_BASE_ADDR + 0x000F8000)
  274.  
  275. /*
  276.  * Memory regions and CS
  277.  */
  278. #define GPU_CTRL_BASE_ADDR    0x30000000
  279. #define IPU_CTRL_BASE_ADDR    0x40000000
  280. #define CSD0_BASE_ADDR        0x90000000
  281. #define CSD1_BASE_ADDR        0xA0000000
  282. #define CS0_BASE_ADDR        0xB0000000
  283. #define CS1_BASE_ADDR        0xB8000000
  284. #define CS2_BASE_ADDR        0xC0000000
  285. #define CS3_BASE_ADDR        0xC8000000
  286. #define CS4_BASE_ADDR        0xCC000000
  287. #define CS5_BASE_ADDR        0xCE000000
  288.  
  289. /*!
  290.  * This macro defines the physical to virtual address mapping for all the
  291.  * peripheral modules. It is used by passing in the physical address as x
  292.  * and returning the virtual address. If the physical address is not mapped,
  293.  * it returns 0xDEADBEEF
  294.  */
  295. #define IO_ADDRESS(x)   \
  296.     ((((x) >= (unsigned long)IRAM_BASE_ADDR) && \
  297.         ((x) < (unsigned long)IRAM_BASE_ADDR + IRAM_SIZE)) ? \
  298.          IRAM_IO_ADDRESS(x):\
  299.     (((x) >= (unsigned long)TZIC_BASE_ADDR) && \
  300.         ((x) < (unsigned long)TZIC_BASE_ADDR + TZIC_SIZE)) ? \
  301.          TZIC_IO_ADDRESS(x):\
  302.     (((x) >= (unsigned long)DEBUG_BASE_ADDR) && \
  303.       ((x) < (unsigned long)DEBUG_BASE_ADDR + DEBUG_SIZE)) ? \
  304.        DEBUG_IO_ADDRESS(x):\
  305.     (((x) >= (unsigned long)SPBA0_BASE_ADDR) && \
  306.       ((x) < (unsigned long)SPBA0_BASE_ADDR + SPBA0_SIZE)) ? \
  307.        SPBA0_IO_ADDRESS(x):\
  308.     (((x) >= (unsigned long)AIPS1_BASE_ADDR) && \
  309.       ((x) < (unsigned long)AIPS1_BASE_ADDR + AIPS1_SIZE)) ? \
  310.        AIPS1_IO_ADDRESS(x):\
  311.     (((x) >= (unsigned long)AIPS2_BASE_ADDR) && \
  312.       ((x) < (unsigned long)AIPS2_BASE_ADDR + AIPS2_SIZE)) ? \
  313.        AIPS2_IO_ADDRESS(x):\
  314.     (((x) >= (unsigned long)NFC_BASE_ADDR_AXI) && \
  315.       ((x) < (unsigned long)NFC_BASE_ADDR_AXI + NFC_AXI_SIZE)) ? \
  316.        NFC_BASE_ADDR_AXI_IO_ADDRESS(x):\
  317.     0xDEADBEEF)
  318.  
  319. /*
  320.  * define the address mapping macros: in physical address order
  321.  */
  322. #define IRAM_IO_ADDRESS(x)  \
  323.     (((x) - IRAM_BASE_ADDR) + IRAM_BASE_ADDR_VIRT)
  324.  
  325. #define TZIC_IO_ADDRESS(x)  \
  326.     (((x) - TZIC_BASE_ADDR) + TZIC_BASE_ADDR_VIRT)
  327.  
  328. #define DEBUG_IO_ADDRESS(x)  \
  329.     (((x) - DEBUG_BASE_ADDR) + DEBUG_BASE_ADDR_VIRT)
  330.  
  331. #define SPBA0_IO_ADDRESS(x)  \
  332.     (((x) - SPBA0_BASE_ADDR) + SPBA0_BASE_ADDR_VIRT)
  333.  
  334. #define AIPS1_IO_ADDRESS(x)  \
  335.     (((x) - AIPS1_BASE_ADDR) + AIPS1_BASE_ADDR_VIRT)
  336.  
  337. #define AIPS2_IO_ADDRESS(x)  \
  338.     (((x) - AIPS2_BASE_ADDR) + AIPS2_BASE_ADDR_VIRT)
  339.  
  340. #define NFC_BASE_ADDR_AXI_IO_ADDRESS(x) \
  341.     (((x) - NFC_BASE_ADDR_AXI) + NFC_BASE_ADDR_AXI_VIRT)
  342.  
  343. #define IS_MEM_DEVICE_NONSHARED(x)        0
  344.  
  345. /*
  346.  * DMA request assignments
  347.  */
  348. #define DMA_REQ_SSI3_TX1        47
  349. #define DMA_REQ_SSI3_RX1        46
  350. #define DMA_REQ_SPDIF            45
  351. #define DMA_REQ_UART3_TX    44
  352. #define DMA_REQ_UART3_RX    43
  353. #define DMA_REQ_SLIM_B_TX        42
  354. #define DMA_REQ_SDHC4            41
  355. #define DMA_REQ_SDHC3        40
  356. #define DMA_REQ_CSPI_TX        39
  357. #define DMA_REQ_CSPI_RX        38
  358. #define DMA_REQ_SSI3_TX2        37
  359. #define DMA_REQ_IPU        36
  360. #define DMA_REQ_SSI3_RX2        35
  361. #define DMA_REQ_EPIT2        34
  362. #define DMA_REQ_CTI2_1            33
  363. #define DMA_REQ_EMI_WR        32
  364. #define DMA_REQ_CTI2_0            31
  365. #define DMA_REQ_EMI_RD            30
  366. #define DMA_REQ_SSI1_TX1    29
  367. #define DMA_REQ_SSI1_RX1    28
  368. #define DMA_REQ_SSI1_TX2    27
  369. #define DMA_REQ_SSI1_RX2    26
  370. #define DMA_REQ_SSI2_TX1    25
  371. #define DMA_REQ_SSI2_RX1    24
  372. #define DMA_REQ_SSI2_TX2    23
  373. #define DMA_REQ_SSI2_RX2    22
  374. #define DMA_REQ_SDHC2        21
  375. #define DMA_REQ_SDHC1        20
  376. #define DMA_REQ_UART1_TX    19
  377. #define DMA_REQ_UART1_RX    18
  378. #define DMA_REQ_UART2_TX    17
  379. #define DMA_REQ_UART2_RX    16
  380. #define DMA_REQ_GPU            15
  381. #define DMA_REQ_EXTREQ1        14
  382. #define DMA_REQ_FIRI_TX        13
  383. #define DMA_REQ_FIRI_RX        12
  384. #define DMA_REQ_HS_I2C_RX        11
  385. #define DMA_REQ_HS_I2C_TX        10
  386. #define DMA_REQ_CSPI2_TX        9
  387. #define DMA_REQ_CSPI2_RX        8
  388. #define DMA_REQ_CSPI1_TX        7
  389. #define DMA_REQ_CSPI1_RX        6
  390. #define DMA_REQ_SLIM_B            5
  391. #define DMA_REQ_ATA_TX_END    4
  392. #define DMA_REQ_ATA_TX        3
  393. #define DMA_REQ_ATA_RX        2
  394. #define DMA_REQ_GPC        1
  395. #define DMA_REQ_VPU            0
  396.  
  397. /*
  398.  * Interrupt numbers
  399.  */
  400. #define MXC_INT_BASE        0
  401. #define MXC_INT_RESV0        0
  402. #define MXC_INT_MMC_SDHC1    1
  403. #define MXC_INT_MMC_SDHC2    2
  404. #define MXC_INT_MMC_SDHC3    3
  405. #define MXC_INT_MMC_SDHC4        4
  406. #define MXC_INT_RESV5        5
  407. #define MXC_INT_SDMA        6
  408. #define MXC_INT_IOMUX        7
  409. #define MXC_INT_NFC            8
  410. #define MXC_INT_VPU        9
  411. #define MXC_INT_IPU_ERR        10
  412. #define MXC_INT_IPU_SYN        11
  413. #define MXC_INT_GPU            12
  414. #define MXC_INT_RESV13        13
  415. #define MXC_INT_USB_H1            14
  416. #define MXC_INT_EMI        15
  417. #define MXC_INT_USB_H2            16
  418. #define MXC_INT_USB_H3            17
  419. #define MXC_INT_USB_OTG        18
  420. #define MXC_INT_SAHARA_H0        19
  421. #define MXC_INT_SAHARA_H1        20
  422. #define MXC_INT_SCC_SMN        21
  423. #define MXC_INT_SCC_STZ        22
  424. #define MXC_INT_SCC_SCM        23
  425. #define MXC_INT_SRTC_NTZ    24
  426. #define MXC_INT_SRTC_TZ        25
  427. #define MXC_INT_RTIC        26
  428. #define MXC_INT_CSU        27
  429. #define MXC_INT_SLIM_B            28
  430. #define MXC_INT_SSI1        29
  431. #define MXC_INT_SSI2        30
  432. #define MXC_INT_UART1        31
  433. #define MXC_INT_UART2        32
  434. #define MXC_INT_UART3        33
  435. #define MXC_INT_RESV34        34
  436. #define MXC_INT_RESV35        35
  437. #define MXC_INT_CSPI1        36
  438. #define MXC_INT_CSPI2        37
  439. #define MXC_INT_CSPI            38
  440. #define MXC_INT_GPT        39
  441. #define MXC_INT_EPIT1        40
  442. #define MXC_INT_EPIT2        41
  443. #define MXC_INT_GPIO1_INT7    42
  444. #define MXC_INT_GPIO1_INT6    43
  445. #define MXC_INT_GPIO1_INT5    44
  446. #define MXC_INT_GPIO1_INT4    45
  447. #define MXC_INT_GPIO1_INT3    46
  448. #define MXC_INT_GPIO1_INT2    47
  449. #define MXC_INT_GPIO1_INT1    48
  450. #define MXC_INT_GPIO1_INT0    49
  451. #define MXC_INT_GPIO1_LOW    50
  452. #define MXC_INT_GPIO1_HIGH    51
  453. #define MXC_INT_GPIO2_LOW    52
  454. #define MXC_INT_GPIO2_HIGH    53
  455. #define MXC_INT_GPIO3_LOW    54
  456. #define MXC_INT_GPIO3_HIGH    55
  457. #define MXC_INT_GPIO4_LOW        56
  458. #define MXC_INT_GPIO4_HIGH        57
  459. #define MXC_INT_WDOG1        58
  460. #define MXC_INT_WDOG2        59
  461. #define MXC_INT_KPP        60
  462. #define MXC_INT_PWM1            61
  463. #define MXC_INT_I2C1            62
  464. #define MXC_INT_I2C2        63
  465. #define MXC_INT_HS_I2C            64
  466. #define MXC_INT_RESV65            65
  467. #define MXC_INT_RESV66        66
  468. #define MXC_INT_SIM_IPB            67
  469. #define MXC_INT_SIM_DAT        68
  470. #define MXC_INT_IIM        69
  471. #define MXC_INT_ATA        70
  472. #define MXC_INT_CCM1        71
  473. #define MXC_INT_CCM2        72
  474. #define MXC_INT_GPC1        73
  475. #define MXC_INT_GPC2        74
  476. #define MXC_INT_SRC        75
  477. #define MXC_INT_NM            76
  478. #define MXC_INT_PMU            77
  479. #define MXC_INT_CTI_IRQ            78
  480. #define MXC_INT_CTI1_TG0        79
  481. #define MXC_INT_CTI1_TG1        80
  482. #define MXC_INT_MCG_ERR        81
  483. #define MXC_INT_MCG_TMR        82
  484. #define MXC_INT_MCG_FUNC        83
  485. #define MXC_INT_GPU2_IRQ    84
  486. #define MXC_INT_GPU2_BUSY    85
  487. #define MXC_INT_RESV86        86
  488. #define MXC_INT_FEC        87
  489. #define MXC_INT_OWIRE        88
  490. #define MXC_INT_CTI1_TG2        89
  491. #define MXC_INT_SJC            90
  492. #define MXC_INT_SPDIF        91
  493. #define MXC_INT_TVE            92
  494. #define MXC_INT_FIRI            93
  495. #define MXC_INT_PWM2            94
  496. #define MXC_INT_SLIM_EXP        95
  497. #define MXC_INT_SSI3            96
  498. #define MXC_INT_EMI_BOOT        97
  499. #define MXC_INT_CTI1_TG3        98
  500. #define MXC_INT_SMC_RX            99
  501. #define MXC_INT_VPU_IDLE        100
  502. #define MXC_INT_EMI_NFC        101
  503. #define MXC_INT_GPU_IDLE        102
  504.  
  505. #define MXC_MAX_INT_LINES       128
  506.  
  507. #define    MXC_GPIO_INT_BASE    (MXC_MAX_INT_LINES)
  508.  
  509. /*!
  510.  * Number of GPIO port as defined in the IC Spec
  511.  */
  512. #define GPIO_PORT_NUM        4
  513. /*!
  514.  * Number of GPIO pins per port
  515.  */
  516. #define GPIO_NUM_PIN            32
  517.  
  518. #define MXC_GPIO_SPLIT_IRQ_2
  519.  
  520. #endif                /*  __ASM_ARCH_MXC_MX51_H__ */
  521.