NV32.h 133 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829
  1. /*
  2. * @brief CMSIS Peripheral Access Layer for NV32
  3. *
  4. * CMSIS Peripheral Access Layer for NV32
  5. */
  6. #if !defined(NV32_H_)
  7. #define NV32_H_ /**< Symbol preventing repeated inclusion */
  8. /** Memory map major version (memory maps with equal major version number are
  9. * compatible) */
  10. #define MCU_MEM_MAP_VERSION 0x0100u
  11. /** Memory map minor version */
  12. #define MCU_MEM_MAP_VERSION_MINOR 0x0004u
  13. /* ----------------------------------------------------------------------------
  14. -- Interrupt vector numbers
  15. ---------------------------------------------------------------------------- */
  16. /*!
  17. * @addtogroup Interrupt_vector_numbers Interrupt vector numbers
  18. * @{
  19. */
  20. /** Interrupt Number Definitions */
  21. typedef enum IRQn {
  22. /* Core interrupts */
  23. NonMaskableInt_IRQn = -14, /**< Non Maskable Interrupt */
  24. HardFault_IRQn = -13, /**< Cortex-M0 SV Hard Fault Interrupt */
  25. SVCall_IRQn = -5, /**< Cortex-M0 SV Call Interrupt */
  26. PendSV_IRQn = -2, /**< Cortex-M0 Pend SV Interrupt */
  27. SysTick_IRQn = -1, /**< Cortex-M0 System Tick Interrupt */
  28. /* Device specific interrupts */
  29. Reserved16_IRQn = 0, /**< Reserved interrupt 16 */
  30. Reserved17_IRQn = 1, /**< Reserved interrupt 17 */
  31. Reserved18_IRQn = 2, /**< Reserved interrupt 18 */
  32. Reserved19_IRQn = 3, /**< Reserved interrupt 19 */
  33. Reserved20_IRQn = 4, /**< Reserved interrupt 20 */
  34. ETMRH_IRQn = 5, /**< ETMRH command complete/read collision interrupt */
  35. LVD_LVW_IRQn = 6, /**< Low Voltage Detect, Low Voltage Warning */
  36. IRQ_IRQn = 7, /**< External interrupt */
  37. I2C0_IRQn = 8, /**< I2C0 interrupt */
  38. Reserved25_IRQn = 9, /**< Reserved interrupt 25 */
  39. SPI0_IRQn = 10, /**< SPI0 interrupt */
  40. SPI1_IRQn = 11, /**< SPI1 interrupt */
  41. UART0_IRQn = 12, /**< UART0 status/error interrupt */
  42. UART1_IRQn = 13, /**< UART1 status/error interrupt */
  43. UART2_IRQn = 14, /**< UART2 status/error interrupt */
  44. ADC0_IRQn = 15, /**< ADC0 interrupt */
  45. ACMP0_IRQn = 16, /**< ACMP0 interrupt */
  46. ETM0_IRQn = 17, /**< ETM0 Single interrupt vector for all sources */
  47. ETM1_IRQn = 18, /**< ETM1 Single interrupt vector for all sources */
  48. ETM2_IRQn = 19, /**< ETM2 Single interrupt vector for all sources */
  49. RTC_IRQn = 20, /**< RTC overflow */
  50. ACMP1_IRQn = 21, /**< ACMP1 interrupt */
  51. PIT_CH0_IRQn = 22, /**< PIT CH0 overflow */
  52. PIT_CH1_IRQn = 23, /**< PIT CH1 overflow */
  53. KBI0_IRQn = 24, /**< Keyboard interrupt 0 */
  54. KBI1_IRQn = 25, /**< Keyboard interrupt 1 */
  55. Reserved42_IRQn = 26, /**< Reserved interrupt 42 */
  56. ICS_IRQn = 27, /**< ICS interrupt */
  57. Watchdog_IRQn = 28, /**< WDOG Interrupt */
  58. Reserved45_IRQn = 29, /**< Reserved interrupt 45 */
  59. Reserved46_IRQn = 30, /**< Reserved interrupt 46 */
  60. Reserved47_IRQn = 31 /**< Reserved interrupt 47 */
  61. } IRQn_Type;
  62. /*!
  63. * @}
  64. */ /* end of group Interrupt_vector_numbers */
  65. /* ----------------------------------------------------------------------------
  66. -- Cortex M0 Core Configuration
  67. ---------------------------------------------------------------------------- */
  68. /*!
  69. * @addtogroup Cortex_Core_Configuration Cortex M0 Core Configuration
  70. * @{
  71. */
  72. #define __CM0PLUS_REV 0x0000 /**< Core revision r0p0 */
  73. #define __MPU_PRESENT 0 /**< Defines if an MPU is present or not */
  74. #define __VTOR_PRESENT 1 /**< Defines if an MPU is present or not */
  75. #define __NVIC_PRIO_BITS 2 /**< Number of priority bits implemented in the NVIC */
  76. #define __Vendor_SysTickConfig 0 /**< Vendor specific implementation of SysTickConfig is defined */
  77. #include "core_cm0plus.h" /* Core Peripheral Access Layer */
  78. //#include "system_nv32.h" /* Device specific configuration file */
  79. /*!
  80. * @}
  81. */ /* end of group Cortex_Core_Configuration */
  82. /* ----------------------------------------------------------------------------
  83. -- Device Peripheral Access Layer
  84. ---------------------------------------------------------------------------- */
  85. /*!
  86. * @addtogroup Peripheral_access_layer Device Peripheral Access Layer
  87. * @{
  88. */
  89. /*
  90. ** Start of section using anonymous unions
  91. */
  92. #if defined(__ARMCC_VERSION)
  93. #pragma push
  94. #pragma anon_unions
  95. #elif defined(__CWCC__)
  96. #pragma push
  97. #pragma cpp_extensions on
  98. #elif defined(__GNUC__)
  99. /* anonymous unions are enabled by default */
  100. #elif defined(__IAR_SYSTEMS_ICC__)
  101. #pragma language=extended
  102. #else
  103. #error Not supported compiler type
  104. #endif
  105. /* ----------------------------------------------------------------------------
  106. -- ACMP Peripheral Access Layer
  107. ---------------------------------------------------------------------------- */
  108. /*!
  109. * @addtogroup ACMP_Peripheral_Access_Layer ACMP Peripheral Access Layer
  110. * @{
  111. */
  112. /** ACMP - Register Layout Typedef */
  113. typedef struct {
  114. __IO uint8_t CS; /**< ACMP Control and Status Register, offset: 0x0 */
  115. __IO uint8_t C0; /**< ACMP Control Register 0, offset: 0x1 */
  116. __IO uint8_t C1; /**< ACMP Control Register 1, offset: 0x2 */
  117. __IO uint8_t C2; /**< ACMP Control Register 2, offset: 0x3 */
  118. } ACMP_Type;
  119. /* ----------------------------------------------------------------------------
  120. -- ACMP Register Masks
  121. ---------------------------------------------------------------------------- */
  122. /*!
  123. * @addtogroup ACMP_Register_Masks ACMP Register Masks
  124. * @{
  125. */
  126. /* CS Bit Fields */
  127. #define ACMP_CS_ACMOD_MASK 0x3u
  128. #define ACMP_CS_ACMOD_SHIFT 0
  129. #define ACMP_CS_ACMOD(x) (((uint8_t)(((uint8_t)(x))<<ACMP_CS_ACMOD_SHIFT))&ACMP_CS_ACMOD_MASK)
  130. #define ACMP_CS_ACOPE_MASK 0x4u
  131. #define ACMP_CS_ACOPE_SHIFT 2
  132. #define ACMP_CS_ACO_MASK 0x8u
  133. #define ACMP_CS_ACO_SHIFT 3
  134. #define ACMP_CS_ACIE_MASK 0x10u
  135. #define ACMP_CS_ACIE_SHIFT 4
  136. #define ACMP_CS_ACF_MASK 0x20u
  137. #define ACMP_CS_ACF_SHIFT 5
  138. #define ACMP_CS_HYST_MASK 0x40u
  139. #define ACMP_CS_HYST_SHIFT 6
  140. #define ACMP_CS_ACE_MASK 0x80u
  141. #define ACMP_CS_ACE_SHIFT 7
  142. /* C0 Bit Fields */
  143. #define ACMP_C0_ACNSEL_MASK 0x3u
  144. #define ACMP_C0_ACNSEL_SHIFT 0
  145. #define ACMP_C0_ACNSEL(x) (((uint8_t)(((uint8_t)(x))<<ACMP_C0_ACNSEL_SHIFT))&ACMP_C0_ACNSEL_MASK)
  146. #define ACMP_C0_ACPSEL_MASK 0x30u
  147. #define ACMP_C0_ACPSEL_SHIFT 4
  148. #define ACMP_C0_ACPSEL(x) (((uint8_t)(((uint8_t)(x))<<ACMP_C0_ACPSEL_SHIFT))&ACMP_C0_ACPSEL_MASK)
  149. /* C1 Bit Fields */
  150. #define ACMP_C1_DACVAL_MASK 0x3Fu
  151. #define ACMP_C1_DACVAL_SHIFT 0
  152. #define ACMP_C1_DACVAL(x) (((uint8_t)(((uint8_t)(x))<<ACMP_C1_DACVAL_SHIFT))&ACMP_C1_DACVAL_MASK)
  153. #define ACMP_C1_DACREF_MASK 0x40u
  154. #define ACMP_C1_DACREF_SHIFT 6
  155. #define ACMP_C1_DACEN_MASK 0x80u
  156. #define ACMP_C1_DACEN_SHIFT 7
  157. /* C2 Bit Fields */
  158. #define ACMP_C2_ACIPE_MASK 0x7u
  159. #define ACMP_C2_ACIPE_SHIFT 0
  160. #define ACMP_C2_ACIPE(x) (((uint8_t)(((uint8_t)(x))<<ACMP_C2_ACIPE_SHIFT))&ACMP_C2_ACIPE_MASK)
  161. /*!
  162. * @}
  163. */ /* end of group ACMP_Register_Masks */
  164. /* ACMP - Peripheral instance base addresses */
  165. /** Peripheral ACMP0 base address */
  166. #define ACMP0_BASE (0x40073000u)
  167. /** Peripheral ACMP0 base pointer */
  168. #define ACMP0 ((ACMP_Type *)ACMP0_BASE)
  169. /** Peripheral ACMP1 base address */
  170. #define ACMP1_BASE (0x40074000u)
  171. /** Peripheral ACMP1 base pointer */
  172. #define ACMP1 ((ACMP_Type *)ACMP1_BASE)
  173. /** Array initializer of ACMP peripheral base pointers */
  174. #define ACMP_BASES { ACMP0, ACMP1 }
  175. /*!
  176. * @}
  177. */ /* end of group ACMP_Peripheral_Access_Layer */
  178. /* ----------------------------------------------------------------------------
  179. -- ADC Peripheral Access Layer
  180. ---------------------------------------------------------------------------- */
  181. /*!
  182. * @addtogroup ADC_Peripheral_Access_Layer ADC Peripheral Access Layer
  183. * @{
  184. */
  185. /** ADC - Register Layout Typedef */
  186. typedef struct {
  187. __IO uint32_t SC1; /**< Status and Control Register 1, offset: 0x0 */
  188. __IO uint32_t SC2; /**< Status and Control Register 2, offset: 0x4 */
  189. __IO uint32_t SC3; /**< Status and Control Register 3, offset: 0x8 */
  190. __IO uint32_t SC4; /**< Status and Control Register 4, offset: 0xC */
  191. __I uint32_t R; /**< Conversion Result Register, offset: 0x10 */
  192. __IO uint32_t CV; /**< Compare Value Register, offset: 0x14 */
  193. __IO uint32_t APCTL1; /**< Pin Control 1 Register, offset: 0x18 */
  194. } ADC_Type;
  195. /* ----------------------------------------------------------------------------
  196. -- ADC Register Masks
  197. ---------------------------------------------------------------------------- */
  198. /*!
  199. * @addtogroup ADC_Register_Masks ADC Register Masks
  200. * @{
  201. */
  202. /* SC1 Bit Fields */
  203. #define ADC_SC1_ADCH_MASK 0x1Fu
  204. #define ADC_SC1_ADCH_SHIFT 0
  205. #define ADC_SC1_ADCH(x) (((uint32_t)(((uint32_t)(x))<<ADC_SC1_ADCH_SHIFT))&ADC_SC1_ADCH_MASK)
  206. #define ADC_SC1_ADCO_MASK 0x20u
  207. #define ADC_SC1_ADCO_SHIFT 5
  208. #define ADC_SC1_AIEN_MASK 0x40u
  209. #define ADC_SC1_AIEN_SHIFT 6
  210. #define ADC_SC1_COCO_MASK 0x80u
  211. #define ADC_SC1_COCO_SHIFT 7
  212. /* SC2 Bit Fields */
  213. #define ADC_SC2_REFSEL_MASK 0x3u
  214. #define ADC_SC2_REFSEL_SHIFT 0
  215. #define ADC_SC2_REFSEL(x) (((uint32_t)(((uint32_t)(x))<<ADC_SC2_REFSEL_SHIFT))&ADC_SC2_REFSEL_MASK)
  216. #define ADC_SC2_FFULL_MASK 0x4u
  217. #define ADC_SC2_FFULL_SHIFT 2
  218. #define ADC_SC2_FEMPTY_MASK 0x8u
  219. #define ADC_SC2_FEMPTY_SHIFT 3
  220. #define ADC_SC2_ACFGT_MASK 0x10u
  221. #define ADC_SC2_ACFGT_SHIFT 4
  222. #define ADC_SC2_ACFE_MASK 0x20u
  223. #define ADC_SC2_ACFE_SHIFT 5
  224. #define ADC_SC2_ADTRG_MASK 0x40u
  225. #define ADC_SC2_ADTRG_SHIFT 6
  226. #define ADC_SC2_ADACT_MASK 0x80u
  227. #define ADC_SC2_ADACT_SHIFT 7
  228. /* SC3 Bit Fields */
  229. #define ADC_SC3_ADICLK_MASK 0x3u
  230. #define ADC_SC3_ADICLK_SHIFT 0
  231. #define ADC_SC3_ADICLK(x) (((uint32_t)(((uint32_t)(x))<<ADC_SC3_ADICLK_SHIFT))&ADC_SC3_ADICLK_MASK)
  232. #define ADC_SC3_MODE_MASK 0xCu
  233. #define ADC_SC3_MODE_SHIFT 2
  234. #define ADC_SC3_MODE(x) (((uint32_t)(((uint32_t)(x))<<ADC_SC3_MODE_SHIFT))&ADC_SC3_MODE_MASK)
  235. #define ADC_SC3_ADLSMP_MASK 0x10u
  236. #define ADC_SC3_ADLSMP_SHIFT 4
  237. #define ADC_SC3_ADIV_MASK 0x60u
  238. #define ADC_SC3_ADIV_SHIFT 5
  239. #define ADC_SC3_ADIV(x) (((uint32_t)(((uint32_t)(x))<<ADC_SC3_ADIV_SHIFT))&ADC_SC3_ADIV_MASK)
  240. #define ADC_SC3_ADLPC_MASK 0x80u
  241. #define ADC_SC3_ADLPC_SHIFT 7
  242. /* SC4 Bit Fields */
  243. #define ADC_SC4_AFDEP_MASK 0x7u
  244. #define ADC_SC4_AFDEP_SHIFT 0
  245. #define ADC_SC4_AFDEP(x) (((uint32_t)(((uint32_t)(x))<<ADC_SC4_AFDEP_SHIFT))&ADC_SC4_AFDEP_MASK)
  246. #define ADC_SC4_ACFSEL_MASK 0x20u
  247. #define ADC_SC4_ACFSEL_SHIFT 5
  248. #define ADC_SC4_ASCANE_MASK 0x40u
  249. #define ADC_SC4_ASCANE_SHIFT 6
  250. /* R Bit Fields */
  251. #define ADC_R_ADR_MASK 0xFFFu
  252. #define ADC_R_ADR_SHIFT 0
  253. #define ADC_R_ADR(x) (((uint32_t)(((uint32_t)(x))<<ADC_R_ADR_SHIFT))&ADC_R_ADR_MASK)
  254. /* CV Bit Fields */
  255. #define ADC_CV_CV_MASK 0xFFFu
  256. #define ADC_CV_CV_SHIFT 0
  257. #define ADC_CV_CV(x) (((uint32_t)(((uint32_t)(x))<<ADC_CV_CV_SHIFT))&ADC_CV_CV_MASK)
  258. /* APCTL1 Bit Fields */
  259. #define ADC_APCTL1_ADPC_MASK 0xFFFFFFFFu
  260. #define ADC_APCTL1_ADPC_SHIFT 0
  261. #define ADC_APCTL1_ADPC(x) (((uint32_t)(((uint32_t)(x))<<ADC_APCTL1_ADPC_SHIFT))&ADC_APCTL1_ADPC_MASK)
  262. /*!
  263. * @}
  264. */ /* end of group ADC_Register_Masks */
  265. /* ADC - Peripheral instance base addresses */
  266. /** Peripheral ADC base address */
  267. #define ADC_BASE (0x4003B000u)
  268. /** Peripheral ADC base pointer */
  269. #define ADC ((ADC_Type *)ADC_BASE)
  270. /** Array initializer of ADC peripheral base pointers */
  271. #define ADC_BASES { ADC }
  272. /*!
  273. * @}
  274. */ /* end of group ADC_Peripheral_Access_Layer */
  275. /* ----------------------------------------------------------------------------
  276. -- CRC Peripheral Access Layer
  277. ---------------------------------------------------------------------------- */
  278. /*!
  279. * @addtogroup CRC_Peripheral_Access_Layer CRC Peripheral Access Layer
  280. * @{
  281. */
  282. /** CRC - Register Layout Typedef */
  283. typedef struct {
  284. union { /* offset: 0x0 */
  285. struct { /* offset: 0x0 */
  286. __IO uint16_t DATAL; /**< CRC_DATAL register., offset: 0x0 */
  287. __IO uint16_t DATAH; /**< CRC_DATAH register., offset: 0x2 */
  288. } ACCESS16BIT;
  289. __IO uint32_t DATA; /**< CRC Data register, offset: 0x0 */
  290. struct { /* offset: 0x0 */
  291. __IO uint8_t DATALL; /**< CRC_DATALL register., offset: 0x0 */
  292. __IO uint8_t DATALU; /**< CRC_DATALU register., offset: 0x1 */
  293. __IO uint8_t DATAHL; /**< CRC_DATAHL register., offset: 0x2 */
  294. __IO uint8_t DATAHU; /**< CRC_DATAHU register., offset: 0x3 */
  295. } ACCESS8BIT;
  296. };
  297. union { /* offset: 0x4 */
  298. struct { /* offset: 0x4 */
  299. __IO uint16_t GPOLYL; /**< CRC_GPOLYL register., offset: 0x4 */
  300. __IO uint16_t GPOLYH; /**< CRC_GPOLYH register., offset: 0x6 */
  301. } GPOLY_ACCESS16BIT;
  302. __IO uint32_t GPOLY; /**< CRC Polynomial register, offset: 0x4 */
  303. struct { /* offset: 0x4 */
  304. __IO uint8_t GPOLYLL; /**< CRC_GPOLYLL register., offset: 0x4 */
  305. __IO uint8_t GPOLYLU; /**< CRC_GPOLYLU register., offset: 0x5 */
  306. __IO uint8_t GPOLYHL; /**< CRC_GPOLYHL register., offset: 0x6 */
  307. __IO uint8_t GPOLYHU; /**< CRC_GPOLYHU register., offset: 0x7 */
  308. } GPOLY_ACCESS8BIT;
  309. };
  310. union { /* offset: 0x8 */
  311. __IO uint32_t CTRL; /**< CRC Control register, offset: 0x8 */
  312. struct { /* offset: 0x8 */
  313. uint8_t RESERVED_0[3];
  314. __IO uint8_t CTRLHU; /**< CRC_CTRLHU register., offset: 0xB */
  315. } CTRL_ACCESS8BIT;
  316. };
  317. } CRC_Type;
  318. /* ----------------------------------------------------------------------------
  319. -- CRC Register Masks
  320. ---------------------------------------------------------------------------- */
  321. /*!
  322. * @addtogroup CRC_Register_Masks CRC Register Masks
  323. * @{
  324. */
  325. /* DATAL Bit Fields */
  326. #define CRC_DATAL_DATAL_MASK 0xFFFFu
  327. #define CRC_DATAL_DATAL_SHIFT 0
  328. #define CRC_DATAL_DATAL(x) (((uint16_t)(((uint16_t)(x))<<CRC_DATAL_DATAL_SHIFT))&CRC_DATAL_DATAL_MASK)
  329. /* DATAH Bit Fields */
  330. #define CRC_DATAH_DATAH_MASK 0xFFFFu
  331. #define CRC_DATAH_DATAH_SHIFT 0
  332. #define CRC_DATAH_DATAH(x) (((uint16_t)(((uint16_t)(x))<<CRC_DATAH_DATAH_SHIFT))&CRC_DATAH_DATAH_MASK)
  333. /* DATA Bit Fields */
  334. #define CRC_DATA_LL_MASK 0xFFu
  335. #define CRC_DATA_LL_SHIFT 0
  336. #define CRC_DATA_LL(x) (((uint32_t)(((uint32_t)(x))<<CRC_DATA_LL_SHIFT))&CRC_DATA_LL_MASK)
  337. #define CRC_DATA_LU_MASK 0xFF00u
  338. #define CRC_DATA_LU_SHIFT 8
  339. #define CRC_DATA_LU(x) (((uint32_t)(((uint32_t)(x))<<CRC_DATA_LU_SHIFT))&CRC_DATA_LU_MASK)
  340. #define CRC_DATA_HL_MASK 0xFF0000u
  341. #define CRC_DATA_HL_SHIFT 16
  342. #define CRC_DATA_HL(x) (((uint32_t)(((uint32_t)(x))<<CRC_DATA_HL_SHIFT))&CRC_DATA_HL_MASK)
  343. #define CRC_DATA_HU_MASK 0xFF000000u
  344. #define CRC_DATA_HU_SHIFT 24
  345. #define CRC_DATA_HU(x) (((uint32_t)(((uint32_t)(x))<<CRC_DATA_HU_SHIFT))&CRC_DATA_HU_MASK)
  346. /* DATALL Bit Fields */
  347. #define CRC_DATALL_DATALL_MASK 0xFFu
  348. #define CRC_DATALL_DATALL_SHIFT 0
  349. #define CRC_DATALL_DATALL(x) (((uint8_t)(((uint8_t)(x))<<CRC_DATALL_DATALL_SHIFT))&CRC_DATALL_DATALL_MASK)
  350. /* DATALU Bit Fields */
  351. #define CRC_DATALU_DATALU_MASK 0xFFu
  352. #define CRC_DATALU_DATALU_SHIFT 0
  353. #define CRC_DATALU_DATALU(x) (((uint8_t)(((uint8_t)(x))<<CRC_DATALU_DATALU_SHIFT))&CRC_DATALU_DATALU_MASK)
  354. /* DATAHL Bit Fields */
  355. #define CRC_DATAHL_DATAHL_MASK 0xFFu
  356. #define CRC_DATAHL_DATAHL_SHIFT 0
  357. #define CRC_DATAHL_DATAHL(x) (((uint8_t)(((uint8_t)(x))<<CRC_DATAHL_DATAHL_SHIFT))&CRC_DATAHL_DATAHL_MASK)
  358. /* DATAHU Bit Fields */
  359. #define CRC_DATAHU_DATAHU_MASK 0xFFu
  360. #define CRC_DATAHU_DATAHU_SHIFT 0
  361. #define CRC_DATAHU_DATAHU(x) (((uint8_t)(((uint8_t)(x))<<CRC_DATAHU_DATAHU_SHIFT))&CRC_DATAHU_DATAHU_MASK)
  362. /* GPOLYL Bit Fields */
  363. #define CRC_GPOLYL_GPOLYL_MASK 0xFFFFu
  364. #define CRC_GPOLYL_GPOLYL_SHIFT 0
  365. #define CRC_GPOLYL_GPOLYL(x) (((uint16_t)(((uint16_t)(x))<<CRC_GPOLYL_GPOLYL_SHIFT))&CRC_GPOLYL_GPOLYL_MASK)
  366. /* GPOLYH Bit Fields */
  367. #define CRC_GPOLYH_GPOLYH_MASK 0xFFFFu
  368. #define CRC_GPOLYH_GPOLYH_SHIFT 0
  369. #define CRC_GPOLYH_GPOLYH(x) (((uint16_t)(((uint16_t)(x))<<CRC_GPOLYH_GPOLYH_SHIFT))&CRC_GPOLYH_GPOLYH_MASK)
  370. /* GPOLY Bit Fields */
  371. #define CRC_GPOLY_LOW_MASK 0xFFFFu
  372. #define CRC_GPOLY_LOW_SHIFT 0
  373. #define CRC_GPOLY_LOW(x) (((uint32_t)(((uint32_t)(x))<<CRC_GPOLY_LOW_SHIFT))&CRC_GPOLY_LOW_MASK)
  374. #define CRC_GPOLY_HIGH_MASK 0xFFFF0000u
  375. #define CRC_GPOLY_HIGH_SHIFT 16
  376. #define CRC_GPOLY_HIGH(x) (((uint32_t)(((uint32_t)(x))<<CRC_GPOLY_HIGH_SHIFT))&CRC_GPOLY_HIGH_MASK)
  377. /* GPOLYLL Bit Fields */
  378. #define CRC_GPOLYLL_GPOLYLL_MASK 0xFFu
  379. #define CRC_GPOLYLL_GPOLYLL_SHIFT 0
  380. #define CRC_GPOLYLL_GPOLYLL(x) (((uint8_t)(((uint8_t)(x))<<CRC_GPOLYLL_GPOLYLL_SHIFT))&CRC_GPOLYLL_GPOLYLL_MASK)
  381. /* GPOLYLU Bit Fields */
  382. #define CRC_GPOLYLU_GPOLYLU_MASK 0xFFu
  383. #define CRC_GPOLYLU_GPOLYLU_SHIFT 0
  384. #define CRC_GPOLYLU_GPOLYLU(x) (((uint8_t)(((uint8_t)(x))<<CRC_GPOLYLU_GPOLYLU_SHIFT))&CRC_GPOLYLU_GPOLYLU_MASK)
  385. /* GPOLYHL Bit Fields */
  386. #define CRC_GPOLYHL_GPOLYHL_MASK 0xFFu
  387. #define CRC_GPOLYHL_GPOLYHL_SHIFT 0
  388. #define CRC_GPOLYHL_GPOLYHL(x) (((uint8_t)(((uint8_t)(x))<<CRC_GPOLYHL_GPOLYHL_SHIFT))&CRC_GPOLYHL_GPOLYHL_MASK)
  389. /* GPOLYHU Bit Fields */
  390. #define CRC_GPOLYHU_GPOLYHU_MASK 0xFFu
  391. #define CRC_GPOLYHU_GPOLYHU_SHIFT 0
  392. #define CRC_GPOLYHU_GPOLYHU(x) (((uint8_t)(((uint8_t)(x))<<CRC_GPOLYHU_GPOLYHU_SHIFT))&CRC_GPOLYHU_GPOLYHU_MASK)
  393. /* CTRL Bit Fields */
  394. #define CRC_CTRL_TCRC_MASK 0x1000000u
  395. #define CRC_CTRL_TCRC_SHIFT 24
  396. #define CRC_CTRL_WAS_MASK 0x2000000u
  397. #define CRC_CTRL_WAS_SHIFT 25
  398. #define CRC_CTRL_FXOR_MASK 0x4000000u
  399. #define CRC_CTRL_FXOR_SHIFT 26
  400. #define CRC_CTRL_TOTR_MASK 0x30000000u
  401. #define CRC_CTRL_TOTR_SHIFT 28
  402. #define CRC_CTRL_TOTR(x) (((uint32_t)(((uint32_t)(x))<<CRC_CTRL_TOTR_SHIFT))&CRC_CTRL_TOTR_MASK)
  403. #define CRC_CTRL_TOT_MASK 0xC0000000u
  404. #define CRC_CTRL_TOT_SHIFT 30
  405. #define CRC_CTRL_TOT(x) (((uint32_t)(((uint32_t)(x))<<CRC_CTRL_TOT_SHIFT))&CRC_CTRL_TOT_MASK)
  406. /* CTRLHU Bit Fields */
  407. #define CRC_CTRLHU_TCRC_MASK 0x1u
  408. #define CRC_CTRLHU_TCRC_SHIFT 0
  409. #define CRC_CTRLHU_WAS_MASK 0x2u
  410. #define CRC_CTRLHU_WAS_SHIFT 1
  411. #define CRC_CTRLHU_FXOR_MASK 0x4u
  412. #define CRC_CTRLHU_FXOR_SHIFT 2
  413. #define CRC_CTRLHU_TOTR_MASK 0x30u
  414. #define CRC_CTRLHU_TOTR_SHIFT 4
  415. #define CRC_CTRLHU_TOTR(x) (((uint8_t)(((uint8_t)(x))<<CRC_CTRLHU_TOTR_SHIFT))&CRC_CTRLHU_TOTR_MASK)
  416. #define CRC_CTRLHU_TOT_MASK 0xC0u
  417. #define CRC_CTRLHU_TOT_SHIFT 6
  418. #define CRC_CTRLHU_TOT(x) (((uint8_t)(((uint8_t)(x))<<CRC_CTRLHU_TOT_SHIFT))&CRC_CTRLHU_TOT_MASK)
  419. /*!
  420. * @}
  421. */ /* end of group CRC_Register_Masks */
  422. /* CRC - Peripheral instance base addresses */
  423. /** Peripheral CRC base address */
  424. #define CRC_BASE (0x40032000u)
  425. /** Peripheral CRC base pointer */
  426. #define CRC0 ((CRC_Type *)CRC_BASE)
  427. /** Array initializer of CRC peripheral base pointers */
  428. #define CRC_BASES { CRC0 }
  429. /*!
  430. * @}
  431. */ /* end of group CRC_Peripheral_Access_Layer */
  432. /* ----------------------------------------------------------------------------
  433. -- FGPIO Peripheral Access Layer
  434. ---------------------------------------------------------------------------- */
  435. /*!
  436. * @addtogroup FGPIO_Peripheral_Access_Layer FGPIO Peripheral Access Layer
  437. * @{
  438. */
  439. /** FGPIO - Register Layout Typedef */
  440. typedef struct {
  441. __IO uint32_t PDOR; /**< Port Data Output Register, offset: 0x0 */
  442. __O uint32_t PSOR; /**< Port Set Output Register, offset: 0x4 */
  443. __O uint32_t PCOR; /**< Port Clear Output Register, offset: 0x8 */
  444. __O uint32_t PTOR; /**< Port Toggle Output Register, offset: 0xC */
  445. __I uint32_t PDIR; /**< Port Data Input Register, offset: 0x10 */
  446. __IO uint32_t PDDR; /**< Port Data Direction Register, offset: 0x14 */
  447. __IO uint32_t PIDR; /**< Port Input Disable Register, offset: 0x18 */
  448. } FGPIO_Type;
  449. /* ----------------------------------------------------------------------------
  450. -- FGPIO Register Masks
  451. ---------------------------------------------------------------------------- */
  452. /*!
  453. * @addtogroup FGPIO_Register_Masks FGPIO Register Masks
  454. * @{
  455. */
  456. /* PDOR Bit Fields */
  457. #define FGPIO_PDOR_PDO_MASK 0xFFFFFFFFu
  458. #define FGPIO_PDOR_PDO_SHIFT 0
  459. #define FGPIO_PDOR_PDO(x) (((uint32_t)(((uint32_t)(x))<<FGPIO_PDOR_PDO_SHIFT))&FGPIO_PDOR_PDO_MASK)
  460. /* PSOR Bit Fields */
  461. #define FGPIO_PSOR_PTSO_MASK 0xFFFFFFFFu
  462. #define FGPIO_PSOR_PTSO_SHIFT 0
  463. #define FGPIO_PSOR_PTSO(x) (((uint32_t)(((uint32_t)(x))<<FGPIO_PSOR_PTSO_SHIFT))&FGPIO_PSOR_PTSO_MASK)
  464. /* PCOR Bit Fields */
  465. #define FGPIO_PCOR_PTCO_MASK 0xFFFFFFFFu
  466. #define FGPIO_PCOR_PTCO_SHIFT 0
  467. #define FGPIO_PCOR_PTCO(x) (((uint32_t)(((uint32_t)(x))<<FGPIO_PCOR_PTCO_SHIFT))&FGPIO_PCOR_PTCO_MASK)
  468. /* PTOR Bit Fields */
  469. #define FGPIO_PTOR_PTTO_MASK 0xFFFFFFFFu
  470. #define FGPIO_PTOR_PTTO_SHIFT 0
  471. #define FGPIO_PTOR_PTTO(x) (((uint32_t)(((uint32_t)(x))<<FGPIO_PTOR_PTTO_SHIFT))&FGPIO_PTOR_PTTO_MASK)
  472. /* PDIR Bit Fields */
  473. #define FGPIO_PDIR_PDI_MASK 0xFFFFFFFFu
  474. #define FGPIO_PDIR_PDI_SHIFT 0
  475. #define FGPIO_PDIR_PDI(x) (((uint32_t)(((uint32_t)(x))<<FGPIO_PDIR_PDI_SHIFT))&FGPIO_PDIR_PDI_MASK)
  476. /* PDDR Bit Fields */
  477. #define FGPIO_PDDR_PDD_MASK 0xFFFFFFFFu
  478. #define FGPIO_PDDR_PDD_SHIFT 0
  479. #define FGPIO_PDDR_PDD(x) (((uint32_t)(((uint32_t)(x))<<FGPIO_PDDR_PDD_SHIFT))&FGPIO_PDDR_PDD_MASK)
  480. /* PIDR Bit Fields */
  481. #define FGPIO_PIDR_PID_MASK 0xFFFFFFFFu
  482. #define FGPIO_PIDR_PID_SHIFT 0
  483. #define FGPIO_PIDR_PID(x) (((uint32_t)(((uint32_t)(x))<<FGPIO_PIDR_PID_SHIFT))&FGPIO_PIDR_PID_MASK)
  484. /*!
  485. * @}
  486. */ /* end of group FGPIO_Register_Masks */
  487. /* FGPIO - Peripheral instance base addresses */
  488. /** Peripheral FGPIOA base address */
  489. #define FGPIOA_BASE (0xF8000000u)
  490. /** Peripheral FGPIOA base pointer */
  491. #define FGPIOA ((FGPIO_Type *)FGPIOA_BASE)
  492. /** Peripheral FGPIOB base address */
  493. #define FGPIOB_BASE (0xF8000040u)
  494. /** Peripheral FGPIOB base pointer */
  495. #define FGPIOB ((FGPIO_Type *)FGPIOB_BASE)
  496. /** Array initializer of FGPIO peripheral base pointers */
  497. #define FGPIO_BASES { FGPIOA, FGPIOB }
  498. /*!
  499. * @}
  500. */ /* end of group FGPIO_Peripheral_Access_Layer */
  501. /* ----------------------------------------------------------------------------
  502. -- ETM Peripheral Access Layer
  503. ---------------------------------------------------------------------------- */
  504. /*!
  505. * @addtogroup ETM_Peripheral_Access_Layer ETM Peripheral Access Layer
  506. * @{
  507. */
  508. /** ETM - Register Layout Typedef */
  509. typedef struct {
  510. __IO uint32_t SC; /**< Status And Control, offset: 0x0 */
  511. __IO uint32_t CNT; /**< Counter, offset: 0x4 */
  512. __IO uint32_t MOD; /**< Modulo, offset: 0x8 */
  513. struct { /* offset: 0xC, array step: 0x8 */
  514. __IO uint32_t CnSC; /**< Channel (n) Status And Control, array offset: 0xC, array step: 0x8 */
  515. __IO uint32_t CnV; /**< Channel (n) Value, array offset: 0x10, array step: 0x8 */
  516. } CONTROLS[6];
  517. uint8_t RESERVED_0[16];
  518. __IO uint32_t CNTIN; /**< Counter Initial Value, offset: 0x4C */
  519. __I uint32_t STATUS; /**< Capture And Compare Status, offset: 0x50 */
  520. __IO uint32_t MODE; /**< Features Mode Selection, offset: 0x54 */
  521. __IO uint32_t SYNC; /**< Synchronization, offset: 0x58 */
  522. __IO uint32_t OUTINIT; /**< Initial State For Channels Output, offset: 0x5C */
  523. __IO uint32_t OUTMASK; /**< Output Mask, offset: 0x60 */
  524. __IO uint32_t COMBINE; /**< Function For Linked Channels, offset: 0x64 */
  525. __IO uint32_t DEADETME; /**< DeadETMe Insertion Control, offset: 0x68 */
  526. __IO uint32_t EXTTRIG; /**< ETM External Trigger, offset: 0x6C */
  527. __IO uint32_t POL; /**< Channels Polarity, offset: 0x70 */
  528. __IO uint32_t FMS; /**< Fault Mode Status, offset: 0x74 */
  529. __IO uint32_t FILTER; /**< Input Capture Filter Control, offset: 0x78 */
  530. __IO uint32_t FLTCTRL; /**< Fault Control, offset: 0x7C */
  531. uint8_t RESERVED_1[4];
  532. __IO uint32_t CONF; /**< Configuration, offset: 0x84 */
  533. __IO uint32_t FLTPOL; /**< ETM Fault Input Polarity, offset: 0x88 */
  534. __IO uint32_t SYNCONF; /**< Synchronization Configuration, offset: 0x8C */
  535. __IO uint32_t INVCTRL; /**< ETM Inverting Control, offset: 0x90 */
  536. __IO uint32_t SWOCTRL; /**< ETM Software Output Control, offset: 0x94 */
  537. __IO uint32_t PWMLOAD; /**< ETM PWM Load, offset: 0x98 */
  538. } ETM_Type;
  539. /* ----------------------------------------------------------------------------
  540. -- ETM Register Masks
  541. ---------------------------------------------------------------------------- */
  542. /*!
  543. * @addtogroup ETM_Register_Masks ETM Register Masks
  544. * @{
  545. */
  546. /* SC Bit Fields */
  547. #define ETM_SC_PS_MASK 0x7u
  548. #define ETM_SC_PS_SHIFT 0
  549. #define ETM_SC_PS(x) (((uint32_t)(((uint32_t)(x))<<ETM_SC_PS_SHIFT))&ETM_SC_PS_MASK)
  550. #define ETM_SC_CLKS_MASK 0x18u
  551. #define ETM_SC_CLKS_SHIFT 3
  552. #define ETM_SC_CLKS(x) (((uint32_t)(((uint32_t)(x))<<ETM_SC_CLKS_SHIFT))&ETM_SC_CLKS_MASK)
  553. #define ETM_SC_CPWMS_MASK 0x20u
  554. #define ETM_SC_CPWMS_SHIFT 5
  555. #define ETM_SC_TOIE_MASK 0x40u
  556. #define ETM_SC_TOIE_SHIFT 6
  557. #define ETM_SC_TOF_MASK 0x80u
  558. #define ETM_SC_TOF_SHIFT 7
  559. /* CNT Bit Fields */
  560. #define ETM_CNT_COUNT_MASK 0xFFFFu
  561. #define ETM_CNT_COUNT_SHIFT 0
  562. #define ETM_CNT_COUNT(x) (((uint32_t)(((uint32_t)(x))<<ETM_CNT_COUNT_SHIFT))&ETM_CNT_COUNT_MASK)
  563. /* MOD Bit Fields */
  564. #define ETM_MOD_MOD_MASK 0xFFFFu
  565. #define ETM_MOD_MOD_SHIFT 0
  566. #define ETM_MOD_MOD(x) (((uint32_t)(((uint32_t)(x))<<ETM_MOD_MOD_SHIFT))&ETM_MOD_MOD_MASK)
  567. /* CnSC Bit Fields */
  568. #define ETM_CnSC_ELSA_MASK 0x4u
  569. #define ETM_CnSC_ELSA_SHIFT 2
  570. #define ETM_CnSC_ELSB_MASK 0x8u
  571. #define ETM_CnSC_ELSB_SHIFT 3
  572. #define ETM_CnSC_MSA_MASK 0x10u
  573. #define ETM_CnSC_MSA_SHIFT 4
  574. #define ETM_CnSC_MSB_MASK 0x20u
  575. #define ETM_CnSC_MSB_SHIFT 5
  576. #define ETM_CnSC_CHIE_MASK 0x40u
  577. #define ETM_CnSC_CHIE_SHIFT 6
  578. #define ETM_CnSC_CHF_MASK 0x80u
  579. #define ETM_CnSC_CHF_SHIFT 7
  580. /* CnV Bit Fields */
  581. #define ETM_CnV_VAL_MASK 0xFFFFu
  582. #define ETM_CnV_VAL_SHIFT 0
  583. #define ETM_CnV_VAL(x) (((uint32_t)(((uint32_t)(x))<<ETM_CnV_VAL_SHIFT))&ETM_CnV_VAL_MASK)
  584. /* CNTIN Bit Fields */
  585. #define ETM_CNTIN_INIT_MASK 0xFFFFu
  586. #define ETM_CNTIN_INIT_SHIFT 0
  587. #define ETM_CNTIN_INIT(x) (((uint32_t)(((uint32_t)(x))<<ETM_CNTIN_INIT_SHIFT))&ETM_CNTIN_INIT_MASK)
  588. /* STATUS Bit Fields */
  589. #define ETM_STATUS_CH0F_MASK 0x1u
  590. #define ETM_STATUS_CH0F_SHIFT 0
  591. #define ETM_STATUS_CH1F_MASK 0x2u
  592. #define ETM_STATUS_CH1F_SHIFT 1
  593. #define ETM_STATUS_CH2F_MASK 0x4u
  594. #define ETM_STATUS_CH2F_SHIFT 2
  595. #define ETM_STATUS_CH3F_MASK 0x8u
  596. #define ETM_STATUS_CH3F_SHIFT 3
  597. #define ETM_STATUS_CH4F_MASK 0x10u
  598. #define ETM_STATUS_CH4F_SHIFT 4
  599. #define ETM_STATUS_CH5F_MASK 0x20u
  600. #define ETM_STATUS_CH5F_SHIFT 5
  601. #define ETM_STATUS_CH6F_MASK 0x40u
  602. #define ETM_STATUS_CH6F_SHIFT 6
  603. #define ETM_STATUS_CH7F_MASK 0x80u
  604. #define ETM_STATUS_CH7F_SHIFT 7
  605. /* MODE Bit Fields */
  606. #define ETM_MODE_ETMEN_MASK 0x1u
  607. #define ETM_MODE_ETMEN_SHIFT 0
  608. #define ETM_MODE_INIT_MASK 0x2u
  609. #define ETM_MODE_INIT_SHIFT 1
  610. #define ETM_MODE_WPDIS_MASK 0x4u
  611. #define ETM_MODE_WPDIS_SHIFT 2
  612. #define ETM_MODE_PWMSYNC_MASK 0x8u
  613. #define ETM_MODE_PWMSYNC_SHIFT 3
  614. #define ETM_MODE_CAPTEST_MASK 0x10u
  615. #define ETM_MODE_CAPTEST_SHIFT 4
  616. #define ETM_MODE_FAULTM_MASK 0x60u
  617. #define ETM_MODE_FAULTM_SHIFT 5
  618. #define ETM_MODE_FAULTM(x) (((uint32_t)(((uint32_t)(x))<<ETM_MODE_FAULTM_SHIFT))&ETM_MODE_FAULTM_MASK)
  619. #define ETM_MODE_FAULTIE_MASK 0x80u
  620. #define ETM_MODE_FAULTIE_SHIFT 7
  621. /* SYNC Bit Fields */
  622. #define ETM_SYNC_CNTMIN_MASK 0x1u
  623. #define ETM_SYNC_CNTMIN_SHIFT 0
  624. #define ETM_SYNC_CNTMAX_MASK 0x2u
  625. #define ETM_SYNC_CNTMAX_SHIFT 1
  626. #define ETM_SYNC_REINIT_MASK 0x4u
  627. #define ETM_SYNC_REINIT_SHIFT 2
  628. #define ETM_SYNC_SYNCHOM_MASK 0x8u
  629. #define ETM_SYNC_SYNCHOM_SHIFT 3
  630. #define ETM_SYNC_TRIG0_MASK 0x10u
  631. #define ETM_SYNC_TRIG0_SHIFT 4
  632. #define ETM_SYNC_TRIG1_MASK 0x20u
  633. #define ETM_SYNC_TRIG1_SHIFT 5
  634. #define ETM_SYNC_TRIG2_MASK 0x40u
  635. #define ETM_SYNC_TRIG2_SHIFT 6
  636. #define ETM_SYNC_SWSYNC_MASK 0x80u
  637. #define ETM_SYNC_SWSYNC_SHIFT 7
  638. /* OUTINIT Bit Fields */
  639. #define ETM_OUTINIT_CH0OI_MASK 0x1u
  640. #define ETM_OUTINIT_CH0OI_SHIFT 0
  641. #define ETM_OUTINIT_CH1OI_MASK 0x2u
  642. #define ETM_OUTINIT_CH1OI_SHIFT 1
  643. #define ETM_OUTINIT_CH2OI_MASK 0x4u
  644. #define ETM_OUTINIT_CH2OI_SHIFT 2
  645. #define ETM_OUTINIT_CH3OI_MASK 0x8u
  646. #define ETM_OUTINIT_CH3OI_SHIFT 3
  647. #define ETM_OUTINIT_CH4OI_MASK 0x10u
  648. #define ETM_OUTINIT_CH4OI_SHIFT 4
  649. #define ETM_OUTINIT_CH5OI_MASK 0x20u
  650. #define ETM_OUTINIT_CH5OI_SHIFT 5
  651. #define ETM_OUTINIT_CH6OI_MASK 0x40u
  652. #define ETM_OUTINIT_CH6OI_SHIFT 6
  653. #define ETM_OUTINIT_CH7OI_MASK 0x80u
  654. #define ETM_OUTINIT_CH7OI_SHIFT 7
  655. /* OUTMASK Bit Fields */
  656. #define ETM_OUTMASK_CH0OM_MASK 0x1u
  657. #define ETM_OUTMASK_CH0OM_SHIFT 0
  658. #define ETM_OUTMASK_CH1OM_MASK 0x2u
  659. #define ETM_OUTMASK_CH1OM_SHIFT 1
  660. #define ETM_OUTMASK_CH2OM_MASK 0x4u
  661. #define ETM_OUTMASK_CH2OM_SHIFT 2
  662. #define ETM_OUTMASK_CH3OM_MASK 0x8u
  663. #define ETM_OUTMASK_CH3OM_SHIFT 3
  664. #define ETM_OUTMASK_CH4OM_MASK 0x10u
  665. #define ETM_OUTMASK_CH4OM_SHIFT 4
  666. #define ETM_OUTMASK_CH5OM_MASK 0x20u
  667. #define ETM_OUTMASK_CH5OM_SHIFT 5
  668. #define ETM_OUTMASK_CH6OM_MASK 0x40u
  669. #define ETM_OUTMASK_CH6OM_SHIFT 6
  670. #define ETM_OUTMASK_CH7OM_MASK 0x80u
  671. #define ETM_OUTMASK_CH7OM_SHIFT 7
  672. /* COMBINE Bit Fields */
  673. #define ETM_COMBINE_COMBINE0_MASK 0x1u
  674. #define ETM_COMBINE_COMBINE0_SHIFT 0
  675. #define ETM_COMBINE_COMP0_MASK 0x2u
  676. #define ETM_COMBINE_COMP0_SHIFT 1
  677. #define ETM_COMBINE_DECAPEN0_MASK 0x4u
  678. #define ETM_COMBINE_DECAPEN0_SHIFT 2
  679. #define ETM_COMBINE_DECAP0_MASK 0x8u
  680. #define ETM_COMBINE_DECAP0_SHIFT 3
  681. #define ETM_COMBINE_DTEN0_MASK 0x10u
  682. #define ETM_COMBINE_DTEN0_SHIFT 4
  683. #define ETM_COMBINE_SYNCEN0_MASK 0x20u
  684. #define ETM_COMBINE_SYNCEN0_SHIFT 5
  685. #define ETM_COMBINE_FAULTEN0_MASK 0x40u
  686. #define ETM_COMBINE_FAULTEN0_SHIFT 6
  687. #define ETM_COMBINE_COMBINE1_MASK 0x100u
  688. #define ETM_COMBINE_COMBINE1_SHIFT 8
  689. #define ETM_COMBINE_COMP1_MASK 0x200u
  690. #define ETM_COMBINE_COMP1_SHIFT 9
  691. #define ETM_COMBINE_DECAPEN1_MASK 0x400u
  692. #define ETM_COMBINE_DECAPEN1_SHIFT 10
  693. #define ETM_COMBINE_DECAP1_MASK 0x800u
  694. #define ETM_COMBINE_DECAP1_SHIFT 11
  695. #define ETM_COMBINE_DTEN1_MASK 0x1000u
  696. #define ETM_COMBINE_DTEN1_SHIFT 12
  697. #define ETM_COMBINE_SYNCEN1_MASK 0x2000u
  698. #define ETM_COMBINE_SYNCEN1_SHIFT 13
  699. #define ETM_COMBINE_FAULTEN1_MASK 0x4000u
  700. #define ETM_COMBINE_FAULTEN1_SHIFT 14
  701. #define ETM_COMBINE_COMBINE2_MASK 0x10000u
  702. #define ETM_COMBINE_COMBINE2_SHIFT 16
  703. #define ETM_COMBINE_COMP2_MASK 0x20000u
  704. #define ETM_COMBINE_COMP2_SHIFT 17
  705. #define ETM_COMBINE_DECAPEN2_MASK 0x40000u
  706. #define ETM_COMBINE_DECAPEN2_SHIFT 18
  707. #define ETM_COMBINE_DECAP2_MASK 0x80000u
  708. #define ETM_COMBINE_DECAP2_SHIFT 19
  709. #define ETM_COMBINE_DTEN2_MASK 0x100000u
  710. #define ETM_COMBINE_DTEN2_SHIFT 20
  711. #define ETM_COMBINE_SYNCEN2_MASK 0x200000u
  712. #define ETM_COMBINE_SYNCEN2_SHIFT 21
  713. #define ETM_COMBINE_FAULTEN2_MASK 0x400000u
  714. #define ETM_COMBINE_FAULTEN2_SHIFT 22
  715. #define ETM_COMBINE_COMBINE3_MASK 0x1000000u
  716. #define ETM_COMBINE_COMBINE3_SHIFT 24
  717. #define ETM_COMBINE_COMP3_MASK 0x2000000u
  718. #define ETM_COMBINE_COMP3_SHIFT 25
  719. #define ETM_COMBINE_DECAPEN3_MASK 0x4000000u
  720. #define ETM_COMBINE_DECAPEN3_SHIFT 26
  721. #define ETM_COMBINE_DECAP3_MASK 0x8000000u
  722. #define ETM_COMBINE_DECAP3_SHIFT 27
  723. #define ETM_COMBINE_DTEN3_MASK 0x10000000u
  724. #define ETM_COMBINE_DTEN3_SHIFT 28
  725. #define ETM_COMBINE_SYNCEN3_MASK 0x20000000u
  726. #define ETM_COMBINE_SYNCEN3_SHIFT 29
  727. #define ETM_COMBINE_FAULTEN3_MASK 0x40000000u
  728. #define ETM_COMBINE_FAULTEN3_SHIFT 30
  729. /* DEADETME Bit Fields */
  730. #define ETM_DEADETME_DTVAL_MASK 0x3Fu
  731. #define ETM_DEADETME_DTVAL_SHIFT 0
  732. #define ETM_DEADETME_DTVAL(x) (((uint32_t)(((uint32_t)(x))<<ETM_DEADETME_DTVAL_SHIFT))&ETM_DEADETME_DTVAL_MASK)
  733. #define ETM_DEADETME_DTPS_MASK 0xC0u
  734. #define ETM_DEADETME_DTPS_SHIFT 6
  735. #define ETM_DEADETME_DTPS(x) (((uint32_t)(((uint32_t)(x))<<ETM_DEADETME_DTPS_SHIFT))&ETM_DEADETME_DTPS_MASK)
  736. /* EXTTRIG Bit Fields */
  737. #define ETM_EXTTRIG_CH2TRIG_MASK 0x1u
  738. #define ETM_EXTTRIG_CH2TRIG_SHIFT 0
  739. #define ETM_EXTTRIG_CH3TRIG_MASK 0x2u
  740. #define ETM_EXTTRIG_CH3TRIG_SHIFT 1
  741. #define ETM_EXTTRIG_CH4TRIG_MASK 0x4u
  742. #define ETM_EXTTRIG_CH4TRIG_SHIFT 2
  743. #define ETM_EXTTRIG_CH5TRIG_MASK 0x8u
  744. #define ETM_EXTTRIG_CH5TRIG_SHIFT 3
  745. #define ETM_EXTTRIG_CH0TRIG_MASK 0x10u
  746. #define ETM_EXTTRIG_CH0TRIG_SHIFT 4
  747. #define ETM_EXTTRIG_CH1TRIG_MASK 0x20u
  748. #define ETM_EXTTRIG_CH1TRIG_SHIFT 5
  749. #define ETM_EXTTRIG_INITTRIGEN_MASK 0x40u
  750. #define ETM_EXTTRIG_INITTRIGEN_SHIFT 6
  751. #define ETM_EXTTRIG_TRIGF_MASK 0x80u
  752. #define ETM_EXTTRIG_TRIGF_SHIFT 7
  753. /* POL Bit Fields */
  754. #define ETM_POL_POL0_MASK 0x1u
  755. #define ETM_POL_POL0_SHIFT 0
  756. #define ETM_POL_POL1_MASK 0x2u
  757. #define ETM_POL_POL1_SHIFT 1
  758. #define ETM_POL_POL2_MASK 0x4u
  759. #define ETM_POL_POL2_SHIFT 2
  760. #define ETM_POL_POL3_MASK 0x8u
  761. #define ETM_POL_POL3_SHIFT 3
  762. #define ETM_POL_POL4_MASK 0x10u
  763. #define ETM_POL_POL4_SHIFT 4
  764. #define ETM_POL_POL5_MASK 0x20u
  765. #define ETM_POL_POL5_SHIFT 5
  766. #define ETM_POL_POL6_MASK 0x40u
  767. #define ETM_POL_POL6_SHIFT 6
  768. #define ETM_POL_POL7_MASK 0x80u
  769. #define ETM_POL_POL7_SHIFT 7
  770. /* FMS Bit Fields */
  771. #define ETM_FMS_FAULTF0_MASK 0x1u
  772. #define ETM_FMS_FAULTF0_SHIFT 0
  773. #define ETM_FMS_FAULTF1_MASK 0x2u
  774. #define ETM_FMS_FAULTF1_SHIFT 1
  775. #define ETM_FMS_FAULTF2_MASK 0x4u
  776. #define ETM_FMS_FAULTF2_SHIFT 2
  777. #define ETM_FMS_FAULTF3_MASK 0x8u
  778. #define ETM_FMS_FAULTF3_SHIFT 3
  779. #define ETM_FMS_FAULTIN_MASK 0x20u
  780. #define ETM_FMS_FAULTIN_SHIFT 5
  781. #define ETM_FMS_WPEN_MASK 0x40u
  782. #define ETM_FMS_WPEN_SHIFT 6
  783. #define ETM_FMS_FAULTF_MASK 0x80u
  784. #define ETM_FMS_FAULTF_SHIFT 7
  785. /* FILTER Bit Fields */
  786. #define ETM_FILTER_CH0FVAL_MASK 0xFu
  787. #define ETM_FILTER_CH0FVAL_SHIFT 0
  788. #define ETM_FILTER_CH0FVAL(x) (((uint32_t)(((uint32_t)(x))<<ETM_FILTER_CH0FVAL_SHIFT))&ETM_FILTER_CH0FVAL_MASK)
  789. #define ETM_FILTER_CH1FVAL_MASK 0xF0u
  790. #define ETM_FILTER_CH1FVAL_SHIFT 4
  791. #define ETM_FILTER_CH1FVAL(x) (((uint32_t)(((uint32_t)(x))<<ETM_FILTER_CH1FVAL_SHIFT))&ETM_FILTER_CH1FVAL_MASK)
  792. #define ETM_FILTER_CH2FVAL_MASK 0xF00u
  793. #define ETM_FILTER_CH2FVAL_SHIFT 8
  794. #define ETM_FILTER_CH2FVAL(x) (((uint32_t)(((uint32_t)(x))<<ETM_FILTER_CH2FVAL_SHIFT))&ETM_FILTER_CH2FVAL_MASK)
  795. #define ETM_FILTER_CH3FVAL_MASK 0xF000u
  796. #define ETM_FILTER_CH3FVAL_SHIFT 12
  797. #define ETM_FILTER_CH3FVAL(x) (((uint32_t)(((uint32_t)(x))<<ETM_FILTER_CH3FVAL_SHIFT))&ETM_FILTER_CH3FVAL_MASK)
  798. /* FLTCTRL Bit Fields */
  799. #define ETM_FLTCTRL_FAULT0EN_MASK 0x1u
  800. #define ETM_FLTCTRL_FAULT0EN_SHIFT 0
  801. #define ETM_FLTCTRL_FAULT1EN_MASK 0x2u
  802. #define ETM_FLTCTRL_FAULT1EN_SHIFT 1
  803. #define ETM_FLTCTRL_FAULT2EN_MASK 0x4u
  804. #define ETM_FLTCTRL_FAULT2EN_SHIFT 2
  805. #define ETM_FLTCTRL_FAULT3EN_MASK 0x8u
  806. #define ETM_FLTCTRL_FAULT3EN_SHIFT 3
  807. #define ETM_FLTCTRL_FFLTR0EN_MASK 0x10u
  808. #define ETM_FLTCTRL_FFLTR0EN_SHIFT 4
  809. #define ETM_FLTCTRL_FFLTR1EN_MASK 0x20u
  810. #define ETM_FLTCTRL_FFLTR1EN_SHIFT 5
  811. #define ETM_FLTCTRL_FFLTR2EN_MASK 0x40u
  812. #define ETM_FLTCTRL_FFLTR2EN_SHIFT 6
  813. #define ETM_FLTCTRL_FFLTR3EN_MASK 0x80u
  814. #define ETM_FLTCTRL_FFLTR3EN_SHIFT 7
  815. #define ETM_FLTCTRL_FFVAL_MASK 0xF00u
  816. #define ETM_FLTCTRL_FFVAL_SHIFT 8
  817. #define ETM_FLTCTRL_FFVAL(x) (((uint32_t)(((uint32_t)(x))<<ETM_FLTCTRL_FFVAL_SHIFT))&ETM_FLTCTRL_FFVAL_MASK)
  818. /* CONF Bit Fields */
  819. #define ETM_CONF_NUMTOF_MASK 0x1Fu
  820. #define ETM_CONF_NUMTOF_SHIFT 0
  821. #define ETM_CONF_NUMTOF(x) (((uint32_t)(((uint32_t)(x))<<ETM_CONF_NUMTOF_SHIFT))&ETM_CONF_NUMTOF_MASK)
  822. #define ETM_CONF_BDMMODE_MASK 0xC0u
  823. #define ETM_CONF_BDMMODE_SHIFT 6
  824. #define ETM_CONF_BDMMODE(x) (((uint32_t)(((uint32_t)(x))<<ETM_CONF_BDMMODE_SHIFT))&ETM_CONF_BDMMODE_MASK)
  825. #define ETM_CONF_GTBEEN_MASK 0x200u
  826. #define ETM_CONF_GTBEEN_SHIFT 9
  827. #define ETM_CONF_GTBEOUT_MASK 0x400u
  828. #define ETM_CONF_GTBEOUT_SHIFT 10
  829. /* FLTPOL Bit Fields */
  830. #define ETM_FLTPOL_FLT0POL_MASK 0x1u
  831. #define ETM_FLTPOL_FLT0POL_SHIFT 0
  832. #define ETM_FLTPOL_FLT1POL_MASK 0x2u
  833. #define ETM_FLTPOL_FLT1POL_SHIFT 1
  834. #define ETM_FLTPOL_FLT2POL_MASK 0x4u
  835. #define ETM_FLTPOL_FLT2POL_SHIFT 2
  836. #define ETM_FLTPOL_FLT3POL_MASK 0x8u
  837. #define ETM_FLTPOL_FLT3POL_SHIFT 3
  838. /* SYNCONF Bit Fields */
  839. #define ETM_SYNCONF_HWTRIGMODE_MASK 0x1u
  840. #define ETM_SYNCONF_HWTRIGMODE_SHIFT 0
  841. #define ETM_SYNCONF_CNTINC_MASK 0x4u
  842. #define ETM_SYNCONF_CNTINC_SHIFT 2
  843. #define ETM_SYNCONF_INVC_MASK 0x10u
  844. #define ETM_SYNCONF_INVC_SHIFT 4
  845. #define ETM_SYNCONF_SWOC_MASK 0x20u
  846. #define ETM_SYNCONF_SWOC_SHIFT 5
  847. #define ETM_SYNCONF_SYNCMODE_MASK 0x80u
  848. #define ETM_SYNCONF_SYNCMODE_SHIFT 7
  849. #define ETM_SYNCONF_SWRSTCNT_MASK 0x100u
  850. #define ETM_SYNCONF_SWRSTCNT_SHIFT 8
  851. #define ETM_SYNCONF_SWWRBUF_MASK 0x200u
  852. #define ETM_SYNCONF_SWWRBUF_SHIFT 9
  853. #define ETM_SYNCONF_SWOM_MASK 0x400u
  854. #define ETM_SYNCONF_SWOM_SHIFT 10
  855. #define ETM_SYNCONF_SWINVC_MASK 0x800u
  856. #define ETM_SYNCONF_SWINVC_SHIFT 11
  857. #define ETM_SYNCONF_SWSOC_MASK 0x1000u
  858. #define ETM_SYNCONF_SWSOC_SHIFT 12
  859. #define ETM_SYNCONF_HWRSTCNT_MASK 0x10000u
  860. #define ETM_SYNCONF_HWRSTCNT_SHIFT 16
  861. #define ETM_SYNCONF_HWWRBUF_MASK 0x20000u
  862. #define ETM_SYNCONF_HWWRBUF_SHIFT 17
  863. #define ETM_SYNCONF_HWOM_MASK 0x40000u
  864. #define ETM_SYNCONF_HWOM_SHIFT 18
  865. #define ETM_SYNCONF_HWINVC_MASK 0x80000u
  866. #define ETM_SYNCONF_HWINVC_SHIFT 19
  867. #define ETM_SYNCONF_HWSOC_MASK 0x100000u
  868. #define ETM_SYNCONF_HWSOC_SHIFT 20
  869. /* INVCTRL Bit Fields */
  870. #define ETM_INVCTRL_INV0EN_MASK 0x1u
  871. #define ETM_INVCTRL_INV0EN_SHIFT 0
  872. #define ETM_INVCTRL_INV1EN_MASK 0x2u
  873. #define ETM_INVCTRL_INV1EN_SHIFT 1
  874. #define ETM_INVCTRL_INV2EN_MASK 0x4u
  875. #define ETM_INVCTRL_INV2EN_SHIFT 2
  876. #define ETM_INVCTRL_INV3EN_MASK 0x8u
  877. #define ETM_INVCTRL_INV3EN_SHIFT 3
  878. /* SWOCTRL Bit Fields */
  879. #define ETM_SWOCTRL_CH0OC_MASK 0x1u
  880. #define ETM_SWOCTRL_CH0OC_SHIFT 0
  881. #define ETM_SWOCTRL_CH1OC_MASK 0x2u
  882. #define ETM_SWOCTRL_CH1OC_SHIFT 1
  883. #define ETM_SWOCTRL_CH2OC_MASK 0x4u
  884. #define ETM_SWOCTRL_CH2OC_SHIFT 2
  885. #define ETM_SWOCTRL_CH3OC_MASK 0x8u
  886. #define ETM_SWOCTRL_CH3OC_SHIFT 3
  887. #define ETM_SWOCTRL_CH4OC_MASK 0x10u
  888. #define ETM_SWOCTRL_CH4OC_SHIFT 4
  889. #define ETM_SWOCTRL_CH5OC_MASK 0x20u
  890. #define ETM_SWOCTRL_CH5OC_SHIFT 5
  891. #define ETM_SWOCTRL_CH6OC_MASK 0x40u
  892. #define ETM_SWOCTRL_CH6OC_SHIFT 6
  893. #define ETM_SWOCTRL_CH7OC_MASK 0x80u
  894. #define ETM_SWOCTRL_CH7OC_SHIFT 7
  895. #define ETM_SWOCTRL_CH0OCV_MASK 0x100u
  896. #define ETM_SWOCTRL_CH0OCV_SHIFT 8
  897. #define ETM_SWOCTRL_CH1OCV_MASK 0x200u
  898. #define ETM_SWOCTRL_CH1OCV_SHIFT 9
  899. #define ETM_SWOCTRL_CH2OCV_MASK 0x400u
  900. #define ETM_SWOCTRL_CH2OCV_SHIFT 10
  901. #define ETM_SWOCTRL_CH3OCV_MASK 0x800u
  902. #define ETM_SWOCTRL_CH3OCV_SHIFT 11
  903. #define ETM_SWOCTRL_CH4OCV_MASK 0x1000u
  904. #define ETM_SWOCTRL_CH4OCV_SHIFT 12
  905. #define ETM_SWOCTRL_CH5OCV_MASK 0x2000u
  906. #define ETM_SWOCTRL_CH5OCV_SHIFT 13
  907. #define ETM_SWOCTRL_CH6OCV_MASK 0x4000u
  908. #define ETM_SWOCTRL_CH6OCV_SHIFT 14
  909. #define ETM_SWOCTRL_CH7OCV_MASK 0x8000u
  910. #define ETM_SWOCTRL_CH7OCV_SHIFT 15
  911. /* PWMLOAD Bit Fields */
  912. #define ETM_PWMLOAD_CH0SEL_MASK 0x1u
  913. #define ETM_PWMLOAD_CH0SEL_SHIFT 0
  914. #define ETM_PWMLOAD_CH1SEL_MASK 0x2u
  915. #define ETM_PWMLOAD_CH1SEL_SHIFT 1
  916. #define ETM_PWMLOAD_CH2SEL_MASK 0x4u
  917. #define ETM_PWMLOAD_CH2SEL_SHIFT 2
  918. #define ETM_PWMLOAD_CH3SEL_MASK 0x8u
  919. #define ETM_PWMLOAD_CH3SEL_SHIFT 3
  920. #define ETM_PWMLOAD_CH4SEL_MASK 0x10u
  921. #define ETM_PWMLOAD_CH4SEL_SHIFT 4
  922. #define ETM_PWMLOAD_CH5SEL_MASK 0x20u
  923. #define ETM_PWMLOAD_CH5SEL_SHIFT 5
  924. #define ETM_PWMLOAD_CH6SEL_MASK 0x40u
  925. #define ETM_PWMLOAD_CH6SEL_SHIFT 6
  926. #define ETM_PWMLOAD_CH7SEL_MASK 0x80u
  927. #define ETM_PWMLOAD_CH7SEL_SHIFT 7
  928. #define ETM_PWMLOAD_LDOK_MASK 0x200u
  929. #define ETM_PWMLOAD_LDOK_SHIFT 9
  930. /*!
  931. * @}
  932. */ /* end of group ETM_Register_Masks */
  933. /* ETM - Peripheral instance base addresses */
  934. /** Peripheral ETM0 base address */
  935. #define ETM0_BASE (0x40038000u)
  936. /** Peripheral ETM0 base pointer */
  937. #define ETM0 ((ETM_Type *)ETM0_BASE)
  938. /** Peripheral ETM1 base address */
  939. #define ETM1_BASE (0x40039000u)
  940. /** Peripheral ETM1 base pointer */
  941. #define ETM1 ((ETM_Type *)ETM1_BASE)
  942. /** Peripheral ETM2 base address */
  943. #define ETM2_BASE (0x4003A000u)
  944. /** Peripheral ETM2 base pointer */
  945. #define ETM2 ((ETM_Type *)ETM2_BASE)
  946. /** Array initializer of ETM peripheral base pointers */
  947. #define ETM_BASES { ETM0, ETM1, ETM2 }
  948. /*!
  949. * @}
  950. */ /* end of group ETM_Peripheral_Access_Layer */
  951. /* ----------------------------------------------------------------------------
  952. -- ETMRH Peripheral Access Layer
  953. ---------------------------------------------------------------------------- */
  954. /*!
  955. * @addtogroup ETMRH_Peripheral_Access_Layer ETMRH Peripheral Access Layer
  956. * @{
  957. */
  958. /* ----------------------------------------------------------------------------
  959. -- NV
  960. ---------------------------------------------------------------------------- */
  961. typedef struct ETMRA_MemMap {
  962. volatile unsigned long EFMCR;
  963. volatile unsigned long EFMSEC0;
  964. volatile unsigned long EFMSEC1;
  965. volatile unsigned long EFMSEC2;
  966. volatile unsigned long EFMETM0;
  967. volatile unsigned long EFMETM1;
  968. volatile unsigned long EFMCMD;
  969. } *ETMRH_MemMapPtr;
  970. #define EFM_CR_reg(base) ((base)->EFMCR)
  971. #define EFM_SEC0_reg(base) ((base)->EFMSEC0)
  972. #define EFM_SEC1_reg(base) ((base)->EFMSEC1)
  973. #define EFM_SEC2_reg(base) ((base)->EFMSEC2)
  974. #define EFM_ETM0_reg(base) ((base)->EFMETM0)
  975. #define EFM_ETM1_reg(base) ((base)->EFMETM1)
  976. #define EFM_CMD_reg(base) ((base)->EFMCMD)
  977. /** Peripheral Map **/
  978. #define ETMRH ((ETMRH_MemMapPtr)0x40020000u)
  979. #define ETMRH_FCLKDIV_FDIVLD_MASK 0x80u
  980. #define ETMRH_FSTAT_CCIF_MASK 0x80u
  981. #define ETMRH_FSTAT_ACCERR_MASK 0x20u
  982. #define ETMRH_FSTAT_FPVIOL_MASK 0x10u
  983. #define ETMRH_FSTAT_MGSTAT_MASK 0x3u
  984. #define ETMRH_ERROR (ETMRH_FSTAT_ACCERR_MASK | ETMRH_FSTAT_FPVIOL_MASK | ETMRH_FSTAT_MGSTAT_MASK)
  985. #define ETMRH_FCCOB *((volatile uint16_t *)(0x0a + 0x40020000))
  986. #define EFMCR EFM_CR_reg(ETMRH)
  987. #define EFMSEC0 EFM_SEC0_reg(ETMRH)
  988. #define EFMSEC1 EFM_SEC1_reg(ETMRH)
  989. #define EFMSEC2 EFM_SEC2_reg(ETMRH)
  990. #define EFMETM0 EFM_ETM0_reg(ETMRH)
  991. #define EFMETM1 EFM_ETM1_reg(ETMRH)
  992. #define EFMCMD EFM_CMD_reg(ETMRH)
  993. typedef struct NVR_BKDOOR_MemMap{
  994. volatile unsigned long Custombkd;
  995. } *NVR_BKDOOR_MemMapPtr;
  996. #define Custombkd_reg(base) ((base)->Custombkd)
  997. #define NVR_BKDOOR ((NVR_BKDOOR_MemMapPtr)0x40020038u)
  998. #define Custombkd Custombkd_reg(NVR_BKDOOR)
  999. /*!
  1000. * @}
  1001. */ /* end of group ETMRH_Peripheral_Access_Layer */
  1002. /* ----------------------------------------------------------------------------
  1003. -- GPIO Peripheral Access Layer
  1004. ---------------------------------------------------------------------------- */
  1005. /*!
  1006. * @addtogroup GPIO_Peripheral_Access_Layer GPIO Peripheral Access Layer
  1007. * @{
  1008. */
  1009. /** GPIO - Register Layout Typedef */
  1010. typedef struct {
  1011. __IO uint32_t PDOR; /**< Port Data Output Register, offset: 0x0 */
  1012. __O uint32_t PSOR; /**< Port Set Output Register, offset: 0x4 */
  1013. __O uint32_t PCOR; /**< Port Clear Output Register, offset: 0x8 */
  1014. __O uint32_t PTOR; /**< Port Toggle Output Register, offset: 0xC */
  1015. __I uint32_t PDIR; /**< Port Data Input Register, offset: 0x10 */
  1016. __IO uint32_t PDDR; /**< Port Data Direction Register, offset: 0x14 */
  1017. __IO uint32_t PIDR; /**< Port Input Disable Register, offset: 0x18 */
  1018. } GPIO_Type;
  1019. /* ----------------------------------------------------------------------------
  1020. -- GPIO Register Masks
  1021. ---------------------------------------------------------------------------- */
  1022. /*!
  1023. * @addtogroup GPIO_Register_Masks GPIO Register Masks
  1024. * @{
  1025. */
  1026. /* PDOR Bit Fields */
  1027. #define GPIO_PDOR_PDO_MASK 0xFFFFFFFFu
  1028. #define GPIO_PDOR_PDO_SHIFT 0
  1029. #define GPIO_PDOR_PDO(x) (((uint32_t)(((uint32_t)(x))<<GPIO_PDOR_PDO_SHIFT))&GPIO_PDOR_PDO_MASK)
  1030. /* PSOR Bit Fields */
  1031. #define GPIO_PSOR_PTSO_MASK 0xFFFFFFFFu
  1032. #define GPIO_PSOR_PTSO_SHIFT 0
  1033. #define GPIO_PSOR_PTSO(x) (((uint32_t)(((uint32_t)(x))<<GPIO_PSOR_PTSO_SHIFT))&GPIO_PSOR_PTSO_MASK)
  1034. /* PCOR Bit Fields */
  1035. #define GPIO_PCOR_PTCO_MASK 0xFFFFFFFFu
  1036. #define GPIO_PCOR_PTCO_SHIFT 0
  1037. #define GPIO_PCOR_PTCO(x) (((uint32_t)(((uint32_t)(x))<<GPIO_PCOR_PTCO_SHIFT))&GPIO_PCOR_PTCO_MASK)
  1038. /* PTOR Bit Fields */
  1039. #define GPIO_PTOR_PTTO_MASK 0xFFFFFFFFu
  1040. #define GPIO_PTOR_PTTO_SHIFT 0
  1041. #define GPIO_PTOR_PTTO(x) (((uint32_t)(((uint32_t)(x))<<GPIO_PTOR_PTTO_SHIFT))&GPIO_PTOR_PTTO_MASK)
  1042. /* PDIR Bit Fields */
  1043. #define GPIO_PDIR_PDI_MASK 0xFFFFFFFFu
  1044. #define GPIO_PDIR_PDI_SHIFT 0
  1045. #define GPIO_PDIR_PDI(x) (((uint32_t)(((uint32_t)(x))<<GPIO_PDIR_PDI_SHIFT))&GPIO_PDIR_PDI_MASK)
  1046. /* PDDR Bit Fields */
  1047. #define GPIO_PDDR_PDD_MASK 0xFFFFFFFFu
  1048. #define GPIO_PDDR_PDD_SHIFT 0
  1049. #define GPIO_PDDR_PDD(x) (((uint32_t)(((uint32_t)(x))<<GPIO_PDDR_PDD_SHIFT))&GPIO_PDDR_PDD_MASK)
  1050. /* PIDR Bit Fields */
  1051. #define GPIO_PIDR_PID_MASK 0xFFFFFFFFu
  1052. #define GPIO_PIDR_PID_SHIFT 0
  1053. #define GPIO_PIDR_PID(x) (((uint32_t)(((uint32_t)(x))<<GPIO_PIDR_PID_SHIFT))&GPIO_PIDR_PID_MASK)
  1054. /*!
  1055. * @}
  1056. */ /* end of group GPIO_Register_Masks */
  1057. /* GPIO - Peripheral instance base addresses */
  1058. /** Peripheral GPIOA base address */
  1059. #define GPIOA_BASE (0x400FF000u)
  1060. /** Peripheral GPIOA base pointer */
  1061. #define GPIOA ((GPIO_Type *)GPIOA_BASE)
  1062. /** Peripheral GPIOB base address */
  1063. #define GPIOB_BASE (0x400FF040u)
  1064. /** Peripheral GPIOB base pointer */
  1065. #define GPIOB ((GPIO_Type *)GPIOB_BASE)
  1066. /** Array initializer of GPIO peripheral base pointers */
  1067. #define GPIO_BASES { GPIOA, GPIOB }
  1068. /*!
  1069. * @}
  1070. */ /* end of group GPIO_Peripheral_Access_Layer */
  1071. /* ----------------------------------------------------------------------------
  1072. -- I2C Peripheral Access Layer
  1073. ---------------------------------------------------------------------------- */
  1074. /*!
  1075. * @addtogroup I2C_Peripheral_Access_Layer I2C Peripheral Access Layer
  1076. * @{
  1077. */
  1078. /** I2C - Register Layout Typedef */
  1079. typedef struct {
  1080. __IO uint8_t A1; /**< I2C Address Register 1, offset: 0x0 */
  1081. __IO uint8_t F; /**< I2C Frequency Divider register, offset: 0x1 */
  1082. __IO uint8_t C1; /**< I2C Control Register 1, offset: 0x2 */
  1083. __IO uint8_t S; /**< I2C Status register, offset: 0x3 */
  1084. __IO uint8_t D; /**< I2C Data I/O register, offset: 0x4 */
  1085. __IO uint8_t C2; /**< I2C Control Register 2, offset: 0x5 */
  1086. __IO uint8_t FLT; /**< I2C Programmable Input Glitch Filter register, offset: 0x6 */
  1087. __IO uint8_t RA; /**< I2C Range Address register, offset: 0x7 */
  1088. __IO uint8_t SMB; /**< I2C SMBus Control and Status register, offset: 0x8 */
  1089. __IO uint8_t A2; /**< I2C Address Register 2, offset: 0x9 */
  1090. __IO uint8_t SLTH; /**< I2C SCL Low ETMeout Register High, offset: 0xA */
  1091. __IO uint8_t SLTL; /**< I2C SCL Low ETMeout Register Low, offset: 0xB */
  1092. } I2C_Type;
  1093. /* ----------------------------------------------------------------------------
  1094. -- I2C Register Masks
  1095. ---------------------------------------------------------------------------- */
  1096. /*!
  1097. * @addtogroup I2C_Register_Masks I2C Register Masks
  1098. * @{
  1099. */
  1100. /* A1 Bit Fields */
  1101. #define I2C_A1_AD_MASK 0xFEu
  1102. #define I2C_A1_AD_SHIFT 1
  1103. #define I2C_A1_AD(x) (((uint8_t)(((uint8_t)(x))<<I2C_A1_AD_SHIFT))&I2C_A1_AD_MASK)
  1104. /* F Bit Fields */
  1105. #define I2C_F_ICR_MASK 0x3Fu
  1106. #define I2C_F_ICR_SHIFT 0
  1107. #define I2C_F_ICR(x) (((uint8_t)(((uint8_t)(x))<<I2C_F_ICR_SHIFT))&I2C_F_ICR_MASK)
  1108. #define I2C_F_MULT_MASK 0xC0u
  1109. #define I2C_F_MULT_SHIFT 6
  1110. #define I2C_F_MULT(x) (((uint8_t)(((uint8_t)(x))<<I2C_F_MULT_SHIFT))&I2C_F_MULT_MASK)
  1111. /* C1 Bit Fields */
  1112. #define I2C_C1_WUEN_MASK 0x2u
  1113. #define I2C_C1_WUEN_SHIFT 1
  1114. #define I2C_C1_RSTA_MASK 0x4u
  1115. #define I2C_C1_RSTA_SHIFT 2
  1116. #define I2C_C1_TXAK_MASK 0x8u
  1117. #define I2C_C1_TXAK_SHIFT 3
  1118. #define I2C_C1_TX_MASK 0x10u
  1119. #define I2C_C1_TX_SHIFT 4
  1120. #define I2C_C1_MST_MASK 0x20u
  1121. #define I2C_C1_MST_SHIFT 5
  1122. #define I2C_C1_IICIE_MASK 0x40u
  1123. #define I2C_C1_IICIE_SHIFT 6
  1124. #define I2C_C1_IICEN_MASK 0x80u
  1125. #define I2C_C1_IICEN_SHIFT 7
  1126. /* S Bit Fields */
  1127. #define I2C_S_RXAK_MASK 0x1u
  1128. #define I2C_S_RXAK_SHIFT 0
  1129. #define I2C_S_IICIF_MASK 0x2u
  1130. #define I2C_S_IICIF_SHIFT 1
  1131. #define I2C_S_SRW_MASK 0x4u
  1132. #define I2C_S_SRW_SHIFT 2
  1133. #define I2C_S_RAM_MASK 0x8u
  1134. #define I2C_S_RAM_SHIFT 3
  1135. #define I2C_S_ARBL_MASK 0x10u
  1136. #define I2C_S_ARBL_SHIFT 4
  1137. #define I2C_S_BUSY_MASK 0x20u
  1138. #define I2C_S_BUSY_SHIFT 5
  1139. #define I2C_S_IAAS_MASK 0x40u
  1140. #define I2C_S_IAAS_SHIFT 6
  1141. #define I2C_S_TCF_MASK 0x80u
  1142. #define I2C_S_TCF_SHIFT 7
  1143. /* D Bit Fields */
  1144. #define I2C_D_DATA_MASK 0xFFu
  1145. #define I2C_D_DATA_SHIFT 0
  1146. #define I2C_D_DATA(x) (((uint8_t)(((uint8_t)(x))<<I2C_D_DATA_SHIFT))&I2C_D_DATA_MASK)
  1147. /* C2 Bit Fields */
  1148. #define I2C_C2_AD_MASK 0x7u
  1149. #define I2C_C2_AD_SHIFT 0
  1150. #define I2C_C2_AD(x) (((uint8_t)(((uint8_t)(x))<<I2C_C2_AD_SHIFT))&I2C_C2_AD_MASK)
  1151. #define I2C_C2_RMEN_MASK 0x8u
  1152. #define I2C_C2_RMEN_SHIFT 3
  1153. #define I2C_C2_ADEXT_MASK 0x40u
  1154. #define I2C_C2_ADEXT_SHIFT 6
  1155. #define I2C_C2_GCAEN_MASK 0x80u
  1156. #define I2C_C2_GCAEN_SHIFT 7
  1157. /* FLT Bit Fields */
  1158. #define I2C_FLT_FLT_MASK 0x1Fu
  1159. #define I2C_FLT_FLT_SHIFT 0
  1160. #define I2C_FLT_FLT(x) (((uint8_t)(((uint8_t)(x))<<I2C_FLT_FLT_SHIFT))&I2C_FLT_FLT_MASK)
  1161. /* RA Bit Fields */
  1162. #define I2C_RA_RAD_MASK 0xFEu
  1163. #define I2C_RA_RAD_SHIFT 1
  1164. #define I2C_RA_RAD(x) (((uint8_t)(((uint8_t)(x))<<I2C_RA_RAD_SHIFT))&I2C_RA_RAD_MASK)
  1165. /* SMB Bit Fields */
  1166. #define I2C_SMB_SHTF2IE_MASK 0x1u
  1167. #define I2C_SMB_SHTF2IE_SHIFT 0
  1168. #define I2C_SMB_SHTF2_MASK 0x2u
  1169. #define I2C_SMB_SHTF2_SHIFT 1
  1170. #define I2C_SMB_SHTF1_MASK 0x4u
  1171. #define I2C_SMB_SHTF1_SHIFT 2
  1172. #define I2C_SMB_SLTF_MASK 0x8u
  1173. #define I2C_SMB_SLTF_SHIFT 3
  1174. #define I2C_SMB_TCKSEL_MASK 0x10u
  1175. #define I2C_SMB_TCKSEL_SHIFT 4
  1176. #define I2C_SMB_SIICAEN_MASK 0x20u
  1177. #define I2C_SMB_SIICAEN_SHIFT 5
  1178. #define I2C_SMB_ALERTEN_MASK 0x40u
  1179. #define I2C_SMB_ALERTEN_SHIFT 6
  1180. #define I2C_SMB_FACK_MASK 0x80u
  1181. #define I2C_SMB_FACK_SHIFT 7
  1182. /* A2 Bit Fields */
  1183. #define I2C_A2_SAD_MASK 0xFEu
  1184. #define I2C_A2_SAD_SHIFT 1
  1185. #define I2C_A2_SAD(x) (((uint8_t)(((uint8_t)(x))<<I2C_A2_SAD_SHIFT))&I2C_A2_SAD_MASK)
  1186. /* SLTH Bit Fields */
  1187. #define I2C_SLTH_SSLT_MASK 0xFFu
  1188. #define I2C_SLTH_SSLT_SHIFT 0
  1189. #define I2C_SLTH_SSLT(x) (((uint8_t)(((uint8_t)(x))<<I2C_SLTH_SSLT_SHIFT))&I2C_SLTH_SSLT_MASK)
  1190. /* SLTL Bit Fields */
  1191. #define I2C_SLTL_SSLT_MASK 0xFFu
  1192. #define I2C_SLTL_SSLT_SHIFT 0
  1193. #define I2C_SLTL_SSLT(x) (((uint8_t)(((uint8_t)(x))<<I2C_SLTL_SSLT_SHIFT))&I2C_SLTL_SSLT_MASK)
  1194. /*!
  1195. * @}
  1196. */ /* end of group I2C_Register_Masks */
  1197. /* I2C - Peripheral instance base addresses */
  1198. /** Peripheral I2C0 base address */
  1199. #define I2C0_BASE (0x40066000u)
  1200. /** Peripheral I2C0 base pointer */
  1201. #define I2C0 ((I2C_Type *)I2C0_BASE)
  1202. /** Array initializer of I2C peripheral base pointers */
  1203. #define I2C_BASES { I2C0 }
  1204. /*!
  1205. * @}
  1206. */ /* end of group I2C_Peripheral_Access_Layer */
  1207. /* ----------------------------------------------------------------------------
  1208. -- ICS Peripheral Access Layer
  1209. ---------------------------------------------------------------------------- */
  1210. /*!
  1211. * @addtogroup ICS_Peripheral_Access_Layer ICS Peripheral Access Layer
  1212. * @{
  1213. */
  1214. /** ICS - Register Layout Typedef */
  1215. typedef struct {
  1216. __IO uint8_t C1; /**< ICS Control Register 1, offset: 0x0 */
  1217. __IO uint8_t C2; /**< ICS Control Register 2, offset: 0x1 */
  1218. __IO uint8_t C3; /**< ICS Control Register 3, offset: 0x2 */
  1219. __IO uint8_t C4; /**< ICS Control Register 4, offset: 0x3 */
  1220. __IO uint8_t S; /**< ICS Status Register, offset: 0x4 */
  1221. } ICS_Type;
  1222. /* ----------------------------------------------------------------------------
  1223. -- ICS Register Masks
  1224. ---------------------------------------------------------------------------- */
  1225. /*!
  1226. * @addtogroup ICS_Register_Masks ICS Register Masks
  1227. * @{
  1228. */
  1229. /* C1 Bit Fields */
  1230. #define ICS_C1_IREFSTEN_MASK 0x1u
  1231. #define ICS_C1_IREFSTEN_SHIFT 0
  1232. #define ICS_C1_IRCLKEN_MASK 0x2u
  1233. #define ICS_C1_IRCLKEN_SHIFT 1
  1234. #define ICS_C1_IREFS_MASK 0x4u
  1235. #define ICS_C1_IREFS_SHIFT 2
  1236. #define ICS_C1_RDIV_MASK 0x38u
  1237. #define ICS_C1_RDIV_SHIFT 3
  1238. #define ICS_C1_RDIV(x) (((uint8_t)(((uint8_t)(x))<<ICS_C1_RDIV_SHIFT))&ICS_C1_RDIV_MASK)
  1239. #define ICS_C1_CLKS_MASK 0xC0u
  1240. #define ICS_C1_CLKS_SHIFT 6
  1241. #define ICS_C1_CLKS(x) (((uint8_t)(((uint8_t)(x))<<ICS_C1_CLKS_SHIFT))&ICS_C1_CLKS_MASK)
  1242. /* C2 Bit Fields */
  1243. #define ICS_C2_LP_MASK 0x10u
  1244. #define ICS_C2_LP_SHIFT 4
  1245. #define ICS_C2_BDIV_MASK 0xE0u
  1246. #define ICS_C2_BDIV_SHIFT 5
  1247. #define ICS_C2_BDIV(x) (((uint8_t)(((uint8_t)(x))<<ICS_C2_BDIV_SHIFT))&ICS_C2_BDIV_MASK)
  1248. /* C3 Bit Fields */
  1249. #define ICS_C3_SCTRIM_MASK 0xFFu
  1250. #define ICS_C3_SCTRIM_SHIFT 0
  1251. #define ICS_C3_SCTRIM(x) (((uint8_t)(((uint8_t)(x))<<ICS_C3_SCTRIM_SHIFT))&ICS_C3_SCTRIM_MASK)
  1252. /* C4 Bit Fields */
  1253. #define ICS_C4_SCFTRIM_MASK 0x1u
  1254. #define ICS_C4_SCFTRIM_SHIFT 0
  1255. #define ICS_C4_CME_MASK 0x20u
  1256. #define ICS_C4_CME_SHIFT 5
  1257. #define ICS_C4_LOLIE_MASK 0x80u
  1258. #define ICS_C4_LOLIE_SHIFT 7
  1259. /* S Bit Fields */
  1260. #define ICS_S_CLKST_MASK 0xCu
  1261. #define ICS_S_CLKST_SHIFT 2
  1262. #define ICS_S_CLKST(x) (((uint8_t)(((uint8_t)(x))<<ICS_S_CLKST_SHIFT))&ICS_S_CLKST_MASK)
  1263. #define ICS_S_IREFST_MASK 0x10u
  1264. #define ICS_S_IREFST_SHIFT 4
  1265. #define ICS_S_LOCK_MASK 0x40u
  1266. #define ICS_S_LOCK_SHIFT 6
  1267. #define ICS_S_LOLS_MASK 0x80u
  1268. #define ICS_S_LOLS_SHIFT 7
  1269. /*!
  1270. * @}
  1271. */ /* end of group ICS_Register_Masks */
  1272. /* ICS - Peripheral instance base addresses */
  1273. /** Peripheral ICS base address */
  1274. #define ICS_BASE (0x40064000u)
  1275. /** Peripheral ICS base pointer */
  1276. #define ICS ((ICS_Type *)ICS_BASE)
  1277. /** Array initializer of ICS peripheral base pointers */
  1278. #define ICS_BASES { ICS }
  1279. /*!
  1280. * @}
  1281. */ /* end of group ICS_Peripheral_Access_Layer */
  1282. /* ----------------------------------------------------------------------------
  1283. -- IRQ Peripheral Access Layer
  1284. ---------------------------------------------------------------------------- */
  1285. /*!
  1286. * @addtogroup IRQ_Peripheral_Access_Layer IRQ Peripheral Access Layer
  1287. * @{
  1288. */
  1289. /** IRQ - Register Layout Typedef */
  1290. typedef struct {
  1291. __IO uint8_t SC; /**< Interrupt Pin Request Status and Control Register, offset: 0x0 */
  1292. } IRQ_Type;
  1293. /* ----------------------------------------------------------------------------
  1294. -- IRQ Register Masks
  1295. ---------------------------------------------------------------------------- */
  1296. /*!
  1297. * @addtogroup IRQ_Register_Masks IRQ Register Masks
  1298. * @{
  1299. */
  1300. /* SC Bit Fields */
  1301. #define IRQ_SC_IRQMOD_MASK 0x1u
  1302. #define IRQ_SC_IRQMOD_SHIFT 0
  1303. #define IRQ_SC_IRQIE_MASK 0x2u
  1304. #define IRQ_SC_IRQIE_SHIFT 1
  1305. #define IRQ_SC_IRQACK_MASK 0x4u
  1306. #define IRQ_SC_IRQACK_SHIFT 2
  1307. #define IRQ_SC_IRQF_MASK 0x8u
  1308. #define IRQ_SC_IRQF_SHIFT 3
  1309. #define IRQ_SC_IRQPE_MASK 0x10u
  1310. #define IRQ_SC_IRQPE_SHIFT 4
  1311. #define IRQ_SC_IRQEDG_MASK 0x20u
  1312. #define IRQ_SC_IRQEDG_SHIFT 5
  1313. #define IRQ_SC_IRQPDD_MASK 0x40u
  1314. #define IRQ_SC_IRQPDD_SHIFT 6
  1315. /*!
  1316. * @}
  1317. */ /* end of group IRQ_Register_Masks */
  1318. /* IRQ - Peripheral instance base addresses */
  1319. /** Peripheral IRQ base address */
  1320. #define IRQ_BASE (0x40031000u)
  1321. /** Peripheral IRQ base pointer */
  1322. #define IRQ ((IRQ_Type *)IRQ_BASE)
  1323. /** Array initializer of IRQ peripheral base pointers */
  1324. #define IRQ_BASES { IRQ }
  1325. /*!
  1326. * @}
  1327. */ /* end of group IRQ_Peripheral_Access_Layer */
  1328. /* ----------------------------------------------------------------------------
  1329. -- KBI Peripheral Access Layer
  1330. ---------------------------------------------------------------------------- */
  1331. /*!
  1332. * @addtogroup KBI_Peripheral_Access_Layer KBI Peripheral Access Layer
  1333. * @{
  1334. */
  1335. /** KBI - Register Layout Typedef */
  1336. typedef struct {
  1337. __IO uint8_t SC; /**< KBI Status and Control Register, offset: 0x0 */
  1338. __IO uint8_t PE; /**< KBIx Pin Enable Register, offset: 0x1 */
  1339. __IO uint8_t ES; /**< KBIx Edge Select Register, offset: 0x2 */
  1340. } KBI_Type;
  1341. /* ----------------------------------------------------------------------------
  1342. -- KBI Register Masks
  1343. ---------------------------------------------------------------------------- */
  1344. /*!
  1345. * @addtogroup KBI_Register_Masks KBI Register Masks
  1346. * @{
  1347. */
  1348. /* SC Bit Fields */
  1349. #define KBI_SC_KBMOD_MASK 0x1u
  1350. #define KBI_SC_KBMOD_SHIFT 0
  1351. #define KBI_SC_KBIE_MASK 0x2u
  1352. #define KBI_SC_KBIE_SHIFT 1
  1353. #define KBI_SC_KBACK_MASK 0x4u
  1354. #define KBI_SC_KBACK_SHIFT 2
  1355. #define KBI_SC_KBF_MASK 0x8u
  1356. #define KBI_SC_KBF_SHIFT 3
  1357. /* PE Bit Fields */
  1358. #define KBI_PE_KBIPE_MASK 0xFFu
  1359. #define KBI_PE_KBIPE_SHIFT 0
  1360. #define KBI_PE_KBIPE(x) (((uint8_t)(((uint8_t)(x))<<KBI_PE_KBIPE_SHIFT))&KBI_PE_KBIPE_MASK)
  1361. /* ES Bit Fields */
  1362. #define KBI_ES_KBEDG_MASK 0xFFu
  1363. #define KBI_ES_KBEDG_SHIFT 0
  1364. #define KBI_ES_KBEDG(x) (((uint8_t)(((uint8_t)(x))<<KBI_ES_KBEDG_SHIFT))&KBI_ES_KBEDG_MASK)
  1365. /*!
  1366. * @}
  1367. */ /* end of group KBI_Register_Masks */
  1368. /* KBI - Peripheral instance base addresses */
  1369. /** Peripheral KBI0 base address */
  1370. #define KBI0_BASE (0x40079000u)
  1371. /** Peripheral KBI0 base pointer */
  1372. #define KBI0 ((KBI_Type *)KBI0_BASE)
  1373. /** Peripheral KBI1 base address */
  1374. #define KBI1_BASE (0x4007A000u)
  1375. /** Peripheral KBI1 base pointer */
  1376. #define KBI1 ((KBI_Type *)KBI1_BASE)
  1377. /** Array initializer of KBI peripheral base pointers */
  1378. #define KBI_BASES { KBI0, KBI1 }
  1379. /*!
  1380. * @}
  1381. */ /* end of group KBI_Peripheral_Access_Layer */
  1382. /* ----------------------------------------------------------------------------
  1383. -- MCM Peripheral Access Layer
  1384. ---------------------------------------------------------------------------- */
  1385. /*!
  1386. * @addtogroup MCM_Peripheral_Access_Layer MCM Peripheral Access Layer
  1387. * @{
  1388. */
  1389. /** MCM - Register Layout Typedef */
  1390. typedef struct {
  1391. uint8_t RESERVED_0[8];
  1392. __I uint16_t PLASC; /**< Crossbar Switch (AXBS) Slave Configuration, offset: 0x8 */
  1393. __I uint16_t PLAMC; /**< Crossbar Switch (AXBS) Master Configuration, offset: 0xA */
  1394. __IO uint32_t PLACR; /**< Platform Control Register, offset: 0xC */
  1395. } MCM_Type;
  1396. /* ----------------------------------------------------------------------------
  1397. -- MCM Register Masks
  1398. ---------------------------------------------------------------------------- */
  1399. /*!
  1400. * @addtogroup MCM_Register_Masks MCM Register Masks
  1401. * @{
  1402. */
  1403. /* PLASC Bit Fields */
  1404. #define MCM_PLASC_ASC_MASK 0xFFu
  1405. #define MCM_PLASC_ASC_SHIFT 0
  1406. #define MCM_PLASC_ASC(x) (((uint16_t)(((uint16_t)(x))<<MCM_PLASC_ASC_SHIFT))&MCM_PLASC_ASC_MASK)
  1407. /* PLAMC Bit Fields */
  1408. #define MCM_PLAMC_AMC_MASK 0xFFu
  1409. #define MCM_PLAMC_AMC_SHIFT 0
  1410. #define MCM_PLAMC_AMC(x) (((uint16_t)(((uint16_t)(x))<<MCM_PLAMC_AMC_SHIFT))&MCM_PLAMC_AMC_MASK)
  1411. /* PLACR Bit Fields */
  1412. #define MCM_PLACR_CFCC_MASK 0x400u
  1413. #define MCM_PLACR_CFCC_SHIFT 10
  1414. #define MCM_PLACR_DFCDA_MASK 0x800u
  1415. #define MCM_PLACR_DFCDA_SHIFT 11
  1416. #define MCM_PLACR_DFCIC_MASK 0x1000u
  1417. #define MCM_PLACR_DFCIC_SHIFT 12
  1418. #define MCM_PLACR_DFCC_MASK 0x2000u
  1419. #define MCM_PLACR_DFCC_SHIFT 13
  1420. #define MCM_PLACR_EFDS_MASK 0x4000u
  1421. #define MCM_PLACR_EFDS_SHIFT 14
  1422. #define MCM_PLACR_DFCS_MASK 0x8000u
  1423. #define MCM_PLACR_DFCS_SHIFT 15
  1424. #define MCM_PLACR_ESFC_MASK 0x10000u
  1425. #define MCM_PLACR_ESFC_SHIFT 16
  1426. /*!
  1427. * @}
  1428. */ /* end of group MCM_Register_Masks */
  1429. /* MCM - Peripheral instance base addresses */
  1430. /** Peripheral MCM base address */
  1431. #define MCM_BASE (0xF0003000u)
  1432. /** Peripheral MCM base pointer */
  1433. #define MCM ((MCM_Type *)MCM_BASE)
  1434. /** Array initializer of MCM peripheral base pointers */
  1435. #define MCM_BASES { MCM }
  1436. /*!
  1437. * @}
  1438. */ /* end of group MCM_Peripheral_Access_Layer */
  1439. /* ----------------------------------------------------------------------------
  1440. -- NV Peripheral Access Layer
  1441. ---------------------------------------------------------------------------- */
  1442. /*!
  1443. * @addtogroup NV_Peripheral_Access_Layer NV Peripheral Access Layer
  1444. * @{
  1445. */
  1446. /** NV - Register Layout Typedef */
  1447. typedef struct {
  1448. __I uint8_t BACKKEY0; /**< Backdoor Comparison Key 0, offset: 0x0 */
  1449. __I uint8_t BACKKEY1; /**< Backdoor Comparison Key 1, offset: 0x1 */
  1450. __I uint8_t BACKKEY2; /**< Backdoor Comparison Key 2, offset: 0x2 */
  1451. __I uint8_t BACKKEY3; /**< Backdoor Comparison Key 3, offset: 0x3 */
  1452. __I uint8_t BACKKEY4; /**< Backdoor Comparison Key 4, offset: 0x4 */
  1453. __I uint8_t BACKKEY5; /**< Backdoor Comparison Key 5, offset: 0x5 */
  1454. __I uint8_t BACKKEY6; /**< Backdoor Comparison Key 6, offset: 0x6 */
  1455. __I uint8_t BACKKEY7; /**< Backdoor Comparison Key 7, offset: 0x7 */
  1456. uint8_t RESERVED_0[4];
  1457. __I uint8_t EEPROT; /**< Non-volatile E-Flash Protection Register, offset: 0xC */
  1458. __I uint8_t FPROT; /**< Non-volatile P-Flash Protection Register, offset: 0xD */
  1459. __I uint8_t FSEC; /**< Non-volatile Flash Security Register, offset: 0xE */
  1460. __I uint8_t FOPT; /**< Non-volatile Flash Option Register, offset: 0xF */
  1461. } NV_Type;
  1462. /* ----------------------------------------------------------------------------
  1463. -- NV Register Masks
  1464. ---------------------------------------------------------------------------- */
  1465. /*!
  1466. * @addtogroup NV_Register_Masks NV Register Masks
  1467. * @{
  1468. */
  1469. /* BACKKEY0 Bit Fields */
  1470. #define NV_BACKKEY0_KEY_MASK 0xFFu
  1471. #define NV_BACKKEY0_KEY_SHIFT 0
  1472. #define NV_BACKKEY0_KEY(x) (((uint8_t)(((uint8_t)(x))<<NV_BACKKEY0_KEY_SHIFT))&NV_BACKKEY0_KEY_MASK)
  1473. /* BACKKEY1 Bit Fields */
  1474. #define NV_BACKKEY1_KEY_MASK 0xFFu
  1475. #define NV_BACKKEY1_KEY_SHIFT 0
  1476. #define NV_BACKKEY1_KEY(x) (((uint8_t)(((uint8_t)(x))<<NV_BACKKEY1_KEY_SHIFT))&NV_BACKKEY1_KEY_MASK)
  1477. /* BACKKEY2 Bit Fields */
  1478. #define NV_BACKKEY2_KEY_MASK 0xFFu
  1479. #define NV_BACKKEY2_KEY_SHIFT 0
  1480. #define NV_BACKKEY2_KEY(x) (((uint8_t)(((uint8_t)(x))<<NV_BACKKEY2_KEY_SHIFT))&NV_BACKKEY2_KEY_MASK)
  1481. /* BACKKEY3 Bit Fields */
  1482. #define NV_BACKKEY3_KEY_MASK 0xFFu
  1483. #define NV_BACKKEY3_KEY_SHIFT 0
  1484. #define NV_BACKKEY3_KEY(x) (((uint8_t)(((uint8_t)(x))<<NV_BACKKEY3_KEY_SHIFT))&NV_BACKKEY3_KEY_MASK)
  1485. /* BACKKEY4 Bit Fields */
  1486. #define NV_BACKKEY4_KEY_MASK 0xFFu
  1487. #define NV_BACKKEY4_KEY_SHIFT 0
  1488. #define NV_BACKKEY4_KEY(x) (((uint8_t)(((uint8_t)(x))<<NV_BACKKEY4_KEY_SHIFT))&NV_BACKKEY4_KEY_MASK)
  1489. /* BACKKEY5 Bit Fields */
  1490. #define NV_BACKKEY5_KEY_MASK 0xFFu
  1491. #define NV_BACKKEY5_KEY_SHIFT 0
  1492. #define NV_BACKKEY5_KEY(x) (((uint8_t)(((uint8_t)(x))<<NV_BACKKEY5_KEY_SHIFT))&NV_BACKKEY5_KEY_MASK)
  1493. /* BACKKEY6 Bit Fields */
  1494. #define NV_BACKKEY6_KEY_MASK 0xFFu
  1495. #define NV_BACKKEY6_KEY_SHIFT 0
  1496. #define NV_BACKKEY6_KEY(x) (((uint8_t)(((uint8_t)(x))<<NV_BACKKEY6_KEY_SHIFT))&NV_BACKKEY6_KEY_MASK)
  1497. /* BACKKEY7 Bit Fields */
  1498. #define NV_BACKKEY7_KEY_MASK 0xFFu
  1499. #define NV_BACKKEY7_KEY_SHIFT 0
  1500. #define NV_BACKKEY7_KEY(x) (((uint8_t)(((uint8_t)(x))<<NV_BACKKEY7_KEY_SHIFT))&NV_BACKKEY7_KEY_MASK)
  1501. /* EEPROT Bit Fields */
  1502. #define NV_EEPROT_DPS_MASK 0x7u
  1503. #define NV_EEPROT_DPS_SHIFT 0
  1504. #define NV_EEPROT_DPS(x) (((uint8_t)(((uint8_t)(x))<<NV_EEPROT_DPS_SHIFT))&NV_EEPROT_DPS_MASK)
  1505. #define NV_EEPROT_DPOPEN_MASK 0x80u
  1506. #define NV_EEPROT_DPOPEN_SHIFT 7
  1507. /* FPROT Bit Fields */
  1508. #define NV_FPROT_FPLS_MASK 0x3u
  1509. #define NV_FPROT_FPLS_SHIFT 0
  1510. #define NV_FPROT_FPLS(x) (((uint8_t)(((uint8_t)(x))<<NV_FPROT_FPLS_SHIFT))&NV_FPROT_FPLS_MASK)
  1511. #define NV_FPROT_FPLDIS_MASK 0x4u
  1512. #define NV_FPROT_FPLDIS_SHIFT 2
  1513. #define NV_FPROT_FPHS_MASK 0x18u
  1514. #define NV_FPROT_FPHS_SHIFT 3
  1515. #define NV_FPROT_FPHS(x) (((uint8_t)(((uint8_t)(x))<<NV_FPROT_FPHS_SHIFT))&NV_FPROT_FPHS_MASK)
  1516. #define NV_FPROT_FPHDIS_MASK 0x20u
  1517. #define NV_FPROT_FPHDIS_SHIFT 5
  1518. #define NV_FPROT_FPOPEN_MASK 0x80u
  1519. #define NV_FPROT_FPOPEN_SHIFT 7
  1520. /* FSEC Bit Fields */
  1521. #define NV_FSEC_SEC_MASK 0x3u
  1522. #define NV_FSEC_SEC_SHIFT 0
  1523. #define NV_FSEC_SEC(x) (((uint8_t)(((uint8_t)(x))<<NV_FSEC_SEC_SHIFT))&NV_FSEC_SEC_MASK)
  1524. #define NV_FSEC_KEYEN_MASK 0xC0u
  1525. #define NV_FSEC_KEYEN_SHIFT 6
  1526. #define NV_FSEC_KEYEN(x) (((uint8_t)(((uint8_t)(x))<<NV_FSEC_KEYEN_SHIFT))&NV_FSEC_KEYEN_MASK)
  1527. /*!
  1528. * @}
  1529. */ /* end of group NV_Register_Masks */
  1530. /* NV - Peripheral instance base addresses */
  1531. /** Peripheral ETMRH_FlashConfig base address */
  1532. #define ETMRH_FlashConfig_BASE (0x400u)
  1533. /** Peripheral ETMRH_FlashConfig base pointer */
  1534. #define ETMRH_FlashConfig ((NV_Type *)ETMRH_FlashConfig_BASE)
  1535. /** Array initializer of NV peripheral base pointers */
  1536. #define NV_BASES { ETMRH_FlashConfig }
  1537. /*!
  1538. * @}
  1539. */ /* end of group NV_Peripheral_Access_Layer */
  1540. /* ----------------------------------------------------------------------------
  1541. -- OSC Peripheral Access Layer
  1542. ---------------------------------------------------------------------------- */
  1543. /*!
  1544. * @addtogroup OSC_Peripheral_Access_Layer OSC Peripheral Access Layer
  1545. * @{
  1546. */
  1547. /** OSC - Register Layout Typedef */
  1548. typedef struct {
  1549. __IO uint8_t CR; /**< OSC Control Register, offset: 0x0 */
  1550. } OSC_Type;
  1551. /* ----------------------------------------------------------------------------
  1552. -- OSC Register Masks
  1553. ---------------------------------------------------------------------------- */
  1554. /*!
  1555. * @addtogroup OSC_Register_Masks OSC Register Masks
  1556. * @{
  1557. */
  1558. /* CR Bit Fields */
  1559. #define OSC_CR_OSCINIT_MASK 0x1u
  1560. #define OSC_CR_OSCINIT_SHIFT 0
  1561. #define OSC_CR_HGO_MASK 0x2u
  1562. #define OSC_CR_HGO_SHIFT 1
  1563. #define OSC_CR_RANGE_MASK 0x4u
  1564. #define OSC_CR_RANGE_SHIFT 2
  1565. #define OSC_CR_OSCOS_MASK 0x10u
  1566. #define OSC_CR_OSCOS_SHIFT 4
  1567. #define OSC_CR_OSCSTEN_MASK 0x20u
  1568. #define OSC_CR_OSCSTEN_SHIFT 5
  1569. #define OSC_CR_OSCEN_MASK 0x80u
  1570. #define OSC_CR_OSCEN_SHIFT 7
  1571. /*!
  1572. * @}
  1573. */ /* end of group OSC_Register_Masks */
  1574. /* OSC - Peripheral instance base addresses */
  1575. /** Peripheral OSC base address */
  1576. #define OSC_BASE (0x40065000u)
  1577. /** Peripheral OSC base pointer */
  1578. #define OSC ((OSC_Type *)OSC_BASE)
  1579. /** Array initializer of OSC peripheral base pointers */
  1580. #define OSC_BASES { OSC }
  1581. /*!
  1582. * @}
  1583. */ /* end of group OSC_Peripheral_Access_Layer */
  1584. /* ----------------------------------------------------------------------------
  1585. -- PIT Peripheral Access Layer
  1586. ---------------------------------------------------------------------------- */
  1587. /*!
  1588. * @addtogroup PIT_Peripheral_Access_Layer PIT Peripheral Access Layer
  1589. * @{
  1590. */
  1591. /** PIT - Register Layout Typedef */
  1592. typedef struct {
  1593. __IO uint32_t MCR; /**< PIT Module Control Register, offset: 0x0 */
  1594. uint8_t RESERVED_0[252];
  1595. struct { /* offset: 0x100, array step: 0x10 */
  1596. __IO uint32_t LDVAL; /**< ETMer Load Value Register, array offset: 0x100, array step: 0x10 */
  1597. __I uint32_t CVAL; /**< Current ETMer Value Register, array offset: 0x104, array step: 0x10 */
  1598. __IO uint32_t TCTRL; /**< ETMer Control Register, array offset: 0x108, array step: 0x10 */
  1599. __IO uint32_t TFLG; /**< ETMer Flag Register, array offset: 0x10C, array step: 0x10 */
  1600. } CHANNEL[2];
  1601. } PIT_Type;
  1602. /* ----------------------------------------------------------------------------
  1603. -- PIT Register Masks
  1604. ---------------------------------------------------------------------------- */
  1605. /*!
  1606. * @addtogroup PIT_Register_Masks PIT Register Masks
  1607. * @{
  1608. */
  1609. /* MCR Bit Fields */
  1610. #define PIT_MCR_FRZ_MASK 0x1u
  1611. #define PIT_MCR_FRZ_SHIFT 0
  1612. #define PIT_MCR_MDIS_MASK 0x2u
  1613. #define PIT_MCR_MDIS_SHIFT 1
  1614. /* LDVAL Bit Fields */
  1615. #define PIT_LDVAL_TSV_MASK 0xFFFFFFFFu
  1616. #define PIT_LDVAL_TSV_SHIFT 0
  1617. #define PIT_LDVAL_TSV(x) (((uint32_t)(((uint32_t)(x))<<PIT_LDVAL_TSV_SHIFT))&PIT_LDVAL_TSV_MASK)
  1618. /* CVAL Bit Fields */
  1619. #define PIT_CVAL_TVL_MASK 0xFFFFFFFFu
  1620. #define PIT_CVAL_TVL_SHIFT 0
  1621. #define PIT_CVAL_TVL(x) (((uint32_t)(((uint32_t)(x))<<PIT_CVAL_TVL_SHIFT))&PIT_CVAL_TVL_MASK)
  1622. /* TCTRL Bit Fields */
  1623. #define PIT_TCTRL_TEN_MASK 0x1u
  1624. #define PIT_TCTRL_TEN_SHIFT 0
  1625. #define PIT_TCTRL_TIE_MASK 0x2u
  1626. #define PIT_TCTRL_TIE_SHIFT 1
  1627. #define PIT_TCTRL_CHN_MASK 0x4u
  1628. #define PIT_TCTRL_CHN_SHIFT 2
  1629. /* TFLG Bit Fields */
  1630. #define PIT_TFLG_TIF_MASK 0x1u
  1631. #define PIT_TFLG_TIF_SHIFT 0
  1632. /*!
  1633. * @}
  1634. */ /* end of group PIT_Register_Masks */
  1635. /* PIT - Peripheral instance base addresses */
  1636. /** Peripheral PIT base address */
  1637. #define PIT_BASE (0x40037000u)
  1638. /** Peripheral PIT base pointer */
  1639. #define PIT ((PIT_Type *)PIT_BASE)
  1640. /** Array initializer of PIT peripheral base pointers */
  1641. #define PIT_BASES { PIT }
  1642. /*!
  1643. * @}
  1644. */ /* end of group PIT_Peripheral_Access_Layer */
  1645. /* ----------------------------------------------------------------------------
  1646. -- PMC Peripheral Access Layer
  1647. ---------------------------------------------------------------------------- */
  1648. /*!
  1649. * @addtogroup PMC_Peripheral_Access_Layer PMC Peripheral Access Layer
  1650. * @{
  1651. */
  1652. /** PMC - Register Layout Typedef */
  1653. typedef struct {
  1654. __IO uint8_t SPMSC1; /**< System Power Management Status and Control 1 Register, offset: 0x0 */
  1655. __IO uint8_t SPMSC2; /**< System Power Management Status and Control 2 Register, offset: 0x1 */
  1656. } PMC_Type;
  1657. /* ----------------------------------------------------------------------------
  1658. -- PMC Register Masks
  1659. ---------------------------------------------------------------------------- */
  1660. /*!
  1661. * @addtogroup PMC_Register_Masks PMC Register Masks
  1662. * @{
  1663. */
  1664. /* SPMSC1 Bit Fields */
  1665. #define PMC_SPMSC1_BGBE_MASK 0x1u
  1666. #define PMC_SPMSC1_BGBE_SHIFT 0
  1667. #define PMC_SPMSC1_BGBDS_MASK 0x2u
  1668. #define PMC_SPMSC1_BGBDS_SHIFT 1
  1669. #define PMC_SPMSC1_LVDE_MASK 0x4u
  1670. #define PMC_SPMSC1_LVDE_SHIFT 2
  1671. #define PMC_SPMSC1_LVDSE_MASK 0x8u
  1672. #define PMC_SPMSC1_LVDSE_SHIFT 3
  1673. #define PMC_SPMSC1_LVDRE_MASK 0x10u
  1674. #define PMC_SPMSC1_LVDRE_SHIFT 4
  1675. #define PMC_SPMSC1_LVWIE_MASK 0x20u
  1676. #define PMC_SPMSC1_LVWIE_SHIFT 5
  1677. #define PMC_SPMSC1_LVWACK_MASK 0x40u
  1678. #define PMC_SPMSC1_LVWACK_SHIFT 6
  1679. #define PMC_SPMSC1_LVWF_MASK 0x80u
  1680. #define PMC_SPMSC1_LVWF_SHIFT 7
  1681. /* SPMSC2 Bit Fields */
  1682. #define PMC_SPMSC2_LVWV_MASK 0x30u
  1683. #define PMC_SPMSC2_LVWV_SHIFT 4
  1684. #define PMC_SPMSC2_LVWV(x) (((uint8_t)(((uint8_t)(x))<<PMC_SPMSC2_LVWV_SHIFT))&PMC_SPMSC2_LVWV_MASK)
  1685. #define PMC_SPMSC2_LVDV_MASK 0x40u
  1686. #define PMC_SPMSC2_LVDV_SHIFT 6
  1687. /*!
  1688. * @}
  1689. */ /* end of group PMC_Register_Masks */
  1690. /* PMC - Peripheral instance base addresses */
  1691. /** Peripheral PMC base address */
  1692. #define PMC_BASE (0x4007D000u)
  1693. /** Peripheral PMC base pointer */
  1694. #define PMC ((PMC_Type *)PMC_BASE)
  1695. /** Array initializer of PMC peripheral base pointers */
  1696. #define PMC_BASES { PMC }
  1697. /*!
  1698. * @}
  1699. */ /* end of group PMC_Peripheral_Access_Layer */
  1700. /* ----------------------------------------------------------------------------
  1701. -- PORT Peripheral Access Layer
  1702. ---------------------------------------------------------------------------- */
  1703. /*!
  1704. * @addtogroup PORT_Peripheral_Access_Layer PORT Peripheral Access Layer
  1705. * @{
  1706. */
  1707. /** PORT - Register Layout Typedef */
  1708. typedef struct {
  1709. __IO uint32_t IOFLT; /**< Port Filter Register, offset: 0x0 */
  1710. __IO uint32_t PUEL; /**< Port Pullup Enable Low Register, offset: 0x4 */
  1711. __IO uint32_t PUEH; /**< Port Pullup Enable High Register, offset: 0x8 */
  1712. __IO uint32_t HDRVE; /**< Port High Drive Enable Register, offset: 0xC */
  1713. } PORT_Type;
  1714. /* ----------------------------------------------------------------------------
  1715. -- PORT Register Masks
  1716. ---------------------------------------------------------------------------- */
  1717. /*!
  1718. * @addtogroup PORT_Register_Masks PORT Register Masks
  1719. * @{
  1720. */
  1721. /* IOFLT Bit Fields */
  1722. #define PORT_IOFLT_FLTA_MASK 0x3u
  1723. #define PORT_IOFLT_FLTA_SHIFT 0
  1724. #define PORT_IOFLT_FLTA(x) (((uint32_t)(((uint32_t)(x))<<PORT_IOFLT_FLTA_SHIFT))&PORT_IOFLT_FLTA_MASK)
  1725. #define PORT_IOFLT_FLTB_MASK 0xCu
  1726. #define PORT_IOFLT_FLTB_SHIFT 2
  1727. #define PORT_IOFLT_FLTB(x) (((uint32_t)(((uint32_t)(x))<<PORT_IOFLT_FLTB_SHIFT))&PORT_IOFLT_FLTB_MASK)
  1728. #define PORT_IOFLT_FLTC_MASK 0x30u
  1729. #define PORT_IOFLT_FLTC_SHIFT 4
  1730. #define PORT_IOFLT_FLTC(x) (((uint32_t)(((uint32_t)(x))<<PORT_IOFLT_FLTC_SHIFT))&PORT_IOFLT_FLTC_MASK)
  1731. #define PORT_IOFLT_FLTD_MASK 0xC0u
  1732. #define PORT_IOFLT_FLTD_SHIFT 6
  1733. #define PORT_IOFLT_FLTD(x) (((uint32_t)(((uint32_t)(x))<<PORT_IOFLT_FLTD_SHIFT))&PORT_IOFLT_FLTD_MASK)
  1734. #define PORT_IOFLT_FLTE_MASK 0x300u
  1735. #define PORT_IOFLT_FLTE_SHIFT 8
  1736. #define PORT_IOFLT_FLTE(x) (((uint32_t)(((uint32_t)(x))<<PORT_IOFLT_FLTE_SHIFT))&PORT_IOFLT_FLTE_MASK)
  1737. #define PORT_IOFLT_FLTF_MASK 0xC00u
  1738. #define PORT_IOFLT_FLTF_SHIFT 10
  1739. #define PORT_IOFLT_FLTF(x) (((uint32_t)(((uint32_t)(x))<<PORT_IOFLT_FLTF_SHIFT))&PORT_IOFLT_FLTF_MASK)
  1740. #define PORT_IOFLT_FLTG_MASK 0x3000u
  1741. #define PORT_IOFLT_FLTG_SHIFT 12
  1742. #define PORT_IOFLT_FLTG(x) (((uint32_t)(((uint32_t)(x))<<PORT_IOFLT_FLTG_SHIFT))&PORT_IOFLT_FLTG_MASK)
  1743. #define PORT_IOFLT_FLTH_MASK 0xC000u
  1744. #define PORT_IOFLT_FLTH_SHIFT 14
  1745. #define PORT_IOFLT_FLTH(x) (((uint32_t)(((uint32_t)(x))<<PORT_IOFLT_FLTH_SHIFT))&PORT_IOFLT_FLTH_MASK)
  1746. #define PORT_IOFLT_FLTRST_MASK 0x30000u
  1747. #define PORT_IOFLT_FLTRST_SHIFT 16
  1748. #define PORT_IOFLT_FLTRST(x) (((uint32_t)(((uint32_t)(x))<<PORT_IOFLT_FLTRST_SHIFT))&PORT_IOFLT_FLTRST_MASK)
  1749. #define PORT_IOFLT_FLTKBI0_MASK 0xC0000u
  1750. #define PORT_IOFLT_FLTKBI0_SHIFT 18
  1751. #define PORT_IOFLT_FLTKBI0(x) (((uint32_t)(((uint32_t)(x))<<PORT_IOFLT_FLTKBI0_SHIFT))&PORT_IOFLT_FLTKBI0_MASK)
  1752. #define PORT_IOFLT_FLTKBI1_MASK 0x300000u
  1753. #define PORT_IOFLT_FLTKBI1_SHIFT 20
  1754. #define PORT_IOFLT_FLTKBI1(x) (((uint32_t)(((uint32_t)(x))<<PORT_IOFLT_FLTKBI1_SHIFT))&PORT_IOFLT_FLTKBI1_MASK)
  1755. #define PORT_IOFLT_FLTNMI_MASK 0xC00000u
  1756. #define PORT_IOFLT_FLTNMI_SHIFT 22
  1757. #define PORT_IOFLT_FLTNMI(x) (((uint32_t)(((uint32_t)(x))<<PORT_IOFLT_FLTNMI_SHIFT))&PORT_IOFLT_FLTNMI_MASK)
  1758. #define PORT_IOFLT_FLTDIV1_MASK 0x3000000u
  1759. #define PORT_IOFLT_FLTDIV1_SHIFT 24
  1760. #define PORT_IOFLT_FLTDIV1(x) (((uint32_t)(((uint32_t)(x))<<PORT_IOFLT_FLTDIV1_SHIFT))&PORT_IOFLT_FLTDIV1_MASK)
  1761. #define PORT_IOFLT_FLTDIV2_MASK 0x1C000000u
  1762. #define PORT_IOFLT_FLTDIV2_SHIFT 26
  1763. #define PORT_IOFLT_FLTDIV2(x) (((uint32_t)(((uint32_t)(x))<<PORT_IOFLT_FLTDIV2_SHIFT))&PORT_IOFLT_FLTDIV2_MASK)
  1764. #define PORT_IOFLT_FLTDIV3_MASK 0xE0000000u
  1765. #define PORT_IOFLT_FLTDIV3_SHIFT 29
  1766. #define PORT_IOFLT_FLTDIV3(x) (((uint32_t)(((uint32_t)(x))<<PORT_IOFLT_FLTDIV3_SHIFT))&PORT_IOFLT_FLTDIV3_MASK)
  1767. /* PUEL Bit Fields */
  1768. #define PORT_PUEL_PTAPE0_MASK 0x1u
  1769. #define PORT_PUEL_PTAPE0_SHIFT 0
  1770. #define PORT_PUEL_PTAPE1_MASK 0x2u
  1771. #define PORT_PUEL_PTAPE1_SHIFT 1
  1772. #define PORT_PUEL_PTAPE2_MASK 0x4u
  1773. #define PORT_PUEL_PTAPE2_SHIFT 2
  1774. #define PORT_PUEL_PTAPE3_MASK 0x8u
  1775. #define PORT_PUEL_PTAPE3_SHIFT 3
  1776. #define PORT_PUEL_PTAPE4_MASK 0x10u
  1777. #define PORT_PUEL_PTAPE4_SHIFT 4
  1778. #define PORT_PUEL_PTAPE5_MASK 0x20u
  1779. #define PORT_PUEL_PTAPE5_SHIFT 5
  1780. #define PORT_PUEL_PTAPE6_MASK 0x40u
  1781. #define PORT_PUEL_PTAPE6_SHIFT 6
  1782. #define PORT_PUEL_PTAPE7_MASK 0x80u
  1783. #define PORT_PUEL_PTAPE7_SHIFT 7
  1784. #define PORT_PUEL_PTBPE0_MASK 0x100u
  1785. #define PORT_PUEL_PTBPE0_SHIFT 8
  1786. #define PORT_PUEL_PTBPE1_MASK 0x200u
  1787. #define PORT_PUEL_PTBPE1_SHIFT 9
  1788. #define PORT_PUEL_PTBPE2_MASK 0x400u
  1789. #define PORT_PUEL_PTBPE2_SHIFT 10
  1790. #define PORT_PUEL_PTBPE3_MASK 0x800u
  1791. #define PORT_PUEL_PTBPE3_SHIFT 11
  1792. #define PORT_PUEL_PTBPE4_MASK 0x1000u
  1793. #define PORT_PUEL_PTBPE4_SHIFT 12
  1794. #define PORT_PUEL_PTBPE5_MASK 0x2000u
  1795. #define PORT_PUEL_PTBPE5_SHIFT 13
  1796. #define PORT_PUEL_PTBPE6_MASK 0x4000u
  1797. #define PORT_PUEL_PTBPE6_SHIFT 14
  1798. #define PORT_PUEL_PTBPE7_MASK 0x8000u
  1799. #define PORT_PUEL_PTBPE7_SHIFT 15
  1800. #define PORT_PUEL_PTCPE0_MASK 0x10000u
  1801. #define PORT_PUEL_PTCPE0_SHIFT 16
  1802. #define PORT_PUEL_PTCPE1_MASK 0x20000u
  1803. #define PORT_PUEL_PTCPE1_SHIFT 17
  1804. #define PORT_PUEL_PTCPE2_MASK 0x40000u
  1805. #define PORT_PUEL_PTCPE2_SHIFT 18
  1806. #define PORT_PUEL_PTCPE3_MASK 0x80000u
  1807. #define PORT_PUEL_PTCPE3_SHIFT 19
  1808. #define PORT_PUEL_PTCPE4_MASK 0x100000u
  1809. #define PORT_PUEL_PTCPE4_SHIFT 20
  1810. #define PORT_PUEL_PTCPE5_MASK 0x200000u
  1811. #define PORT_PUEL_PTCPE5_SHIFT 21
  1812. #define PORT_PUEL_PTCPE6_MASK 0x400000u
  1813. #define PORT_PUEL_PTCPE6_SHIFT 22
  1814. #define PORT_PUEL_PTCPE7_MASK 0x800000u
  1815. #define PORT_PUEL_PTCPE7_SHIFT 23
  1816. #define PORT_PUEL_PTDPE0_MASK 0x1000000u
  1817. #define PORT_PUEL_PTDPE0_SHIFT 24
  1818. #define PORT_PUEL_PTDPE1_MASK 0x2000000u
  1819. #define PORT_PUEL_PTDPE1_SHIFT 25
  1820. #define PORT_PUEL_PTDPE2_MASK 0x4000000u
  1821. #define PORT_PUEL_PTDPE2_SHIFT 26
  1822. #define PORT_PUEL_PTDPE3_MASK 0x8000000u
  1823. #define PORT_PUEL_PTDPE3_SHIFT 27
  1824. #define PORT_PUEL_PTDPE4_MASK 0x10000000u
  1825. #define PORT_PUEL_PTDPE4_SHIFT 28
  1826. #define PORT_PUEL_PTDPE5_MASK 0x20000000u
  1827. #define PORT_PUEL_PTDPE5_SHIFT 29
  1828. #define PORT_PUEL_PTDPE6_MASK 0x40000000u
  1829. #define PORT_PUEL_PTDPE6_SHIFT 30
  1830. #define PORT_PUEL_PTDPE7_MASK 0x80000000u
  1831. #define PORT_PUEL_PTDPE7_SHIFT 31
  1832. /* PUEH Bit Fields */
  1833. #define PORT_PUEH_PTEPE0_MASK 0x1u
  1834. #define PORT_PUEH_PTEPE0_SHIFT 0
  1835. #define PORT_PUEH_PTEPE1_MASK 0x2u
  1836. #define PORT_PUEH_PTEPE1_SHIFT 1
  1837. #define PORT_PUEH_PTEPE2_MASK 0x4u
  1838. #define PORT_PUEH_PTEPE2_SHIFT 2
  1839. #define PORT_PUEH_PTEPE3_MASK 0x8u
  1840. #define PORT_PUEH_PTEPE3_SHIFT 3
  1841. #define PORT_PUEH_PTEPE4_MASK 0x10u
  1842. #define PORT_PUEH_PTEPE4_SHIFT 4
  1843. #define PORT_PUEH_PTEPE5_MASK 0x20u
  1844. #define PORT_PUEH_PTEPE5_SHIFT 5
  1845. #define PORT_PUEH_PTEPE6_MASK 0x40u
  1846. #define PORT_PUEH_PTEPE6_SHIFT 6
  1847. #define PORT_PUEH_PTEPE7_MASK 0x80u
  1848. #define PORT_PUEH_PTEPE7_SHIFT 7
  1849. #define PORT_PUEH_PTFPE0_MASK 0x100u
  1850. #define PORT_PUEH_PTFPE0_SHIFT 8
  1851. #define PORT_PUEH_PTFPE1_MASK 0x200u
  1852. #define PORT_PUEH_PTFPE1_SHIFT 9
  1853. #define PORT_PUEH_PTFPE2_MASK 0x400u
  1854. #define PORT_PUEH_PTFPE2_SHIFT 10
  1855. #define PORT_PUEH_PTFPE3_MASK 0x800u
  1856. #define PORT_PUEH_PTFPE3_SHIFT 11
  1857. #define PORT_PUEH_PTFPE4_MASK 0x1000u
  1858. #define PORT_PUEH_PTFPE4_SHIFT 12
  1859. #define PORT_PUEH_PTFPE5_MASK 0x2000u
  1860. #define PORT_PUEH_PTFPE5_SHIFT 13
  1861. #define PORT_PUEH_PTFPE6_MASK 0x4000u
  1862. #define PORT_PUEH_PTFPE6_SHIFT 14
  1863. #define PORT_PUEH_PTFPE7_MASK 0x8000u
  1864. #define PORT_PUEH_PTFPE7_SHIFT 15
  1865. #define PORT_PUEH_PTGPE0_MASK 0x10000u
  1866. #define PORT_PUEH_PTGPE0_SHIFT 16
  1867. #define PORT_PUEH_PTGPE1_MASK 0x20000u
  1868. #define PORT_PUEH_PTGPE1_SHIFT 17
  1869. #define PORT_PUEH_PTGPE2_MASK 0x40000u
  1870. #define PORT_PUEH_PTGPE2_SHIFT 18
  1871. #define PORT_PUEH_PTGPE3_MASK 0x80000u
  1872. #define PORT_PUEH_PTGPE3_SHIFT 19
  1873. #define PORT_PUEH_PTHPE0_MASK 0x1000000u
  1874. #define PORT_PUEH_PTHPE0_SHIFT 24
  1875. #define PORT_PUEH_PTHPE1_MASK 0x2000000u
  1876. #define PORT_PUEH_PTHPE1_SHIFT 25
  1877. #define PORT_PUEH_PTHPE2_MASK 0x4000000u
  1878. #define PORT_PUEH_PTHPE2_SHIFT 26
  1879. #define PORT_PUEH_PTHPE6_MASK 0x40000000u
  1880. #define PORT_PUEH_PTHPE6_SHIFT 30
  1881. #define PORT_PUEH_PTHPE7_MASK 0x80000000u
  1882. #define PORT_PUEH_PTHPE7_SHIFT 31
  1883. /* HDRVE Bit Fields */
  1884. #define PORT_HDRVE_PTB4_MASK 0x1u
  1885. #define PORT_HDRVE_PTB4_SHIFT 0
  1886. #define PORT_HDRVE_PTB5_MASK 0x2u
  1887. #define PORT_HDRVE_PTB5_SHIFT 1
  1888. #define PORT_HDRVE_PTD0_MASK 0x4u
  1889. #define PORT_HDRVE_PTD0_SHIFT 2
  1890. #define PORT_HDRVE_PTD1_MASK 0x8u
  1891. #define PORT_HDRVE_PTD1_SHIFT 3
  1892. #define PORT_HDRVE_PTE0_MASK 0x10u
  1893. #define PORT_HDRVE_PTE0_SHIFT 4
  1894. #define PORT_HDRVE_PTE1_MASK 0x20u
  1895. #define PORT_HDRVE_PTE1_SHIFT 5
  1896. #define PORT_HDRVE_PTH0_MASK 0x40u
  1897. #define PORT_HDRVE_PTH0_SHIFT 6
  1898. #define PORT_HDRVE_PTH1_MASK 0x80u
  1899. #define PORT_HDRVE_PTH1_SHIFT 7
  1900. /*!
  1901. * @}
  1902. */ /* end of group PORT_Register_Masks */
  1903. /* PORT - Peripheral instance base addresses */
  1904. /** Peripheral PORT base address */
  1905. #define PORT_BASE (0x40049000u)
  1906. /** Peripheral PORT base pointer */
  1907. #define PORT ((PORT_Type *)PORT_BASE)
  1908. /** Array initializer of PORT peripheral base pointers */
  1909. #define PORT_BASES { PORT }
  1910. /*!
  1911. * @}
  1912. */ /* end of group PORT_Peripheral_Access_Layer */
  1913. /* ----------------------------------------------------------------------------
  1914. -- RTC Peripheral Access Layer
  1915. ---------------------------------------------------------------------------- */
  1916. /*!
  1917. * @addtogroup RTC_Peripheral_Access_Layer RTC Peripheral Access Layer
  1918. * @{
  1919. */
  1920. /** RTC - Register Layout Typedef */
  1921. typedef struct {
  1922. __IO uint32_t SC; /**< RTC Status and Control Register, offset: 0x0 */
  1923. __IO uint32_t MOD; /**< RTC Modulo Register, offset: 0x4 */
  1924. __I uint32_t CNT; /**< RTC Counter Register, offset: 0x8 */
  1925. } RTC_Type;
  1926. /* ----------------------------------------------------------------------------
  1927. -- RTC Register Masks
  1928. ---------------------------------------------------------------------------- */
  1929. /*!
  1930. * @addtogroup RTC_Register_Masks RTC Register Masks
  1931. * @{
  1932. */
  1933. /* SC Bit Fields */
  1934. #define RTC_SC_RTCO_MASK 0x10u
  1935. #define RTC_SC_RTCO_SHIFT 4
  1936. #define RTC_SC_RTIE_MASK 0x40u
  1937. #define RTC_SC_RTIE_SHIFT 6
  1938. #define RTC_SC_RTIF_MASK 0x80u
  1939. #define RTC_SC_RTIF_SHIFT 7
  1940. #define RTC_SC_RTCPS_MASK 0x700u
  1941. #define RTC_SC_RTCPS_SHIFT 8
  1942. #define RTC_SC_RTCPS(x) (((uint32_t)(((uint32_t)(x))<<RTC_SC_RTCPS_SHIFT))&RTC_SC_RTCPS_MASK)
  1943. #define RTC_SC_RTCLKS_MASK 0xC000u
  1944. #define RTC_SC_RTCLKS_SHIFT 14
  1945. #define RTC_SC_RTCLKS(x) (((uint32_t)(((uint32_t)(x))<<RTC_SC_RTCLKS_SHIFT))&RTC_SC_RTCLKS_MASK)
  1946. /* MOD Bit Fields */
  1947. #define RTC_MOD_MOD_MASK 0xFFFFu
  1948. #define RTC_MOD_MOD_SHIFT 0
  1949. #define RTC_MOD_MOD(x) (((uint32_t)(((uint32_t)(x))<<RTC_MOD_MOD_SHIFT))&RTC_MOD_MOD_MASK)
  1950. /* CNT Bit Fields */
  1951. #define RTC_CNT_CNT_MASK 0xFFFFu
  1952. #define RTC_CNT_CNT_SHIFT 0
  1953. #define RTC_CNT_CNT(x) (((uint32_t)(((uint32_t)(x))<<RTC_CNT_CNT_SHIFT))&RTC_CNT_CNT_MASK)
  1954. /*!
  1955. * @}
  1956. */ /* end of group RTC_Register_Masks */
  1957. /* RTC - Peripheral instance base addresses */
  1958. /** Peripheral RTC base address */
  1959. #define RTC_BASE (0x4003D000u)
  1960. /** Peripheral RTC base pointer */
  1961. #define RTC ((RTC_Type *)RTC_BASE)
  1962. /** Array initializer of RTC peripheral base pointers */
  1963. #define RTC_BASES { RTC }
  1964. /*!
  1965. * @}
  1966. */ /* end of group RTC_Peripheral_Access_Layer */
  1967. /* ----------------------------------------------------------------------------
  1968. -- SIM Peripheral Access Layer
  1969. ---------------------------------------------------------------------------- */
  1970. /*!
  1971. * @addtogroup SIM_Peripheral_Access_Layer SIM Peripheral Access Layer
  1972. * @{
  1973. */
  1974. /** SIM - Register Layout Typedef */
  1975. typedef struct {
  1976. __I uint32_t SRSID; /**< System Reset Status and ID Register, offset: 0x0 */
  1977. __IO uint32_t SOPT; /**< System Options Register, offset: 0x4 */
  1978. __IO uint32_t PINSEL; /**< Pin Selection Register, offset: 0x8 */
  1979. __IO uint32_t SCGC; /**< System Clock Gating Control Register, offset: 0xC */
  1980. __I uint32_t UUIDL; /**< Universally Unique Identifier Low Register, offset: 0x10 */
  1981. __I uint32_t UUIDM;
  1982. __I uint32_t UUIDH; /**< Universally Unique Identifier High Register, offset: 0x14 */
  1983. __IO uint32_t BUSDIV; /**< BUS Clock Divider Register, offset: 0x18 */
  1984. } SIM_Type;
  1985. /* ----------------------------------------------------------------------------
  1986. -- SIM Register Masks
  1987. ---------------------------------------------------------------------------- */
  1988. /*!
  1989. * @addtogroup SIM_Register_Masks SIM Register Masks
  1990. * @{
  1991. */
  1992. /* SRSID Bit Fields */
  1993. #define SIM_SRSID_LVD_MASK 0x2u
  1994. #define SIM_SRSID_LVD_SHIFT 1
  1995. #define SIM_SRSID_LOC_MASK 0x4u
  1996. #define SIM_SRSID_LOC_SHIFT 2
  1997. #define SIM_SRSID_WDOG_MASK 0x20u
  1998. #define SIM_SRSID_WDOG_SHIFT 5
  1999. #define SIM_SRSID_PIN_MASK 0x40u
  2000. #define SIM_SRSID_PIN_SHIFT 6
  2001. #define SIM_SRSID_POR_MASK 0x80u
  2002. #define SIM_SRSID_POR_SHIFT 7
  2003. #define SIM_SRSID_LOCKUP_MASK 0x200u
  2004. #define SIM_SRSID_LOCKUP_SHIFT 9
  2005. #define SIM_SRSID_SW_MASK 0x400u
  2006. #define SIM_SRSID_SW_SHIFT 10
  2007. #define SIM_SRSID_MDMAP_MASK 0x800u
  2008. #define SIM_SRSID_MDMAP_SHIFT 11
  2009. #define SIM_SRSID_SACKERR_MASK 0x2000u
  2010. #define SIM_SRSID_SACKERR_SHIFT 13
  2011. #define SIM_SRSID_PINID_MASK 0xF0000u
  2012. #define SIM_SRSID_PINID_SHIFT 16
  2013. #define SIM_SRSID_PINID(x) (((uint32_t)(((uint32_t)(x))<<SIM_SRSID_PINID_SHIFT))&SIM_SRSID_PINID_MASK)
  2014. #define SIM_SRSID_RevID_MASK 0xF00000u
  2015. #define SIM_SRSID_RevID_SHIFT 20
  2016. #define SIM_SRSID_RevID(x) (((uint32_t)(((uint32_t)(x))<<SIM_SRSID_RevID_SHIFT))&SIM_SRSID_RevID_MASK)
  2017. #define SIM_SRSID_SUBFAMID_MASK 0xF000000u
  2018. #define SIM_SRSID_SUBFAMID_SHIFT 24
  2019. #define SIM_SRSID_SUBFAMID(x) (((uint32_t)(((uint32_t)(x))<<SIM_SRSID_SUBFAMID_SHIFT))&SIM_SRSID_SUBFAMID_MASK)
  2020. #define SIM_SRSID_FAMID_MASK 0xF0000000u
  2021. #define SIM_SRSID_FAMID_SHIFT 28
  2022. #define SIM_SRSID_FAMID(x) (((uint32_t)(((uint32_t)(x))<<SIM_SRSID_FAMID_SHIFT))&SIM_SRSID_FAMID_MASK)
  2023. /* SOPT Bit Fields */
  2024. #define SIM_SOPT_NMIE_MASK 0x2u
  2025. #define SIM_SOPT_NMIE_SHIFT 1
  2026. #define SIM_SOPT_RSTPE_MASK 0x4u
  2027. #define SIM_SOPT_RSTPE_SHIFT 2
  2028. #define SIM_SOPT_SWDE_MASK 0x8u
  2029. #define SIM_SOPT_SWDE_SHIFT 3
  2030. #define SIM_SOPT_ADHWT_MASK 0x300u
  2031. #define SIM_SOPT_ADHWT_SHIFT 8
  2032. #define SIM_SOPT_ADHWT(x) (((uint32_t)(((uint32_t)(x))<<SIM_SOPT_ADHWT_SHIFT))&SIM_SOPT_ADHWT_MASK)
  2033. #define SIM_SOPT_RTCC_MASK 0x400u
  2034. #define SIM_SOPT_RTCC_SHIFT 10
  2035. #define SIM_SOPT_ACIC_MASK 0x800u
  2036. #define SIM_SOPT_ACIC_SHIFT 11
  2037. #define SIM_SOPT_RXDCE_MASK 0x1000u
  2038. #define SIM_SOPT_RXDCE_SHIFT 12
  2039. #define SIM_SOPT_RXDFE_MASK 0x2000u
  2040. #define SIM_SOPT_RXDFE_SHIFT 13
  2041. #define SIM_SOPT_ETMSYNC_MASK 0x4000u
  2042. #define SIM_SOPT_ETMSYNC_SHIFT 14
  2043. #define SIM_SOPT_TXDME_MASK 0x8000u
  2044. #define SIM_SOPT_TXDME_SHIFT 15
  2045. #define SIM_SOPT_BUSREF_MASK 0x70000u
  2046. #define SIM_SOPT_BUSREF_SHIFT 16
  2047. #define SIM_SOPT_BUSREF(x) (((uint32_t)(((uint32_t)(x))<<SIM_SOPT_BUSREF_SHIFT))&SIM_SOPT_BUSREF_MASK)
  2048. #define SIM_SOPT_CLKOE_MASK 0x80000u
  2049. #define SIM_SOPT_CLKOE_SHIFT 19
  2050. #define SIM_SOPT_DLYACT_MASK 0x800000u
  2051. #define SIM_SOPT_DLYACT_SHIFT 23
  2052. #define SIM_SOPT_DELAY_MASK 0xFF000000u
  2053. #define SIM_SOPT_DELAY_SHIFT 24
  2054. #define SIM_SOPT_DELAY(x) (((uint32_t)(((uint32_t)(x))<<SIM_SOPT_DELAY_SHIFT))&SIM_SOPT_DELAY_MASK)
  2055. /* PINSEL Bit Fields */
  2056. #define SIM_PINSEL_RTCPS_MASK 0x10u
  2057. #define SIM_PINSEL_RTCPS_SHIFT 4
  2058. #define SIM_PINSEL_IICPS_MASK 0x20u
  2059. #define SIM_PINSEL_IICPS_SHIFT 5
  2060. #define SIM_PINSEL_SPI0PS_MASK 0x40u
  2061. #define SIM_PINSEL_SPI0PS_SHIFT 6
  2062. #define SIM_PINSEL_UART0PS_MASK 0x80u
  2063. #define SIM_PINSEL_UART0PS_SHIFT 7
  2064. #define SIM_PINSEL_ETM0PS0_MASK 0x100u
  2065. #define SIM_PINSEL_ETM0PS0_SHIFT 8
  2066. #define SIM_PINSEL_ETM0PS1_MASK 0x200u
  2067. #define SIM_PINSEL_ETM0PS1_SHIFT 9
  2068. #define SIM_PINSEL_ETM1PS0_MASK 0x400u
  2069. #define SIM_PINSEL_ETM1PS0_SHIFT 10
  2070. #define SIM_PINSEL_ETM1PS1_MASK 0x800u
  2071. #define SIM_PINSEL_ETM1PS1_SHIFT 11
  2072. #define SIM_PINSEL_ETM2PS0_MASK 0x1000u
  2073. #define SIM_PINSEL_ETM2PS0_SHIFT 12
  2074. #define SIM_PINSEL_ETM2PS1_MASK 0x2000u
  2075. #define SIM_PINSEL_ETM2PS1_SHIFT 13
  2076. #define SIM_PINSEL_ETM2PS2_MASK 0x4000u
  2077. #define SIM_PINSEL_ETM2PS2_SHIFT 14
  2078. #define SIM_PINSEL_ETM2PS3_MASK 0x8000u
  2079. #define SIM_PINSEL_ETM2PS3_SHIFT 15
  2080. /* SCGC Bit Fields */
  2081. #define SIM_SCGC_RTC_MASK 0x1u
  2082. #define SIM_SCGC_RTC_SHIFT 0
  2083. #define SIM_SCGC_PIT_MASK 0x2u
  2084. #define SIM_SCGC_PIT_SHIFT 1
  2085. #define SIM_SCGC_ETM0_MASK 0x20u
  2086. #define SIM_SCGC_ETM0_SHIFT 5
  2087. #define SIM_SCGC_ETM1_MASK 0x40u
  2088. #define SIM_SCGC_ETM1_SHIFT 6
  2089. #define SIM_SCGC_ETM2_MASK 0x80u
  2090. #define SIM_SCGC_ETM2_SHIFT 7
  2091. #define SIM_SCGC_CRC_MASK 0x400u
  2092. #define SIM_SCGC_CRC_SHIFT 10
  2093. #define SIM_SCGC_FLASH_MASK 0x1000u
  2094. #define SIM_SCGC_FLASH_SHIFT 12
  2095. #define SIM_SCGC_SWD_MASK 0x2000u
  2096. #define SIM_SCGC_SWD_SHIFT 13
  2097. #define SIM_SCGC_IIC_MASK 0x20000u
  2098. #define SIM_SCGC_IIC_SHIFT 17
  2099. #define SIM_SCGC_SPI0_MASK 0x40000u
  2100. #define SIM_SCGC_SPI0_SHIFT 18
  2101. #define SIM_SCGC_SPI1_MASK 0x80000u
  2102. #define SIM_SCGC_SPI1_SHIFT 19
  2103. #define SIM_SCGC_UART0_MASK 0x100000u
  2104. #define SIM_SCGC_UART0_SHIFT 20
  2105. #define SIM_SCGC_UART1_MASK 0x200000u
  2106. #define SIM_SCGC_UART1_SHIFT 21
  2107. #define SIM_SCGC_UART2_MASK 0x400000u
  2108. #define SIM_SCGC_UART2_SHIFT 22
  2109. #define SIM_SCGC_KBI0_MASK 0x1000000u
  2110. #define SIM_SCGC_KBI0_SHIFT 24
  2111. #define SIM_SCGC_KBI1_MASK 0x2000000u
  2112. #define SIM_SCGC_KBI1_SHIFT 25
  2113. #define SIM_SCGC_IRQ_MASK 0x8000000u
  2114. #define SIM_SCGC_IRQ_SHIFT 27
  2115. #define SIM_SCGC_ADC_MASK 0x20000000u
  2116. #define SIM_SCGC_ADC_SHIFT 29
  2117. #define SIM_SCGC_ACMP0_MASK 0x40000000u
  2118. #define SIM_SCGC_ACMP0_SHIFT 30
  2119. #define SIM_SCGC_ACMP1_MASK 0x80000000u
  2120. #define SIM_SCGC_ACMP1_SHIFT 31
  2121. /* UUIDL Bit Fields */
  2122. #define SIM_UUIDL_ID_MASK 0xFFFFFFFFu
  2123. #define SIM_UUIDL_ID_SHIFT 0
  2124. #define SIM_UUIDL_ID(x) (((uint32_t)(((uint32_t)(x))<<SIM_UUIDL_ID_SHIFT))&SIM_UUIDL_ID_MASK)
  2125. /* UUIDH Bit Fields */
  2126. #define SIM_UUIDM_ID_MASK 0xFFFFFFFFu
  2127. #define SIM_UUIDM_ID_SHIFT 0
  2128. #define SIM_UUIDM_ID(x) (((uint32_t)(((uint32_t)(x))<<SIM_UUIDM_ID_SHIFT))&SIM_UUIDM_ID_MASK)
  2129. /* UUIDM Bit Fields */
  2130. #define SIM_UUIDH_ID_MASK 0xFFFFFFFFu
  2131. #define SIM_UUIDH_ID_SHIFT 0
  2132. #define SIM_UUIDH_ID(x) (((uint32_t)(((uint32_t)(x))<<SIM_UUIDH_ID_SHIFT))&SIM_UUIDH_ID_MASK)
  2133. /* BUSDIV Bit Fields */
  2134. #define SIM_BUSDIV_BUSDIV_MASK 0x1u
  2135. #define SIM_BUSDIV_BUSDIV_SHIFT 0
  2136. /*!
  2137. * @}
  2138. */ /* end of group SIM_Register_Masks */
  2139. /* SIM - Peripheral instance base addresses */
  2140. /** Peripheral SIM base address */
  2141. #define SIM_BASE (0x40048000u)
  2142. /** Peripheral SIM base pointer */
  2143. #define SIM ((SIM_Type *)SIM_BASE)
  2144. /** Array initializer of SIM peripheral base pointers */
  2145. #define SIM_BASES { SIM }
  2146. /*!
  2147. * @}
  2148. */ /* end of group SIM_Peripheral_Access_Layer */
  2149. /* ----------------------------------------------------------------------------
  2150. -- SPI Peripheral Access Layer
  2151. ---------------------------------------------------------------------------- */
  2152. /*!
  2153. * @addtogroup SPI_Peripheral_Access_Layer SPI Peripheral Access Layer
  2154. * @{
  2155. */
  2156. /** SPI - Register Layout Typedef */
  2157. typedef struct {
  2158. __IO uint8_t C1; /**< SPI control register 1, offset: 0x0 */
  2159. __IO uint8_t C2; /**< SPI control register 2, offset: 0x1 */
  2160. __IO uint8_t BR; /**< SPI baud rate register, offset: 0x2 */
  2161. __I uint8_t S; /**< SPI status register, offset: 0x3 */
  2162. uint8_t RESERVED_0[1];
  2163. __IO uint8_t D; /**< SPI data register, offset: 0x5 */
  2164. uint8_t RESERVED_1[1];
  2165. __IO uint8_t M; /**< SPI match register, offset: 0x7 */
  2166. } SPI_Type;
  2167. /* ----------------------------------------------------------------------------
  2168. -- SPI Register Masks
  2169. ---------------------------------------------------------------------------- */
  2170. /*!
  2171. * @addtogroup SPI_Register_Masks SPI Register Masks
  2172. * @{
  2173. */
  2174. /* C1 Bit Fields */
  2175. #define SPI_C1_LSBFE_MASK 0x1u
  2176. #define SPI_C1_LSBFE_SHIFT 0
  2177. #define SPI_C1_SSOE_MASK 0x2u
  2178. #define SPI_C1_SSOE_SHIFT 1
  2179. #define SPI_C1_CPHA_MASK 0x4u
  2180. #define SPI_C1_CPHA_SHIFT 2
  2181. #define SPI_C1_CPOL_MASK 0x8u
  2182. #define SPI_C1_CPOL_SHIFT 3
  2183. #define SPI_C1_MSTR_MASK 0x10u
  2184. #define SPI_C1_MSTR_SHIFT 4
  2185. #define SPI_C1_SPTIE_MASK 0x20u
  2186. #define SPI_C1_SPTIE_SHIFT 5
  2187. #define SPI_C1_SPE_MASK 0x40u
  2188. #define SPI_C1_SPE_SHIFT 6
  2189. #define SPI_C1_SPIE_MASK 0x80u
  2190. #define SPI_C1_SPIE_SHIFT 7
  2191. /* C2 Bit Fields */
  2192. #define SPI_C2_SPC0_MASK 0x1u
  2193. #define SPI_C2_SPC0_SHIFT 0
  2194. #define SPI_C2_SPISWAI_MASK 0x2u
  2195. #define SPI_C2_SPISWAI_SHIFT 1
  2196. #define SPI_C2_BIDIROE_MASK 0x8u
  2197. #define SPI_C2_BIDIROE_SHIFT 3
  2198. #define SPI_C2_MODFEN_MASK 0x10u
  2199. #define SPI_C2_MODFEN_SHIFT 4
  2200. #define SPI_C2_SPMIE_MASK 0x80u
  2201. #define SPI_C2_SPMIE_SHIFT 7
  2202. /* BR Bit Fields */
  2203. #define SPI_BR_SPR_MASK 0xFu
  2204. #define SPI_BR_SPR_SHIFT 0
  2205. #define SPI_BR_SPR(x) (((uint8_t)(((uint8_t)(x))<<SPI_BR_SPR_SHIFT))&SPI_BR_SPR_MASK)
  2206. #define SPI_BR_SPPR_MASK 0x70u
  2207. #define SPI_BR_SPPR_SHIFT 4
  2208. #define SPI_BR_SPPR(x) (((uint8_t)(((uint8_t)(x))<<SPI_BR_SPPR_SHIFT))&SPI_BR_SPPR_MASK)
  2209. /* S Bit Fields */
  2210. #define SPI_S_MODF_MASK 0x10u
  2211. #define SPI_S_MODF_SHIFT 4
  2212. #define SPI_S_SPTEF_MASK 0x20u
  2213. #define SPI_S_SPTEF_SHIFT 5
  2214. #define SPI_S_SPMF_MASK 0x40u
  2215. #define SPI_S_SPMF_SHIFT 6
  2216. #define SPI_S_SPRF_MASK 0x80u
  2217. #define SPI_S_SPRF_SHIFT 7
  2218. /* D Bit Fields */
  2219. #define SPI_D_Bits_MASK 0xFFu
  2220. #define SPI_D_Bits_SHIFT 0
  2221. #define SPI_D_Bits(x) (((uint8_t)(((uint8_t)(x))<<SPI_D_Bits_SHIFT))&SPI_D_Bits_MASK)
  2222. /* M Bit Fields */
  2223. #define SPI_M_Bits_MASK 0xFFu
  2224. #define SPI_M_Bits_SHIFT 0
  2225. #define SPI_M_Bits(x) (((uint8_t)(((uint8_t)(x))<<SPI_M_Bits_SHIFT))&SPI_M_Bits_MASK)
  2226. /*!
  2227. * @}
  2228. */ /* end of group SPI_Register_Masks */
  2229. /* SPI - Peripheral instance base addresses */
  2230. /** Peripheral SPI0 base address */
  2231. #define SPI0_BASE (0x40076000u)
  2232. /** Peripheral SPI0 base pointer */
  2233. #define SPI0 ((SPI_Type *)SPI0_BASE)
  2234. /** Peripheral SPI1 base address */
  2235. #define SPI1_BASE (0x40077000u)
  2236. /** Peripheral SPI1 base pointer */
  2237. #define SPI1 ((SPI_Type *)SPI1_BASE)
  2238. /** Array initializer of SPI peripheral base pointers */
  2239. #define SPI_BASES { SPI0, SPI1 }
  2240. /*!
  2241. * @}
  2242. */ /* end of group SPI_Peripheral_Access_Layer */
  2243. /* ----------------------------------------------------------------------------
  2244. -- UART Peripheral Access Layer
  2245. ---------------------------------------------------------------------------- */
  2246. /*!
  2247. * @addtogroup UART_Peripheral_Access_Layer UART Peripheral Access Layer
  2248. * @{
  2249. */
  2250. /** UART - Register Layout Typedef */
  2251. typedef struct {
  2252. __IO uint8_t BDH; /**< UART Baud Rate Register: High, offset: 0x0 */
  2253. __IO uint8_t BDL; /**< UART Baud Rate Register: Low, offset: 0x1 */
  2254. __IO uint8_t C1; /**< UART Control Register 1, offset: 0x2 */
  2255. __IO uint8_t C2; /**< UART Control Register 2, offset: 0x3 */
  2256. __I uint8_t S1; /**< UART Status Register 1, offset: 0x4 */
  2257. __IO uint8_t S2; /**< UART Status Register 2, offset: 0x5 */
  2258. __IO uint8_t C3; /**< UART Control Register 3, offset: 0x6 */
  2259. __IO uint8_t D; /**< UART Data Register, offset: 0x7 */
  2260. } UART_Type;
  2261. /* ----------------------------------------------------------------------------
  2262. -- UART Register Masks
  2263. ---------------------------------------------------------------------------- */
  2264. /*!
  2265. * @addtogroup UART_Register_Masks UART Register Masks
  2266. * @{
  2267. */
  2268. /* BDH Bit Fields */
  2269. #define UART_BDH_SBR_MASK 0x1Fu
  2270. #define UART_BDH_SBR_SHIFT 0
  2271. #define UART_BDH_SBR(x) (((uint8_t)(((uint8_t)(x))<<UART_BDH_SBR_SHIFT))&UART_BDH_SBR_MASK)
  2272. #define UART_BDH_SBNS_MASK 0x20u
  2273. #define UART_BDH_SBNS_SHIFT 5
  2274. #define UART_BDH_RXEDGIE_MASK 0x40u
  2275. #define UART_BDH_RXEDGIE_SHIFT 6
  2276. #define UART_BDH_LBKDIE_MASK 0x80u
  2277. #define UART_BDH_LBKDIE_SHIFT 7
  2278. /* BDL Bit Fields */
  2279. #define UART_BDL_SBR_MASK 0xFFu
  2280. #define UART_BDL_SBR_SHIFT 0
  2281. #define UART_BDL_SBR(x) (((uint8_t)(((uint8_t)(x))<<UART_BDL_SBR_SHIFT))&UART_BDL_SBR_MASK)
  2282. /* C1 Bit Fields */
  2283. #define UART_C1_PT_MASK 0x1u
  2284. #define UART_C1_PT_SHIFT 0
  2285. #define UART_C1_PE_MASK 0x2u
  2286. #define UART_C1_PE_SHIFT 1
  2287. #define UART_C1_ILT_MASK 0x4u
  2288. #define UART_C1_ILT_SHIFT 2
  2289. #define UART_C1_WAKE_MASK 0x8u
  2290. #define UART_C1_WAKE_SHIFT 3
  2291. #define UART_C1_M_MASK 0x10u
  2292. #define UART_C1_M_SHIFT 4
  2293. #define UART_C1_RSRC_MASK 0x20u
  2294. #define UART_C1_RSRC_SHIFT 5
  2295. #define UART_C1_UARTSWAI_MASK 0x40u
  2296. #define UART_C1_UARTSWAI_SHIFT 6
  2297. #define UART_C1_LOOPS_MASK 0x80u
  2298. #define UART_C1_LOOPS_SHIFT 7
  2299. /* C2 Bit Fields */
  2300. #define UART_C2_SBK_MASK 0x1u
  2301. #define UART_C2_SBK_SHIFT 0
  2302. #define UART_C2_RWU_MASK 0x2u
  2303. #define UART_C2_RWU_SHIFT 1
  2304. #define UART_C2_RE_MASK 0x4u
  2305. #define UART_C2_RE_SHIFT 2
  2306. #define UART_C2_TE_MASK 0x8u
  2307. #define UART_C2_TE_SHIFT 3
  2308. #define UART_C2_ILIE_MASK 0x10u
  2309. #define UART_C2_ILIE_SHIFT 4
  2310. #define UART_C2_RIE_MASK 0x20u
  2311. #define UART_C2_RIE_SHIFT 5
  2312. #define UART_C2_TCIE_MASK 0x40u
  2313. #define UART_C2_TCIE_SHIFT 6
  2314. #define UART_C2_TIE_MASK 0x80u
  2315. #define UART_C2_TIE_SHIFT 7
  2316. /* S1 Bit Fields */
  2317. #define UART_S1_PF_MASK 0x1u
  2318. #define UART_S1_PF_SHIFT 0
  2319. #define UART_S1_FE_MASK 0x2u
  2320. #define UART_S1_FE_SHIFT 1
  2321. #define UART_S1_NF_MASK 0x4u
  2322. #define UART_S1_NF_SHIFT 2
  2323. #define UART_S1_OR_MASK 0x8u
  2324. #define UART_S1_OR_SHIFT 3
  2325. #define UART_S1_IDLE_MASK 0x10u
  2326. #define UART_S1_IDLE_SHIFT 4
  2327. #define UART_S1_RDRF_MASK 0x20u
  2328. #define UART_S1_RDRF_SHIFT 5
  2329. #define UART_S1_TC_MASK 0x40u
  2330. #define UART_S1_TC_SHIFT 6
  2331. #define UART_S1_TDRE_MASK 0x80u
  2332. #define UART_S1_TDRE_SHIFT 7
  2333. /* S2 Bit Fields */
  2334. #define UART_S2_RAF_MASK 0x1u
  2335. #define UART_S2_RAF_SHIFT 0
  2336. #define UART_S2_LBKDE_MASK 0x2u
  2337. #define UART_S2_LBKDE_SHIFT 1
  2338. #define UART_S2_BRK13_MASK 0x4u
  2339. #define UART_S2_BRK13_SHIFT 2
  2340. #define UART_S2_RWUID_MASK 0x8u
  2341. #define UART_S2_RWUID_SHIFT 3
  2342. #define UART_S2_RXINV_MASK 0x10u
  2343. #define UART_S2_RXINV_SHIFT 4
  2344. #define UART_S2_RXEDGIF_MASK 0x40u
  2345. #define UART_S2_RXEDGIF_SHIFT 6
  2346. #define UART_S2_LBKDIF_MASK 0x80u
  2347. #define UART_S2_LBKDIF_SHIFT 7
  2348. /* C3 Bit Fields */
  2349. #define UART_C3_PEIE_MASK 0x1u
  2350. #define UART_C3_PEIE_SHIFT 0
  2351. #define UART_C3_FEIE_MASK 0x2u
  2352. #define UART_C3_FEIE_SHIFT 1
  2353. #define UART_C3_NEIE_MASK 0x4u
  2354. #define UART_C3_NEIE_SHIFT 2
  2355. #define UART_C3_ORIE_MASK 0x8u
  2356. #define UART_C3_ORIE_SHIFT 3
  2357. #define UART_C3_TXINV_MASK 0x10u
  2358. #define UART_C3_TXINV_SHIFT 4
  2359. #define UART_C3_TXDIR_MASK 0x20u
  2360. #define UART_C3_TXDIR_SHIFT 5
  2361. #define UART_C3_T8_MASK 0x40u
  2362. #define UART_C3_T8_SHIFT 6
  2363. #define UART_C3_R8_MASK 0x80u
  2364. #define UART_C3_R8_SHIFT 7
  2365. /* D Bit Fields */
  2366. #define UART_D_R0T0_MASK 0x1u
  2367. #define UART_D_R0T0_SHIFT 0
  2368. #define UART_D_R1T1_MASK 0x2u
  2369. #define UART_D_R1T1_SHIFT 1
  2370. #define UART_D_R2T2_MASK 0x4u
  2371. #define UART_D_R2T2_SHIFT 2
  2372. #define UART_D_R3T3_MASK 0x8u
  2373. #define UART_D_R3T3_SHIFT 3
  2374. #define UART_D_R4T4_MASK 0x10u
  2375. #define UART_D_R4T4_SHIFT 4
  2376. #define UART_D_R5T5_MASK 0x20u
  2377. #define UART_D_R5T5_SHIFT 5
  2378. #define UART_D_R6T6_MASK 0x40u
  2379. #define UART_D_R6T6_SHIFT 6
  2380. #define UART_D_R7T7_MASK 0x80u
  2381. #define UART_D_R7T7_SHIFT 7
  2382. /*!
  2383. * @}
  2384. */ /* end of group UART_Register_Masks */
  2385. /* UART - Peripheral instance base addresses */
  2386. /** Peripheral UART0 base address */
  2387. #define UART0_BASE (0x4006A000u)
  2388. /** Peripheral UART0 base pointer */
  2389. #define UART0 ((UART_Type *)UART0_BASE)
  2390. /** Peripheral UART1 base address */
  2391. #define UART1_BASE (0x4006B000u)
  2392. /** Peripheral UART1 base pointer */
  2393. #define UART1 ((UART_Type *)UART1_BASE)
  2394. /** Peripheral UART2 base address */
  2395. #define UART2_BASE (0x4006C000u)
  2396. /** Peripheral UART2 base pointer */
  2397. #define UART2 ((UART_Type *)UART2_BASE)
  2398. /** Array initializer of UART peripheral base pointers */
  2399. #define UART_BASES { UART0, UART1, UART2 }
  2400. /*!
  2401. * @}
  2402. */ /* end of group UART_Peripheral_Access_Layer */
  2403. /* ----------------------------------------------------------------------------
  2404. -- WDOG Peripheral Access Layer
  2405. ---------------------------------------------------------------------------- */
  2406. /*!
  2407. * @addtogroup WDOG_Peripheral_Access_Layer WDOG Peripheral Access Layer
  2408. * @{
  2409. */
  2410. /** WDOG - Register Layout Typedef */
  2411. typedef struct {
  2412. __IO uint8_t CS1; /**< Watchdog Control and Status Register 1, offset: 0x0 */
  2413. __IO uint8_t CS2; /**< Watchdog Control and Status Register 2, offset: 0x1 */
  2414. union { /* offset: 0x2 */
  2415. __IO uint16_t CNT; /**< WDOG_CNT register., offset: 0x2 */
  2416. struct { /* offset: 0x2 */
  2417. __I uint8_t CNTH; /**< Watchdog Counter Register: High, offset: 0x2 */
  2418. __I uint8_t CNTL; /**< Watchdog Counter Register: Low, offset: 0x3 */
  2419. } CNT8B;
  2420. };
  2421. union { /* offset: 0x4 */
  2422. __IO uint16_t TOVAL; /**< WDOG_TOVAL register., offset: 0x4 */
  2423. struct { /* offset: 0x4 */
  2424. __IO uint8_t TOVALH; /**< Watchdog ETMeout Value Register: High, offset: 0x4 */
  2425. __IO uint8_t TOVALL; /**< Watchdog ETMeout Value Register: Low, offset: 0x5 */
  2426. } TOVAL8B;
  2427. };
  2428. union { /* offset: 0x6 */
  2429. __IO uint16_t WIN; /**< WDOG_WIN register., offset: 0x6 */
  2430. struct { /* offset: 0x6 */
  2431. __IO uint8_t WINH; /**< Watchdog Window Register: High, offset: 0x6 */
  2432. __IO uint8_t WINL; /**< Watchdog Window Register: Low, offset: 0x7 */
  2433. } WIN8B;
  2434. };
  2435. } WDOG_Type;
  2436. /* ----------------------------------------------------------------------------
  2437. -- WDOG Register Masks
  2438. ---------------------------------------------------------------------------- */
  2439. /*!
  2440. * @addtogroup WDOG_Register_Masks WDOG Register Masks
  2441. * @{
  2442. */
  2443. /* CS1 Bit Fields */
  2444. #define WDOG_CS1_STOP_MASK 0x1u
  2445. #define WDOG_CS1_STOP_SHIFT 0
  2446. #define WDOG_CS1_WAIT_MASK 0x2u
  2447. #define WDOG_CS1_WAIT_SHIFT 1
  2448. #define WDOG_CS1_DBG_MASK 0x4u
  2449. #define WDOG_CS1_DBG_SHIFT 2
  2450. #define WDOG_CS1_TST_MASK 0x18u
  2451. #define WDOG_CS1_TST_SHIFT 3
  2452. #define WDOG_CS1_TST(x) (((uint8_t)(((uint8_t)(x))<<WDOG_CS1_TST_SHIFT))&WDOG_CS1_TST_MASK)
  2453. #define WDOG_CS1_UPDATE_MASK 0x20u
  2454. #define WDOG_CS1_UPDATE_SHIFT 5
  2455. #define WDOG_CS1_INT_MASK 0x40u
  2456. #define WDOG_CS1_INT_SHIFT 6
  2457. #define WDOG_CS1_EN_MASK 0x80u
  2458. #define WDOG_CS1_EN_SHIFT 7
  2459. /* CS2 Bit Fields */
  2460. #define WDOG_CS2_CLK_MASK 0x3u
  2461. #define WDOG_CS2_CLK_SHIFT 0
  2462. #define WDOG_CS2_CLK(x) (((uint8_t)(((uint8_t)(x))<<WDOG_CS2_CLK_SHIFT))&WDOG_CS2_CLK_MASK)
  2463. #define WDOG_CS2_PRES_MASK 0x10u
  2464. #define WDOG_CS2_PRES_SHIFT 4
  2465. #define WDOG_CS2_FLG_MASK 0x40u
  2466. #define WDOG_CS2_FLG_SHIFT 6
  2467. #define WDOG_CS2_WIN_MASK 0x80u
  2468. #define WDOG_CS2_WIN_SHIFT 7
  2469. /* CNT Bit Fields */
  2470. #define WDOG_CNT_CNT_MASK 0xFFFFu
  2471. #define WDOG_CNT_CNT_SHIFT 0
  2472. #define WDOG_CNT_CNT(x) (((uint16_t)(((uint16_t)(x))<<WDOG_CNT_CNT_SHIFT))&WDOG_CNT_CNT_MASK)
  2473. /* CNTH Bit Fields */
  2474. #define WDOG_CNTH_CNTHIGH_MASK 0xFFu
  2475. #define WDOG_CNTH_CNTHIGH_SHIFT 0
  2476. #define WDOG_CNTH_CNTHIGH(x) (((uint8_t)(((uint8_t)(x))<<WDOG_CNTH_CNTHIGH_SHIFT))&WDOG_CNTH_CNTHIGH_MASK)
  2477. /* CNTL Bit Fields */
  2478. #define WDOG_CNTL_CNTLOW_MASK 0xFFu
  2479. #define WDOG_CNTL_CNTLOW_SHIFT 0
  2480. #define WDOG_CNTL_CNTLOW(x) (((uint8_t)(((uint8_t)(x))<<WDOG_CNTL_CNTLOW_SHIFT))&WDOG_CNTL_CNTLOW_MASK)
  2481. /* TOVAL Bit Fields */
  2482. #define WDOG_TOVAL_TOVAL_MASK 0xFFFFu
  2483. #define WDOG_TOVAL_TOVAL_SHIFT 0
  2484. #define WDOG_TOVAL_TOVAL(x) (((uint16_t)(((uint16_t)(x))<<WDOG_TOVAL_TOVAL_SHIFT))&WDOG_TOVAL_TOVAL_MASK)
  2485. /* TOVALH Bit Fields */
  2486. #define WDOG_TOVALH_TOVALHIGH_MASK 0xFFu
  2487. #define WDOG_TOVALH_TOVALHIGH_SHIFT 0
  2488. #define WDOG_TOVALH_TOVALHIGH(x) (((uint8_t)(((uint8_t)(x))<<WDOG_TOVALH_TOVALHIGH_SHIFT))&WDOG_TOVALH_TOVALHIGH_MASK)
  2489. /* TOVALL Bit Fields */
  2490. #define WDOG_TOVALL_TOVALLOW_MASK 0xFFu
  2491. #define WDOG_TOVALL_TOVALLOW_SHIFT 0
  2492. #define WDOG_TOVALL_TOVALLOW(x) (((uint8_t)(((uint8_t)(x))<<WDOG_TOVALL_TOVALLOW_SHIFT))&WDOG_TOVALL_TOVALLOW_MASK)
  2493. /* WIN Bit Fields */
  2494. #define WDOG_WIN_WIN_MASK 0xFFFFu
  2495. #define WDOG_WIN_WIN_SHIFT 0
  2496. #define WDOG_WIN_WIN(x) (((uint16_t)(((uint16_t)(x))<<WDOG_WIN_WIN_SHIFT))&WDOG_WIN_WIN_MASK)
  2497. /* WINH Bit Fields */
  2498. #define WDOG_WINH_WINHIGH_MASK 0xFFu
  2499. #define WDOG_WINH_WINHIGH_SHIFT 0
  2500. #define WDOG_WINH_WINHIGH(x) (((uint8_t)(((uint8_t)(x))<<WDOG_WINH_WINHIGH_SHIFT))&WDOG_WINH_WINHIGH_MASK)
  2501. /* WINL Bit Fields */
  2502. #define WDOG_WINL_WINLOW_MASK 0xFFu
  2503. #define WDOG_WINL_WINLOW_SHIFT 0
  2504. #define WDOG_WINL_WINLOW(x) (((uint8_t)(((uint8_t)(x))<<WDOG_WINL_WINLOW_SHIFT))&WDOG_WINL_WINLOW_MASK)
  2505. /*!
  2506. * @}
  2507. */ /* end of group WDOG_Register_Masks */
  2508. /* WDOG - Peripheral instance base addresses */
  2509. /** Peripheral WDOG base address */
  2510. #define WDOG_BASE (0x40052000u)
  2511. /** Peripheral WDOG base pointer */
  2512. #define WDOG ((WDOG_Type *)WDOG_BASE)
  2513. /** Array initializer of WDOG peripheral base pointers */
  2514. #define WDOG_BASES { WDOG }
  2515. /*!
  2516. * @}
  2517. */ /* end of group WDOG_Peripheral_Access_Layer */
  2518. /*
  2519. ** End of section using anonymous unions
  2520. */
  2521. #if defined(__ARMCC_VERSION)
  2522. #pragma pop
  2523. #elif defined(__CWCC__)
  2524. #pragma pop
  2525. #elif defined(__GNUC__)
  2526. /* leave anonymous unions enabled */
  2527. #elif defined(__IAR_SYSTEMS_ICC__)
  2528. #pragma language=default
  2529. #else
  2530. #error Not supported compiler type
  2531. #endif
  2532. /*!
  2533. * @}
  2534. */ /* end of group Peripheral_access_layer */
  2535. /* ----------------------------------------------------------------------------
  2536. -- Backward Compatibility
  2537. ---------------------------------------------------------------------------- */
  2538. /*!
  2539. * @addtogroup Backward_Compatibility_Symbols Backward Compatibility
  2540. * @{
  2541. */
  2542. #define NV_DFPROT_DPS_MASK NV_EEPROT_DPS_MASK
  2543. #define NV_DFPROT_DPS_SHIFT NV_EEPROT_DPS_SHIFT
  2544. #define NV_DFPROT_DPS(x) NV_EEPROT_DPS(x)
  2545. #define NV_DFPROT_DPOPEN_MASK NV_EEPROT_DPOPEN_MASK
  2546. #define NV_DFPROT_DPOPEN_SHIFT NV_EEPROT_DPOPEN_SHIFT
  2547. #define NV_DFPROT_DPOPEN_SHIFT NV_EEPROT_DPOPEN_SHIFT
  2548. /*!
  2549. * @}
  2550. */ /* end of group Backward_Compatibility_Symbols */
  2551. #endif /* #if !defined(NV32_H_) */
  2552. /* NV32.h, eof. */