N9H30.h 150 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097
  1. /**************************************************************************//**
  2. * @file N9H30.h
  3. * @version V1.00
  4. * @brief N9H30 peripheral access layer header file.
  5. * This file contains all the peripheral register's definitions
  6. * and memory mapping for NuMicro N9H30 MCU.
  7. *
  8. * SPDX-License-Identifier: Apache-2.0
  9. * @copyright (C) 2018 Nuvoton Technology Corp. All rights reserved.
  10. *****************************************************************************/
  11. /**
  12. \mainpage NuMicro N9H30 Family Driver Reference Guide
  13. *
  14. * <b>Introduction</b>
  15. *
  16. * This user manual describes the usage of N9H30 family device driver
  17. *
  18. * <b>Disclaimer</b>
  19. *
  20. * The Software is furnished "AS IS", without warranty as to performance or results, and
  21. * the entire risk as to performance or results is assumed by YOU. Nuvoton disclaims all
  22. * warranties, express, implied or otherwise, with regard to the Software, its use, or
  23. * operation, including without limitation any and all warranties of merchantability, fitness
  24. * for a particular purpose, and non-infringement of intellectual property rights.
  25. *
  26. * <b>Important Notice</b>
  27. *
  28. * Nuvoton Products are neither intended nor warranted for usage in systems or equipment,
  29. * any malfunction or failure of which may cause loss of human life, bodily injury or severe
  30. * property damage. Such applications are deemed, "Insecure Usage".
  31. *
  32. * Insecure usage includes, but is not limited to: equipment for surgical implementation,
  33. * atomic energy control instruments, airplane or spaceship instruments, the control or
  34. * operation of dynamic, brake or safety systems designed for vehicular use, traffic signal
  35. * instruments, all types of safety devices, and other applications intended to support or
  36. * sustain life.
  37. *
  38. * All Insecure Usage shall be made at customer's risk, and in the event that third parties
  39. * lay claims to Nuvoton as a result of customer's Insecure Usage, customer shall indemnify
  40. * the damages and liabilities thus incurred by Nuvoton.
  41. *
  42. * Please note that all data and specifications are subject to change without notice. All the
  43. * trademarks of products and companies mentioned in this document belong to their respective
  44. * owners.
  45. *
  46. * <b>Copyright Notice</b>
  47. *
  48. * Copyright (C) 2020 Nuvoton Technology Corp. All rights reserved.
  49. */
  50. #ifndef __N9H30_H__
  51. #define __N9H30_H__
  52. #include <stdint.h>
  53. /** @addtogroup N9H30_PERIPHERAL_MEM_MAP N9H30 Peripheral Memory Base
  54. Memory Mapped Structure for N9H30 Peripheral
  55. @{
  56. */
  57. /*!< AHB peripherals */
  58. #define SYS_BA 0xB0000000 /*!< System Global Control */
  59. #define CLK_BA 0xB0000200 /*!< Clock Control */
  60. #define EBI_BA 0xB0001000 /*!< EBI Control */
  61. #define SDIC_BA 0xB0001800 /*!< SDRAM (SDR/DDR/DDR2) Control */
  62. #define EMC0_BA 0xB0002000 /*!< Ethernet MAC 0 Control */
  63. #define EMC1_BA 0xB0003000 /*!< Ethernet MAC 1 Control */
  64. #define GDMA_BA 0xB0004000 /*!< GDMA control */
  65. #define USBH_BA 0xB0005000 /*!< USB Host EHCI Control */
  66. #define USBD_BA 0xB0006000 /*!< USB Device Control */
  67. #define USBO_BA 0xB0007000 /*!< OHCI USB Host Control */
  68. #define LCM_BA 0xB0008000 /*!< Display, LCM Interface */
  69. #define ACTL_BA 0xB0009000 /*!< Audio Control */
  70. #define JPEG_BA 0xB000A000 /*!< JPEG Engine Control */
  71. #define GE_BA 0xB000B000 /*!< 2-D Graphic Engine */
  72. #define SDH_BA 0xB000C000 /*!< SD/SDIO Host Controller */
  73. #define FMI_BA 0xB000D000 /*!< Flash Memory Card Interface */
  74. #define CAP_BA 0xB000E000 /*!< Sensor (Capture) Interface Control */
  75. #define CRPT_BA 0xB000F000 /*!< Crypto Engine Control */
  76. /*!< APB peripherals */
  77. #define UART0_BA 0xB8000000 /*!< UART0 Control */
  78. #define UART1_BA 0xB8000100 /*!< UART1 Control (High-Speed UART) */
  79. #define UART2_BA 0xB8000200 /*!< UART2 Control (High-Speed UART) */
  80. #define UART3_BA 0xB8000300 /*!< UART3 Control */
  81. #define UART4_BA 0xB8000400 /*!< UART4 Control (High-Speed UART) */
  82. #define UART5_BA 0xB8000500 /*!< UART5 Control */
  83. #define UART6_BA 0xB8000600 /*!< UART6 Control (High-Speed UART) */
  84. #define UART7_BA 0xB8000700 /*!< UART7 Control */
  85. #define UART8_BA 0xB8000800 /*!< UART8 Control (High-Speed UART) */
  86. #define UART9_BA 0xB8000900 /*!< UART9 Control */
  87. #define UARTA_BA 0xB8000A00 /*!< UARTA Control (High-Speed UART) */
  88. #define TMR0_BA 0xB8001000 /*!< Timer 0 */
  89. #define TMR1_BA 0xB8001010 /*!< Timer 1 */
  90. #define TMR2_BA 0xB8001020 /*!< Timer 2 */
  91. #define TMR3_BA 0xB8001030 /*!< Timer 3 */
  92. #define TMR4_BA 0xB8001040 /*!< Timer 4 */
  93. #define ETMR0_BA 0xB8001400 /*!< Enhanced Timer 0 */
  94. #define ETMR1_BA 0xB8001500 /*!< Enhanced Timer 1 */
  95. #define ETMR2_BA 0xB8001600 /*!< Enhanced Timer 2 */
  96. #define ETMR3_BA 0xB8001700 /*!< Enhanced Timer 3 */
  97. #define WDT_BA 0xB8001800 /*!< Watch Dog Timer */
  98. #define WWDT_BA 0xB8001900 /*!< Window Watch Dog Timer */
  99. #define AIC_BA 0xB8002000 /*!< Interrupt Controller */
  100. #define GPIO_BA 0xB8003000 /*!< GPIO Control */
  101. #define RTC_BA 0xB8004000 /*!< Real Time Clock Control */
  102. #define SC0_BA 0xB8005000 /*!< Smart Card 0 Control */
  103. #define SC1_BA 0xB8005400 /*!< Smart Card 1 Control */
  104. #define I2C0_BA 0xB8006000 /*!< I2C 0 Control */
  105. #define I2C1_BA 0xB8006100 /*!< I2C 1 Control */
  106. #define SPI0_BA 0xB8006200 /*!< Serial Peripheral Interface 0 */
  107. #define SPI1_BA 0xB8006300 /*!< Serial Peripheral Interface 1 */
  108. #define PWM_BA 0xB8007000 /*!< Pulse Width Modulation (PWM) Control */
  109. #define ADC_BA 0xB800A000 /*!< ADC Control */
  110. #define CAN0_BA 0xB800B000 /*!< CAN 0 Control */
  111. #define CAN1_BA 0xB800B400 /*!< CAN 1 Control */
  112. #define MTP_BA 0xB800C000 /*!< MTP Control */
  113. /*@}*/ /* end of group N9H30_PERIPHERAL_MEM_MAP */
  114. /******************************************************************************/
  115. /* Device Specific Peripheral registers structures */
  116. /******************************************************************************/
  117. /** @addtogroup N9H30_Peripherals N9H30 Control Register
  118. N9H30 Device Specific Peripheral registers structures
  119. @{
  120. */
  121. /*---------------------- System Manger Controller -------------------------*/
  122. /**
  123. @addtogroup SYS System Manger Controller(SYS)
  124. Memory Mapped Structure for SYS Controller
  125. @{ */
  126. #define REG_SYS_PDID (SYS_BA+0x000) /*!< Product Identifier Register */
  127. #define REG_SYS_PWRON (SYS_BA+0x004) /*!< Power-On Setting Register */
  128. #define REG_SYS_ARBCON (SYS_BA+0x008) /*!< Arbitration Control Register */
  129. #define REG_SYS_LVRDCR (SYS_BA+0x020) /*!< Low Voltage Reset & Detect Control Register */
  130. #define REG_SYS_MISCFCR (SYS_BA+0x030) /*!< Miscellaneous Function Control Register */
  131. #define REG_SYS_MISCIER (SYS_BA+0x040) /*!< Miscellaneous Interrupt Enable Register */
  132. #define REG_SYS_MISCISR (SYS_BA+0x044) /*!< Miscellaneous Interrupt Status Register */
  133. #define REG_SYS_WKUPSER (SYS_BA+0x058) /*!< System Wakeup Source Enable Register */
  134. #define REG_SYS_WKUPSSR (SYS_BA+0x05C) /*!< System Wakeup Source Status Register */
  135. #define REG_SYS_AHBIPRST (SYS_BA+0x060) /*!< AHB IP Reset Control Register */
  136. #define REG_SYS_APBIPRST0 (SYS_BA+0x064) /*!< APB IP Reset Control Register 0 */
  137. #define REG_SYS_APBIPRST1 (SYS_BA+0x068) /*!< APB IP Reset Control Register 1 */
  138. #define REG_SYS_RSTSTS (SYS_BA+0x06C) /*!< Reset Source Active Status Register */
  139. #define REG_SYS_GPA_MFPL (SYS_BA+0x070) /*!< GPIOA Low Byte Multiple Function Control Register */
  140. #define REG_SYS_GPA_MFPH (SYS_BA+0x074) /*!< GPIOA High Byte Multiple Function Control Register */
  141. #define REG_SYS_GPB_MFPL (SYS_BA+0x078) /*!< GPIOB Low Byte Multiple Function Control Register */
  142. #define REG_SYS_GPB_MFPH (SYS_BA+0x07C) /*!< GPIOB High Byte Multiple Function Control Register */
  143. #define REG_SYS_GPC_MFPL (SYS_BA+0x080) /*!< GPIOC Low Byte Multiple Function Control Register */
  144. #define REG_SYS_GPC_MFPH (SYS_BA+0x084) /*!< GPIOC High Byte Multiple Function Control Register */
  145. #define REG_SYS_GPD_MFPL (SYS_BA+0x088) /*!< GPIOD Low Byte Multiple Function Control Register */
  146. #define REG_SYS_GPD_MFPH (SYS_BA+0x08C) /*!< GPIOD High Byte Multiple Function Control Register */
  147. #define REG_SYS_GPE_MFPL (SYS_BA+0x090) /*!< GPIOE Low Byte Multiple Function Control Register */
  148. #define REG_SYS_GPE_MFPH (SYS_BA+0x094) /*!< GPIOE High Byte Multiple Function Control Register */
  149. #define REG_SYS_GPF_MFPL (SYS_BA+0x098) /*!< GPIOF Low Byte Multiple Function Control Register */
  150. #define REG_SYS_GPF_MFPH (SYS_BA+0x09C) /*!< GPIOF High Byte Multiple Function Control Register */
  151. #define REG_SYS_GPG_MFPL (SYS_BA+0x0A0) /*!< GPIOG Low Byte Multiple Function Control Register */
  152. #define REG_SYS_GPG_MFPH (SYS_BA+0x0A4) /*!< GPIOG High Byte Multiple Function Control Register */
  153. #define REG_SYS_GPH_MFPL (SYS_BA+0x0A8) /*!< GPIOH Low Byte Multiple Function Control Register */
  154. #define REG_SYS_GPH_MFPH (SYS_BA+0x0AC) /*!< GPIOH High Byte Multiple Function Control Register */
  155. #define REG_SYS_GPI_MFPL (SYS_BA+0x0B0) /*!< GPIOI Low Byte Multiple Function Control Register */
  156. #define REG_SYS_GPI_MFPH (SYS_BA+0x0B4) /*!< GPIOI High Byte Multiple Function Control Register */
  157. #define REG_SYS_GPJ_MFPL (SYS_BA+0x0B8) /*!< GPIOJ Low Byte Multiple Function Control Register */
  158. #define REG_SYS_DDR_DSCTL (SYS_BA+0x0F0) /*!< DDR I/O Driving Strength Control Register */
  159. #define REG_SYS_PORDISCR (SYS_BA+0x100) /*!< Power-On-Reset Disable Control Register */
  160. #define REG_SYS_ICEDBGCR (SYS_BA+0x104) /*!< ICE Debug Interface Control Register */
  161. #define REG_SYS_ERRADDCR (SYS_BA+0x108) /*!< Error Response Address Control Regsiter */
  162. #define REG_SYS_REGWPCTL (SYS_BA+0x1FC) /*!< Register Write-Protection Control Register */
  163. /**@}*/ /* end of SYS register group */
  164. /*---------------------- System Clock Controller -------------------------*/
  165. /**
  166. @addtogroup CLK System Clock Controller(CLK)
  167. Memory Mapped Structure for CLK Controller
  168. @{ */
  169. #define REG_CLK_PMCON (CLK_BA+0x00) /*!< Power Management Control Register */
  170. #define REG_CLK_HCLKEN (CLK_BA+0x10) /*!< AHB IP Clock Enable Control Register */
  171. #define REG_CLK_PCLKEN0 (CLK_BA+0x18) /*!< APB IP Clock Enable Control Register 0 */
  172. #define REG_CLK_PCLKEN1 (CLK_BA+0x1C) /*!< APB IP Clock Enable Control Register 1 */
  173. #define REG_CLK_DIVCTL0 (CLK_BA+0x20) /*!< Clock Divider Control Register 0 */
  174. #define REG_CLK_DIVCTL1 (CLK_BA+0x24) /*!< Clock Divider Control Register 1 */
  175. #define REG_CLK_DIVCTL2 (CLK_BA+0x28) /*!< Clock Divider Control Register 2 */
  176. #define REG_CLK_DIVCTL3 (CLK_BA+0x2C) /*!< Clock Divider Control Register 3 */
  177. #define REG_CLK_DIVCTL4 (CLK_BA+0x30) /*!< Clock Divider Control Register 4 */
  178. #define REG_CLK_DIVCTL5 (CLK_BA+0x34) /*!< Clock Divider Control Register 5 */
  179. #define REG_CLK_DIVCTL6 (CLK_BA+0x38) /*!< Clock Divider Control Register 6 */
  180. #define REG_CLK_DIVCTL7 (CLK_BA+0x3C) /*!< Clock Divider Control Register 7 */
  181. #define REG_CLK_DIVCTL8 (CLK_BA+0x40) /*!< Clock Divider Control Register 8 */
  182. #define REG_CLK_DIVCTL9 (CLK_BA+0x44) /*!< Clock Divider Control Register 9 */
  183. #define REG_CLK_APLLCON (CLK_BA+0x60) /*!< APLL Control Register */
  184. #define REG_CLK_UPLLCON (CLK_BA+0x64) /*!< UPLL Control Register */
  185. #define REG_CLK_PLLSTBCNTR (CLK_BA+0x80) /*!< PLL Stable Counter and Test Clock Control Register */
  186. /**@}*/ /* end of CLK register group */
  187. /*---------------------- External Bus Interface Controller -------------------------*/
  188. /**
  189. @addtogroup EBI External Bus Interface Controller(EBI)
  190. Memory Mapped Structure for EBI Controller
  191. @{ */
  192. #define REG_EBI_CTL (EBI_BA+0x000) /*!< EBI control register */
  193. #define REG_EBI_BNKCTL0 (EBI_BA+0x018) /*!< External I/O 0 control register */
  194. #define REG_EBI_BNKCTL1 (EBI_BA+0x01C) /*!< External I/O 1 control register */
  195. #define REG_EBI_BNKCTL2 (EBI_BA+0x020) /*!< External I/O 2 control register */
  196. #define REG_EBI_BNKCTL3 (EBI_BA+0x024) /*!< External I/O 3 control register */
  197. #define REG_EBI_BNKCTL4 (EBI_BA+0x028) /*!< External I/O 4 control register */
  198. /**@}*/ /* end of EBI register group */
  199. /*---------------------- Ethernet MAC Controller -------------------------*/
  200. /**
  201. @addtogroup EMAC Ethernet MAC Controller(EMAC)
  202. Memory Mapped Structure for EMAC Controller
  203. @{ */
  204. #define REG_EMAC0_CAMCMR (EMC0_BA+0x000) /*!< CAM Command Register */
  205. #define REG_EMAC0_CAMEN (EMC0_BA+0x004) /*!< CAM Enable Register */
  206. #define REG_EMAC0_CAM0M (EMC0_BA+0x008) /*!< CAM0 Most Significant Word Register */
  207. #define REG_EMAC0_CAM0L (EMC0_BA+0x00c) /*!< CAM0 Least Significant Word Register */
  208. #define REG_EMAC0_CAMxM_Reg(x)(REG_EMAC0_CAM0M+(x)*0x8) /*!< CAMx Most Significant Word Register */
  209. #define REG_EMAC0_CAMxL_Reg(x)(REG_EMAC0_CAM0L+(x)*0x8) /*!< CAMx Least Significant Word Register */
  210. #define REG_EMAC0_TXDLSA (EMC0_BA+0x088) /*!< Transmit Descriptor Link List Start Address Register */
  211. #define REG_EMAC0_RXDLSA (EMC0_BA+0x08C) /*!< Receive Descriptor Link List Start Address Register */
  212. #define REG_EMAC0_MCMDR (EMC0_BA+0x090) /*!< MAC Command Register */
  213. #define REG_EMAC0_MIID (EMC0_BA+0x094) /*!< MII Management Data Register */
  214. #define REG_EMAC0_MIIDA (EMC0_BA+0x098) /*!< MII Management Control and Address Register */
  215. #define REG_EMAC0_FFTCR (EMC0_BA+0x09C) /*!< FIFO Threshold Control Register */
  216. #define REG_EMAC0_TSDR (EMC0_BA+0x0a0) /*!< Transmit Start Demand Register */
  217. #define REG_EMAC0_RSDR (EMC0_BA+0x0a4) /*!< Receive Start Demand Register */
  218. #define REG_EMAC0_DMARFC (EMC0_BA+0x0a8) /*!< Maximum Receive Frame Control Register */
  219. #define REG_EMAC0_MIEN (EMC0_BA+0x0ac) /*!< MAC Interrupt Enable Register */
  220. #define REG_EMAC0_MISTA (EMC0_BA+0x0b0) /*!< MAC Interrupt Status Register */
  221. #define REG_EMAC0_MGSTA (EMC0_BA+0x0b4) /*!< MAC General Status Register */
  222. #define REG_EMAC0_MPCNT (EMC0_BA+0x0b8) /*!< Missed Packet Count Register */
  223. #define REG_EMAC0_MRPC (EMC0_BA+0x0bc) /*!< MAC Receive Pause Count Register */
  224. #define REG_EMAC0_DMARFS (EMC0_BA+0x0c8) /*!< DMA Receive Frame Status Register */
  225. #define REG_EMAC0_CTXDSA (EMC0_BA+0x0cc) /*!< Current Transmit Descriptor Start Address Register */
  226. #define REG_EMAC0_CTXBSA (EMC0_BA+0x0d0) /*!< Current Transmit Buffer Start Address Register */
  227. #define REG_EMAC0_CRXDSA (EMC0_BA+0x0d4) /*!< Current Receive Descriptor Start Address Register */
  228. #define REG_EMAC0_CRXBSA (EMC0_BA+0x0d8) /*!< Current Receive Buffer Start Address Register */
  229. #define REG_EMAC0_TSCTL (EMC0_BA+0x100) /*!< Time Stamp Control Register */
  230. #define REG_EMAC0_TSSEC (EMC0_BA+0x110) /*!< Time Stamp Counter Second Register */
  231. #define REG_EMAC0_TSSUBSEC (EMC0_BA+0x114) /*!< Time Stamp Counter Sub Second Register */
  232. #define REG_EMAC0_TSINC (EMC0_BA+0x118) /*!< Time Stamp Increment Register */
  233. #define REG_EMAC0_TSADDEN (EMC0_BA+0x11c) /*!< Time Stamp Addend Register */
  234. #define REG_EMAC0_TSUPDSEC (EMC0_BA+0x120) /*!< Time Stamp Update Second Register */
  235. #define REG_EMAC0_TSUPDSUBSEC (EMC0_BA+0x124) /*!< Time Stamp Update Sub Second Register */
  236. #define REG_EMAC0_TSALMSEC (EMC0_BA+0x128) /*!< Time Stamp Alarm Second Register */
  237. #define REG_EMAC0_TSALMSUBSEC (EMC0_BA+0x12c) /*!< Time Stamp Alarm Sub Second Register */
  238. #define REG_EMAC1_CAMCMR (EMC1_BA+0x000) /*!< CAM Command Register */
  239. #define REG_EMAC1_CAMEN (EMC1_BA+0x004) /*!< CAM Enable Register */
  240. #define REG_EMAC1_CAM0M (EMC1_BA+0x008) /*!< CAM0 Most Significant Word Register */
  241. #define REG_EMAC1_CAM0L (EMC1_BA+0x00c) /*!< CAM0 Least Significant Word Register */
  242. #define REG_EMAC1_CAMxM_Reg(x)(REG_EMAC1_CAM0M+(x)*0x8) /*!< CAMx Most Significant Word Register */
  243. #define REG_EMAC1_CAMxL_Reg(x)(REG_EMAC1_CAM0L+(x)*0x8) /*!< CAMx Least Significant Word Register */
  244. #define REG_EMAC1_TXDLSA (EMC1_BA+0x088) /*!< Transmit Descriptor Link List Start Address Register */
  245. #define REG_EMAC1_RXDLSA (EMC1_BA+0x08C) /*!< Receive Descriptor Link List Start Address Register */
  246. #define REG_EMAC1_MCMDR (EMC1_BA+0x090) /*!< MAC Command Register */
  247. #define REG_EMAC1_MIID (EMC1_BA+0x094) /*!< MII Management Data Register */
  248. #define REG_EMAC1_MIIDA (EMC1_BA+0x098) /*!< MII Management Control and Address Register */
  249. #define REG_EMAC1_FFTCR (EMC1_BA+0x09C) /*!< FIFO Threshold Control Register */
  250. #define REG_EMAC1_TSDR (EMC1_BA+0x0a0) /*!< Transmit Start Demand Register */
  251. #define REG_EMAC1_RSDR (EMC1_BA+0x0a4) /*!< Receive Start Demand Register */
  252. #define REG_EMAC1_DMARFC (EMC1_BA+0x0a8) /*!< Maximum Receive Frame Control Register */
  253. #define REG_EMAC1_MIEN (EMC1_BA+0x0ac) /*!< MAC Interrupt Enable Register */
  254. #define REG_EMAC1_MISTA (EMC1_BA+0x0b0) /*!< MAC Interrupt Status Register */
  255. #define REG_EMAC1_MGSTA (EMC1_BA+0x0b4) /*!< MAC General Status Register */
  256. #define REG_EMAC1_MPCNT (EMC1_BA+0x0b8) /*!< Missed Packet Count Register */
  257. #define REG_EMAC1_MRPC (EMC1_BA+0x0bc) /*!< MAC Receive Pause Count Register */
  258. #define REG_EMAC1_DMARFS (EMC1_BA+0x0c8) /*!< DMA Receive Frame Status Register */
  259. #define REG_EMAC1_CTXDSA (EMC1_BA+0x0cc) /*!< Current Transmit Descriptor Start Address Register */
  260. #define REG_EMAC1_CTXBSA (EMC1_BA+0x0d0) /*!< Current Transmit Buffer Start Address Register */
  261. #define REG_EMAC1_CRXDSA (EMC1_BA+0x0d4) /*!< Current Receive Descriptor Start Address Register */
  262. #define REG_EMAC1_CRXBSA (EMC1_BA+0x0d8) /*!< Current Receive Buffer Start Address Register */
  263. #define REG_EMAC1_TSCTL (EMC1_BA+0x100) /*!< Time Stamp Control Register */
  264. #define REG_EMAC1_TSSEC (EMC1_BA+0x110) /*!< Time Stamp Counter Second Register */
  265. #define REG_EMAC1_TSSUBSEC (EMC1_BA+0x114) /*!< Time Stamp Counter Sub Second Register */
  266. #define REG_EMAC1_TSINC (EMC1_BA+0x118) /*!< Time Stamp Increment Register */
  267. #define REG_EMAC1_TSADDEN (EMC1_BA+0x11c) /*!< Time Stamp Addend Register */
  268. #define REG_EMAC1_TSUPDSEC (EMC1_BA+0x120) /*!< Time Stamp Update Second Register */
  269. #define REG_EMAC1_TSUPDSUBSEC (EMC1_BA+0x124) /*!< Time Stamp Update Sub Second Register */
  270. #define REG_EMAC1_TSALMSEC (EMC1_BA+0x128) /*!< Time Stamp Alarm Second Register */
  271. #define REG_EMAC1_TSALMSUBSEC (EMC1_BA+0x12c) /*!< Time Stamp Alarm Sub Second Register */
  272. /**@}*/ /* end of EMAC register group */
  273. /*---------------------- General Direct Memory Access Controller -------------------------*/
  274. /**
  275. @addtogroup GDMA General Direct Memory Access Controller(GDMA)
  276. Memory Mapped Structure for GDMA Controller
  277. @{ */
  278. #define REG_GDMA_CTL0 (GDMA_BA+0x000) /*!< Channel 0 Control Register */
  279. #define REG_GDMA_SRCB0 (GDMA_BA+0x004) /*!< Channel 0 Source Base Address Register */
  280. #define REG_GDMA_DSTB0 (GDMA_BA+0x008) /*!< Channel 0 Destination Base Address Register */
  281. #define REG_GDMA_TCNT0 (GDMA_BA+0x00C) /*!< Channel 0 Transfer Count Register */
  282. #define REG_GDMA_CSRC0 (GDMA_BA+0x010) /*!< Channel 0 Current Source Address Register */
  283. #define REG_GDMA_CDST0 (GDMA_BA+0x014) /*!< Channel 0 Current Destination Address Register */
  284. #define REG_GDMA_CTCNT0 (GDMA_BA+0x018) /*!< Channel 0 Current Transfer Count Register */
  285. #define REG_GDMA_DADR0 (GDMA_BA+0x01C) /*!< Channel 0 Descriptor Address Register */
  286. #define REG_GDMA_CTL1 (GDMA_BA+0x020) /*!< Channel 1 Control Register */
  287. #define REG_GDMA_SRCB1 (GDMA_BA+0x024) /*!< Channel 1 Source Base Address Register */
  288. #define REG_GDMA_DSTB1 (GDMA_BA+0x028) /*!< Channel 1 Destination Base Address Register */
  289. #define REG_GDMA_TCNT1 (GDMA_BA+0x02C) /*!< Channel 1 Transfer Count Register */
  290. #define REG_GDMA_CSRC1 (GDMA_BA+0x030) /*!< Channel 1 Current Source Address Register */
  291. #define REG_GDMA_CDST1 (GDMA_BA+0x034) /*!< Channel 1 Current Destination Address Register */
  292. #define REG_GDMA_CTCNT1 (GDMA_BA+0x038) /*!< Channel 1 Current Transfer Count Register */
  293. #define REG_GDMA_DADR1 (GDMA_BA+0x03C) /*!< Channel 1 Descriptor Address Register */
  294. #define REG_GDMA_INTBUF0 (GDMA_BA+0x080) /*!< GDMA Internal Buffer Word 0 */
  295. #define REG_GDMA_INTBUF1 (GDMA_BA+0x084) /*!< GDMA Internal Buffer Word 1 */
  296. #define REG_GDMA_INTBUF2 (GDMA_BA+0x088) /*!< GDMA Internal Buffer Word 2 */
  297. #define REG_GDMA_INTBUF3 (GDMA_BA+0x08C) /*!< GDMA Internal Buffer Word 3 */
  298. #define REG_GDMA_INTBUF4 (GDMA_BA+0x090) /*!< GDMA Internal Buffer Word 4 */
  299. #define REG_GDMA_INTBUF5 (GDMA_BA+0x094) /*!< GDMA Internal Buffer Word 5 */
  300. #define REG_GDMA_INTBUF6 (GDMA_BA+0x098) /*!< GDMA Internal Buffer Word 6 */
  301. #define REG_GDMA_INTBUF7 (GDMA_BA+0x09C) /*!< GDMA Internal Buffer Word 7 */
  302. #define REG_GDMA_INTCS (GDMA_BA+0x0A0) /*!< Interrupt Control and Status Register */
  303. /**@}*/ /* end of GDMA register group */
  304. /*---------------------- USB Device Controller -------------------------*/
  305. /**
  306. @addtogroup USBD USB Device Controller(USBD)
  307. Memory Mapped Structure for USBD Controller
  308. @{ */
  309. #define REG_USBD_GINTSTS (USBD_BA+0x00) /*!< Interrupt Status Low Register */
  310. #define REG_USBD_GINTEN (USBD_BA+0x08) /*!< Interrupt Enable Low Register */
  311. #define REG_USBD_BUSINTSTS (USBD_BA+0x10) /*!< USB Bus Interrupt Status Register */
  312. #define REG_USBD_BUSINTEN (USBD_BA+0x14) /*!< USB Bus Interrupt Enable Register */
  313. #define REG_USBD_OPER (USBD_BA+0x18) /*!< USB Operational Register */
  314. #define REG_USBD_FRAMECNT (USBD_BA+0x1C) /*!< USB Frame Count Register */
  315. #define REG_USBD_FADDR (USBD_BA+0x20) /*!< USB Function Address Register */
  316. #define REG_USBD_TEST (USBD_BA+0x24) /*!< USB Test Mode Register */
  317. #define REG_USBD_CEPDAT (USBD_BA+0x28) /*!< Control-ep data buffer register */
  318. #define REG_USBD_CEPCTL (USBD_BA+0x2C) /*!< Control-ep control and status register */
  319. #define REG_USBD_CEPINTEN (USBD_BA+0x30) /*!< Control-ep interrupt enable register */
  320. #define REG_USBD_CEPINTSTS (USBD_BA+0x34) /*!< Control-ep interrupt status register */
  321. #define REG_USBD_CEPTXCNT (USBD_BA+0x38) /*!< In-transfer data count register */
  322. #define REG_USBD_CEPRXCNT (USBD_BA+0x3C) /*!< Out-transfer data count register */
  323. #define REG_USBD_CEPDATCNT (USBD_BA+0x40) /*!< Control-ep data count register */
  324. #define REG_USBD_SETUP1_0 (USBD_BA+0x44) /*!< Setup byte1 & byte0 register */
  325. #define REG_USBD_SETUP3_2 (USBD_BA+0x48) /*!< Setup byte3 & byte2 register */
  326. #define REG_USBD_SETUP5_4 (USBD_BA+0x4C) /*!< Setup byte5 & byte4 register */
  327. #define REG_USBD_SETUP7_6 (USBD_BA+0x50) /*!< Setup byte7 & byte6 register */
  328. #define REG_USBD_CEPBUFSTART (USBD_BA+0x54) /*!< Control-ep ram start address register */
  329. #define REG_USBD_CEPBUFEND (USBD_BA+0x58) /*!< Control-ep ram end address register */
  330. #define REG_USBD_DMACTL (USBD_BA+0x5C) /*!< Dma control and status register */
  331. #define REG_USBD_DMACNT (USBD_BA+0x60) /*!< Dma count register */
  332. #define REG_USBD_EPADAT (USBD_BA+0x64) /*!< Endpoint A data buffer register */
  333. #define REG_USBD_EPAINTSTS (USBD_BA+0x68) /*!< Endpoint A interrupt status register */
  334. #define REG_USBD_EPAINTEN (USBD_BA+0x6C) /*!< Endpoint A interrupt enable register */
  335. #define REG_USBD_EPADATCNT (USBD_BA+0x70) /*!< Data count available in endpoint A buffer */
  336. #define REG_USBD_EPARSPCTL (USBD_BA+0x74) /*!< Endpoint A response register set/clear */
  337. #define REG_USBD_EPAMPS (USBD_BA+0x78) /*!< Endpoint A max packet size register */
  338. #define REG_USBD_EPATXCNT (USBD_BA+0x7C) /*!< Endpoint A transfer count register */
  339. #define REG_USBD_EPACFG (USBD_BA+0x80) /*!< Endpoint A configuration register */
  340. #define REG_USBD_EPABUFSTART (USBD_BA+0x84) /*!< Endpoint A ram start address register */
  341. #define REG_USBD_EPABUFEND (USBD_BA+0x88) /*!< Endpoint A ram end address register */
  342. #define REG_USBD_EPBDAT (USBD_BA+0x8C) /*!< Endpoint B data buffer register */
  343. #define REG_USBD_EPBINTSTS (USBD_BA+0x90) /*!< Endpoint B interrupt status register */
  344. #define REG_USBD_EPBINTEN (USBD_BA+0x94) /*!< Endpoint B interrupt enable register */
  345. #define REG_USBD_EPBDATCNT (USBD_BA+0x98) /*!< Data count available in endpoint B buffer */
  346. #define REG_USBD_EPBRSPCTL (USBD_BA+0x9C) /*!< Endpoint B response register set/clear */
  347. #define REG_USBD_EPBMPS (USBD_BA+0xA0) /*!< Endpoint B max packet size register */
  348. #define REG_USBD_EPBTXCNT (USBD_BA+0xA4) /*!< Endpoint B transfer count register */
  349. #define REG_USBD_EPBCFG (USBD_BA+0xA8) /*!< Endpoint B configuration register */
  350. #define REG_USBD_EPBBUFSTART (USBD_BA+0xAC) /*!< Endpoint B ram start address register */
  351. #define REG_USBD_EPBBUFEND (USBD_BA+0xB0) /*!< Endpoint B ram end address register */
  352. #define REG_USBD_EPCDAT (USBD_BA+0xB4) /*!< Endpoint C data buffer register */
  353. #define REG_USBD_EPCINTSTS (USBD_BA+0xB8) /*!< Endpoint C interrupt status register */
  354. #define REG_USBD_EPCINTEN (USBD_BA+0xBC) /*!< Endpoint C interrupt enable register */
  355. #define REG_USBD_EPCDATCNT (USBD_BA+0xC0) /*!< Data count available in endpoint C buffer */
  356. #define REG_USBD_EPCRSPCTL (USBD_BA+0xC4) /*!< Endpoint C response register set/clear */
  357. #define REG_USBD_EPCMPS (USBD_BA+0xC8) /*!< Endpoint C max packet size register */
  358. #define REG_USBD_EPCTXCNT (USBD_BA+0xCC) /*!< Endpoint C transfer count register */
  359. #define REG_USBD_EPCCFG (USBD_BA+0xD0) /*!< Endpoint C configuration register */
  360. #define REG_USBD_EPCBUFSTART (USBD_BA+0xD4) /*!< Endpoint C ram start address register */
  361. #define REG_USBD_EPCBUFEND (USBD_BA+0xD8) /*!< Endpoint C ram end address register */
  362. #define REG_USBD_EPDDAT (USBD_BA+0xDC) /*!< Endpoint D data buffer register */
  363. #define REG_USBD_EPDINTSTS (USBD_BA+0xE0) /*!< Endpoint D interrupt status register */
  364. #define REG_USBD_EPDINTEN (USBD_BA+0xE4) /*!< Endpoint D interrupt enable register */
  365. #define REG_USBD_EPDDATCNT (USBD_BA+0xE8) /*!< Data count available in endpoint D buffer */
  366. #define REG_USBD_EPDRSPCTL (USBD_BA+0xEC) /*!< Endpoint D response register set/clear */
  367. #define REG_USBD_EPDMPS (USBD_BA+0xF0) /*!< Endpoint D max packet size register */
  368. #define REG_USBD_EPDTXCNT (USBD_BA+0xF4) /*!< Endpoint D transfer count register */
  369. #define REG_USBD_EPDCFG (USBD_BA+0xF8) /*!< Endpoint D configuration register */
  370. #define REG_USBD_EPDBUFSTART (USBD_BA+0xFC) /*!< Endpoint D ram start address register */
  371. #define REG_USBD_EPDBUFEND (USBD_BA+0x100) /*!< Endpoint D ram end address register */
  372. #define REG_USBD_EPEDAT (USBD_BA+0x104) /*!< Endpoint E data buffer register */
  373. #define REG_USBD_EPEINTSTS (USBD_BA+0x108) /*!< Endpoint E interrupt status register */
  374. #define REG_USBD_EPEINTEN (USBD_BA+0x10C) /*!< Endpoint E interrupt enable register */
  375. #define REG_USBD_EPEDATCNT (USBD_BA+0x110) /*!< Data count available in endpoint E buffer */
  376. #define REG_USBD_EPERSPCTL (USBD_BA+0x114) /*!< Endpoint E response register set/clear */
  377. #define REG_USBD_EPEMPS (USBD_BA+0x118) /*!< Endpoint E max packet size register */
  378. #define REG_USBD_EPETXCNT (USBD_BA+0x11C) /*!< Endpoint E transfer count register */
  379. #define REG_USBD_EPECFG (USBD_BA+0x120) /*!< Endpoint E configuration register */
  380. #define REG_USBD_EPEBUFSTART (USBD_BA+0x124) /*!< Endpoint E ram start address register */
  381. #define REG_USBD_EPEBUFEND (USBD_BA+0x128) /*!< Endpoint E ram end address register */
  382. #define REG_USBD_EPFDAT (USBD_BA+0x12C) /*!< Endpoint F data buffer register */
  383. #define REG_USBD_EPFINTSTS (USBD_BA+0x130) /*!< Endpoint F interrupt status register */
  384. #define REG_USBD_EPFINTEN (USBD_BA+0x134) /*!< Endpoint F interrupt enable register */
  385. #define REG_USBD_EPFDATCNT (USBD_BA+0x138) /*!< Data count available in endpoint F buffer */
  386. #define REG_USBD_EPFRSPCTL (USBD_BA+0x13C) /*!< Endpoint F response register set/clear */
  387. #define REG_USBD_EPFMPS (USBD_BA+0x140) /*!< Endpoint F max packet size register */
  388. #define REG_USBD_EPFTXCNT (USBD_BA+0x144) /*!< Endpoint F transfer count register */
  389. #define REG_USBD_EPFCFG (USBD_BA+0x148) /*!< Endpoint F configuration register */
  390. #define REG_USBD_EPFBUFSTART (USBD_BA+0x14C) /*!< Endpoint F ram start address register */
  391. #define REG_USBD_EPFBUFEND (USBD_BA+0x150) /*!< Endpoint F ram end address register */
  392. #define REG_USBD_EPGDAT (USBD_BA+0x154) /*!< Endpoint G data buffer register */
  393. #define REG_USBD_EPGINTSTS (USBD_BA+0x158) /*!< Endpoint G interrupt status register */
  394. #define REG_USBD_EPGINTEN (USBD_BA+0x15C) /*!< Endpoint G interrupt enable register */
  395. #define REG_USBD_EPGDATCNT (USBD_BA+0x160) /*!< Data count available in endpoint G buffer */
  396. #define REG_USBD_EPGRSPCTL (USBD_BA+0x164) /*!< Endpoint G response register set/clear */
  397. #define REG_USBD_EPGMPS (USBD_BA+0x168) /*!< Endpoint G max packet size register */
  398. #define REG_USBD_EPGTXCNT (USBD_BA+0x16C) /*!< Endpoint G transfer count register */
  399. #define REG_USBD_EPGCFG (USBD_BA+0x170) /*!< Endpoint G configuration register */
  400. #define REG_USBD_EPGBUFSTART (USBD_BA+0x174) /*!< Endpoint G ram start address register */
  401. #define REG_USBD_EPGBUFEND (USBD_BA+0x178) /*!< Endpoint G ram end address register */
  402. #define REG_USBD_EPHDAT (USBD_BA+0x17C) /*!< Endpoint H data buffer register */
  403. #define REG_USBD_EPHINTSTS (USBD_BA+0x180) /*!< Endpoint H interrupt status register */
  404. #define REG_USBD_EPHINTEN (USBD_BA+0x184) /*!< Endpoint H interrupt enable register */
  405. #define REG_USBD_EPHDATCNT (USBD_BA+0x188) /*!< Data count available in endpoint H buffer */
  406. #define REG_USBD_EPHRSPCTL (USBD_BA+0x18C) /*!< Endpoint H response register set/clear */
  407. #define REG_USBD_EPHMPS (USBD_BA+0x190) /*!< Endpoint H max packet size register */
  408. #define REG_USBD_EPHTXCNT (USBD_BA+0x194) /*!< Endpoint H transfer count register */
  409. #define REG_USBD_EPHCFG (USBD_BA+0x198) /*!< Endpoint H configuration register */
  410. #define REG_USBD_EPHBUFSTART (USBD_BA+0x19C) /*!< Endpoint H ram start address register */
  411. #define REG_USBD_EPHBUFEND (USBD_BA+0x1A0) /*!< Endpoint H ram end address register */
  412. #define REG_USBD_EPIDAT (USBD_BA+0x1A4) /*!< Endpoint I data buffer register */
  413. #define REG_USBD_EPIINTSTS (USBD_BA+0x1A8) /*!< Endpoint I interrupt status register */
  414. #define REG_USBD_EPIINTEN (USBD_BA+0x1AC) /*!< Endpoint I interrupt enable register */
  415. #define REG_USBD_EPIDATCNT (USBD_BA+0x1B0) /*!< Data count available in endpoint I buffer */
  416. #define REG_USBD_EPIRSPCTL (USBD_BA+0x1B4) /*!< Endpoint I response register set/clear */
  417. #define REG_USBD_EPIMPS (USBD_BA+0x1B8) /*!< Endpoint I max packet size register */
  418. #define REG_USBD_EPITXCNT (USBD_BA+0x1BC) /*!< Endpoint I transfer count register */
  419. #define REG_USBD_EPICFG (USBD_BA+0x1C0) /*!< Endpoint I configuration register */
  420. #define REG_USBD_EPIBUFSTART (USBD_BA+0x1C4) /*!< Endpoint I ram start address register */
  421. #define REG_USBD_EPIBUFEND (USBD_BA+0x1C8) /*!< Endpoint I ram end address register */
  422. #define REG_USBD_EPJDAT (USBD_BA+0x1CC) /*!< Endpoint J data buffer register */
  423. #define REG_USBD_EPJINTSTS (USBD_BA+0x1D0) /*!< Endpoint J interrupt status register */
  424. #define REG_USBD_EPJINTEN (USBD_BA+0x1D4) /*!< Endpoint J interrupt enable register */
  425. #define REG_USBD_EPJDATCNT (USBD_BA+0x1D8) /*!< Data count available in endpoint J buffer */
  426. #define REG_USBD_EPJRSPCTL (USBD_BA+0x1DC) /*!< Endpoint J response register set/clear */
  427. #define REG_USBD_EPJMPS (USBD_BA+0x1E0) /*!< Endpoint J max packet size register */
  428. #define REG_USBD_EPJTXCNT (USBD_BA+0x1E4) /*!< Endpoint J transfer count register */
  429. #define REG_USBD_EPJCFG (USBD_BA+0x1E8) /*!< Endpoint J configuration register */
  430. #define REG_USBD_EPJBUFSTART (USBD_BA+0x1EC) /*!< Endpoint J ram start address register */
  431. #define REG_USBD_EPJBUFEND (USBD_BA+0x1F0) /*!< Endpoint J ram end address register */
  432. #define REG_USBD_EPKDAT (USBD_BA+0x1F4) /*!< Endpoint K data buffer register */
  433. #define REG_USBD_EPKINTSTS (USBD_BA+0x1F8) /*!< Endpoint K interrupt status register */
  434. #define REG_USBD_EPKINTEN (USBD_BA+0x1FC) /*!< Endpoint K interrupt enable register */
  435. #define REG_USBD_EPKDATCNT (USBD_BA+0x200) /*!< Data count available in endpoint K buffer */
  436. #define REG_USBD_EPKRSPCTL (USBD_BA+0x204) /*!< Endpoint K response register set/clear */
  437. #define REG_USBD_EPKMPS (USBD_BA+0x208) /*!< Endpoint K max packet size register */
  438. #define REG_USBD_EPKTXCNT (USBD_BA+0x20C) /*!< Endpoint K transfer count register */
  439. #define REG_USBD_EPKCFG (USBD_BA+0x210) /*!< Endpoint K configuration register */
  440. #define REG_USBD_EPKBUFSTART (USBD_BA+0x214) /*!< Endpoint K ram start address register */
  441. #define REG_USBD_EPKBUFEND (USBD_BA+0x218) /*!< Endpoint K ram end address register */
  442. #define REG_USBD_EPLDAT (USBD_BA+0x21C) /*!< Endpoint L data buffer register */
  443. #define REG_USBD_EPLINTSTS (USBD_BA+0x220) /*!< Endpoint L interrupt status register */
  444. #define REG_USBD_EPLINTEN (USBD_BA+0x224) /*!< Endpoint L interrupt enable register */
  445. #define REG_USBD_EPLDATCNT (USBD_BA+0x228) /*!< Data count available in endpoint L buffer */
  446. #define REG_USBD_EPLRSPCTL (USBD_BA+0x22C) /*!< Endpoint L response register set/clear */
  447. #define REG_USBD_EPLMPS (USBD_BA+0x230) /*!< Endpoint L max packet size register */
  448. #define REG_USBD_EPLTXCNT (USBD_BA+0x234) /*!< Endpoint L transfer count register */
  449. #define REG_USBD_EPLCFG (USBD_BA+0x238) /*!< Endpoint L configuration register */
  450. #define REG_USBD_EPLBUFSTART (USBD_BA+0x23C) /*!< Endpoint L ram start address register */
  451. #define REG_USBD_EPLBUFEND (USBD_BA+0x240) /*!< Endpoint L ram end address register */
  452. #define REG_USBD_DMAADDR (USBD_BA+0x700) /*!< AHB_DMA address register */
  453. #define REG_USBD_PHYCTL (USBD_BA+0x704) /*!< USB PHY control register */
  454. /**@}*/ /* end of USBD register group */
  455. /*---------------------- LCD Display Interface Controller -------------------------*/
  456. /**
  457. @addtogroup LCM LCD Display Interface Controller(LCM)
  458. Memory Mapped Structure for LCM Controller
  459. @{ */
  460. #define REG_LCM_DCCS (LCM_BA+0x00) /*!< Display Controller Control/Status Register */
  461. #define REG_LCM_DEV_CTRL (LCM_BA+0x04) /*!< Display Output Device Control Register */
  462. #define REG_LCM_MPU_CMD (LCM_BA+0x08) /*!< MPU-Interface LCD Write Command */
  463. #define REG_LCM_INT_CS (LCM_BA+0x0c) /*!< Interrupt Control/Status Register */
  464. #define REG_LCM_CRTC_SIZE (LCM_BA+0x10) /*!< CRTC Display Size Control Register */
  465. #define REG_LCM_CRTC_DEND (LCM_BA+0x14) /*!< CRTC Display Enable End */
  466. #define REG_LCM_CRTC_HR (LCM_BA+0x18) /*!< CRTC Internal Horizontal Retrace Control Register */
  467. #define REG_LCM_CRTC_HSYNC (LCM_BA+0x1C) /*!< CRTC Horizontal Sync Control Register */
  468. #define REG_LCM_CRTC_VR (LCM_BA+0x20) /*!< CRTC Internal Vertical Retrace Control Register */
  469. #define REG_LCM_VA_BADDR0 (LCM_BA+0x24) /*!< Video Stream Frame Buffer-0 Starting Address */
  470. #define REG_LCM_VA_BADDR1 (LCM_BA+0x28) /*!< Video Stream Frame Buffer-1 Starting Address */
  471. #define REG_LCM_VA_FBCTRL (LCM_BA+0x2C) /*!< Video Stream Frame Buffer Control Register */
  472. #define REG_LCM_VA_SCALE (LCM_BA+0x30) /*!< Video Stream Scaling Control Register */
  473. #define REG_LCM_VA_WIN (LCM_BA+0x38) /*!< Image Stream Active Window Coordinates */
  474. #define REG_LCM_VA_STUFF (LCM_BA+0x3C) /*!< Image Stream Stuff Pixel */
  475. #define REG_LCM_OSD_WINS (LCM_BA+0x40) /*!< OSD Window Starting Coordinates */
  476. #define REG_LCM_OSD_WINE (LCM_BA+0x44) /*!< OSD Window Ending Coordinates */
  477. #define REG_LCM_OSD_BADDR (LCM_BA+0x48) /*!< OSD Stream Frame Buffer Starting Address */
  478. #define REG_LCM_OSD_FBCTRL (LCM_BA+0x4c) /*!< OSD Stream Frame Buffer Control Register */
  479. #define REG_LCM_OSD_OVERLAY (LCM_BA+0x50) /*!< OSD Overlay Control Register */
  480. #define REG_LCM_OSD_CKEY (LCM_BA+0x54) /*!< OSD Overlay Color-Key Pattern Register */
  481. #define REG_LCM_OSD_CMASK (LCM_BA+0x58) /*!< OSD Overlay Color-Key Mask Register */
  482. #define REG_LCM_OSD_SKIP1 (LCM_BA+0x5C) /*!< OSD Window Skip1 Register */
  483. #define REG_LCM_OSD_SKIP2 (LCM_BA+0x60) /*!< OSD Window Skip2 Register */
  484. #define REG_LCM_OSD_SCALE (LCM_BA+0x64) /*!< OSD horizontal up scaling control register */
  485. #define REG_LCM_MPU_VSYNC (LCM_BA+0x68) /*!< MPU Vsync control register */
  486. #define REG_LCM_HC_CTRL (LCM_BA+0x6C) /*!< Hardware cursor control Register */
  487. #define REG_LCM_HC_POS (LCM_BA+0x70) /*!< Hardware cursot tip point potison on va picture */
  488. #define REG_LCM_HC_WBCTRL (LCM_BA+0x74) /*!< Hardware Cursor Window Buffer Control Register */
  489. #define REG_LCM_HC_BADDR (LCM_BA+0x78) /*!< Hardware cursor memory base address register */
  490. #define REG_LCM_HC_COLOR0 (LCM_BA+0x7C) /*!< Hardware cursor color ram register mapped to bpp = 0 */
  491. #define REG_LCM_HC_COLOR1 (LCM_BA+0x80) /*!< Hardware cursor color ram register mapped to bpp = 1 */
  492. #define REG_LCM_HC_COLOR2 (LCM_BA+0x84) /*!< Hardware cursor color ram register mapped to bpp = 2 */
  493. #define REG_LCM_HC_COLOR3 (LCM_BA+0x88) /*!< Hardware cursor color ram register mapped to bpp = 3 */
  494. /**@}*/ /* end of LCM register group */
  495. /*---------------------- I2S Interface Controller -------------------------*/
  496. /**
  497. @addtogroup I2S I2S Interface Controller(I2S)
  498. Memory Mapped Structure for I2S Controller
  499. @{ */
  500. #define REG_ACTL_CON (ACTL_BA+0x00) /*!< Audio controller control register */
  501. #define REG_ACTL_RESET (ACTL_BA+0x04) /*!< Sub block reset control register */
  502. #define REG_ACTL_RDESB (ACTL_BA+0x08) /*!< DMA destination base address register for record */
  503. #define REG_ACTL_RDES_LENGTH (ACTL_BA+0x0C) /*!< DMA destination length register for record */
  504. #define REG_ACTL_RDESC (ACTL_BA+0x10) /*!< DMA destination current address for record */
  505. #define REG_ACTL_PDESB (ACTL_BA+0x14) /*!< DMA destination current address for play */
  506. #define REG_ACTL_PDES_LENGTH (ACTL_BA+0x18) /*!< DMA destination length register for play */
  507. #define REG_ACTL_PDESC (ACTL_BA+0x1C) /*!< DMA destination current address register for play */
  508. #define REG_ACTL_RSR (ACTL_BA+0x20) /*!< Record status register */
  509. #define REG_ACTL_PSR (ACTL_BA+0x24) /*!< Play status register */
  510. #define REG_ACTL_I2SCON (ACTL_BA+0x28) /*!< I2S control register */
  511. #define REG_ACTL_COUNTER (ACTL_BA+0x2C) /*!< DMA count down values */
  512. #define REG_ACTL_PCMCON (ACTL_BA+0x30) /*!< PCM interface control register */
  513. #define REG_ACTL_PCMS1ST (ACTL_BA+0x34) /*!< PCM interface slot1 start register */
  514. #define REG_ACTL_PCMS2ST (ACTL_BA+0x38) /*!< PCM interface slot2 start register */
  515. #define REG_ACTL_RDESB2 (ACTL_BA+0x40) /*!< DMA destination base address register for record right channel */
  516. #define REG_ACTL_PDESB2 (ACTL_BA+0x44) /*!< DMA destination base address register for play right channel */
  517. /**@}*/ /* end of I2S register group */
  518. /*---------------------- 2D Graphic Engine -------------------------*/
  519. /**
  520. @addtogroup GE2D 2D Graphic Engine(GE2D)
  521. Memory Mapped Structure for GE2D Controller
  522. @{ */
  523. #define REG_GE2D_TRG (GE_BA+0x00) /*!< Graphic Engine Trigger Control Register */
  524. #define REG_GE2D_XYSORG (GE_BA+0x04) /*!< Graphic Engine XY Mode Source Origin Starting Register */
  525. #define REG_GE2D_TCNTVHSF (GE_BA+0x08) /*!< Graphic Engine Tile Width/Height or V/H Scale Factor N/M */
  526. #define REG_GE2D_XYRRP (GE_BA+0x0C) /*!< Graphic Engine Rotate Reference Point XY Address */
  527. #define REG_GE2D_INTSTS (GE_BA+0x10) /*!< Graphic Engine Interrupt Status Register */
  528. #define REG_GE2D_PATSA (GE_BA+0x14) /*!< Graphic Engine Pattern Location Starting Address Register */
  529. #define REG_GE2D_BETSC (GE_BA+0x18) /*!< GE Bresenham Error Term Stepping Constant Register */
  530. #define REG_GE2D_BIEPC (GE_BA+0x1C) /*!< GE Bresenham Initial Error, Pixel Count Major M Register */
  531. #define REG_GE2D_CTL (GE_BA+0x20) /*!< Graphic Engine Control Register */
  532. #define REG_GE2D_BGCOLR (GE_BA+0x24) /*!< Graphic Engine Background Color Register */
  533. #define REG_GE2D_FGCOLR (GE_BA+0x28) /*!< Graphic Engine Foreground Color Register */
  534. #define REG_GE2D_TRNSCOLR (GE_BA+0x2C) /*!< Graphic Engine Transparency Color Register */
  535. #define REG_GE2D_TCMSK (GE_BA+0x30) /*!< Graphic Engine Transparency Color Mask Register */
  536. #define REG_GE2D_XYDORG (GE_BA+0x34) /*!< Graphic Engine XY Mode Display Origin Starting Register */
  537. #define REG_GE2D_SDPITCH (GE_BA+0x38) /*!< Graphic Engine Source/Destination Pitch Register */
  538. #define REG_GE2D_SRCSPA (GE_BA+0x3C) /*!< Graphic Engine Source Start XY/Linear Address Register */
  539. #define REG_GE2D_DSTSPA (GE_BA+0x40) /*!< Graphic Engine Destination Start XY/Linear Register */
  540. #define REG_GE2D_RTGLSZ (GE_BA+0x44) /*!< Graphic Engine Dimension XY/Linear Register */
  541. #define REG_GE2D_CLPBTL (GE_BA+0x48) /*!< Graphic Engine Clipping Boundary Top/Left Register */
  542. #define REG_GE2D_CLPBBR (GE_BA+0x4C) /*!< Graphic Engine Clipping Boundary Bottom/Right Register */
  543. #define REG_GE2D_PTNA (GE_BA+0x50) /*!< Graphic Engine Pattern A Register */
  544. #define REG_GE2D_PTNB (GE_BA+0x54) /*!< Graphic Engine Pattern B Register */
  545. #define REG_GE2D_WRPLNMSK (GE_BA+0x58) /*!< Graphic Engine Write Plane Mask Register */
  546. #define REG_GE2D_MISCTL (GE_BA+0x5C) /*!< Graphic Engine Miscellaneous Control Register */
  547. #define REG_GE2D_GEHBDW0 (GE_BA+0x60) /*!< Graphic Engine HostBLT data Port 0 Register */
  548. #define REG_GE2D_GEHBDW1 (GE_BA+0x64) /*!< Graphic Engine HostBLT data Port 1 Register */
  549. #define REG_GE2D_GEHBDW2 (GE_BA+0x68) /*!< Graphic Engine HostBLT data Port 2 Register */
  550. #define REG_GE2D_GEHBDW3 (GE_BA+0x6C) /*!< Graphic Engine HostBLT data Port 3 Register */
  551. #define REG_GE2D_GEHBDW4 (GE_BA+0x70) /*!< Graphic Engine HostBLT data Port 4 Register */
  552. #define REG_GE2D_GEHBDW5 (GE_BA+0x74) /*!< Graphic Engine HostBLT data Port 5 Register */
  553. #define REG_GE2D_GEHBDW6 (GE_BA+0x78) /*!< Graphic Engine HostBLT data Port 6 Register */
  554. #define REG_GE2D_GEHBDW7 (GE_BA+0x7C) /*!< Graphic Engine HostBLT data Port 7 Register */
  555. /**@}*/ /* end of GE2D register group */
  556. /*---------------------- Flash Memory Interface -------------------------*/
  557. /**
  558. @addtogroup FMI Flash Memory Interface(FMI)
  559. Memory Mapped Structure for FMI Controller
  560. @{ */
  561. /* DMAC Control Registers*/
  562. #define REG_FMI_BUFFER (FMI_BA+0x000) /*!< FMI Embedded Buffer Word */
  563. #define REG_FMI_DMACTL (FMI_BA+0x400) /*!< FMI DMA Control Register */
  564. #define REG_FMI_DMASA (FMI_BA+0x408) /*!< FMI DMA Transfer Starting Address Register */
  565. #define REG_FMI_DMABCNT (FMI_BA+0x40C) /*!< FMI DMA Transfer Byte Count Register */
  566. #define REG_FMI_DMAINTEN (FMI_BA+0x410) /*!< FMI DMA Interrupt Enable Register */
  567. #define REG_FMI_DMAINTSTS (FMI_BA+0x414) /*!< FMI DMA Interrupt Status Register */
  568. #define REG_FMI_CTL (FMI_BA+0x800) /*!< Global Control and Status Register */
  569. #define REG_FMI_INTEN (FMI_BA+0x804) /*!< Global Interrupt Control Register */
  570. #define REG_FMI_INTSTS (FMI_BA+0x808) /*!< Global Interrupt Status Register */
  571. /* eMMC Registers */
  572. #define REG_FMI_EMMCCTL (FMI_BA+0x820) /*!< eMMC control and status register */
  573. #define REG_FMI_EMMCCMD (FMI_BA+0x824) /*!< eMMC command argument register */
  574. #define REG_FMI_EMMCINTEN (FMI_BA+0x828) /*!< eMMC interrupt enable register */
  575. #define REG_FMI_EMMCINTSTS (FMI_BA+0x82C) /*!< eMMC interrupt status register */
  576. #define REG_FMI_EMMCRESP0 (FMI_BA+0x830) /*!< eMMC receive response token register 0 */
  577. #define REG_FMI_EMMCRESP1 (FMI_BA+0x834) /*!< eMMC receive response token register 1 */
  578. #define REG_FMI_EMMCBLEN (FMI_BA+0x838) /*!< eMMC block length register */
  579. #define REG_FMI_EMMCTOUT (FMI_BA+0x83C) /*!< eMMC block length register */
  580. /* NAND-type Flash Registers */
  581. #define REG_NANDCTL (FMI_BA+0x8A0) /*!< NAND Flash Control and Status Register */
  582. #define REG_NANDTMCTL (FMI_BA+0x8A4) /*!< NAND Flash Timing Control Register */
  583. #define REG_NANDINTEN (FMI_BA+0x8A8) /*!< NAND Flash Interrupt Control Register */
  584. #define REG_NANDINTSTS (FMI_BA+0x8AC) /*!< NAND Flash Interrupt Status Register */
  585. #define REG_NANDCMD (FMI_BA+0x8B0) /*!< NAND Flash Command Port Register */
  586. #define REG_NANDADDR (FMI_BA+0x8B4) /*!< NAND Flash Address Port Register */
  587. #define REG_NANDDATA (FMI_BA+0x8B8) /*!< NAND Flash Data Port Register */
  588. #define REG_NANDRACTL (FMI_BA+0x8BC) /*!< NAND Flash Redundant Area Control Register */
  589. #define REG_NANDECTL (FMI_BA+0x8C0) /*!< NAND Flash Extend Control Regsiter */
  590. #define REG_NANDECCES0 (FMI_BA+0x8D0) /*!< NAND Flash ECC Error Status 0 */
  591. #define REG_NANDECCES1 (FMI_BA+0x8D4) /*!< NAND Flash ECC Error Status 1 */
  592. #define REG_NANDECCES2 (FMI_BA+0x8D8) /*!< NAND Flash ECC Error Status 2 */
  593. #define REG_NANDECCES3 (FMI_BA+0x8DC) /*!< NAND Flash ECC Error Status 3 */
  594. #define REG_NANDPROTA0 (FMI_BA+0x8E0) /*!< NAND Flash Protect Region End Address 0 */
  595. #define REG_NANDPROTA1 (FMI_BA+0x8E4) /*!< NAND Flash Protect Region End Address 1 */
  596. /* NAND-type Flash BCH Error Address Registers */
  597. #define REG_NANDECCEA0 (FMI_BA+0x900) /*!< NAND Flash ECC Error Byte Address 0 */
  598. #define REG_NANDECCEA1 (FMI_BA+0x904) /*!< NAND Flash ECC Error Byte Address 1 */
  599. #define REG_NANDECCEA2 (FMI_BA+0x908) /*!< NAND Flash ECC Error Byte Address 2 */
  600. #define REG_NANDECCEA3 (FMI_BA+0x90C) /*!< NAND Flash ECC Error Byte Address 3 */
  601. #define REG_NANDECCEA4 (FMI_BA+0x910) /*!< NAND Flash ECC Error Byte Address 4 */
  602. #define REG_NANDECCEA5 (FMI_BA+0x914) /*!< NAND Flash ECC Error Byte Address 5 */
  603. #define REG_NANDECCEA6 (FMI_BA+0x918) /*!< NAND Flash ECC Error Byte Address 6 */
  604. #define REG_NANDECCEA7 (FMI_BA+0x91C) /*!< NAND Flash ECC Error Byte Address 7 */
  605. #define REG_NANDECCEA8 (FMI_BA+0x920) /*!< NAND Flash ECC Error Byte Address 8 */
  606. #define REG_NANDECCEA9 (FMI_BA+0x924) /*!< NAND Flash ECC Error Byte Address 9 */
  607. #define REG_NANDECCEA10 (FMI_BA+0x928) /*!< NAND Flash ECC Error Byte Address 10 */
  608. #define REG_NANDECCEA11 (FMI_BA+0x92C) /*!< NAND Flash ECC Error Byte Address 11 */
  609. /* NAND-type Flash BCH Error Data Registers */
  610. #define REG_NANDECCED0 (FMI_BA+0x960) /*!< NAND Flash ECC Error Data Register 0 */
  611. #define REG_NANDECCED1 (FMI_BA+0x964) /*!< NAND Flash ECC Error Data Register 1 */
  612. #define REG_NANDECCED2 (FMI_BA+0x968) /*!< NAND Flash ECC Error Data Register 2 */
  613. #define REG_NANDECCED3 (FMI_BA+0x96C) /*!< NAND Flash ECC Error Data Register 3 */
  614. #define REG_NANDECCED4 (FMI_BA+0x970) /*!< NAND Flash ECC Error Data Register 4 */
  615. #define REG_NANDECCED5 (FMI_BA+0x974) /*!< NAND Flash ECC Error Data Register 5 */
  616. /* NAND-type Flash Redundant Area Registers */
  617. #define REG_NANDRA0 (FMI_BA+0xA00) /*!< NAND Flash Redundant Area Register */
  618. #define REG_NANDRA1 (FMI_BA+0xA04) /*!< NAND Flash Redundant Area Register */
  619. /**@}*/ /* end of FMI register group */
  620. /*---------------------- SD/SDIO Host Controller -------------------------*/
  621. /**
  622. @addtogroup SDH SD/SDIO Host Controller(SDH)
  623. Memory Mapped Structure for SDH Controller
  624. @{ */
  625. /* DMAC Control Registers*/
  626. #define REG_SDH_FB0 (SDH_BA+0x000) /*!< SD Host Embedded Buffer Word */
  627. #define REG_SDH_DMACTL (SDH_BA+0x400) /*!< SD Host DMA Control and Status Register */
  628. #define REG_SDH_DMASA (SDH_BA+0x408) /*!< SD Host DMA Transfer Starting Address Register */
  629. #define REG_SDH_DMABCNT (SDH_BA+0x40C) /*!< SD Host DMA Transfer Byte Count Register */
  630. #define REG_SDH_DMAINTEN (SDH_BA+0x410) /*!< SD Host DMA Interrupt Enable Register */
  631. #define REG_SDH_DMAINTSTS (SDH_BA+0x414) /*!< SD Host DMA Interrupt Status Register */
  632. #define REG_SDH_GCTL (SDH_BA+0x800) /*!< SD Host Global Control and Status Register */
  633. #define REG_SDH_GINTEN (SDH_BA+0x804) /*!< SD Host Global Interrupt Control Register */
  634. #define REG_SDH_GINTSTS (SDH_BA+0x808) /*!< SD Host Global Interrupt Status Register */
  635. /* Secure Digit Registers */
  636. #define REG_SDH_CTL (SDH_BA+0x820) /*!< SD Host control and status register */
  637. #define REG_SDH_CMD (SDH_BA+0x824) /*!< SD Host command argument register */
  638. #define REG_SDH_INTEN (SDH_BA+0x828) /*!< SD Host interrupt enable register */
  639. #define REG_SDH_INTSTS (SDH_BA+0x82C) /*!< SD Host interrupt status register */
  640. #define REG_SDH_RESP0 (SDH_BA+0x830) /*!< SD Host receive response token register 0 */
  641. #define REG_SDH_RESP1 (SDH_BA+0x834) /*!< SD Host receive response token register 1 */
  642. #define REG_SDH_BLEN (SDH_BA+0x838) /*!< SD Host block length register */
  643. #define REG_SDH_TMOUT (SDH_BA+0x83C) /*!< SD Host Response/Data-in Time-out register */
  644. #define REG_SDH_ECTL (SDH_BA+0x840) /*!< SD Host Extend Control Register */
  645. /**@}*/ /* end of SDH register group */
  646. /*---------------------- Cryptographic Accelerator -------------------------*/
  647. /**
  648. @addtogroup CRYPTO Cryptographic Accelerator(CRYPTO)
  649. Memory Mapped Structure for Cryptographic Accelerator registers
  650. @{ */
  651. /* Crypto Control Registers */
  652. #define CRPT_INTEN (CRPT_BA+0x000) /*!< Crypto Interrupt Enable Control Register */
  653. #define CRPT_INTSTS (CRPT_BA+0x004) /*!< Crypto Interrupt Flag */
  654. /* PRNG Registers */
  655. #define CRPT_PRNG_CTL (CRPT_BA+0x008) /*!< PRNG Control Register */
  656. #define CRPT_PRNG_SEED (CRPT_BA+0x00C) /*!< Seed for PRNG */
  657. #define CRPT_PRNG_KEY0 (CRPT_BA+0x010) /*!< PRNG Generated Key 0 */
  658. #define CRPT_PRNG_KEY1 (CRPT_BA+0x014) /*!< PRNG Generated Key 1 */
  659. #define CRPT_PRNG_KEY2 (CRPT_BA+0x018) /*!< PRNG Generated Key 2 */
  660. #define CRPT_PRNG_KEY3 (CRPT_BA+0x01C) /*!< PRNG Generated Key 3 */
  661. #define CRPT_PRNG_KEY4 (CRPT_BA+0x020) /*!< PRNG Generated Key 4 */
  662. #define CRPT_PRNG_KEY5 (CRPT_BA+0x024) /*!< PRNG Generated Key 5 */
  663. #define CRPT_PRNG_KEY6 (CRPT_BA+0x028) /*!< PRNG Generated Key 6 */
  664. #define CRPT_PRNG_KEY7 (CRPT_BA+0x02C) /*!< PRNG Generated Key 7 */
  665. /* AES/TDES feedback Registers */
  666. #define CRPT_AES_FDBCK0 (CRPT_BA+0x050) /*!< AES Engine Output Feedback Data after Cryptographic Operation */
  667. #define CRPT_AES_FDBCK1 (CRPT_BA+0x054) /*!< AES Engine Output Feedback Data after Cryptographic Operation */
  668. #define CRPT_AES_FDBCK2 (CRPT_BA+0x058) /*!< AES Engine Output Feedback Data after Cryptographic Operation */
  669. #define CRPT_AES_FDBCK3 (CRPT_BA+0x05C) /*!< AES Engine Output Feedback Data after Cryptographic Operation */
  670. #define CRPT_TDES_FDBCKH (CRPT_BA+0x060) /*!< TDES/DES Engine Output Feedback High Word Data after Cryptographic Operation */
  671. #define CRPT_TDES_FDBCKL (CRPT_BA+0x064) /*!< TDES/DES Engine Output Feedback Low Word Data after Cryptographic Operation */
  672. /* AES Control Registers */
  673. #define CRPT_AES_CTL (CRPT_BA+0x100) /*!< AES Control Register */
  674. #define CRPT_AES_STS (CRPT_BA+0x104) /*!< AES Engine Flag */
  675. #define CRPT_AES_DATIN (CRPT_BA+0x108) /*!< AES Engine Data Input Port Register */
  676. #define CRPT_AES_DATOUT (CRPT_BA+0x10C) /*!< AES Engine Data Output Port Register */
  677. #define CRPT_AES0_KEY0 (CRPT_BA+0x110) /*!< AES Key Word 0 Register for Channel 0 */
  678. #define CRPT_AES0_KEY1 (CRPT_BA+0x114) /*!< AES Key Word 1 Register for Channel 0 */
  679. #define CRPT_AES0_KEY2 (CRPT_BA+0x118) /*!< AES Key Word 2 Register for Channel 0 */
  680. #define CRPT_AES0_KEY3 (CRPT_BA+0x11C) /*!< AES Key Word 3 Register for Channel 0 */
  681. #define CRPT_AES0_KEY4 (CRPT_BA+0x120) /*!< AES Key Word 4 Register for Channel 0 */
  682. #define CRPT_AES0_KEY5 (CRPT_BA+0x124) /*!< AES Key Word 5 Register for Channel 0 */
  683. #define CRPT_AES0_KEY6 (CRPT_BA+0x128) /*!< AES Key Word 6 Register for Channel 0 */
  684. #define CRPT_AES0_KEY7 (CRPT_BA+0x12C) /*!< AES Key Word 7 Register for Channel 0 */
  685. #define CRPT_AES0_IV0 (CRPT_BA+0x130) /*!< AES Initial Vector Word 0 Register for Channel 0 */
  686. #define CRPT_AES0_IV1 (CRPT_BA+0x134) /*!< AES Initial Vector Word 1 Register for Channel 0 */
  687. #define CRPT_AES0_IV2 (CRPT_BA+0x138) /*!< AES Initial Vector Word 2 Register for Channel 0 */
  688. #define CRPT_AES0_IV3 (CRPT_BA+0x13C) /*!< AES Initial Vector Word 3 Register for Channel 0 */
  689. #define CRPT_AES0_SADDR (CRPT_BA+0x140) /*!< AES DMA Source Address Register for Channel 0 */
  690. #define CRPT_AES0_DADDR (CRPT_BA+0x144) /*!< AES DMA Destination Address Register for Channel 0 */
  691. #define CRPT_AES0_CNT (CRPT_BA+0x148) /*!< AES Byte Count Register for Channel 0 */
  692. #define CRPT_AES1_KEY0 (CRPT_BA+0x14C) /*!< AES Key Word 0 Register for Channel 1 */
  693. #define CRPT_AES1_KEY1 (CRPT_BA+0x150) /*!< AES Key Word 1 Register for Channel 1 */
  694. #define CRPT_AES1_KEY2 (CRPT_BA+0x154) /*!< AES Key Word 2 Register for Channel 1 */
  695. #define CRPT_AES1_KEY3 (CRPT_BA+0x158) /*!< AES Key Word 3 Register for Channel 1 */
  696. #define CRPT_AES1_KEY4 (CRPT_BA+0x15C) /*!< AES Key Word 4 Register for Channel 1 */
  697. #define CRPT_AES1_KEY5 (CRPT_BA+0x160) /*!< AES Key Word 5 Register for Channel 1 */
  698. #define CRPT_AES1_KEY6 (CRPT_BA+0x164) /*!< AES Key Word 6 Register for Channel 1 */
  699. #define CRPT_AES1_KEY7 (CRPT_BA+0x168) /*!< AES Key Word 7 Register for Channel 1 */
  700. #define CRPT_AES1_IV0 (CRPT_BA+0x16C) /*!< AES Initial Vector Word 0 Register for Channel 1 */
  701. #define CRPT_AES1_IV1 (CRPT_BA+0x170) /*!< AES Initial Vector Word 1 Register for Channel 1 */
  702. #define CRPT_AES1_IV2 (CRPT_BA+0x174) /*!< AES Initial Vector Word 2 Register for Channel 1 */
  703. #define CRPT_AES1_IV3 (CRPT_BA+0x178) /*!< AES Initial Vector Word 3 Register for Channel 1 */
  704. #define CRPT_AES1_SADDR (CRPT_BA+0x17C) /*!< AES DMA Source Address Register for Channel 1 */
  705. #define CRPT_AES1_DADDR (CRPT_BA+0x180) /*!< AES DMA Destination Address Register for Channel 1 */
  706. #define CRPT_AES1_CNT (CRPT_BA+0x184) /*!< AES Byte Count Register for Channel 1 */
  707. #define CRPT_AES2_KEY0 (CRPT_BA+0x188) /*!< AES Key Word 0 Register for Channel 2 */
  708. #define CRPT_AES2_KEY1 (CRPT_BA+0x18C) /*!< AES Key Word 1 Register for Channel 2 */
  709. #define CRPT_AES2_KEY2 (CRPT_BA+0x190) /*!< AES Key Word 2 Register for Channel 2 */
  710. #define CRPT_AES2_KEY3 (CRPT_BA+0x194) /*!< AES Key Word 3 Register for Channel 2 */
  711. #define CRPT_AES2_KEY4 (CRPT_BA+0x198) /*!< AES Key Word 4 Register for Channel 2 */
  712. #define CRPT_AES2_KEY5 (CRPT_BA+0x19C) /*!< AES Key Word 5 Register for Channel 2 */
  713. #define CRPT_AES2_KEY6 (CRPT_BA+0x1A0) /*!< AES Key Word 6 Register for Channel 2 */
  714. #define CRPT_AES2_KEY7 (CRPT_BA+0x1A4) /*!< AES Key Word 7 Register for Channel 2 */
  715. #define CRPT_AES2_IV0 (CRPT_BA+0x1A8) /*!< AES Initial Vector Word 0 Register for Channel 2 */
  716. #define CRPT_AES2_IV1 (CRPT_BA+0x1AC) /*!< AES Initial Vector Word 1 Register for Channel 2 */
  717. #define CRPT_AES2_IV2 (CRPT_BA+0x1B0) /*!< AES Initial Vector Word 2 Register for Channel 2 */
  718. #define CRPT_AES2_IV3 (CRPT_BA+0x1B4) /*!< AES Initial Vector Word 3 Register for Channel 2 */
  719. #define CRPT_AES2_SADDR (CRPT_BA+0x1B8) /*!< AES DMA Source Address Register for Channel 2 */
  720. #define CRPT_AES2_DADDR (CRPT_BA+0x1BC) /*!< AES DMA Destination Address Register for Channel 2 */
  721. #define CRPT_AES2_CNT (CRPT_BA+0x1C0) /*!< AES Byte Count Register for Channel 2 */
  722. #define CRPT_AES3_KEY0 (CRPT_BA+0x1C4) /*!< AES Key Word 0 Register for Channel 3 */
  723. #define CRPT_AES3_KEY1 (CRPT_BA+0x1C8) /*!< AES Key Word 1 Register for Channel 3 */
  724. #define CRPT_AES3_KEY2 (CRPT_BA+0x1CC) /*!< AES Key Word 2 Register for Channel 3 */
  725. #define CRPT_AES3_KEY3 (CRPT_BA+0x1D0) /*!< AES Key Word 3 Register for Channel 3 */
  726. #define CRPT_AES3_KEY4 (CRPT_BA+0x1D4) /*!< AES Key Word 4 Register for Channel 3 */
  727. #define CRPT_AES3_KEY5 (CRPT_BA+0x1D8) /*!< AES Key Word 5 Register for Channel 3 */
  728. #define CRPT_AES3_KEY6 (CRPT_BA+0x1DC) /*!< AES Key Word 6 Register for Channel 3 */
  729. #define CRPT_AES3_KEY7 (CRPT_BA+0x1E0) /*!< AES Key Word 7 Register for Channel 3 */
  730. #define CRPT_AES3_IV0 (CRPT_BA+0x1E4) /*!< AES Initial Vector Word 0 Register for Channel 3 */
  731. #define CRPT_AES3_IV1 (CRPT_BA+0x1E8) /*!< AES Initial Vector Word 1 Register for Channel 3 */
  732. #define CRPT_AES3_IV2 (CRPT_BA+0x1EC) /*!< AES Initial Vector Word 2 Register for Channel 3 */
  733. #define CRPT_AES3_IV3 (CRPT_BA+0x1F0) /*!< AES Initial Vector Word 3 Register for Channel 3 */
  734. #define CRPT_AES3_SADDR (CRPT_BA+0x1F4) /*!< AES DMA Source Address Register for Channel 3 */
  735. #define CRPT_AES3_DADDR (CRPT_BA+0x1F8) /*!< AES DMA Destination Address Register for Channel 3 */
  736. #define CRPT_AES3_CNT (CRPT_BA+0x1FC) /*!< AES Byte Count Register for Channel 3 */
  737. /* DES/TDES Control Registers */
  738. #define CRPT_TDES_CTL (CRPT_BA+0x200) /*!< TDES/DES Control Register */
  739. #define CRPT_TDES_STS (CRPT_BA+0x204) /*!< TDES/DES Engine Flag */
  740. #define CRPT_TDES0_KEY1H (CRPT_BA+0x208) /*!< TDES/DES Key 1 High Word Register for Channel 0 */
  741. #define CRPT_TDES0_KEY1L (CRPT_BA+0x20C) /*!< TDES/DES Key 1 Low Word Register for Channel 0 */
  742. #define CRPT_TDES0_KEY2H (CRPT_BA+0x210) /*!< TDES/DES Key 2 High Word Register for Channel 0 */
  743. #define CRPT_TDES0_KEY2L (CRPT_BA+0x214) /*!< TDES/DES Key 2 Low Word Register for Channel 0 */
  744. #define CRPT_TDES0_KEY3H (CRPT_BA+0x218) /*!< TDES/DES Key 3 High Word Register for Channel 0 */
  745. #define CRPT_TDES0_KEY3L (CRPT_BA+0x21C) /*!< TDES/DES Key 3 Low Word Register for Channel 0 */
  746. #define CRPT_TDES0_IVH (CRPT_BA+0x220) /*!< TDES/DES Initial Vector High Word Register for Channel 0 */
  747. #define CRPT_TDES0_IVL (CRPT_BA+0x224) /*!< TDES/DES Initial Vector Low Word Register for Channel 0 */
  748. #define CRPT_TDES0_SADDR (CRPT_BA+0x228) /*!< TDES/DES DMA Source Address Register for Channel 0 */
  749. #define CRPT_TDES0_DADDR (CRPT_BA+0x22C) /*!< TDES/DES DMA Destination Address Register for Channel 0 */
  750. #define CRPT_TDES0_CNT (CRPT_BA+0x230) /*!< TDES/DES Byte Count Register for Channel 0 */
  751. #define CRPT_TDES_DATIN (CRPT_BA+0x234) /*!< TDES/DES Engine Input data Word Register */
  752. #define CRPT_TDES_DATOUT (CRPT_BA+0x238) /*!< TDES/DES Engine Output data Word Register */
  753. #define CRPT_TDES1_KEY1H (CRPT_BA+0x248) /*!< TDES/DES Key 1 High Word Register for Channel 1 */
  754. #define CRPT_TDES1_KEY1L (CRPT_BA+0x24C) /*!< TDES/DES Key 1 Low Word Register for Channel 1 */
  755. #define CRPT_TDES1_KEY2H (CRPT_BA+0x250) /*!< TDES/DES Key 2 High Word Register for Channel 1 */
  756. #define CRPT_TDES1_KEY2L (CRPT_BA+0x254) /*!< TDES/DES Key 2 Low Word Register for Channel 1 */
  757. #define CRPT_TDES1_KEY3H (CRPT_BA+0x258) /*!< TDES/DES Key 3 High Word Register for Channel 1 */
  758. #define CRPT_TDES1_KEY3L (CRPT_BA+0x25C) /*!< TDES/DES Key 3 Low Word Register for Channel 1 */
  759. #define CRPT_TDES1_IVH (CRPT_BA+0x260) /*!< TDES/DES Initial Vector High Word Register for Channel 1 */
  760. #define CRPT_TDES1_IVL (CRPT_BA+0x264) /*!< TDES/DES Initial Vector Low Word Register for Channel 1 */
  761. #define CRPT_TDES1_SADDR (CRPT_BA+0x268) /*!< TDES/DES DMA Source Address Register for Channel 1 */
  762. #define CRPT_TDES1_DADDR (CRPT_BA+0x26C) /*!< TDES/DES DMA Destination Address Register for Channel 1 */
  763. #define CRPT_TDES1_CNT (CRPT_BA+0x270) /*!< TDES/DES Byte Count Register for Channel 1 */
  764. #define CRPT_TDES2_KEY1H (CRPT_BA+0x288) /*!< TDES/DES Key 1 High Word Register for Channel 2 */
  765. #define CRPT_TDES2_KEY1L (CRPT_BA+0x28C) /*!< TDES/DES Key 1 Low Word Register for Channel 2 */
  766. #define CRPT_TDES2_KEY2H (CRPT_BA+0x290) /*!< TDES/DES Key 2 High Word Register for Channel 2 */
  767. #define CRPT_TDES2_KEY2L (CRPT_BA+0x294) /*!< TDES/DES Key 2 Low Word Register for Channel 2 */
  768. #define CRPT_TDES2_KEY3H (CRPT_BA+0x298) /*!< TDES/DES Key 3 High Word Register for Channel 2 */
  769. #define CRPT_TDES2_KEY3L (CRPT_BA+0x29C) /*!< TDES/DES Key 3 Low Word Register for Channel 2 */
  770. #define CRPT_TDES2_IVH (CRPT_BA+0x2A0) /*!< TDES/DES Initial Vector High Word Register for Channel 2 */
  771. #define CRPT_TDES2_IVL (CRPT_BA+0x2A4) /*!< TDES/DES Initial Vector Low Word Register for Channel 2 */
  772. #define CRPT_TDES2_SADDR (CRPT_BA+0x2A8) /*!< TDES/DES DMA Source Address Register for Channel 2 */
  773. #define CRPT_TDES2_DADDR (CRPT_BA+0x2AC) /*!< TDES/DES DMA Destination Address Register for Channel 2 */
  774. #define CRPT_TDES2_CNT (CRPT_BA+0x2B0) /*!< TDES/DES Byte Count Register for Channel 3 */
  775. #define CRPT_TDES3_KEY1H (CRPT_BA+0x2C8) /*!< TDES/DES Key 1 High Word Register for Channel 3 */
  776. #define CRPT_TDES3_KEY1L (CRPT_BA+0x2CC) /*!< TDES/DES Key 1 Low Word Register for Channel 3 */
  777. #define CRPT_TDES3_KEY2H (CRPT_BA+0x2D0) /*!< TDES/DES Key 2 High Word Register for Channel 3 */
  778. #define CRPT_TDES3_KEY2L (CRPT_BA+0x2D4) /*!< TDES/DES Key 2 Low Word Register for Channel 3 */
  779. #define CRPT_TDES3_KEY3H (CRPT_BA+0x2D8) /*!< TDES/DES Key 3 High Word Register for Channel 3 */
  780. #define CRPT_TDES3_KEY3L (CRPT_BA+0x2DC) /*!< TDES/DES Key 3 Low Word Register for Channel 3 */
  781. #define CRPT_TDES3_IVH (CRPT_BA+0x2E0) /*!< TDES/DES Initial Vector High Word Register for Channel 3 */
  782. #define CRPT_TDES3_IVL (CRPT_BA+0x2E4) /*!< TDES/DES Initial Vector Low Word Register for Channel 3 */
  783. #define CRPT_TDES3_SADDR (CRPT_BA+0x2E8) /*!< TDES/DES DMA Source Address Register for Channel 3 */
  784. #define CRPT_TDES3_DADDR (CRPT_BA+0x2EC) /*!< TDES/DES DMA Destination Address Register for Channel 3 */
  785. #define CRPT_TDES3_CNT (CRPT_BA+0x2F0) /*!< TDES/DES Byte Count Register for Channel 3 */
  786. /* SHA/HMAC Control Registers */
  787. #define CRPT_HMAC_CTL (CRPT_BA+0x300) /*!< SHA/HMAC Control Register */
  788. #define CRPT_HMAC_STS (CRPT_BA+0x304) /*!< SHA/HMAC Status Flag */
  789. #define CRPT_HMAC_DGST0 (CRPT_BA+0x308) /*!< SHA/HMAC Digest Message 0 */
  790. #define CRPT_HMAC_DGST1 (CRPT_BA+0x30C) /*!< SHA/HMAC Digest Message 1 */
  791. #define CRPT_HMAC_DGST2 (CRPT_BA+0x310) /*!< SHA/HMAC Digest Message 2 */
  792. #define CRPT_HMAC_DGST3 (CRPT_BA+0x314) /*!< SHA/HMAC Digest Message 3 */
  793. #define CRPT_HMAC_DGST4 (CRPT_BA+0x318) /*!< SHA/HMAC Digest Message 4 */
  794. #define CRPT_HMAC_DGST5 (CRPT_BA+0x31C) /*!< SHA/HMAC Digest Message 5 */
  795. #define CRPT_HMAC_DGST6 (CRPT_BA+0x320) /*!< SHA/HMAC Digest Message 6 */
  796. #define CRPT_HMAC_DGST7 (CRPT_BA+0x324) /*!< SHA/HMAC Digest Message 7 */
  797. #define CRPT_HMAC_DGST8 (CRPT_BA+0x328) /*!< SHA/HMAC Digest Message 8 */
  798. #define CRPT_HMAC_DGST9 (CRPT_BA+0x32C) /*!< SHA/HMAC Digest Message 8 */
  799. #define CRPT_HMAC_DGST10 (CRPT_BA+0x330) /*!< SHA/HMAC Digest Message 10 */
  800. #define CRPT_HMAC_DGST11 (CRPT_BA+0x334) /*!< SHA/HMAC Digest Message 11 */
  801. #define CRPT_HMAC_DGST12 (CRPT_BA+0x338) /*!< SHA/HMAC Digest Message 12 */
  802. #define CRPT_HMAC_DGST13 (CRPT_BA+0x33C) /*!< SHA/HMAC Digest Message 13 */
  803. #define CRPT_HMAC_DGST14 (CRPT_BA+0x340) /*!< SHA/HMAC Digest Message 14 */
  804. #define CRPT_HMAC_DGST15 (CRPT_BA+0x344) /*!< SHA/HMAC Digest Message 15 */
  805. #define CRPT_HMAC_KEYCNT (CRPT_BA+0x348) /*!< SHA/HMAC Key Byte Count */
  806. #define CRPT_HMAC_SADDR (CRPT_BA+0x34C) /*!< SHA/HMAC Key Byte Count */
  807. #define CRPT_HMAC_DMACNT (CRPT_BA+0x350) /*!< SHA/HMAC Byte Count Register */
  808. #define CRPT_HMAC_DATIN (CRPT_BA+0x354) /*!< SHA/HMAC Engine Non-DMA Mode Data Input Port Register */
  809. /**@}*/ /* end of Cryptographic Accelerator register group */
  810. /*---------------------- Universal Asynchronous Receiver/Transmitter Controller -------------------------*/
  811. /**
  812. @addtogroup UART Universal Asynchronous Receiver/Transmitter Controller(UART)
  813. Memory Mapped Structure for UART Controller
  814. @{ */
  815. #define REG_UART0_RBR (UART0_BA+0x00) /*!< Receive Buffer Register */
  816. #define REG_UART0_THR (UART0_BA+0x00) /*!< Transmit Holding Register */
  817. #define REG_UART0_IER (UART0_BA+0x04) /*!< Interrupt Enable Register */
  818. #define REG_UART0_FCR (UART0_BA+0x08) /*!< FIFO Control Register */
  819. #define REG_UART0_LCR (UART0_BA+0x0C) /*!< Line Control Register */
  820. #define REG_UART0_MCR (UART0_BA+0x10) /*!< Modem Control Register */
  821. #define REG_UART0_MSR (UART0_BA+0x14) /*!< MODEM Status Register */
  822. #define REG_UART0_FSR (UART0_BA+0x18) /*!< FIFO Status Register */
  823. #define REG_UART0_ISR (UART0_BA+0x1C) /*!< Interrupt Status Control Register */
  824. #define REG_UART0_TOR (UART0_BA+0x20) /*!< Time-out Register */
  825. #define REG_UART0_BAUD (UART0_BA+0x24) /*!< Baud Rate Divider Register */
  826. #define REG_UART0_IRCR (UART0_BA+0x28) /*!< IrDA Control Register */
  827. #define REG_UART0_ALT_CSR (UART0_BA+0x2C) /*!< Alternate Control Register */
  828. #define REG_UART0_FUN_SEL (UART0_BA+0x30) /*!< UART Function Select REgister */
  829. #define REG_UART0_LIN_CTL (UART0_BA+0x34) /*!< UART LIN Control Register */
  830. #define REG_UART0_LIN_SR (UART0_BA+0x38) /*!< LIN Status Register */
  831. /*
  832. UART1 Control Registers
  833. */
  834. #define REG_UART1_RBR (UART1_BA+0x00) /*!< Receive Buffer Register */
  835. #define REG_UART1_THR (UART1_BA+0x00) /*!< Transmit Holding Register */
  836. #define REG_UART1_IER (UART1_BA+0x04) /*!< Interrupt Enable Register */
  837. #define REG_UART1_FCR (UART1_BA+0x08) /*!< FIFO Control Register */
  838. #define REG_UART1_LCR (UART1_BA+0x0C) /*!< Line Control Register */
  839. #define REG_UART1_MCR (UART1_BA+0x10) /*!< Modem Control Register */
  840. #define REG_UART1_MSR (UART1_BA+0x14) /*!< MODEM Status Register */
  841. #define REG_UART1_FSR (UART1_BA+0x18) /*!< FIFO Status Register */
  842. #define REG_UART1_ISR (UART1_BA+0x1C) /*!< Interrupt Status Control Register */
  843. #define REG_UART1_TOR (UART1_BA+0x20) /*!< Time-out Register */
  844. #define REG_UART1_BAUD (UART1_BA+0x24) /*!< Baud Rate Divider Register */
  845. #define REG_UART1_IRCR (UART1_BA+0x28) /*!< IrDA Control Register */
  846. #define REG_UART1_ALT_CSR (UART1_BA+0x2C) /*!< Alternate Control Register */
  847. #define REG_UART1_FUN_SEL (UART1_BA+0x30) /*!< UART Function Select REgister */
  848. #define REG_UART1_LIN_CTL (UART1_BA+0x34) /*!< UART LIN Control Register */
  849. #define REG_UART1_LIN_SR (UART1_BA+0x38) /*!< LIN Status Register */
  850. /*
  851. UART2 Control Registers
  852. */
  853. #define REG_UART2_RBR (UART2_BA+0x00) /*!< Receive Buffer Register */
  854. #define REG_UART2_THR (UART2_BA+0x00) /*!< Transmit Holding Register */
  855. #define REG_UART2_IER (UART2_BA+0x04) /*!< Interrupt Enable Register */
  856. #define REG_UART2_FCR (UART2_BA+0x08) /*!< FIFO Control Register */
  857. #define REG_UART2_LCR (UART2_BA+0x0C) /*!< Line Control Register */
  858. #define REG_UART2_MCR (UART2_BA+0x10) /*!< Modem Control Register */
  859. #define REG_UART2_MSR (UART2_BA+0x14) /*!< MODEM Status Register */
  860. #define REG_UART2_FSR (UART2_BA+0x18) /*!< FIFO Status Register */
  861. #define REG_UART2_ISR (UART2_BA+0x1C) /*!< Interrupt Status Control Register */
  862. #define REG_UART2_TOR (UART2_BA+0x20) /*!< Time-out Register */
  863. #define REG_UART2_BAUD (UART2_BA+0x24) /*!< Baud Rate Divider Register */
  864. #define REG_UART2_IRCR (UART2_BA+0x28) /*!< IrDA Control Register */
  865. #define REG_UART2_ALT_CSR (UART2_BA+0x2C) /*!< Alternate Control Register */
  866. #define REG_UART2_FUN_SEL (UART2_BA+0x30) /*!< UART Function Select REgister */
  867. #define REG_UART2_LIN_CTL (UART2_BA+0x34) /*!< UART LIN Control Register */
  868. #define REG_UART2_LIN_SR (UART2_BA+0x38) /*!< LIN Status Register */
  869. /*
  870. UART3 Control Registers
  871. */
  872. #define REG_UART3_RBR (UART3_BA+0x00) /*!< Receive Buffer Register */
  873. #define REG_UART3_THR (UART3_BA+0x00) /*!< Transmit Holding Register */
  874. #define REG_UART3_IER (UART3_BA+0x04) /*!< Interrupt Enable Register */
  875. #define REG_UART3_FCR (UART3_BA+0x08) /*!< FIFO Control Register */
  876. #define REG_UART3_LCR (UART3_BA+0x0C) /*!< Line Control Register */
  877. #define REG_UART3_MCR (UART3_BA+0x10) /*!< Modem Control Register */
  878. #define REG_UART3_MSR (UART3_BA+0x14) /*!< MODEM Status Register */
  879. #define REG_UART3_FSR (UART3_BA+0x18) /*!< FIFO Status Register */
  880. #define REG_UART3_ISR (UART3_BA+0x1C) /*!< Interrupt Status Control Register */
  881. #define REG_UART3_TOR (UART3_BA+0x20) /*!< Time-out Register */
  882. #define REG_UART3_BAUD (UART3_BA+0x24) /*!< Baud Rate Divider Register */
  883. #define REG_UART3_IRCR (UART3_BA+0x28) /*!< IrDA Control Register */
  884. #define REG_UART3_ALT_CSR (UART3_BA+0x2C) /*!< Alternate Control Register */
  885. #define REG_UART3_FUN_SEL (UART3_BA+0x30) /*!< UART Function Select REgister */
  886. #define REG_UART3_LIN_CTL (UART3_BA+0x34) /*!< UART LIN Control Register */
  887. #define REG_UART3_LIN_SR (UART3_BA+0x38) /*!< LIN Status Register */
  888. /*
  889. UART4 Control Registers
  890. */
  891. #define REG_UART4_RBR (UART4_BA+0x00) /*!< Receive Buffer Register */
  892. #define REG_UART4_THR (UART4_BA+0x00) /*!< Transmit Holding Register */
  893. #define REG_UART4_IER (UART4_BA+0x04) /*!< Interrupt Enable Register */
  894. #define REG_UART4_FCR (UART4_BA+0x08) /*!< FIFO Control Register */
  895. #define REG_UART4_LCR (UART4_BA+0x0C) /*!< Line Control Register */
  896. #define REG_UART4_MCR (UART4_BA+0x10) /*!< Modem Control Register */
  897. #define REG_UART4_MSR (UART4_BA+0x14) /*!< MODEM Status Register */
  898. #define REG_UART4_FSR (UART4_BA+0x18) /*!< FIFO Status Register */
  899. #define REG_UART4_ISR (UART4_BA+0x1C) /*!< Interrupt Status Control Register */
  900. #define REG_UART4_TOR (UART4_BA+0x20) /*!< Time-out Register */
  901. #define REG_UART4_BAUD (UART4_BA+0x24) /*!< Baud Rate Divider Register */
  902. #define REG_UART4_IRCR (UART4_BA+0x28) /*!< IrDA Control Register */
  903. #define REG_UART4_ALT_CSR (UART4_BA+0x2C) /*!< Alternate Control Register */
  904. #define REG_UART4_FUN_SEL (UART4_BA+0x30) /*!< UART Function Select REgister */
  905. #define REG_UART4_LIN_CTL (UART4_BA+0x34) /*!< UART LIN Control Register */
  906. #define REG_UART4_LIN_SR (UART4_BA+0x38) /*!< LIN Status Register */
  907. /*
  908. UART5 Control Registers
  909. */
  910. #define REG_UART5_RBR (UART5_BA+0x00) /*!< Receive Buffer Register */
  911. #define REG_UART5_THR (UART5_BA+0x00) /*!< Transmit Holding Register */
  912. #define REG_UART5_IER (UART5_BA+0x04) /*!< Interrupt Enable Register */
  913. #define REG_UART5_FCR (UART5_BA+0x08) /*!< FIFO Control Register */
  914. #define REG_UART5_LCR (UART5_BA+0x0C) /*!< Line Control Register */
  915. #define REG_UART5_MCR (UART5_BA+0x10) /*!< Modem Control Register */
  916. #define REG_UART5_MSR (UART5_BA+0x14) /*!< MODEM Status Register */
  917. #define REG_UART5_FSR (UART5_BA+0x18) /*!< FIFO Status Register */
  918. #define REG_UART5_ISR (UART5_BA+0x1C) /*!< Interrupt Status Control Register */
  919. #define REG_UART5_TOR (UART5_BA+0x20) /*!< Time-out Register */
  920. #define REG_UART5_BAUD (UART5_BA+0x24) /*!< Baud Rate Divider Register */
  921. #define REG_UART5_IRCR (UART5_BA+0x28) /*!< IrDA Control Register */
  922. #define REG_UART5_ALT_CSR (UART5_BA+0x2C) /*!< Alternate Control Register */
  923. #define REG_UART5_FUN_SEL (UART5_BA+0x30) /*!< UART Function Select REgister */
  924. #define REG_UART5_LIN_CTL (UART5_BA+0x34) /*!< UART LIN Control Register */
  925. #define REG_UART5_LIN_SR (UART5_BA+0x38) /*!< LIN Status Register */
  926. /*
  927. UART6 Control Registers
  928. */
  929. #define REG_UART6_RBR (UART6_BA+0x00) /*!< Receive Buffer Register */
  930. #define REG_UART6_THR (UART6_BA+0x00) /*!< Transmit Holding Register */
  931. #define REG_UART6_IER (UART6_BA+0x04) /*!< Interrupt Enable Register */
  932. #define REG_UART6_FCR (UART6_BA+0x08) /*!< FIFO Control Register */
  933. #define REG_UART6_LCR (UART6_BA+0x0C) /*!< Line Control Register */
  934. #define REG_UART6_MCR (UART6_BA+0x10) /*!< Modem Control Register */
  935. #define REG_UART6_MSR (UART6_BA+0x14) /*!< MODEM Status Register */
  936. #define REG_UART6_FSR (UART6_BA+0x18) /*!< FIFO Status Register */
  937. #define REG_UART6_ISR (UART6_BA+0x1C) /*!< Interrupt Status Control Register */
  938. #define REG_UART6_TOR (UART6_BA+0x20) /*!< Time-out Register */
  939. #define REG_UART6_BAUD (UART6_BA+0x24) /*!< Baud Rate Divider Register */
  940. #define REG_UART6_IRCR (UART6_BA+0x28) /*!< IrDA Control Register */
  941. #define REG_UART6_ALT_CSR (UART6_BA+0x2C) /*!< Alternate Control Register */
  942. #define REG_UART6_FUN_SEL (UART6_BA+0x30) /*!< UART Function Select REgister */
  943. #define REG_UART6_LIN_CTL (UART6_BA+0x34) /*!< UART LIN Control Register */
  944. #define REG_UART6_LIN_SR (UART6_BA+0x38) /*!< LIN Status Register */
  945. /*
  946. UART7 Control Registers
  947. */
  948. #define REG_UART7_RBR (UART7_BA+0x00) /*!< Receive Buffer Register */
  949. #define REG_UART7_THR (UART7_BA+0x00) /*!< Transmit Holding Register */
  950. #define REG_UART7_IER (UART7_BA+0x04) /*!< Interrupt Enable Register */
  951. #define REG_UART7_FCR (UART7_BA+0x08) /*!< FIFO Control Register */
  952. #define REG_UART7_LCR (UART7_BA+0x0C) /*!< Line Control Register */
  953. #define REG_UART7_MCR (UART7_BA+0x10) /*!< Modem Control Register */
  954. #define REG_UART7_MSR (UART7_BA+0x14) /*!< MODEM Status Register */
  955. #define REG_UART7_FSR (UART7_BA+0x18) /*!< FIFO Status Register */
  956. #define REG_UART7_ISR (UART7_BA+0x1C) /*!< Interrupt Status Control Register */
  957. #define REG_UART7_TOR (UART7_BA+0x20) /*!< Time-out Register */
  958. #define REG_UART7_BAUD (UART7_BA+0x24) /*!< Baud Rate Divider Register */
  959. #define REG_UART7_IRCR (UART7_BA+0x28) /*!< IrDA Control Register */
  960. #define REG_UART7_ALT_CSR (UART7_BA+0x2C) /*!< Alternate Control Register */
  961. #define REG_UART7_FUN_SEL (UART7_BA+0x30) /*!< UART Function Select REgister */
  962. #define REG_UART7_LIN_CTL (UART7_BA+0x34) /*!< UART LIN Control Register */
  963. #define REG_UART7_LIN_SR (UART7_BA+0x38) /*!< LIN Status Register */
  964. /*
  965. UART8 Control Registers
  966. */
  967. #define REG_UART8_RBR (UART8_BA+0x00) /*!< Receive Buffer Register */
  968. #define REG_UART8_THR (UART8_BA+0x00) /*!< Transmit Holding Register */
  969. #define REG_UART8_IER (UART8_BA+0x04) /*!< Interrupt Enable Register */
  970. #define REG_UART8_FCR (UART8_BA+0x08) /*!< FIFO Control Register */
  971. #define REG_UART8_LCR (UART8_BA+0x0C) /*!< Line Control Register */
  972. #define REG_UART8_MCR (UART8_BA+0x10) /*!< Modem Control Register */
  973. #define REG_UART8_MSR (UART8_BA+0x14) /*!< MODEM Status Register */
  974. #define REG_UART8_FSR (UART8_BA+0x18) /*!< FIFO Status Register */
  975. #define REG_UART8_ISR (UART8_BA+0x1C) /*!< Interrupt Status Control Register */
  976. #define REG_UART8_TOR (UART8_BA+0x20) /*!< Time-out Register */
  977. #define REG_UART8_BAUD (UART8_BA+0x24) /*!< Baud Rate Divider Register */
  978. #define REG_UART8_IRCR (UART8_BA+0x28) /*!< IrDA Control Register */
  979. #define REG_UART8_ALT_CSR (UART8_BA+0x2C) /*!< Alternate Control Register */
  980. #define REG_UART8_FUN_SEL (UART8_BA+0x30) /*!< UART Function Select REgister */
  981. #define REG_UART8_LIN_CTL (UART8_BA+0x34) /*!< UART LIN Control Register */
  982. #define REG_UART8_LIN_SR (UART8_BA+0x38) /*!< LIN Status Register */
  983. /*
  984. UART9 Control Registers
  985. */
  986. #define REG_UART9_RBR (UART9_BA+0x00) /*!< Receive Buffer Register */
  987. #define REG_UART9_THR (UART9_BA+0x00) /*!< Transmit Holding Register */
  988. #define REG_UART9_IER (UART9_BA+0x04) /*!< Interrupt Enable Register */
  989. #define REG_UART9_FCR (UART9_BA+0x08) /*!< FIFO Control Register */
  990. #define REG_UART9_LCR (UART9_BA+0x0C) /*!< Line Control Register */
  991. #define REG_UART9_MCR (UART9_BA+0x10) /*!< Modem Control Register */
  992. #define REG_UART9_MSR (UART9_BA+0x14) /*!< MODEM Status Register */
  993. #define REG_UART9_FSR (UART9_BA+0x18) /*!< FIFO Status Register */
  994. #define REG_UART9_ISR (UART9_BA+0x1C) /*!< Interrupt Status Control Register */
  995. #define REG_UART9_TOR (UART9_BA+0x20) /*!< Time-out Register */
  996. #define REG_UART9_BAUD (UART9_BA+0x24) /*!< Baud Rate Divider Register */
  997. #define REG_UART9_IRCR (UART9_BA+0x28) /*!< IrDA Control Register */
  998. #define REG_UART9_ALT_CSR (UART9_BA+0x2C) /*!< Alternate Control Register */
  999. #define REG_UART9_FUN_SEL (UART9_BA+0x30) /*!< UART Function Select REgister */
  1000. #define REG_UART9_LIN_CTL (UART9_BA+0x34) /*!< UART LIN Control Register */
  1001. #define REG_UART9_LIN_SR (UART9_BA+0x38) /*!< LIN Status Register */
  1002. /*
  1003. UARTA Control Registers
  1004. */
  1005. #define REG_UARTA_RBR (UARTA_BA+0x00) /*!< Receive Buffer Register */
  1006. #define REG_UARTA_THR (UARTA_BA+0x00) /*!< Transmit Holding Register */
  1007. #define REG_UARTA_IER (UARTA_BA+0x04) /*!< Interrupt Enable Register */
  1008. #define REG_UARTA_FCR (UARTA_BA+0x08) /*!< FIFO Control Register */
  1009. #define REG_UARTA_LCR (UARTA_BA+0x0C) /*!< Line Control Register */
  1010. #define REG_UARTA_MCR (UARTA_BA+0x10) /*!< Modem Control Register */
  1011. #define REG_UARTA_MSR (UARTA_BA+0x14) /*!< MODEM Status Register */
  1012. #define REG_UARTA_FSR (UARTA_BA+0x18) /*!< FIFO Status Register */
  1013. #define REG_UARTA_ISR (UARTA_BA+0x1C) /*!< Interrupt Status Control Register */
  1014. #define REG_UARTA_TOR (UARTA_BA+0x20) /*!< Time-out Register */
  1015. #define REG_UARTA_BAUD (UARTA_BA+0x24) /*!< Baud Rate Divider Register */
  1016. #define REG_UARTA_IRCR (UARTA_BA+0x28) /*!< IrDA Control Register */
  1017. #define REG_UARTA_ALT_CSR (UARTA_BA+0x2C) /*!< Alternate Control Register */
  1018. #define REG_UARTA_FUN_SEL (UARTA_BA+0x30) /*!< UART Function Select REgister */
  1019. #define REG_UARTA_LIN_CTL (UARTA_BA+0x34) /*!< UART LIN Control Register */
  1020. #define REG_UARTA_LIN_SR (UARTA_BA+0x38) /*!< LIN Status Register */
  1021. /**@}*/ /* end of UART register group */
  1022. /*---------------------- Timer Controller -------------------------*/
  1023. /**
  1024. @addtogroup TIMER Timer Controller(TIMER)
  1025. Memory Mapped Structure for TIMER Controller
  1026. @{ */
  1027. #define REG_TMR0_CSR (TMR0_BA+0x00) /*!< Timer Control and Status Register 0 */
  1028. #define REG_TMR0_CMPR (TMR0_BA+0x04) /*!< Timer Compare Register 0 */
  1029. #define REG_TMR0_DR (TMR0_BA+0x08) /*!< Timer Data Register 0 */
  1030. #define REG_TMR1_CSR (TMR1_BA+0x00) /*!< Timer Control and Status Register 1 */
  1031. #define REG_TMR1_CMPR (TMR1_BA+0x04) /*!< Timer Compare Register 1 */
  1032. #define REG_TMR1_TDR (TMR1_BA+0x08) /*!< Timer Data Register 1 */
  1033. #define REG_TMR2_CSR (TMR2_BA+0x00) /*!< Timer Control and Status Register 2 */
  1034. #define REG_TMR2_CMPR (TMR2_BA+0x04) /*!< Timer Compare Register 2 */
  1035. #define REG_TMR2_DR (TMR2_BA+0x08) /*!< Timer Data Register 2 */
  1036. #define REG_TMR3_CSR (TMR3_BA+0x00) /*!< Timer Control and Status Register 3 */
  1037. #define REG_TMR3_CMPR (TMR3_BA+0x04) /*!< Timer Compare Register 3 */
  1038. #define REG_TMR3_DR (TMR3_BA+0x08) /*!< Timer Data Register 3 */
  1039. #define REG_TMR4_CSR (TMR4_BA+0x00) /*!< Timer Control and Status Register 4 */
  1040. #define REG_TMR4_CMPR (TMR4_BA+0x04) /*!< Timer Compare Register 4 */
  1041. #define REG_TMR4_DR (TMR4_BA+0x08) /*!< Timer Data Register 4 */
  1042. #define REG_TMR_ISR (TMR0_BA+0x60) /*!< Timer Interrupt Status Register */
  1043. /**@}*/ /* end of TIMER register group */
  1044. /*---------------------- Enhance Timer Controller -------------------------*/
  1045. /**
  1046. @addtogroup ETIMER Enhance Timer Controller(ETIMER)
  1047. Memory Mapped Structure for TIMER Controller
  1048. @{ */
  1049. #define REG_ETMR0_CTL (ETMR0_BA+0x00) /*!< Enhance Timer 0 Control Register */
  1050. #define REG_ETMR0_PRECNT (ETMR0_BA+0x04) /*!< Enhance Timer 0 Pre-Scale Counter Register */
  1051. #define REG_ETMR0_CMPR (ETMR0_BA+0x08) /*!< Enhance Timer 0 Compare Register */
  1052. #define REG_ETMR0_IER (ETMR0_BA+0x0C) /*!< Enhance Timer 0 Interrupt Enable Register */
  1053. #define REG_ETMR0_ISR (ETMR0_BA+0x10) /*!< Enhance Timer 0 Interrupt Status Register */
  1054. #define REG_ETMR0_DR (ETMR0_BA+0x14) /*!< Enhance Timer 0 Data Register */
  1055. #define REG_ETMR0_TCAP (ETMR0_BA+0x18) /*!< Enhance Timer 0 Capture Data Register */
  1056. #define REG_ETMR1_CTL (ETMR1_BA+0x00) /*!< Enhance Timer 1 Control Register */
  1057. #define REG_ETMR1_PRECNT (ETMR1_BA+0x04) /*!< Enhance Timer 1 Pre-Scale Counter Register */
  1058. #define REG_ETMR1_CMPR (ETMR1_BA+0x08) /*!< Enhance Timer 1 Compare Register */
  1059. #define REG_ETMR1_IER (ETMR1_BA+0x0C) /*!< Enhance Timer 1 Interrupt Enable Register */
  1060. #define REG_ETMR1_ISR (ETMR1_BA+0x10) /*!< Enhance Timer 1 Interrupt Status Register */
  1061. #define REG_ETMR1_DR (ETMR1_BA+0x14) /*!< Enhance Timer 1 Data Register */
  1062. #define REG_ETMR1_TCAP (ETMR1_BA+0x18) /*!< Enhance Timer 1 Capture Data Register */
  1063. #define REG_ETMR2_CTL (ETMR2_BA+0x00) /*!< Enhance Timer 2 Control Register */
  1064. #define REG_ETMR2_PRECNT (ETMR2_BA+0x04) /*!< Enhance Timer 2 Pre-Scale Counter Register */
  1065. #define REG_ETMR2_CMPR (ETMR2_BA+0x08) /*!< Enhance Timer 2 Compare Register */
  1066. #define REG_ETMR2_IER (ETMR2_BA+0x0C) /*!< Enhance Timer 2 Interrupt Enable Register */
  1067. #define REG_ETMR2_ISR (ETMR2_BA+0x10) /*!< Enhance Timer 2 Interrupt Status Register */
  1068. #define REG_ETMR2_DR (ETMR2_BA+0x14) /*!< Enhance Timer 2 Data Register */
  1069. #define REG_ETMR2_TCAP (ETMR2_BA+0x18) /*!< Enhance Timer 2 Capture Data Register */
  1070. #define REG_ETMR3_CTL (ETMR3_BA+0x00) /*!< Enhance Timer 3 Control Register */
  1071. #define REG_ETMR3_PRECNT (ETMR3_BA+0x04) /*!< Enhance Timer 3 Pre-Scale Counter Register */
  1072. #define REG_ETMR3_CMPR (ETMR3_BA+0x08) /*!< Enhance Timer 3 Compare Register */
  1073. #define REG_ETMR3_IER (ETMR3_BA+0x0C) /*!< Enhance Timer 3 Interrupt Enable Register */
  1074. #define REG_ETMR3_ISR (ETMR3_BA+0x10) /*!< Enhance Timer 3 Interrupt Status Register */
  1075. #define REG_ETMR3_DR (ETMR3_BA+0x14) /*!< Enhance Timer 3 Data Register */
  1076. #define REG_ETMR3_TCAP (ETMR3_BA+0x18) /*!< Enhance Timer 3 Capture Data Register */
  1077. /**@}*/ /* end of ETIMER register group */
  1078. /*---------------------- WDT Controller -------------------------*/
  1079. /**
  1080. @addtogroup WDT Watch Dog Timer Controller(WDT)
  1081. Memory Mapped Structure for WDT Controller
  1082. @{ */
  1083. #define REG_WDT_CTL (WDT_BA+0x00) /*!< WDT Control Register */
  1084. #define REG_WDT_ALTCTL (WDT_BA+0x04) /*!< WDT Alternative Control Register */
  1085. /**@}*/ /* end of WDT register group */
  1086. /*---------------------- WWDT Controller -------------------------*/
  1087. /**
  1088. @addtogroup WWDT Window Watch Dog Timer Controller(WWDT)
  1089. Memory Mapped Structure for WWDT Controller
  1090. @{ */
  1091. #define REG_WWDT_RLDCNT (WWDT_BA+0x00) /*!< WWDT Reload Counter Register */
  1092. #define REG_WWDT_CTL (WWDT_BA+0x04) /*!< WWDT Control Register */
  1093. #define REG_WWDT_STATUS (WWDT_BA+0x08) /*!< WWDT Status Register */
  1094. #define REG_WWDT_CNT (WWDT_BA+0x0C) /*!< WWDT Counter Value Register */
  1095. /**@}*/ /* end of WWDT register group */
  1096. /*---------------------- SC Host Interface -------------------------*/
  1097. /**
  1098. @addtogroup SC Smart Card Host Interface (SC)
  1099. Memory Mapped Structure for Smart Card Host Interface
  1100. @{ */
  1101. #define REG_SC0_DAT (SC0_BA+0x00) /*!< SC0 Receiving/Transmit Holding Buffer Register */
  1102. #define REG_SC0_CTL (SC0_BA+0x04) /*!< SC0 Control Register */
  1103. #define REG_SC0_ALTCTL (SC0_BA+0x08) /*!< SC0 Alternate Control Register */
  1104. #define REG_SC0_EGT (SC0_BA+0x0C) /*!< SC0 Extend Guard Time Register */
  1105. #define REG_SC0_RXTOUT (SC0_BA+0x10) /*!< SC0 Receive Buffer Time-out Register */
  1106. #define REG_SC0_ETUCTL (SC0_BA+0x14) /*!< SC0 ETU Control Register */
  1107. #define REG_SC0_INTEN (SC0_BA+0x18) /*!< SC0 Interrupt Enable Control Register */
  1108. #define REG_SC0_INTSTS (SC0_BA+0x1C) /*!< SC0 Interrupt Status Register */
  1109. #define REG_SC0_STATUS (SC0_BA+0x20) /*!< SC0 Status Register */
  1110. #define REG_SC0_PINCTL (SC0_BA+0x24) /*!< SC0 Pin Control State Register */
  1111. #define REG_SC0_TMRCTL0 (SC0_BA+0x28) /*!< SC0 Internal Timer Control Register 0 */
  1112. #define REG_SC0_TMRCTL1 (SC0_BA+0x2C) /*!< SC0 Internal Timer Control Register 1 */
  1113. #define REG_SC0_TMRCTL2 (SC0_BA+0x30) /*!< SC0 Internal Timer Control Register 2 */
  1114. #define REG_SC0_UARTCTL (SC0_BA+0x34) /*!< SC0 UART Mode Control Register */
  1115. #define REG_SC0_TMRDAT0 (SC0_BA+0x38) /*!< SC0 Timer Current Data Register 0 */
  1116. #define REG_SC0_TMRDAT1 (SC0_BA+0x3C) /*!< SC0 Timer Current Data Register 1 */
  1117. #define REG_SC1_DAT (SC1_BA+0x00) /*!< SC1 Receiving/Transmit Holding Buffer Register */
  1118. #define REG_SC1_CTL (SC1_BA+0x04) /*!< SC1 Control Register */
  1119. #define REG_SC1_ALTCTL (SC1_BA+0x08) /*!< SC1 Alternate Control Register */
  1120. #define REG_SC1_EGT (SC1_BA+0x0C) /*!< SC1 Extend Guard Time Register */
  1121. #define REG_SC1_RXTOUT (SC1_BA+0x10) /*!< SC1 Receive Buffer Time-out Register */
  1122. #define REG_SC1_ETUCTL (SC1_BA+0x14) /*!< SC1 ETU Control Register */
  1123. #define REG_SC1_INTEN (SC1_BA+0x18) /*!< SC1 Interrupt Enable Control Register */
  1124. #define REG_SC1_INTSTS (SC1_BA+0x1C) /*!< SC1 Interrupt Status Register */
  1125. #define REG_SC1_STATUS (SC1_BA+0x20) /*!< SC1 Status Register */
  1126. #define REG_SC1_PINCTL (SC1_BA+0x24) /*!< SC1 Pin Control State Register */
  1127. #define REG_SC1_TMRCTL0 (SC1_BA+0x28) /*!< SC1 Internal Timer Control Register 0 */
  1128. #define REG_SC1_TMRCTL1 (SC1_BA+0x2C) /*!< SC1 Internal Timer Control Register 1 */
  1129. #define REG_SC1_TMRCTL2 (SC1_BA+0x30) /*!< SC1 Internal Timer Control Register 2 */
  1130. #define REG_SC1_UARTCTL (SC1_BA+0x34) /*!< SC1 UART Mode Control Register */
  1131. #define REG_SC1_TMRDAT0 (SC1_BA+0x38) /*!< SC1 Timer Current Data Register 0 */
  1132. #define REG_SC1_TMRDAT1 (SC1_BA+0x3C) /*!< SC1 Timer Current Data Register 1 */
  1133. /**@}*/ /* end of SC register group */
  1134. /*---------------------- Advance Interrupt Controller -------------------------*/
  1135. /**
  1136. @addtogroup AIC Advance Interrupt Controller(AIC)
  1137. Memory Mapped Structure for AIC Controller
  1138. @{ */
  1139. #define REG_AIC_SCR1 (AIC_BA+0x00) /*!< Source control register 1 */
  1140. #define REG_AIC_SCR2 (AIC_BA+0x04) /*!< Source control register 2 */
  1141. #define REG_AIC_SCR3 (AIC_BA+0x08) /*!< Source control register 3 */
  1142. #define REG_AIC_SCR4 (AIC_BA+0x0C) /*!< Source control register 4 */
  1143. #define REG_AIC_SCR5 (AIC_BA+0x10) /*!< Source control register 5 */
  1144. #define REG_AIC_SCR6 (AIC_BA+0x14) /*!< Source control register 6 */
  1145. #define REG_AIC_SCR7 (AIC_BA+0x18) /*!< Source control register 7 */
  1146. #define REG_AIC_SCR8 (AIC_BA+0x1C) /*!< Source control register 8 */
  1147. #define REG_AIC_SCR9 (AIC_BA+0x20) /*!< Source control register 9 */
  1148. #define REG_AIC_SCR10 (AIC_BA+0x24) /*!< Source control register 10 */
  1149. #define REG_AIC_SCR11 (AIC_BA+0x28) /*!< Source control register 11 */
  1150. #define REG_AIC_SCR12 (AIC_BA+0x2C) /*!< Source control register 12 */
  1151. #define REG_AIC_SCR13 (AIC_BA+0x30) /*!< Source control register 13 */
  1152. #define REG_AIC_SCR14 (AIC_BA+0x34) /*!< Source control register 14 */
  1153. #define REG_AIC_SCR15 (AIC_BA+0x38) /*!< Source control register 15 */
  1154. #define REG_AIC_SCR16 (AIC_BA+0x3C) /*!< Source control register 16 */
  1155. #define REG_AIC_IRSR (AIC_BA+0x100) /*!< Interrupt raw status register */
  1156. #define REG_AIC_IRSRH (AIC_BA+0x104) /*!< Interrupt raw status register (Hign) */
  1157. #define REG_AIC_IASR (AIC_BA+0x108) /*!< Interrupt active status register */
  1158. #define REG_AIC_IASRH (AIC_BA+0x10C) /*!< Interrupt active status register (Hign) */
  1159. #define REG_AIC_ISR (AIC_BA+0x110) /*!< Interrupt status register */
  1160. #define REG_AIC_ISRH (AIC_BA+0x114) /*!< Interrupt status register (High) */
  1161. #define REG_AIC_IPER (AIC_BA+0x118) /*!< Interrupt priority encoding register */
  1162. #define REG_AIC_ISNR (AIC_BA+0x120) /*!< Interrupt source number register */
  1163. #define REG_AIC_OISR (AIC_BA+0x124) /*!< Output interrupt status register */
  1164. #define REG_AIC_IMR (AIC_BA+0x128) /*!< Interrupt mask register */
  1165. #define REG_AIC_IMRH (AIC_BA+0x12C) /*!< Interrupt mask register (High) */
  1166. #define REG_AIC_MECR (AIC_BA+0x130) /*!< Mask enable command register */
  1167. #define REG_AIC_MECRH (AIC_BA+0x134) /*!< Mask enable command register (High) */
  1168. #define REG_AIC_MDCR (AIC_BA+0x138) /*!< Mask disable command register */
  1169. #define REG_AIC_MDCRH (AIC_BA+0x13C) /*!< Mask disable command register (High) */
  1170. #define REG_AIC_SSCR (AIC_BA+0x140) /*!< Source Set Command Register */
  1171. #define REG_AIC_SSCRH (AIC_BA+0x144) /*!< Source Set Command Register (High) */
  1172. #define REG_AIC_SCCR (AIC_BA+0x148) /*!< Source Clear Command Register */
  1173. #define REG_AIC_SCCRH (AIC_BA+0x14C) /*!< Source Clear Command Register (High) */
  1174. #define REG_AIC_EOSCR (AIC_BA+0x150) /*!< End of service command register */
  1175. /**@}*/ /* end of AIC register group */
  1176. /*---------------------- General Purpose Input/Output Controller -------------------------*/
  1177. /**
  1178. @addtogroup GPIO General Purpose Input/Output Controller(GPIO)
  1179. Memory Mapped Structure for GPIO Controller
  1180. @{ */
  1181. #define REG_GPIOA_DIR (GPIO_BA+0x000) /*!< GPIO portA direction control register */
  1182. #define REG_GPIOA_DATAOUT (GPIO_BA+0x004) /*!< GPIO portA data output register */
  1183. #define REG_GPIOA_DATAIN (GPIO_BA+0x008) /*!< GPIO portA data input register */
  1184. #define REG_GPIOA_IMD (GPIO_BA+0x00C) /*!< GPIO Port A Interrupt Mode Register */
  1185. #define REG_GPIOA_IREN (GPIO_BA+0x010) /*!< GPIO Port A Interrupt Rising-Edge or Level-High Enable Register */
  1186. #define REG_GPIOA_IFEN (GPIO_BA+0x014) /*!< GPIO Port A Interrupt Falling-Edge or Level-Low Enable Register */
  1187. #define REG_GPIOA_ISR (GPIO_BA+0x018) /*!< GPIO Port A Interrupt Status Register */
  1188. #define REG_GPIOA_DBEN (GPIO_BA+0x01C) /*!< GPIO Port A De-bounce Enable Register */
  1189. #define REG_GPIOA_PUEN (GPIO_BA+0x020) /*!< GPIO Port A Pull-Up Enable Register */
  1190. #define REG_GPIOA_PDEN (GPIO_BA+0x024) /*!< GPIO Port A Pull-Down Enable Register */
  1191. #define REG_GPIOA_ICEN (GPIO_BA+0x028) /*!< GPIO Port A CMOS Input Enable Register */
  1192. #define REG_GPIOA_ISEN (GPIO_BA+0x02C) /*!< GPIO Port A Schmitt-Trigger Input Enable Register */
  1193. #define REG_GPIOB_DIR (GPIO_BA+0x040) /*!< GPIO port B direction control register */
  1194. #define REG_GPIOB_DATAOUT (GPIO_BA+0x044) /*!< GPIO port B data output register */
  1195. #define REG_GPIOB_DATAIN (GPIO_BA+0x048) /*!< GPIO port B data input register */
  1196. #define REG_GPIOB_IMD (GPIO_BA+0x04C) /*!< GPIO Port B Interrupt Mode Register */
  1197. #define REG_GPIOB_IREN (GPIO_BA+0x050) /*!< GPIO Port B Interrupt Rising-Edge or Level-High Enable Register */
  1198. #define REG_GPIOB_IFEN (GPIO_BA+0x054) /*!< GPIO Port B Interrupt Falling-Edge or Level-Low Enable Register */
  1199. #define REG_GPIOB_ISR (GPIO_BA+0x058) /*!< GPIO Port B Interrupt Status Register */
  1200. #define REG_GPIOB_DBEN (GPIO_BA+0x05C) /*!< GPIO Port B De-bounce Enable Register */
  1201. #define REG_GPIOB_PUEN (GPIO_BA+0x060) /*!< GPIO Port B Pull-Up Enable Register */
  1202. #define REG_GPIOB_PDEN (GPIO_BA+0x064) /*!< GPIO Port B Pull-Down Enable Register */
  1203. #define REG_GPIOB_ICEN (GPIO_BA+0x068) /*!< GPIO Port B CMOS Input Enable Register */
  1204. #define REG_GPIOB_ISEN (GPIO_BA+0x06C) /*!< GPIO Port B Schmitt-Trigger Input Enable Register */
  1205. #define REG_GPIOC_DIR (GPIO_BA+0x080) /*!< GPIO port C direction control register */
  1206. #define REG_GPIOC_DATAOUT (GPIO_BA+0x084) /*!< GPIO port C data output register */
  1207. #define REG_GPIOC_DATAIN (GPIO_BA+0x088) /*!< GPIO port C data input register */
  1208. #define REG_GPIOC_IMD (GPIO_BA+0x08C) /*!< GPIO Port C Interrupt Mode Register */
  1209. #define REG_GPIOC_IREN (GPIO_BA+0x090) /*!< GPIO Port C Interrupt Rising-Edge or Level-High Enable Register */
  1210. #define REG_GPIOC_IFEN (GPIO_BA+0x094) /*!< GPIO Port C Interrupt Falling-Edge or Level-Low Enable Register */
  1211. #define REG_GPIOC_ISR (GPIO_BA+0x098) /*!< GPIO Port C Interrupt Status Register */
  1212. #define REG_GPIOC_DBEN (GPIO_BA+0x09C) /*!< GPIO Port C De-bounce Enable Register */
  1213. #define REG_GPIOC_PUEN (GPIO_BA+0x0A0) /*!< GPIO Port C Pull-Up Enable Register */
  1214. #define REG_GPIOC_PDEN (GPIO_BA+0x0A4) /*!< GPIO Port C Pull-Down Enable Register */
  1215. #define REG_GPIOC_ICEN (GPIO_BA+0x0A8) /*!< GPIO Port C CMOS Input Enable Register */
  1216. #define REG_GPIOC_ISEN (GPIO_BA+0x0AC) /*!< GPIO Port C Schmitt-Trigger Input Enable Register */
  1217. #define REG_GPIOD_DIR (GPIO_BA+0x0C0) /*!< GPIO port D direction control register */
  1218. #define REG_GPIOD_DATAOUT (GPIO_BA+0x0C4) /*!< GPIO port D data output register */
  1219. #define REG_GPIOD_DATAIN (GPIO_BA+0x0C8) /*!< GPIO port D data input register */
  1220. #define REG_GPIOD_IMD (GPIO_BA+0x0CC) /*!< GPIO Port D Interrupt Mode Register */
  1221. #define REG_GPIOD_IREN (GPIO_BA+0x0D0) /*!< GPIO Port D Interrupt Rising-Edge or Level-High Enable Register */
  1222. #define REG_GPIOD_IFEN (GPIO_BA+0x0D4) /*!< GPIO Port D Interrupt Falling-Edge or Level-Low Enable Register */
  1223. #define REG_GPIOD_ISR (GPIO_BA+0x0D8) /*!< GPIO Port D Interrupt Status Register */
  1224. #define REG_GPIOD_DBEN (GPIO_BA+0x0DC) /*!< GPIO Port D De-bounce Enable Register */
  1225. #define REG_GPIOD_PUEN (GPIO_BA+0x0E0) /*!< GPIO Port D Pull-Up Enable Register */
  1226. #define REG_GPIOD_PDEN (GPIO_BA+0x0E4) /*!< GPIO Port D Pull-Down Enable Register */
  1227. #define REG_GPIOD_ICEN (GPIO_BA+0x0E8) /*!< GPIO Port D CMOS Input Enable Register */
  1228. #define REG_GPIOD_ISEN (GPIO_BA+0x0EC) /*!< GPIO Port D Schmitt-Trigger Input Enable Register */
  1229. #define REG_GPIOE_DIR (GPIO_BA+0x100) /*!< GPIO port E direction control register */
  1230. #define REG_GPIOE_DATAOUT (GPIO_BA+0x104) /*!< GPIO port E data output register */
  1231. #define REG_GPIOE_DATAIN (GPIO_BA+0x108) /*!< GPIO port E data input register */
  1232. #define REG_GPIOE_IMD (GPIO_BA+0x10C) /*!< GPIO Port E Interrupt Mode Register */
  1233. #define REG_GPIOE_IREN (GPIO_BA+0x110) /*!< GPIO Port E Interrupt Rising-Edge or Level-High Enable Register */
  1234. #define REG_GPIOE_IFEN (GPIO_BA+0x114) /*!< GPIO Port E Interrupt Falling-Edge or Level-Low Enable Register */
  1235. #define REG_GPIOE_ISR (GPIO_BA+0x118) /*!< GPIO Port E Interrupt Status Register */
  1236. #define REG_GPIOE_DBEN (GPIO_BA+0x11C) /*!< GPIO Port E De-bounce Enable Register */
  1237. #define REG_GPIOE_PUEN (GPIO_BA+0x120) /*!< GPIO Port E Pull-Up Enable Register */
  1238. #define REG_GPIOE_PDEN (GPIO_BA+0x124) /*!< GPIO Port E Pull-Down Enable Register */
  1239. #define REG_GPIOE_ICEN (GPIO_BA+0x128) /*!< GPIO Port E CMOS Input Enable Register */
  1240. #define REG_GPIOE_ISEN (GPIO_BA+0x12C) /*!< GPIO Port E Schmitt-Trigger Input Enable Register */
  1241. #define REG_GPIOF_DIR (GPIO_BA+0x140) /*!< GPIO port F direction control register */
  1242. #define REG_GPIOF_DATAOUT (GPIO_BA+0x144) /*!< GPIO port F data output register */
  1243. #define REG_GPIOF_DATAIN (GPIO_BA+0x148) /*!< GPIO port F data input register */
  1244. #define REG_GPIOF_IMD (GPIO_BA+0x14C) /*!< GPIO Port F Interrupt Mode Register */
  1245. #define REG_GPIOF_IREN (GPIO_BA+0x150) /*!< GPIO Port F Interrupt Rising-Edge or Level-High Enable Register */
  1246. #define REG_GPIOF_IFEN (GPIO_BA+0x154) /*!< GPIO Port F Interrupt Falling-Edge or Level-Low Enable Register */
  1247. #define REG_GPIOF_ISR (GPIO_BA+0x158) /*!< GPIO Port F Interrupt Status Register */
  1248. #define REG_GPIOF_DBEN (GPIO_BA+0x15C) /*!< GPIO Port F De-bounce Enable Register */
  1249. #define REG_GPIOF_PUEN (GPIO_BA+0x160) /*!< GPIO Port F Pull-Up Enable Register */
  1250. #define REG_GPIOF_PDEN (GPIO_BA+0x164) /*!< GPIO Port F Pull-Down Enable Register */
  1251. #define REG_GPIOF_ICEN (GPIO_BA+0x168) /*!< GPIO Port F CMOS Input Enable Register */
  1252. #define REG_GPIOF_ISEN (GPIO_BA+0x16C) /*!< GPIO Port F Schmitt-Trigger Input Enable Register */
  1253. #define REG_GPIOG_DIR (GPIO_BA+0x180) /*!< GPIO port G direction control register */
  1254. #define REG_GPIOG_DATAOUT (GPIO_BA+0x184) /*!< GPIO port G data output register */
  1255. #define REG_GPIOG_DATAIN (GPIO_BA+0x188) /*!< GPIO port G data input register */
  1256. #define REG_GPIOG_IMD (GPIO_BA+0x18C) /*!< GPIO Port G Interrupt Mode Register */
  1257. #define REG_GPIOG_IREN (GPIO_BA+0x190) /*!< GPIO Port G Interrupt Rising-Edge or Level-High Enable Register */
  1258. #define REG_GPIOG_IFEN (GPIO_BA+0x194) /*!< GPIO Port G Interrupt Falling-Edge or Level-Low Enable Register */
  1259. #define REG_GPIOG_ISR (GPIO_BA+0x198) /*!< GPIO Port G Interrupt Status Register */
  1260. #define REG_GPIOG_DBEN (GPIO_BA+0x19C) /*!< GPIO Port G De-bounce Enable Register */
  1261. #define REG_GPIOG_PUEN (GPIO_BA+0x1A0) /*!< GPIO Port G Pull-Up Enable Register */
  1262. #define REG_GPIOG_PDEN (GPIO_BA+0x1A4) /*!< GPIO Port G Pull-Down Enable Register */
  1263. #define REG_GPIOG_ICEN (GPIO_BA+0x1A8) /*!< GPIO Port G CMOS Input Enable Register */
  1264. #define REG_GPIOG_ISEN (GPIO_BA+0x1AC) /*!< GPIO Port G Schmitt-Trigger Input Enable Register */
  1265. #define REG_GPIOH_DIR (GPIO_BA+0x1C0) /*!< GPIO port H direction control register */
  1266. #define REG_GPIOH_DATAOUT (GPIO_BA+0x1C4) /*!< GPIO port H data output register */
  1267. #define REG_GPIOH_DATAIN (GPIO_BA+0x1C8) /*!< GPIO port H data input register */
  1268. #define REG_GPIOH_IMD (GPIO_BA+0x1CC) /*!< GPIO Port H Interrupt Mode Register */
  1269. #define REG_GPIOH_IREN (GPIO_BA+0x1D0) /*!< GPIO Port H Interrupt Rising-Edge or Level-High Enable Register */
  1270. #define REG_GPIOH_IFEN (GPIO_BA+0x1D4) /*!< GPIO Port H Interrupt Falling-Edge or Level-Low Enable Register */
  1271. #define REG_GPIOH_ISR (GPIO_BA+0x1D8) /*!< GPIO Port H Interrupt Status Register */
  1272. #define REG_GPIOH_DBEN (GPIO_BA+0x1DC) /*!< GPIO Port H De-bounce Enable Register */
  1273. #define REG_GPIOH_PUEN (GPIO_BA+0x1E0) /*!< GPIO Port H Pull-Up Enable Register */
  1274. #define REG_GPIOH_PDEN (GPIO_BA+0x1E4) /*!< GPIO Port H Pull-Down Enable Register */
  1275. #define REG_GPIOH_ICEN (GPIO_BA+0x1E8) /*!< GPIO Port H CMOS Input Enable Register */
  1276. #define REG_GPIOH_ISEN (GPIO_BA+0x1EC) /*!< GPIO Port H Schmitt-Trigger Input Enable Register */
  1277. #define REG_GPIOI_DIR (GPIO_BA+0x200) /*!< GPIO port I direction control register */
  1278. #define REG_GPIOI_DATAOUT (GPIO_BA+0x204) /*!< GPIO port I data output register */
  1279. #define REG_GPIOI_DATAIN (GPIO_BA+0x208) /*!< GPIO port I data input register */
  1280. #define REG_GPIOI_IMD (GPIO_BA+0x20C) /*!< GPIO Port I Interrupt Mode Register */
  1281. #define REG_GPIOI_IREN (GPIO_BA+0x210) /*!< GPIO Port I Interrupt Rising-Edge or Level-High Enable Register */
  1282. #define REG_GPIOI_IFEN (GPIO_BA+0x214) /*!< GPIO Port I Interrupt Falling-Edge or Level-Low Enable Register */
  1283. #define REG_GPIOI_ISR (GPIO_BA+0x218) /*!< GPIO Port I Interrupt Status Register */
  1284. #define REG_GPIOI_DBEN (GPIO_BA+0x21C) /*!< GPIO Port I De-bounce Enable Register */
  1285. #define REG_GPIOI_PUEN (GPIO_BA+0x220) /*!< GPIO Port I Pull-Up Enable Register */
  1286. #define REG_GPIOI_PDEN (GPIO_BA+0x224) /*!< GPIO Port I Pull-Down Enable Register */
  1287. #define REG_GPIOI_ICEN (GPIO_BA+0x228) /*!< GPIO Port I CMOS Input Enable Register */
  1288. #define REG_GPIOI_ISEN (GPIO_BA+0x22C) /*!< GPIO Port I Schmitt-Trigger Input Enable Register */
  1289. #define REG_GPIOJ_DIR (GPIO_BA+0x240) /*!< GPIO port J direction control register */
  1290. #define REG_GPIOJ_DATAOUT (GPIO_BA+0x244) /*!< GPIO port J data output register */
  1291. #define REG_GPIOJ_DATAIN (GPIO_BA+0x248) /*!< GPIO port J data input register */
  1292. #define REG_GPIOJ_IMD (GPIO_BA+0x24C) /*!< GPIO Port J Interrupt Mode Register */
  1293. #define REG_GPIOJ_IREN (GPIO_BA+0x250) /*!< GPIO Port J Interrupt Rising-Edge or Level-High Enable Register */
  1294. #define REG_GPIOJ_IFEN (GPIO_BA+0x254) /*!< GPIO Port J Interrupt Falling-Edge or Level-Low Enable Register */
  1295. #define REG_GPIOJ_ISR (GPIO_BA+0x258) /*!< GPIO Port J Interrupt Status Register */
  1296. #define REG_GPIOJ_DBEN (GPIO_BA+0x25C) /*!< GPIO Port J De-bounce Enable Register */
  1297. #define REG_GPIOJ_PUEN (GPIO_BA+0x260) /*!< GPIO Port J Pull-Up Enable Register */
  1298. #define REG_GPIOJ_PDEN (GPIO_BA+0x264) /*!< GPIO Port J Pull-Down Enable Register */
  1299. #define REG_GPIOJ_ICEN (GPIO_BA+0x268) /*!< GPIO Port J CMOS Input Enable Register */
  1300. #define REG_GPIOJ_ISEN (GPIO_BA+0x26C) /*!< GPIO Port J Schmitt-Trigger Input Enable Register */
  1301. #define REG_GPIO_DBNCECON (GPIO_BA+0x3F0) /*!< GPIO Debounce Control Register */
  1302. #define REG_GPIO_ISR (GPIO_BA+0x3FC) /*!< GPIO Port Interrupt Status Register */
  1303. /**@}*/ /* end of GPIO register group */
  1304. /*---------------------- Real Time Clock Controller -------------------------*/
  1305. /**
  1306. @addtogroup RTC Real Time Clock Controller(RTC)
  1307. Memory Mapped Structure for RTC Controller
  1308. @{ */
  1309. #define REG_RTC_INIT (RTC_BA+0x00) /*!< RTC Initiation Register */
  1310. #define REG_RTC_RWEN (RTC_BA+0x04) /*!< RTC Access Enable Register */
  1311. #define REG_RTC_FREQADJ (RTC_BA+0x08) /*!< RTC Frequency Compensation Register */
  1312. #define REG_RTC_TIME (RTC_BA+0x0C) /*!< Time Loading Register */
  1313. #define REG_RTC_CAL (RTC_BA+0x10) /*!< Calendar Loading Register */
  1314. #define REG_RTC_TIMEFMT (RTC_BA+0x14) /*!< Time Format Selection Register */
  1315. #define REG_RTC_WEEKDAY (RTC_BA+0x18) /*!< Day of the Week Register */
  1316. #define REG_RTC_TALM (RTC_BA+0x1C) /*!< Time Alarm Register */
  1317. #define REG_RTC_CALM (RTC_BA+0x20) /*!< Calendar Alarm Register */
  1318. #define REG_RTC_LEAPYEAR (RTC_BA+0x24) /*!< Leap year Indicator Register */
  1319. #define REG_RTC_INTEN (RTC_BA+0x28) /*!< RTC Interrupt Enable Register */
  1320. #define REG_RTC_INTSTS (RTC_BA+0x2C) /*!< RTC Interrupt Indicator Register */
  1321. #define REG_RTC_TICK (RTC_BA+0x30) /*!< RTC Time Tick Register */
  1322. #define REG_RTC_PWRCTL (RTC_BA+0x34) /*!< Power Control Register */
  1323. #define REG_RTC_PWRCNT (RTC_BA+0x38) /*!< Power Control Counter Register */
  1324. #define REG_RTC_SPR0 (RTC_BA+0x40) /*!< Spare REgistger 0 */
  1325. #define REG_RTC_SPR1 (RTC_BA+0x44) /*!< Spare REgistger 1 */
  1326. #define REG_RTC_SPR2 (RTC_BA+0x48) /*!< Spare REgistger 2 */
  1327. #define REG_RTC_SPR3 (RTC_BA+0x4C) /*!< Spare REgistger 3 */
  1328. #define REG_RTC_SPR4 (RTC_BA+0x50) /*!< Spare REgistger 4 */
  1329. #define REG_RTC_SPR5 (RTC_BA+0x54) /*!< Spare REgistger 5 */
  1330. #define REG_RTC_SPR6 (RTC_BA+0x58) /*!< Spare REgistger 6 */
  1331. #define REG_RTC_SPR7 (RTC_BA+0x5C) /*!< Spare REgistger 7 */
  1332. #define REG_RTC_SPR8 (RTC_BA+0x60) /*!< Spare REgistger 8 */
  1333. #define REG_RTC_SPR9 (RTC_BA+0x64) /*!< Spare REgistger 9 */
  1334. #define REG_RTC_SPR10 (RTC_BA+0x68) /*!< Spare REgistger 10 */
  1335. #define REG_RTC_SPR11 (RTC_BA+0x6C) /*!< Spare REgistger 11 */
  1336. #define REG_RTC_SPR12 (RTC_BA+0x70) /*!< Spare REgistger 12 */
  1337. #define REG_RTC_SPR13 (RTC_BA+0x74) /*!< Spare REgistger 13 */
  1338. #define REG_RTC_SPR14 (RTC_BA+0x78) /*!< Spare REgistger 14 */
  1339. #define REG_RTC_SPR15 (RTC_BA+0x7C) /*!< Spare REgistger 15 */
  1340. /**@}*/ /* end of RTC register group */
  1341. /*---------------------- Inter-IC Bus Controller -------------------------*/
  1342. /**
  1343. @addtogroup I2C Inter-IC Bus Controller(I2C)
  1344. Memory Mapped Structure for I2C Controller
  1345. @{ */
  1346. #define REG_I2C0_CSR (I2C0_BA+0x00) /*!< Control and Status Register */
  1347. #define REG_I2C0_DIVIDER (I2C0_BA+0x04) /*!< Clock Prescale Register */
  1348. #define REG_I2C0_CMDR (I2C0_BA+0x08) /*!< Command Register */
  1349. #define REG_I2C0_SWR (I2C0_BA+0x0C) /*!< Software Mode Control Register */
  1350. #define REG_I2C0_RXR (I2C0_BA+0x10) /*!< Data Receive Register */
  1351. #define REG_I2C0_TXR (I2C0_BA+0x14) /*!< Data Transmit Register */
  1352. #define REG_I2C1_CSR (I2C1_BA+0x00) /*!< Control and Status Register */
  1353. #define REG_I2C1_DIVIDER (I2C1_BA+0x04) /*!< Clock Prescale Register */
  1354. #define REG_I2C1_CMDR (I2C1_BA+0x08) /*!< Command Register */
  1355. #define REG_I2C1_SWR (I2C1_BA+0x0C) /*!< Software Mode Control Register */
  1356. #define REG_I2C1_RXR (I2C1_BA+0x10) /*!< Data Receive Register */
  1357. #define REG_I2C1_TXR (I2C1_BA+0x14) /*!< Data Transmit Register */
  1358. /**@}*/ /* end of I2C register group */
  1359. /*---------------------- Serial Peripheral Interface Controller -------------------------*/
  1360. /**
  1361. @addtogroup SPI Serial Peripheral Interface Controller(SPI)
  1362. Memory Mapped Structure for SPI Controller
  1363. @{ */
  1364. #define REG_SPI0_CNTRL (SPI0_BA+0x00) /*!< Control and Status Register */
  1365. #define REG_SPI0_DIVIDER (SPI0_BA+0x04) /*!< Clock Divider Register */
  1366. #define REG_SPI0_SSR (SPI0_BA+0x08) /*!< Slave Select Register */
  1367. #define REG_SPI0_RX0 (SPI0_BA+0x10) /*!< Data Receive Register 0 */
  1368. #define REG_SPI0_RX1 (SPI0_BA+0x14) /*!< Data Receive Register 1 */
  1369. #define REG_SPI0_RX2 (SPI0_BA+0x18) /*!< Data Receive Register 2 */
  1370. #define REG_SPI0_RX3 (SPI0_BA+0x1C) /*!< Data Receive Register 3 */
  1371. #define REG_SPI0_TX0 (SPI0_BA+0x10) /*!< Data Transmit Register 0 */
  1372. #define REG_SPI0_TX1 (SPI0_BA+0x14) /*!< Data Transmit Register 1 */
  1373. #define REG_SPI0_TX2 (SPI0_BA+0x18) /*!< Data Transmit Register 2 */
  1374. #define REG_SPI0_TX3 (SPI0_BA+0x1C) /*!< Data Transmit Register 3 */
  1375. #define REG_SPI1_CNTRL (SPI1_BA+0x00) /*!< Control and Status Register */
  1376. #define REG_SPI1_DIVIDER (SPI1_BA+0x04) /*!< Clock Divider Register */
  1377. #define REG_SPI1_SSR (SPI1_BA+0x08) /*!< Slave Select Register */
  1378. #define REG_SPI1_RX0 (SPI1_BA+0x10) /*!< Data Receive Register 0 */
  1379. #define REG_SPI1_RX1 (SPI1_BA+0x14) /*!< Data Receive Register 1 */
  1380. #define REG_SPI1_RX2 (SPI1_BA+0x18) /*!< Data Receive Register 2 */
  1381. #define REG_SPI1_RX3 (SPI1_BA+0x1C) /*!< Data Receive Register 3 */
  1382. #define REG_SPI1_TX0 (SPI1_BA+0x10) /*!< Data Transmit Register 0 */
  1383. #define REG_SPI1_TX1 (SPI1_BA+0x14) /*!< Data Transmit Register 1 */
  1384. #define REG_SPI1_TX2 (SPI1_BA+0x18) /*!< Data Transmit Register 2 */
  1385. #define REG_SPI1_TX3 (SPI1_BA+0x1C) /*!< Data Transmit Register 3 */
  1386. /**@}*/ /* end of SPI register group */
  1387. /*---------------------- Pulse Width Modulation Controller -------------------------*/
  1388. /**
  1389. @addtogroup PWM Pulse Width Modulation Controller(PWM)
  1390. Memory Mapped Structure for PWM Controller
  1391. @{ */
  1392. #define REG_PWM_PPR (PWM_BA+0x00) /*!< PWM Pre-scale Register 0 */
  1393. #define REG_PWM_CSR (PWM_BA+0x04) /*!< PWM Clock Select Register */
  1394. #define REG_PWM_PCR (PWM_BA+0x08) /*!< PWM Control Register */
  1395. #define REG_PWM_CNR0 (PWM_BA+0x0C) /*!< PWM Counter Register 0 */
  1396. #define REG_PWM_CMR0 (PWM_BA+0x10) /*!< PWM Comparator Register 0 */
  1397. #define REG_PWM_PDR0 (PWM_BA+0x14) /*!< PWM Data Register 0 */
  1398. #define REG_PWM_CNR1 (PWM_BA+0x18) /*!< PWM Counter Register 1 */
  1399. #define REG_PWM_CMR1 (PWM_BA+0x1C) /*!< PWM Comparator Register 1 */
  1400. #define REG_PWM_PDR1 (PWM_BA+0x20) /*!< PWM Data Register 1 */
  1401. #define REG_PWM_CNR2 (PWM_BA+0x24) /*!< PWM Counter Register 2 */
  1402. #define REG_PWM_CMR2 (PWM_BA+0x28) /*!< PWM Comparator Register 2 */
  1403. #define REG_PWM_PDR2 (PWM_BA+0x2C) /*!< PWM Data Register 2 */
  1404. #define REG_PWM_CNR3 (PWM_BA+0x30) /*!< PWM Counter Register 3 */
  1405. #define REG_PWM_CMR3 (PWM_BA+0x34) /*!< PWM Comparator Register 3 */
  1406. #define REG_PWM_PDR3 (PWM_BA+0x38) /*!< PWM Data Register 3 */
  1407. #define REG_PWM_PIER (PWM_BA+0x3C) /*!< PWM Timer Interrupt Enable Register */
  1408. #define REG_PWM_PIIR (PWM_BA+0x40) /*!< PWM Timer Interrupt Identification Register */
  1409. /**@}*/ /* end of PWM register group */
  1410. /*---------------------- Analog to Digital Converter -------------------------*/
  1411. /**
  1412. @addtogroup ADC Analog to Digital Converter(ADC)
  1413. Memory Mapped Structure for ADC Controller
  1414. @{ */
  1415. #define REG_ADC_CTL (ADC_BA+0x000) /*!< ADC Contrl */
  1416. #define REG_ADC_CONF (ADC_BA+0x004) /*!< ADC Configure */
  1417. #define REG_ADC_IER (ADC_BA+0x008) /*!< ADC Interrupt Enable Register */
  1418. #define REG_ADC_ISR (ADC_BA+0x00C) /*!< ADC Interrupt Status Register */
  1419. #define REG_ADC_WKISR (ADC_BA+0x010) /*!< ADC Wake Up Interrupt Status Register */
  1420. #define REG_ADC_XYDATA (ADC_BA+0x020) /*!< ADC Touch XY Pressure Data */
  1421. #define REG_ADC_ZDATA (ADC_BA+0x024) /*!< ADC Touch Z Pressure Data */
  1422. #define REG_ADC_DATA (ADC_BA+0x028) /*!< ADC Normal Conversion Data */
  1423. #define REG_ADC_VBADATA (ADC_BA+0x02C) /*!< ADC Battery Detection Data */
  1424. #define REG_ADC_KPDATA (ADC_BA+0x030) /*!< ADC Key Pad Data */
  1425. #define REG_ADC_SELFDATA (ADC_BA+0x034) /*!< ADC Self-Test Data */
  1426. #define REG_ADC_XYSORT0 (ADC_BA+0x1F4) /*!< ADC Touch XY Position Mean Value Sort 0 */
  1427. #define REG_ADC_XYSORT1 (ADC_BA+0x1F8) /*!< ADC Touch XY Position Mean Value Sort 1 */
  1428. #define REG_ADC_XYSORT2 (ADC_BA+0x1FC) /*!< ADC Touch XY Position Mean Value Sort 2 */
  1429. #define REG_ADC_XYSORT3 (ADC_BA+0x200) /*!< ADC Touch XY Position Mean Value Sort 3 */
  1430. #define REG_ADC_ZSORT0 (ADC_BA+0x204) /*!< ADC Touch Z Pressure Mean Value Sort 0 */
  1431. #define REG_ADC_ZSORT1 (ADC_BA+0x208) /*!< ADC Touch Z Pressure Mean Value Sort 1 */
  1432. #define REG_ADC_ZSORT2 (ADC_BA+0x20C) /*!< ADC Touch Z Pressure Mean Value Sort 2 */
  1433. #define REG_ADC_ZSORT3 (ADC_BA+0x210) /*!< ADC Touch Z Pressure Mean Value Sort 3 */
  1434. #define REG_ADC_MTMULCK (ADC_BA+0x220) /*!< ADC Manual Test Mode Unlock */
  1435. #define REG_ADC_MTCONF (ADC_BA+0x224) /*!< ADC Manual Test Mode Configure */
  1436. #define REG_ADC_MTCON (ADC_BA+0x228) /*!< ADC Manual Test Mode Control */
  1437. #define REG_ADC_ADCAII (ADC_BA+0x22C) /*!< ADC Analog Interface Information */
  1438. #define REG_ADC_ADCAIIRLT (ADC_BA+0x230) /*!< ADC Analog Interface Information Result */
  1439. /**@}*/ /* end of ADC register group */
  1440. /*------------------ Capture Sensor Interface Controller ---------------------*/
  1441. /**
  1442. @addtogroup CAP Capture Sensor Interface Controller(CAP)
  1443. Memory Mapped Structure for CAP Controller
  1444. @{ */
  1445. #define REG_CAP_CTL (CAP_BA+0x000) /*!< Image Capture Interface Control Register */
  1446. #define REG_CAP_PAR (CAP_BA+0x004) /*!< Image Capture Interface Parameter Register */
  1447. #define REG_CAP_INT (CAP_BA+0x008) /*!< Image Capture Interface Interrupt Registe */
  1448. #define REG_CAP_POSTERIZE (CAP_BA+0x00C) /*!< YUV Component Posterizing Factor Register */
  1449. #define REG_CAP_MD (CAP_BA+0x010) /*!< Motion Detection Register */
  1450. #define REG_CAP_MDADDR (CAP_BA+0x014) /*!< Motion Detection Output Address Register */
  1451. #define REG_CAP_MDYADDR (CAP_BA+0x018) /*!< Motion Detection Temp YOutput Address Register */
  1452. #define REG_CAP_SEPIA (CAP_BA+0x01C) /*!< Sepia Effect Control Register */
  1453. #define REG_CAP_CWSP (CAP_BA+0x020) /*!< Cropping Window Starting Address Register */
  1454. #define REG_CAP_CWS (CAP_BA+0x024) /*!< Cropping Window Size Register */
  1455. #define REG_CAP_PKTSL (CAP_BA+0x028) /*!< Packet Scaling Vertical/Horizontal Factor Register (LSB) */
  1456. #define REG_CAP_PLNSL (CAP_BA+0x02C) /*!< Planar Scaling Vertical/Horizontal Factor Register (LSB) */
  1457. #define REG_CAP_FRCTL (CAP_BA+0x030) /*!< Scaling Frame Rate Factor Register */
  1458. #define REG_CAP_STRIDE (CAP_BA+0x034) /*!< Frame Output Pixel Stride Register */
  1459. #define REG_CAP_FIFOTH (CAP_BA+0x03C) /*!< FIFO threshold Register */
  1460. #define REG_CAP_CMPADDR (CAP_BA+0x040) /*!< Compare Packet Memory Base Address Register */
  1461. #define REG_CAP_PKTSM (CAP_BA+0x048) /*!< Packet Scaling Vertical/Horizontal Factor Register (MSB) */
  1462. #define REG_CAP_PLNSM (CAP_BA+0x04C) /*!< Planar Scaling Vertical/Horizontal Factor Register (MSB) */
  1463. #define REG_CAP_CURADDRP (CAP_BA+0x050) /*!< Current Packet System Memory Address Register */
  1464. #define REG_CAP_CURADDRY (CAP_BA+0x054) /*!< Current Planar Y System Memory Address Register */
  1465. #define REG_CAP_CURADDRU (CAP_BA+0x058) /*!< Current Planar U System Memory Address Register */
  1466. #define REG_CAP_CURADDRV (CAP_BA+0x05C) /*!< Current Planar V System Memory Address Register */
  1467. #define REG_CAP_PKTBA0 (CAP_BA+0x060) /*!< System Memory Packet Base Address Register */
  1468. #define REG_CAP_PKTBA1 (CAP_BA+0x064) /*!< System Memory Packet Base Address Register */
  1469. #define REG_CAP_YBA (CAP_BA+0x080) /*!< System Memory Planar Y Base Address Register */
  1470. #define REG_CAP_UBA (CAP_BA+0x084) /*!< System Memory Planar U Base Address Register */
  1471. #define REG_CAP_VBA (CAP_BA+0x088) /*!< System Memory Planar V Base Address Register */
  1472. /**@}*/ /* end of CAP register group */
  1473. /*------------------ SDRAM Interface Controller ---------------------*/
  1474. /**
  1475. @addtogroup SDIC SDRAM Interface Controller(SDIC)
  1476. Memory Mapped Structure for SDIC Controller
  1477. @{ */
  1478. #define REG_SDIC_OPMCTL (SDIC_BA+0x000) /*!< SDRAM Controller Operation Mode Control Register */
  1479. #define REG_SDIC_CMD (SDIC_BA+0x004) /*!< SDRAM Command Register */
  1480. #define REG_SDIC_REFCTL (SDIC_BA+0x008) /*!< SDRAM Controller Refresh Control Register */
  1481. #define REG_SDIC_SIZE0 (SDIC_BA+0x010) /*!< SDRAM 0 Size Register */
  1482. #define REG_SDIC_SIZE1 (SDIC_BA+0x014) /*!< SDRAM 1 Size Register */
  1483. #define REG_SDIC_MR (SDIC_BA+0x018) /*!< SDRAM Mode Register */
  1484. #define REG_SDIC_EMR (SDIC_BA+0x01C) /*!< SDRAM Extended Mode Register */
  1485. #define REG_SDIC_EMR2 (SDIC_BA+0x020) /*!< SDRAM Extended Mode Register 2 */
  1486. #define REG_SDIC_EMR3 (SDIC_BA+0x024) /*!< SDRAM Extended Mode Register 3 */
  1487. #define REG_SDIC_TIME (SDIC_BA+0x028) /*!< SDRAM Timing Control Register */
  1488. #define REG_SDIC_DQSODS (SDIC_BA+0x030) /*!< DQS Output Delay Selection Register */
  1489. #define REG_SDIC_CKDQSDS (SDIC_BA+0x034) /*!< Clock and DQS Delay Selection Register */
  1490. #define REG_SDIC_DAENSEL (SDIC_BA+0x038) /*!< Data Latch Enable Selection Register */
  1491. /**@}*/ /* end of SDIC register group */
  1492. /*---------------------- Controller Area Network -------------------------*/
  1493. /**
  1494. @addtogroup CAN Controller Area Network(CAN)
  1495. Memory Mapped Structure for CAN Controller
  1496. @{ */
  1497. #define REG_CAN0_CON (CAN0_BA+0x00) /*!< Control Register */
  1498. #define REG_CAN0_STATUS (CAN0_BA+0x04) /*!< Status Register */
  1499. #define REG_CAN0_ERR (CAN0_BA+0x08) /*!< Error Counter Register */
  1500. #define REG_CAN0_BTIME (CAN0_BA+0x0C) /*!< Bit Time Register */
  1501. #define REG_CAN0_IIDR (CAN0_BA+0x10) /*!< Interrupt Identifier Register */
  1502. #define REG_CAN0_TEST (CAN0_BA+0x14) /*!< Test Register */
  1503. #define REG_CAN0_BRPE (CAN0_BA+0x18) /*!< BRP Extension Register */
  1504. #define REG_CAN0_IF1_CREQ (CAN0_BA+0x20) /*!< IF1 Command Request Register */
  1505. #define REG_CAN0_IF2_CREQ (CAN0_BA+0x80) /*!< IF2 Command Request Register */
  1506. #define REG_CAN0_IF1_CMASK (CAN0_BA+0x24) /*!< IF1 Command Mask Register */
  1507. #define REG_CAN0_IF2_CMASK (CAN0_BA+0x84) /*!< IF2 Command Mask Register */
  1508. #define REG_CAN0_IF1_MASK1 (CAN0_BA+0x28) /*!< IF1 Msak 1 Register */
  1509. #define REG_CNA0_IF2_MASK1 (CAN0_BA+0x88) /*!< IF2 Mask 1 Register */
  1510. #define REG_CAN0_IF1_MASK2 (CAN0_BA+0x2C) /*!< IF1 Mask 2 Register */
  1511. #define REG_CAN0_IF2_MASK2 (CAN0_BA+0x8C) /*!< IF2 Mask 2 REgister */
  1512. #define REG_CAN0_IF1_ARB1 (CAN0_BA+0x30) /*!< IF1 Arbitration 1 Register */
  1513. #define REG_CAN0_IF2_ARB1 (CAN0_BA+0x90) /*!< IF2 Arbitration 1 Register */
  1514. #define REG_CAN0_IF1_ARB2 (CAN0_BA+0x34) /*!< IF1 Arbitration 2 Register */
  1515. #define REG_CAN0_IF2_ARB2 (CAN0_BA+0x94) /*!< IF2 Arbitration 2 Register */
  1516. #define REG_CAN0_IF1_MCON (CAN0_BA+0x38) /*!< IF1 Message Control Register */
  1517. #define REG_CAN0_IF2_MCON (CAN0_BA+0x98) /*!< IF2 Message Control Register */
  1518. #define REG_CAN0_IF1_DAT_A1 (CAN0_BA+0x3C) /*!< IF1 Data A1 Register */
  1519. #define REG_CAN0_IF1_DAT_A2 (CAN0_BA+0x40) /*!< IF1 Data A2 Register */
  1520. #define REG_CAN0_IF1_DAT_B1 (CAN0_BA+0x44) /*!< IF1 Data B1 Register */
  1521. #define REG_CAN0_IF1_DAT_B2 (CAN0_BA+0x48) /*!< IF1 Data B2 Register */
  1522. #define REG_CAN0_IF2_DAT_A1 (CAN0_BA+0x9C) /*!< IF2 Data A1 Register */
  1523. #define REG_CAN0_IF2_DAT_A2 (CAN0_BA+0xA0) /*!< IF2 Data A2 Register */
  1524. #define REG_CAN0_IF2_DAT_B1 (CAN0_BA+0xA4) /*!< IF2 Data B1 Register */
  1525. #define REG_CAN0_IF2_DAT_B2 (CAN0_BA+0xA8) /*!< IF2 Data B2 Register */
  1526. #define REG_CAN0_TXREQ1 (CAN0_BA+0x100) /*!< Transmission Request Register 1 */
  1527. #define REG_CAN0_TXREQ2 (CAN0_BA+0x104) /*!< Transmission Request Register 2 */
  1528. #define REG_CAN0_NDAT1 (CAN0_BA+0x120) /*!< New Data Register 1 */
  1529. #define REG_CAN0_NDAT2 (CAN0_BA+0x124) /*!< New Data Register 2 */
  1530. #define REG_CAN0_IPND1 (CAN0_BA+0x140) /*!< Interrupt Pending Register 1 */
  1531. #define REG_CAN0_IPND2 (CAN0_BA+0x142) /*!< Interrupt Pending Register 2 */
  1532. #define REG_CAN0_MVLD1 (CAN0_BA+0x160) /*!< Message Valid Register 1 */
  1533. #define REG_CAN0_MVLD2 (CAN0_BA+0x164) /*!< Message Valid Register 2 */
  1534. #define REG_CAN0_WU_EN (CAN0_BA+0x168) /*!< Wake-up Function Enable */
  1535. #define REG_CAN0_WU_STATUS (CAN0_BA+0x16C) /*!< Wake-up Function Status */
  1536. #define REG_CAN1_CON (CAN1_BA+0x00) /*!< Control Register */
  1537. #define REG_CAN1_STATUS (CAN1_BA+0x04) /*!< Status Register */
  1538. #define REG_CAN1_ERR (CAN1_BA+0x08) /*!< Error Counter Register */
  1539. #define REG_CAN1_BTIME (CAN1_BA+0x0C) /*!< Bit Time Register */
  1540. #define REG_CAN1_IIDR (CAN1_BA+0x10) /*!< Interrupt Identifier Register */
  1541. #define REG_CAN1_TEST (CAN1_BA+0x14) /*!< Test Register */
  1542. #define REG_CAN1_BRPE (CAN1_BA+0x18) /*!< BRP Extension Register */
  1543. #define REG_CAN1_IF1_CREQ (CAN1_BA+0x20) /*!< IF1 Command Request Register */
  1544. #define REG_CAN1_IF2_CREQ (CAN1_BA+0x80) /*!< IF2 Command Request Register */
  1545. #define REG_CAN1_IF1_CMASK (CAN1_BA+0x24) /*!< IF1 Command Mask Register */
  1546. #define REG_CAN1_IF2_CMASK (CAN1_BA+0x84) /*!< IF2 Command Mask Register */
  1547. #define REG_CAN1_IF1_MASK1 (CAN1_BA+0x28) /*!< IF1 Msak 1 Register */
  1548. #define REG_CNA1_IF2_MASK1 (CAN1_BA+0x88) /*!< IF2 Mask 1 Register */
  1549. #define REG_CAN1_IF1_MASK2 (CAN1_BA+0x2C) /*!< IF1 Mask 2 Register */
  1550. #define REG_CAN1_IF2_MASK2 (CAN1_BA+0x8C) /*!< IF2 Mask 2 REgister */
  1551. #define REG_CAN1_IF1_ARB1 (CAN1_BA+0x30) /*!< IF1 Arbitration 1 Register */
  1552. #define REG_CAN1_IF2_ARB1 (CAN1_BA+0x90) /*!< IF2 Arbitration 1 Register */
  1553. #define REG_CAN1_IF1_ARB2 (CAN1_BA+0x34) /*!< IF1 Arbitration 2 Register */
  1554. #define REG_CAN1_IF2_ARB2 (CAN1_BA+0x94) /*!< IF2 Arbitration 2 Register */
  1555. #define REG_CAN1_IF1_MCON (CAN1_BA+0x38) /*!< IF1 Message Control Register */
  1556. #define REG_CAN1_IF2_MCON (CAN1_BA+0x98) /*!< IF2 Message Control Register */
  1557. #define REG_CAN1_IF1_DAT_A1 (CAN1_BA+0x3C) /*!< IF1 Data A1 Register */
  1558. #define REG_CAN1_IF1_DAT_A2 (CAN1_BA+0x40) /*!< IF1 Data A2 Register */
  1559. #define REG_CAN1_IF1_DAT_B1 (CAN1_BA+0x44) /*!< IF1 Data B1 Register */
  1560. #define REG_CAN1_IF1_DAT_B2 (CAN1_BA+0x48) /*!< IF1 Data B2 Register */
  1561. #define REG_CAN1_IF2_DAT_A1 (CAN1_BA+0x9C) /*!< IF2 Data A1 Register */
  1562. #define REG_CAN1_IF2_DAT_A2 (CAN1_BA+0xA0) /*!< IF2 Data A2 Register */
  1563. #define REG_CAN1_IF2_DAT_B1 (CAN1_BA+0xA4) /*!< IF2 Data B1 Register */
  1564. #define REG_CAN1_IF2_DAT_B2 (CAN1_BA+0xA8) /*!< IF2 Data B2 Register */
  1565. #define REG_CAN1_TXREQ1 (CAN1_BA+0x100) /*!< Transmission Request Register 1 */
  1566. #define REG_CAN1_TXREQ2 (CAN1_BA+0x104) /*!< Transmission Request Register 2 */
  1567. #define REG_CAN1_NDAT1 (CAN1_BA+0x120) /*!< New Data Register 1 */
  1568. #define REG_CAN1_NDAT2 (CAN1_BA+0x124) /*!< New Data Register 2 */
  1569. #define REG_CAN1_IPND1 (CAN1_BA+0x140) /*!< Interrupt Pending Register 1 */
  1570. #define REG_CAN1_IPND2 (CAN1_BA+0x142) /*!< Interrupt Pending Register 2 */
  1571. #define REG_CAN1_MVLD1 (CAN1_BA+0x160) /*!< Message Valid Register 1 */
  1572. #define REG_CAN1_MVLD2 (CAN1_BA+0x164) /*!< Message Valid Register 2 */
  1573. #define REG_CAN1_WU_EN (CAN1_BA+0x168) /*!< Wake-up Function Enable */
  1574. #define REG_CAN1_WU_STATUS (CAN1_BA+0x16C) /*!< Wake-up Function Status */
  1575. /**@}*/ /* end of CAN register group */
  1576. /*------------------- Multi-Time Programmable Controller --------------------*/
  1577. /**
  1578. @addtogroup MTP Multi-Time Programmable Controller (MTP)
  1579. Memory Mapped Structure for MTP Controller
  1580. @{ */
  1581. #define MTP_KEYEN (MTP_BA+0x000) /*!< MTP Key Enable Register */
  1582. #define MTP_USERDATA (MTP_BA+0x00C) /*!< MTP User Defined Data Register */
  1583. #define MTP_KEY0 (MTP_BA+0x010) /*!< MTP KEY 0 Register */
  1584. #define MTP_KEY1 (MTP_BA+0x014) /*!< MTP KEY 1 Register */
  1585. #define MTP_KEY2 (MTP_BA+0x018) /*!< MTP KEY 2 Register */
  1586. #define MTP_KEY3 (MTP_BA+0x01C) /*!< MTP KEY 3 Register */
  1587. #define MTP_KEY4 (MTP_BA+0x020) /*!< MTP KEY 4 Register */
  1588. #define MTP_KEY5 (MTP_BA+0x024) /*!< MTP KEY 5 Register */
  1589. #define MTP_KEY6 (MTP_BA+0x028) /*!< MTP KEY 6 Register */
  1590. #define MTP_KEY7 (MTP_BA+0x02C) /*!< MTP KEY 7 Register */
  1591. #define MTP_PCYCLE (MTP_BA+0x030) /*!< MTP Program Cycle Program Count Register */
  1592. #define MTP_CTL (MTP_BA+0x034) /*!< MTP Control Register */
  1593. #define MTP_PSTART (MTP_BA+0x038) /*!< MTP Program Start Registe */
  1594. #define MTP_STATUS (MTP_BA+0x040) /*!< MTP Status Registe */
  1595. #define MTP_REGLCTL (MTP_BA+0x050) /*!< MTP Register Write-Protection Control Register*/
  1596. /**@}*/ /* end of MTP register group */
  1597. /*------------------- JPEG Controller --------------------*/
  1598. /**
  1599. @addtogroup JPEG JPEG Controller (JPEG)
  1600. Memory Mapped Structure for JPEG Controller
  1601. @{ */
  1602. #define JMCR (JPEG_BA+0x00) /*!< JPEG Mode Control Register */
  1603. #define JHEADER (JPEG_BA+0x04) /*!< JPEG Encode Header Control Register */
  1604. #define JITCR (JPEG_BA+0x08) /*!< JPEG Image Type Control Register */
  1605. #define JPRIQC (JPEG_BA+0x10) /*!< JPEG Primary Q-Table Control Register */
  1606. #define JTHBQC (JPEG_BA+0x14) /*!< JPEG Thumbnail Q-Table Control Register */
  1607. #define JPRIWH (JPEG_BA+0x18) /*!< JPEG Encode Primary Width/Height Register */
  1608. #define JTHBWH (JPEG_BA+0x1C) /*!< JPEG Encode Thumbnail Width/Height Register */
  1609. #define JPRST (JPEG_BA+0x20) /*!< JPEG Encode Primary Restart Interval Register */
  1610. #define JTRST (JPEG_BA+0x24) /*!< JPEG Encode Thumbnail Restart Interval */
  1611. #define JDECWH (JPEG_BA+0x28) /*!< JPEG Decode Image Width/Height Register */
  1612. #define JINTCR (JPEG_BA+0x2C) /*!< JPEG Interrupt Control and Status Register */
  1613. #define JDOWFBS (JPEG_BA+0x3c) /*!< JPEG Decoding Output Wait Frame Buffer Size */
  1614. #define JPEG_BSBAD (JPEG_BA+0x40) /*!< JPEG Test Control Register */
  1615. #define JWINDEC0 (JPEG_BA+0x44) /*!< JPEG Window Decode Mode Control Register 0 */
  1616. #define JWINDEC1 (JPEG_BA+0x48) /*!< JPEG Window Decode Mode Control Register 1 */
  1617. #define JWINDEC2 (JPEG_BA+0x4C) /*!< JPEG Window Decode Mode Control Register 2 */
  1618. #define JMACR (JPEG_BA+0x50) /*!< JPEG Memory Address Mode Control Register */
  1619. #define JPSCALU (JPEG_BA+0x54) /*!< JPEG Primary Scaling-Up Control Register */
  1620. #define JPSCALD (JPEG_BA+0x58) /*!< JPEG Primary Scaling-Down Control Register */
  1621. #define JTSCALD (JPEG_BA+0x5C) /*!< JPEG Thumbnail Scaling-Down Control Register */
  1622. #define JDBCR (JPEG_BA+0x60) /*!< JPEG Dual-Buffer Control Register */
  1623. #define JRESERVE (JPEG_BA+0x70) /*!< JPEG Encode Primary Bit-stream Reserved Size Register */
  1624. #define JOFFSET (JPEG_BA+0x74) /*!< JPEG Offset Between Primary & Thumbnail Register */
  1625. #define JFSTRIDE (JPEG_BA+0x78) /*!< JPEG Encode Bit-stream Frame Stride Register */
  1626. #define JYADDR0 (JPEG_BA+0x7C) /*!< JPEG Y Component Frame Buffer-0 Starting Address Register */
  1627. #define JUADDR0 (JPEG_BA+0x80) /*!< JPEG U Component Frame Buffer-0 Starting Address Register */
  1628. #define JVADDR0 (JPEG_BA+0x84) /*!< JPEG V Component Frame Buffer-0 Starting Address Register */
  1629. #define JYADDR1 (JPEG_BA+0x88) /*!< JPEG Y Component Frame Buffer-1 Starting Address Register */
  1630. #define JUADDR1 (JPEG_BA+0x8C) /*!< JPEG U Component Frame Buffer-1 Starting Address Register */
  1631. #define JVADDR1 (JPEG_BA+0x90) /*!< JPEG V Component Frame Buffer-1 Starting Address Register */
  1632. #define JYSTRIDE (JPEG_BA+0x94) /*!< JPEG Y Component Frame Buffer Stride Register */
  1633. #define JUSTRIDE (JPEG_BA+0x98) /*!< JPEG U Component Frame Buffer Stride Register */
  1634. #define JVSTRIDE (JPEG_BA+0x9C) /*!< JPEG V Component Frame Buffer Stride Register */
  1635. #define JIOADDR0 (JPEG_BA+0xA0) /*!< JPEG Bit-stream Frame Buffer-0 Starting Address Register */
  1636. #define JIOADDR1 (JPEG_BA+0xA4) /*!< JPEG Bit-stream Frame Buffer-1 Starting Address Register */
  1637. #define JPRI_SIZE (JPEG_BA+0xA8) /*!< JPEG Encode Primary Image Bit-stream Size Register */
  1638. #define JTHB_SIZE (JPEG_BA+0xAC) /*!< JPEG Encode Thumbnail Image Bit-stream Size Register */
  1639. #define JUPRAT (JPEG_BA+0xB0) /*!< JPEG Encode Up-Scale Ratio Register */
  1640. #define JBSFIFO (JPEG_BA+0xB4) /*!< JPEG Bit-stream FIFO Control Register */
  1641. #define JSRCH (JPEG_BA+0xB8) /*!< JPEG Encode Source Image Height */
  1642. #define JQTAB0 (JPEG_BA+0x100) /*!< JPEG Quantization-Table 0 Register */
  1643. #define JQTAB1 (JPEG_BA+0x140) /*!< JPEG Quantization-Table 1 Register */
  1644. #define JQTAB2 (JPEG_BA+0x180) /*!< JPEG Quantization-Table 2 Register */
  1645. /**@}*/ /* end of JPEG register group */
  1646. /*@}*/ /* end of group N9H30_Peripherals */
  1647. /** @addtogroup N9H30_IO_ROUTINE N9H30 I/O Routines
  1648. The Declaration of N9H30 I/O Routines
  1649. @{
  1650. */
  1651. typedef volatile unsigned char vu8; ///< Define 8-bit unsigned volatile data type
  1652. typedef volatile unsigned short vu16; ///< Define 16-bit unsigned volatile data type
  1653. typedef volatile unsigned long vu32; ///< Define 32-bit unsigned volatile data type
  1654. /**
  1655. * @brief Get a 8-bit unsigned value from specified address
  1656. * @param[in] addr Address to get 8-bit data from
  1657. * @return 8-bit unsigned value stored in specified address
  1658. */
  1659. #define M8(addr) (*((vu8 *) (addr)))
  1660. /**
  1661. * @brief Get a 16-bit unsigned value from specified address
  1662. * @param[in] addr Address to get 16-bit data from
  1663. * @return 16-bit unsigned value stored in specified address
  1664. * @note The input address must be 16-bit aligned
  1665. */
  1666. #define M16(addr) (*((vu16 *) (addr)))
  1667. /**
  1668. * @brief Get a 32-bit unsigned value from specified address
  1669. * @param[in] addr Address to get 32-bit data from
  1670. * @return 32-bit unsigned value stored in specified address
  1671. * @note The input address must be 32-bit aligned
  1672. */
  1673. #define M32(addr) (*((vu32 *) (addr)))
  1674. /**
  1675. * @brief Set a 32-bit unsigned value to specified I/O port
  1676. * @param[in] port Port address to set 32-bit data
  1677. * @param[in] value Value to write to I/O port
  1678. * @return None
  1679. * @note The output port must be 32-bit aligned
  1680. */
  1681. #define outpw(port,value) *((volatile unsigned int *)(port)) = value
  1682. /**
  1683. * @brief Get a 32-bit unsigned value from specified I/O port
  1684. * @param[in] port Port address to get 32-bit data from
  1685. * @return 32-bit unsigned value stored in specified I/O port
  1686. * @note The input port must be 32-bit aligned
  1687. */
  1688. #define inpw(port) (*((volatile unsigned int *)(port)))
  1689. /**
  1690. * @brief Set a 16-bit unsigned value to specified I/O port
  1691. * @param[in] port Port address to set 16-bit data
  1692. * @param[in] value Value to write to I/O port
  1693. * @return None
  1694. * @note The output port must be 16-bit aligned
  1695. */
  1696. #define outps(port,value) *((volatile unsigned short *)(port)) = value
  1697. /**
  1698. * @brief Get a 16-bit unsigned value from specified I/O port
  1699. * @param[in] port Port address to get 16-bit data from
  1700. * @return 16-bit unsigned value stored in specified I/O port
  1701. * @note The input port must be 16-bit aligned
  1702. */
  1703. #define inps(port) (*((volatile unsigned short *)(port)))
  1704. /**
  1705. * @brief Set a 8-bit unsigned value to specified I/O port
  1706. * @param[in] port Port address to set 8-bit data
  1707. * @param[in] value Value to write to I/O port
  1708. * @return None
  1709. */
  1710. #define outpb(port,value) *((volatile unsigned char *)(port)) = value
  1711. /**
  1712. * @brief Get a 8-bit unsigned value from specified I/O port
  1713. * @param[in] port Port address to get 8-bit data from
  1714. * @return 8-bit unsigned value stored in specified I/O port
  1715. */
  1716. #define inpb(port) (*((volatile unsigned char *)(port)))
  1717. /**
  1718. * @brief Set a 32-bit unsigned value to specified I/O port
  1719. * @param[in] port Port address to set 32-bit data
  1720. * @param[in] value Value to write to I/O port
  1721. * @return None
  1722. * @note The output port must be 32-bit aligned
  1723. */
  1724. #define outp32(port,value) *((volatile unsigned int *)(port)) = value
  1725. /**
  1726. * @brief Get a 32-bit unsigned value from specified I/O port
  1727. * @param[in] port Port address to get 32-bit data from
  1728. * @return 32-bit unsigned value stored in specified I/O port
  1729. * @note The input port must be 32-bit aligned
  1730. */
  1731. #define inp32(port) (*((volatile unsigned int *)(port)))
  1732. /**
  1733. * @brief Set a 16-bit unsigned value to specified I/O port
  1734. * @param[in] port Port address to set 16-bit data
  1735. * @param[in] value Value to write to I/O port
  1736. * @return None
  1737. * @note The output port must be 16-bit aligned
  1738. */
  1739. #define outp16(port,value) *((volatile unsigned short *)(port)) = value
  1740. /**
  1741. * @brief Get a 16-bit unsigned value from specified I/O port
  1742. * @param[in] port Port address to get 16-bit data from
  1743. * @return 16-bit unsigned value stored in specified I/O port
  1744. * @note The input port must be 16-bit aligned
  1745. */
  1746. #define inp16(port) (*((volatile unsigned short *)(port)))
  1747. /**
  1748. * @brief Set a 8-bit unsigned value to specified I/O port
  1749. * @param[in] port Port address to set 8-bit data
  1750. * @param[in] value Value to write to I/O port
  1751. * @return None
  1752. */
  1753. #define outp8(port,value) *((volatile unsigned char *)(port)) = value
  1754. /**
  1755. * @brief Get a 8-bit unsigned value from specified I/O port
  1756. * @param[in] port Port address to get 8-bit data from
  1757. * @return 8-bit unsigned value stored in specified I/O port
  1758. */
  1759. #define inp8(port) (*((volatile unsigned char *)(port)))
  1760. /*@}*/ /* end of group N9H30_IO_ROUTINE */
  1761. /******************************************************************************/
  1762. /* Legacy Constants */
  1763. /******************************************************************************/
  1764. /** @addtogroup N9H30_legacy_Constants N9H30 Legacy Constants
  1765. N9H30 Legacy Constants
  1766. @{
  1767. */
  1768. typedef void *PVOID; ///< Define void pointer data type
  1769. typedef void VOID; ///< Define void data type
  1770. typedef char BOOL; ///< Define bool data type
  1771. typedef char *PBOOL; ///< Define bool pointer data type
  1772. typedef char INT8; ///< Define 8-bit singed data type
  1773. typedef char CHAR; ///< Define char data type
  1774. typedef char *PINT8; ///< Define 8-bit singed pointer data type
  1775. typedef char *PCHAR; ///< Define char pointer data type
  1776. typedef unsigned char UINT8; ///< Define 8-bit unsigned data type
  1777. typedef unsigned char UCHAR; ///< Define char unsigned data type
  1778. typedef unsigned char *PUINT8; ///< Define 8-bit unsigned pointer data type
  1779. typedef unsigned char *PUCHAR; ///< Define char unsigned pointer data type
  1780. typedef char *PSTR; ///< Define string pointer data type
  1781. typedef const char *PCSTR; ///< Define constant string pointer data type
  1782. typedef short SHORT; ///< Define short signed data type
  1783. typedef short *PSHORT; ///< Define short signed pointer data type
  1784. typedef unsigned short USHORT; ///< Define short unsigned data type
  1785. typedef unsigned short *PUSHORT; ///< Define short unsigned pointer data type
  1786. typedef short INT16; ///< Define 16-bit signed data type
  1787. typedef short *PINT16; ///< Define 16-bit signed pointer data type
  1788. typedef unsigned short UINT16; ///< Define 16-bit unsigned data type
  1789. typedef unsigned short *PUINT16; ///< Define 16-bit unsigned pointer data type
  1790. typedef int INT; ///< Define integer signed data type
  1791. typedef int *PINT; ///< Define integer signed pointer data type
  1792. typedef unsigned int UINT; ///< Define integer unsigned data type
  1793. typedef unsigned int *PUINT; ///< Define integer unsigned pointer data type
  1794. typedef int INT32; ///< Define 32-bit signed data type
  1795. typedef int *PINT32; ///< Define 32-bit signed pointer data type
  1796. typedef unsigned int UINT32; ///< Define 32-bit unsigned data type
  1797. typedef unsigned int *PUINT32; ///< Define 32-bit unsigned pointer data type
  1798. #if defined ( __GNUC__ ) && !(__CC_ARM)
  1799. typedef long long INT64;
  1800. typedef unsigned long long UINT64;
  1801. #else
  1802. typedef __int64 INT64; ///< Define 64-bit signed data type
  1803. typedef unsigned __int64 UINT64; ///< Define 64-bit unsigned data type
  1804. #endif
  1805. typedef float FLOAT; ///< Define float data type
  1806. typedef float *PFLOAT; ///< Define float pointer data type
  1807. typedef double DOUBLE; ///< Define double data type
  1808. typedef double *PDOUBLE; ///< Define double pointer data type
  1809. typedef int SIZE_T; ///< Define size of data type
  1810. typedef unsigned char REG8; ///< Define 8-bit register data type
  1811. typedef unsigned short REG16; ///< Define 16-bit register data type
  1812. typedef unsigned int REG32; ///< Define 32-bit register data type
  1813. #ifndef NULL
  1814. #define NULL (0) ///< NULL pointer
  1815. #endif
  1816. #define TRUE (1) ///< Boolean true, define to use in API parameters or return value
  1817. #define FALSE (0) ///< Boolean false, define to use in API parameters or return value
  1818. #define ENABLE (1) ///< Enable, define to use in API parameters
  1819. #define DISABLE (0) ///< Disable, define to use in API parameters
  1820. #define Successful 0 ///< Function return value success
  1821. #define Fail 1 ///< Function return value failed
  1822. /* Define one bit mask */
  1823. #define BIT0 (0x00000001) ///< Bit 0 mask of an 32 bit integer
  1824. #define BIT1 (0x00000002) ///< Bit 1 mask of an 32 bit integer
  1825. #define BIT2 (0x00000004) ///< Bit 2 mask of an 32 bit integer
  1826. #define BIT3 (0x00000008) ///< Bit 3 mask of an 32 bit integer
  1827. #define BIT4 (0x00000010) ///< Bit 4 mask of an 32 bit integer
  1828. #define BIT5 (0x00000020) ///< Bit 5 mask of an 32 bit integer
  1829. #define BIT6 (0x00000040) ///< Bit 6 mask of an 32 bit integer
  1830. #define BIT7 (0x00000080) ///< Bit 7 mask of an 32 bit integer
  1831. #define BIT8 (0x00000100) ///< Bit 8 mask of an 32 bit integer
  1832. #define BIT9 (0x00000200) ///< Bit 9 mask of an 32 bit integer
  1833. #define BIT10 (0x00000400) ///< Bit 10 mask of an 32 bit integer
  1834. #define BIT11 (0x00000800) ///< Bit 11 mask of an 32 bit integer
  1835. #define BIT12 (0x00001000) ///< Bit 12 mask of an 32 bit integer
  1836. #define BIT13 (0x00002000) ///< Bit 13 mask of an 32 bit integer
  1837. #define BIT14 (0x00004000) ///< Bit 14 mask of an 32 bit integer
  1838. #define BIT15 (0x00008000) ///< Bit 15 mask of an 32 bit integer
  1839. #define BIT16 (0x00010000) ///< Bit 16 mask of an 32 bit integer
  1840. #define BIT17 (0x00020000) ///< Bit 17 mask of an 32 bit integer
  1841. #define BIT18 (0x00040000) ///< Bit 18 mask of an 32 bit integer
  1842. #define BIT19 (0x00080000) ///< Bit 19 mask of an 32 bit integer
  1843. #define BIT20 (0x00100000) ///< Bit 20 mask of an 32 bit integer
  1844. #define BIT21 (0x00200000) ///< Bit 21 mask of an 32 bit integer
  1845. #define BIT22 (0x00400000) ///< Bit 22 mask of an 32 bit integer
  1846. #define BIT23 (0x00800000) ///< Bit 23 mask of an 32 bit integer
  1847. #define BIT24 (0x01000000) ///< Bit 24 mask of an 32 bit integer
  1848. #define BIT25 (0x02000000) ///< Bit 25 mask of an 32 bit integer
  1849. #define BIT26 (0x04000000) ///< Bit 26 mask of an 32 bit integer
  1850. #define BIT27 (0x08000000) ///< Bit 27 mask of an 32 bit integer
  1851. #define BIT28 (0x10000000) ///< Bit 28 mask of an 32 bit integer
  1852. #define BIT29 (0x20000000) ///< Bit 29 mask of an 32 bit integer
  1853. #define BIT30 (0x40000000) ///< Bit 30 mask of an 32 bit integer
  1854. #define BIT31 (0x80000000) ///< Bit 31 mask of an 32 bit integer
  1855. /* Byte Mask Definitions */
  1856. #define BYTE0_Msk (0x000000FF) ///< Mask to get bit0~bit7 from a 32 bit integer
  1857. #define BYTE1_Msk (0x0000FF00) ///< Mask to get bit8~bit15 from a 32 bit integer
  1858. #define BYTE2_Msk (0x00FF0000) ///< Mask to get bit16~bit23 from a 32 bit integer
  1859. #define BYTE3_Msk (0xFF000000) ///< Mask to get bit24~bit31 from a 32 bit integer
  1860. #define GET_BYTE0(u32Param) ((u32Param & BYTE0_Msk) ) /*!< Extract Byte 0 (Bit 0~ 7) from parameter u32Param */
  1861. #define GET_BYTE1(u32Param) ((u32Param & BYTE1_Msk) >> 8) /*!< Extract Byte 1 (Bit 8~15) from parameter u32Param */
  1862. #define GET_BYTE2(u32Param) ((u32Param & BYTE2_Msk) >> 16) /*!< Extract Byte 2 (Bit 16~23) from parameter u32Param */
  1863. #define GET_BYTE3(u32Param) ((u32Param & BYTE3_Msk) >> 24) /*!< Extract Byte 3 (Bit 24~31) from parameter u32Param */
  1864. #ifdef __cplusplus
  1865. #define __I volatile /*!< Defines 'read only' permissions */
  1866. #else
  1867. #define __I volatile const /*!< Defines 'read only' permissions */
  1868. #endif
  1869. #define __O volatile /*!< Defines 'write only' permissions */
  1870. #define __IO volatile /*!< Defines 'read / write' permissions */
  1871. extern void __nop(void);
  1872. #endif /* __N9H30_H__ */
  1873. /*@}*/ /* end of group N9H30_legacy_Constants */