saml11e16a.h 52 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812
  1. /**
  2. * \file
  3. *
  4. * \brief Header file for ATSAML11E16A
  5. *
  6. * Copyright (c) 2018 Microchip Technology Inc.
  7. *
  8. * \license_start
  9. *
  10. * \page License
  11. *
  12. * SPDX-License-Identifier: Apache-2.0
  13. *
  14. * Licensed under the Apache License, Version 2.0 (the "License");
  15. * you may not use this file except in compliance with the License.
  16. * You may obtain a copy of the License at
  17. *
  18. * http://www.apache.org/licenses/LICENSE-2.0
  19. *
  20. * Unless required by applicable law or agreed to in writing, software
  21. * distributed under the License is distributed on an "AS IS" BASIS,
  22. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  23. * See the License for the specific language governing permissions and
  24. * limitations under the License.
  25. *
  26. * \license_stop
  27. *
  28. */
  29. /* file generated from device description version 2018-05-30T11:07:17Z */
  30. #ifndef _SAML11E16A_H_
  31. #define _SAML11E16A_H_
  32. /** \addtogroup SAML11E16A_definitions SAML11E16A definitions
  33. This file defines all structures and symbols for SAML11E16A:
  34. - registers and bitfields
  35. - peripheral base address
  36. - peripheral ID
  37. - PIO definitions
  38. * @{
  39. */
  40. #ifdef __cplusplus
  41. extern "C" {
  42. #endif
  43. /** \defgroup Atmel_glob_defs Atmel Global Defines
  44. <strong>IO Type Qualifiers</strong> are used
  45. \li to specify the access to peripheral variables.
  46. \li for automatic generation of peripheral register debug information.
  47. \remark
  48. CMSIS core has a syntax that differs from this using i.e. __I, __O, or __IO followed by 'uint<size>_t' respective types.
  49. Default the header files will follow the CMSIS core syntax.
  50. * @{
  51. */
  52. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  53. #include <stdint.h>
  54. /* IO definitions (access restrictions to peripheral registers) */
  55. #ifndef __cplusplus
  56. typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
  57. typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
  58. typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
  59. #else
  60. typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
  61. typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
  62. typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
  63. #endif
  64. typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
  65. typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
  66. typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
  67. typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
  68. typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
  69. typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
  70. #define CAST(type, value) ((type *)(value)) /**< Pointer Type Conversion Macro for C/C++ */
  71. #define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
  72. #else /* Assembler */
  73. #define CAST(type, value) (value) /**< Pointer Type Conversion Macro for Assembler */
  74. #define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
  75. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  76. #if !defined(SKIP_INTEGER_LITERALS)
  77. #if defined(_U_) || defined(_L_) || defined(_UL_)
  78. #error "Integer Literals macros already defined elsewhere"
  79. #endif
  80. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  81. /* Macros that deal with adding suffixes to integer literal constants for C/C++ */
  82. #define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */
  83. #define _L_(x) x ## L /**< C code: Long integer literal constant value */
  84. #define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */
  85. #else /* Assembler */
  86. #define _U_(x) x /**< Assembler: Unsigned integer literal constant value */
  87. #define _L_(x) x /**< Assembler: Long integer literal constant value */
  88. #define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */
  89. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  90. #endif /* SKIP_INTEGER_LITERALS */
  91. /** @} end of Atmel Global Defines */
  92. /** \addtogroup SAML11E16A_cmsis CMSIS Definitions
  93. * @{
  94. */
  95. /* ************************************************************************** */
  96. /* CMSIS DEFINITIONS FOR SAML11E16A */
  97. /* ************************************************************************** */
  98. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  99. /** Interrupt Number Definition */
  100. typedef enum IRQn
  101. {
  102. /****** CORTEX-M23 Processor Exceptions Numbers ******************************/
  103. Reset_IRQn = -15, /**< 1 Reset Vector, invoked on Power up and warm reset */
  104. NonMaskableInt_IRQn = -14, /**< 2 Non maskable Interrupt, cannot be stopped or preempted */
  105. HardFault_IRQn = -13, /**< 3 Hard Fault, all classes of Fault */
  106. SVCall_IRQn = -5 , /**< 11 System Service Call via SVC instruction */
  107. PendSV_IRQn = -2 , /**< 14 Pendable request for system service */
  108. SysTick_IRQn = -1 , /**< 15 System Tick Timer */
  109. /****** SAML11E16A specific Interrupt Numbers ***********************************/
  110. SYSTEM_IRQn = 0 , /**< 0 SAML11E16A Main Clock (MCLK) */
  111. WDT_IRQn = 1 , /**< 1 SAML11E16A Watchdog Timer (WDT) */
  112. RTC_IRQn = 2 , /**< 2 SAML11E16A Real-Time Counter (RTC) */
  113. EIC_0_IRQn = 3 , /**< 3 SAML11E16A External Interrupt Controller (EIC) */
  114. EIC_1_IRQn = 4 , /**< 4 SAML11E16A External Interrupt Controller (EIC) */
  115. EIC_2_IRQn = 5 , /**< 5 SAML11E16A External Interrupt Controller (EIC) */
  116. EIC_3_IRQn = 6 , /**< 6 SAML11E16A External Interrupt Controller (EIC) */
  117. EIC_OTHER_IRQn = 7 , /**< 7 SAML11E16A External Interrupt Controller (EIC) */
  118. FREQM_IRQn = 8 , /**< 8 SAML11E16A Frequency Meter (FREQM) */
  119. NVMCTRL_IRQn = 9 , /**< 9 SAML11E16A Non-Volatile Memory Controller (NVMCTRL) */
  120. PORT_IRQn = 10 , /**< 10 SAML11E16A Port Module (PORT) */
  121. DMAC_0_IRQn = 11 , /**< 11 SAML11E16A Direct Memory Access Controller (DMAC) */
  122. DMAC_1_IRQn = 12 , /**< 12 SAML11E16A Direct Memory Access Controller (DMAC) */
  123. DMAC_2_IRQn = 13 , /**< 13 SAML11E16A Direct Memory Access Controller (DMAC) */
  124. DMAC_3_IRQn = 14 , /**< 14 SAML11E16A Direct Memory Access Controller (DMAC) */
  125. DMAC_OTHER_IRQn = 15 , /**< 15 SAML11E16A Direct Memory Access Controller (DMAC) */
  126. EVSYS_0_IRQn = 16 , /**< 16 SAML11E16A Event System Interface (EVSYS) */
  127. EVSYS_1_IRQn = 17 , /**< 17 SAML11E16A Event System Interface (EVSYS) */
  128. EVSYS_2_IRQn = 18 , /**< 18 SAML11E16A Event System Interface (EVSYS) */
  129. EVSYS_3_IRQn = 19 , /**< 19 SAML11E16A Event System Interface (EVSYS) */
  130. EVSYS_NSCHK_IRQn = 20 , /**< 20 SAML11E16A Event System Interface (EVSYS) */
  131. PAC_IRQn = 21 , /**< 21 SAML11E16A Peripheral Access Controller (PAC) */
  132. SERCOM0_0_IRQn = 22 , /**< 22 SAML11E16A Serial Communication Interface (SERCOM0) */
  133. SERCOM0_1_IRQn = 23 , /**< 23 SAML11E16A Serial Communication Interface (SERCOM0) */
  134. SERCOM0_2_IRQn = 24 , /**< 24 SAML11E16A Serial Communication Interface (SERCOM0) */
  135. SERCOM0_OTHER_IRQn = 25 , /**< 25 SAML11E16A Serial Communication Interface (SERCOM0) */
  136. SERCOM1_0_IRQn = 26 , /**< 26 SAML11E16A Serial Communication Interface (SERCOM1) */
  137. SERCOM1_1_IRQn = 27 , /**< 27 SAML11E16A Serial Communication Interface (SERCOM1) */
  138. SERCOM1_2_IRQn = 28 , /**< 28 SAML11E16A Serial Communication Interface (SERCOM1) */
  139. SERCOM1_OTHER_IRQn = 29 , /**< 29 SAML11E16A Serial Communication Interface (SERCOM1) */
  140. SERCOM2_0_IRQn = 30 , /**< 30 SAML11E16A Serial Communication Interface (SERCOM2) */
  141. SERCOM2_1_IRQn = 31 , /**< 31 SAML11E16A Serial Communication Interface (SERCOM2) */
  142. SERCOM2_2_IRQn = 32 , /**< 32 SAML11E16A Serial Communication Interface (SERCOM2) */
  143. SERCOM2_OTHER_IRQn = 33 , /**< 33 SAML11E16A Serial Communication Interface (SERCOM2) */
  144. TC0_IRQn = 34 , /**< 34 SAML11E16A Basic Timer Counter (TC0) */
  145. TC1_IRQn = 35 , /**< 35 SAML11E16A Basic Timer Counter (TC1) */
  146. TC2_IRQn = 36 , /**< 36 SAML11E16A Basic Timer Counter (TC2) */
  147. ADC_OTHER_IRQn = 37 , /**< 37 SAML11E16A Analog Digital Converter (ADC) */
  148. ADC_RESRDY_IRQn = 38 , /**< 38 SAML11E16A Analog Digital Converter (ADC) */
  149. AC_IRQn = 39 , /**< 39 SAML11E16A Analog Comparators (AC) */
  150. DAC_UNDERRUN_A_IRQn = 40 , /**< 40 SAML11E16A Digital Analog Converter (DAC) */
  151. DAC_EMPTY_IRQn = 41 , /**< 41 SAML11E16A Digital Analog Converter (DAC) */
  152. PTC_IRQn = 42 , /**< 42 SAML11E16A Peripheral Touch Controller (PTC) */
  153. TRNG_IRQn = 43 , /**< 43 SAML11E16A True Random Generator (TRNG) */
  154. TRAM_IRQn = 44 , /**< 44 SAML11E16A TrustRAM (TRAM) */
  155. PERIPH_COUNT_IRQn = 45 /**< Number of peripheral IDs */
  156. } IRQn_Type;
  157. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  158. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  159. typedef struct _DeviceVectors
  160. {
  161. /* Stack pointer */
  162. void* pvStack;
  163. /* Cortex-M handlers */
  164. void* pfnReset_Handler; /* -15 Reset Vector, invoked on Power up and warm reset */
  165. void* pfnNonMaskableInt_Handler; /* -14 Non maskable Interrupt, cannot be stopped or preempted */
  166. void* pfnHardFault_Handler; /* -13 Hard Fault, all classes of Fault */
  167. void* pvReservedC12;
  168. void* pvReservedC11;
  169. void* pvReservedC10;
  170. void* pvReservedC9;
  171. void* pvReservedC8;
  172. void* pvReservedC7;
  173. void* pvReservedC6;
  174. void* pfnSVCall_Handler; /* -5 System Service Call via SVC instruction */
  175. void* pvReservedC4;
  176. void* pvReservedC3;
  177. void* pfnPendSV_Handler; /* -2 Pendable request for system service */
  178. void* pfnSysTick_Handler; /* -1 System Tick Timer */
  179. /* Peripheral handlers */
  180. void* pfnSYSTEM_Handler; /* 0 SAML11E16A Main Clock (MCLK) */
  181. void* pfnWDT_Handler; /* 1 SAML11E16A Watchdog Timer (WDT) */
  182. void* pfnRTC_Handler; /* 2 SAML11E16A Real-Time Counter (RTC) */
  183. void* pfnEIC_0_Handler; /* 3 SAML11E16A External Interrupt Controller (EIC) */
  184. void* pfnEIC_1_Handler; /* 4 SAML11E16A External Interrupt Controller (EIC) */
  185. void* pfnEIC_2_Handler; /* 5 SAML11E16A External Interrupt Controller (EIC) */
  186. void* pfnEIC_3_Handler; /* 6 SAML11E16A External Interrupt Controller (EIC) */
  187. void* pfnEIC_OTHER_Handler; /* 7 SAML11E16A External Interrupt Controller (EIC) */
  188. void* pfnFREQM_Handler; /* 8 SAML11E16A Frequency Meter (FREQM) */
  189. void* pfnNVMCTRL_Handler; /* 9 SAML11E16A Non-Volatile Memory Controller (NVMCTRL) */
  190. void* pfnPORT_Handler; /* 10 SAML11E16A Port Module (PORT) */
  191. void* pfnDMAC_0_Handler; /* 11 SAML11E16A Direct Memory Access Controller (DMAC) */
  192. void* pfnDMAC_1_Handler; /* 12 SAML11E16A Direct Memory Access Controller (DMAC) */
  193. void* pfnDMAC_2_Handler; /* 13 SAML11E16A Direct Memory Access Controller (DMAC) */
  194. void* pfnDMAC_3_Handler; /* 14 SAML11E16A Direct Memory Access Controller (DMAC) */
  195. void* pfnDMAC_OTHER_Handler; /* 15 SAML11E16A Direct Memory Access Controller (DMAC) */
  196. void* pfnEVSYS_0_Handler; /* 16 SAML11E16A Event System Interface (EVSYS) */
  197. void* pfnEVSYS_1_Handler; /* 17 SAML11E16A Event System Interface (EVSYS) */
  198. void* pfnEVSYS_2_Handler; /* 18 SAML11E16A Event System Interface (EVSYS) */
  199. void* pfnEVSYS_3_Handler; /* 19 SAML11E16A Event System Interface (EVSYS) */
  200. void* pfnEVSYS_NSCHK_Handler; /* 20 SAML11E16A Event System Interface (EVSYS) */
  201. void* pfnPAC_Handler; /* 21 SAML11E16A Peripheral Access Controller (PAC) */
  202. void* pfnSERCOM0_0_Handler; /* 22 SAML11E16A Serial Communication Interface (SERCOM0) */
  203. void* pfnSERCOM0_1_Handler; /* 23 SAML11E16A Serial Communication Interface (SERCOM0) */
  204. void* pfnSERCOM0_2_Handler; /* 24 SAML11E16A Serial Communication Interface (SERCOM0) */
  205. void* pfnSERCOM0_OTHER_Handler; /* 25 SAML11E16A Serial Communication Interface (SERCOM0) */
  206. void* pfnSERCOM1_0_Handler; /* 26 SAML11E16A Serial Communication Interface (SERCOM1) */
  207. void* pfnSERCOM1_1_Handler; /* 27 SAML11E16A Serial Communication Interface (SERCOM1) */
  208. void* pfnSERCOM1_2_Handler; /* 28 SAML11E16A Serial Communication Interface (SERCOM1) */
  209. void* pfnSERCOM1_OTHER_Handler; /* 29 SAML11E16A Serial Communication Interface (SERCOM1) */
  210. void* pfnSERCOM2_0_Handler; /* 30 SAML11E16A Serial Communication Interface (SERCOM2) */
  211. void* pfnSERCOM2_1_Handler; /* 31 SAML11E16A Serial Communication Interface (SERCOM2) */
  212. void* pfnSERCOM2_2_Handler; /* 32 SAML11E16A Serial Communication Interface (SERCOM2) */
  213. void* pfnSERCOM2_OTHER_Handler; /* 33 SAML11E16A Serial Communication Interface (SERCOM2) */
  214. void* pfnTC0_Handler; /* 34 SAML11E16A Basic Timer Counter (TC0) */
  215. void* pfnTC1_Handler; /* 35 SAML11E16A Basic Timer Counter (TC1) */
  216. void* pfnTC2_Handler; /* 36 SAML11E16A Basic Timer Counter (TC2) */
  217. void* pfnADC_OTHER_Handler; /* 37 SAML11E16A Analog Digital Converter (ADC) */
  218. void* pfnADC_RESRDY_Handler; /* 38 SAML11E16A Analog Digital Converter (ADC) */
  219. void* pfnAC_Handler; /* 39 SAML11E16A Analog Comparators (AC) */
  220. void* pfnDAC_UNDERRUN_A_Handler; /* 40 SAML11E16A Digital Analog Converter (DAC) */
  221. void* pfnDAC_EMPTY_Handler; /* 41 SAML11E16A Digital Analog Converter (DAC) */
  222. void* pfnPTC_Handler; /* 42 SAML11E16A Peripheral Touch Controller (PTC) */
  223. void* pfnTRNG_Handler; /* 43 SAML11E16A True Random Generator (TRNG) */
  224. void* pfnTRAM_Handler; /* 44 SAML11E16A TrustRAM (TRAM) */
  225. } DeviceVectors;
  226. /* Defines for Deprecated Interrupt and Exceptions handler names */
  227. #define pfnMemManage_Handler pfnMemoryManagement_Handler /**< \deprecated Backward compatibility for ASF */
  228. #define pfnDebugMon_Handler pfnDebugMonitor_Handler /**< \deprecated Backward compatibility for ASF */
  229. #define pfnNMI_Handler pfnNonMaskableInt_Handler /**< \deprecated Backward compatibility for ASF */
  230. #define pfnSVC_Handler pfnSVCall_Handler /**< \deprecated Backward compatibility for ASF */
  231. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  232. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  233. #if !defined DONT_USE_PREDEFINED_CORE_HANDLERS
  234. /* CORTEX-M23 core handlers */
  235. void Reset_Handler ( void );
  236. void NonMaskableInt_Handler ( void );
  237. void HardFault_Handler ( void );
  238. void SVCall_Handler ( void );
  239. void PendSV_Handler ( void );
  240. void SysTick_Handler ( void );
  241. #endif /* DONT_USE_PREDEFINED_CORE_HANDLERS */
  242. #if !defined DONT_USE_PREDEFINED_PERIPHERALS_HANDLERS
  243. /* Peripherals handlers */
  244. void AC_Handler ( void );
  245. void ADC_OTHER_Handler ( void );
  246. void ADC_RESRDY_Handler ( void );
  247. void DAC_EMPTY_Handler ( void );
  248. void DAC_UNDERRUN_A_Handler ( void );
  249. void DMAC_0_Handler ( void );
  250. void DMAC_1_Handler ( void );
  251. void DMAC_2_Handler ( void );
  252. void DMAC_3_Handler ( void );
  253. void DMAC_OTHER_Handler ( void );
  254. void EIC_0_Handler ( void );
  255. void EIC_1_Handler ( void );
  256. void EIC_2_Handler ( void );
  257. void EIC_3_Handler ( void );
  258. void EIC_OTHER_Handler ( void );
  259. void EVSYS_0_Handler ( void );
  260. void EVSYS_1_Handler ( void );
  261. void EVSYS_2_Handler ( void );
  262. void EVSYS_3_Handler ( void );
  263. void EVSYS_NSCHK_Handler ( void );
  264. void FREQM_Handler ( void );
  265. void NVMCTRL_Handler ( void );
  266. void PAC_Handler ( void );
  267. void PORT_Handler ( void );
  268. void PTC_Handler ( void );
  269. void RTC_Handler ( void );
  270. void SERCOM0_0_Handler ( void );
  271. void SERCOM0_1_Handler ( void );
  272. void SERCOM0_2_Handler ( void );
  273. void SERCOM0_OTHER_Handler ( void );
  274. void SERCOM1_0_Handler ( void );
  275. void SERCOM1_1_Handler ( void );
  276. void SERCOM1_2_Handler ( void );
  277. void SERCOM1_OTHER_Handler ( void );
  278. void SERCOM2_0_Handler ( void );
  279. void SERCOM2_1_Handler ( void );
  280. void SERCOM2_2_Handler ( void );
  281. void SERCOM2_OTHER_Handler ( void );
  282. void SYSTEM_Handler ( void );
  283. void TC0_Handler ( void );
  284. void TC1_Handler ( void );
  285. void TC2_Handler ( void );
  286. void TRAM_Handler ( void );
  287. void TRNG_Handler ( void );
  288. void WDT_Handler ( void );
  289. #endif /* DONT_USE_PREDEFINED_PERIPHERALS_HANDLERS */
  290. /* Defines for Deprecated Interrupt and Exceptions handler names */
  291. #define MemManage_Handler MemoryManagement_Handler /**< \deprecated Backward compatibility for ASF */
  292. #define DebugMon_Handler DebugMonitor_Handler /**< \deprecated Backward compatibility for ASF */
  293. #define NMI_Handler NonMaskableInt_Handler /**< \deprecated Backward compatibility for ASF */
  294. #define SVC_Handler SVCall_Handler /**< \deprecated Backward compatibility for ASF */
  295. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  296. /*
  297. * \brief Configuration of the CORTEX-M23 Processor and Core Peripherals
  298. */
  299. #define NUM_IRQ 45 /**< Number of interrupt request lines */
  300. #define __ARMv8MBL_REV 0x0000 /**< Cortex-M23 Core Revision */
  301. #define __ETM_PRESENT 0 /**< ETM present or not */
  302. #define __FPU_PRESENT 0 /**< FPU present or not */
  303. #define __MPU_PRESENT 1 /**< MPU present or not */
  304. #define __MTB_PRESENT 0 /**< MTB present or not */
  305. #define __NVIC_PRIO_BITS 2 /**< Number of Bits used for Priority Levels */
  306. #define __SAU_PRESENT 0 /**< SAU present or not */
  307. #define __SEC_ENABLED 0 /**< TrustZone-M enabled or not */
  308. #define __VTOR_PRESENT 1 /**< Vector Table Offset Register present or not */
  309. #define __Vendor_SysTickConfig 0 /**< Set to 1 if different SysTick Config is used */
  310. #define __ARCH_ARM 1
  311. #define __ARCH_ARM_CORTEX_M 1
  312. #define __DEVICE_IS_SAM 1
  313. #define __TZ_PRESENT 1
  314. /*
  315. * \brief CMSIS includes
  316. */
  317. #include <core_cm23.h>
  318. #if !defined DONT_USE_CMSIS_INIT
  319. #include "system_saml11.h"
  320. #endif /* DONT_USE_CMSIS_INIT */
  321. /** @} end of SAML11E16A_cmsis CMSIS Definitions */
  322. /** \defgroup SAML11E16A_api Peripheral Software API
  323. * @{
  324. */
  325. /* ************************************************************************** */
  326. /** SOFTWARE PERIPHERAL API DEFINITION FOR SAML11E16A */
  327. /* ************************************************************************** */
  328. #include "component/ac.h"
  329. #include "component/adc.h"
  330. #include "component/ccl.h"
  331. #include "component/dac.h"
  332. #include "component/dmac.h"
  333. #include "component/dsu.h"
  334. #include "component/eic.h"
  335. #include "component/evsys.h"
  336. #include "component/freqm.h"
  337. #include "component/gclk.h"
  338. #include "component/idau.h"
  339. #include "component/mclk.h"
  340. #include "component/nvmctrl.h"
  341. #include "component/opamp.h"
  342. #include "component/oscctrl.h"
  343. #include "component/osc32kctrl.h"
  344. #include "component/pac.h"
  345. #include "component/pm.h"
  346. #include "component/port.h"
  347. #include "component/ptc.h"
  348. #include "component/rstc.h"
  349. #include "component/rtc.h"
  350. #include "component/sercom.h"
  351. #include "component/supc.h"
  352. #include "component/tc.h"
  353. #include "component/tram.h"
  354. #include "component/trng.h"
  355. #include "component/wdt.h"
  356. /** @} end of Peripheral Software API */
  357. /** \defgroup SAML11E16A_reg Registers Access Definitions
  358. * @{
  359. */
  360. /* ************************************************************************** */
  361. /* REGISTER ACCESS DEFINITIONS FOR SAML11E16A */
  362. /* ************************************************************************** */
  363. #include "instance/ac.h"
  364. #include "instance/adc.h"
  365. #include "instance/ccl.h"
  366. #include "instance/dac.h"
  367. #include "instance/dmac.h"
  368. #include "instance/dsu.h"
  369. #include "instance/eic.h"
  370. #include "instance/evsys.h"
  371. #include "instance/freqm.h"
  372. #include "instance/gclk.h"
  373. #include "instance/idau.h"
  374. #include "instance/mclk.h"
  375. #include "instance/nvmctrl.h"
  376. #include "instance/opamp.h"
  377. #include "instance/oscctrl.h"
  378. #include "instance/osc32kctrl.h"
  379. #include "instance/pac.h"
  380. #include "instance/pm.h"
  381. #include "instance/port.h"
  382. #include "instance/ptc.h"
  383. #include "instance/rstc.h"
  384. #include "instance/rtc.h"
  385. #include "instance/sercom0.h"
  386. #include "instance/sercom1.h"
  387. #include "instance/sercom2.h"
  388. #include "instance/supc.h"
  389. #include "instance/tc0.h"
  390. #include "instance/tc1.h"
  391. #include "instance/tc2.h"
  392. #include "instance/tram.h"
  393. #include "instance/trng.h"
  394. #include "instance/wdt.h"
  395. /** @} end of Registers Access Definitions */
  396. /** \addtogroup SAML11E16A_id Peripheral Ids Definitions
  397. * @{
  398. */
  399. /* ************************************************************************** */
  400. /* PERIPHERAL ID DEFINITIONS FOR SAML11E16A */
  401. /* ************************************************************************** */
  402. #define ID_PAC ( 0) /**< \brief Peripheral Access Controller (PAC) */
  403. #define ID_PM ( 1) /**< \brief Power Manager (PM) */
  404. #define ID_MCLK ( 2) /**< \brief Main Clock (MCLK) */
  405. #define ID_RSTC ( 3) /**< \brief Reset Controller (RSTC) */
  406. #define ID_OSCCTRL ( 4) /**< \brief Oscillators Control (OSCCTRL) */
  407. #define ID_OSC32KCTRL ( 5) /**< \brief 32k Oscillators Control (OSC32KCTRL) */
  408. #define ID_SUPC ( 6) /**< \brief Supply Controller (SUPC) */
  409. #define ID_GCLK ( 7) /**< \brief Generic Clock Generator (GCLK) */
  410. #define ID_WDT ( 8) /**< \brief Watchdog Timer (WDT) */
  411. #define ID_RTC ( 9) /**< \brief Real-Time Counter (RTC) */
  412. #define ID_EIC ( 10) /**< \brief External Interrupt Controller (EIC) */
  413. #define ID_FREQM ( 11) /**< \brief Frequency Meter (FREQM) */
  414. #define ID_PORT ( 12) /**< \brief Port Module (PORT) */
  415. #define ID_AC ( 13) /**< \brief Analog Comparators (AC) */
  416. #define ID_IDAU ( 32) /**< \brief Implementation Defined Attribution Unit (IDAU) */
  417. #define ID_DSU ( 33) /**< \brief Device Service Unit (DSU) */
  418. #define ID_NVMCTRL ( 34) /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
  419. #define ID_DMAC ( 35) /**< \brief Direct Memory Access Controller (DMAC) */
  420. #define ID_EVSYS ( 64) /**< \brief Event System Interface (EVSYS) */
  421. #define ID_SERCOM0 ( 65) /**< \brief Serial Communication Interface (SERCOM0) */
  422. #define ID_SERCOM1 ( 66) /**< \brief Serial Communication Interface (SERCOM1) */
  423. #define ID_SERCOM2 ( 67) /**< \brief Serial Communication Interface (SERCOM2) */
  424. #define ID_TC0 ( 68) /**< \brief Basic Timer Counter (TC0) */
  425. #define ID_TC1 ( 69) /**< \brief Basic Timer Counter (TC1) */
  426. #define ID_TC2 ( 70) /**< \brief Basic Timer Counter (TC2) */
  427. #define ID_ADC ( 71) /**< \brief Analog Digital Converter (ADC) */
  428. #define ID_DAC ( 72) /**< \brief Digital Analog Converter (DAC) */
  429. #define ID_PTC ( 73) /**< \brief Peripheral Touch Controller (PTC) */
  430. #define ID_TRNG ( 74) /**< \brief True Random Generator (TRNG) */
  431. #define ID_CCL ( 75) /**< \brief Configurable Custom Logic (CCL) */
  432. #define ID_OPAMP ( 76) /**< \brief Operational Amplifier (OPAMP) */
  433. #define ID_TRAM ( 77) /**< \brief TrustRAM (TRAM) */
  434. #define ID_PERIPH_COUNT ( 78) /**< \brief Number of peripheral IDs */
  435. /** @} end of Peripheral Ids Definitions */
  436. /** \addtogroup SAML11E16A_base Peripheral Base Address Definitions
  437. * @{
  438. */
  439. /* ************************************************************************** */
  440. /* BASE ADDRESS DEFINITIONS FOR SAML11E16A */
  441. /* ************************************************************************** */
  442. #if (defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  443. #define AC (0x40003400) /**< \brief (AC ) Base Address */
  444. #define ADC (0x42001C00) /**< \brief (ADC ) Base Address */
  445. #define CCL (0x42002C00) /**< \brief (CCL ) Base Address */
  446. #define DAC (0x42002000) /**< \brief (DAC ) Base Address */
  447. #define DMAC (0x41006000) /**< \brief (DMAC ) Base Address */
  448. #define DSU (0x41002000) /**< \brief (DSU ) Base Address */
  449. #define EIC (0x40002800) /**< \brief (EIC ) Base Address */
  450. #define EIC_SEC (0x40002A00) /**< \brief (EIC ) Base Address */
  451. #define EVSYS (0x42000000) /**< \brief (EVSYS ) Base Address */
  452. #define EVSYS_SEC (0x42000200) /**< \brief (EVSYS ) Base Address */
  453. #define FREQM (0x40002C00) /**< \brief (FREQM ) Base Address */
  454. #define GCLK (0x40001C00) /**< \brief (GCLK ) Base Address */
  455. #define IDAU (0x41000000) /**< \brief (IDAU ) Base Address */
  456. #define MCLK (0x40000800) /**< \brief (MCLK ) Base Address */
  457. #define NVMCTRL (0x41004000) /**< \brief (NVMCTRL ) Base Address */
  458. #define NVMCTRL_SEC (0x41005000) /**< \brief (NVMCTRL ) Base Address */
  459. #define OPAMP (0x42003000) /**< \brief (OPAMP ) Base Address */
  460. #define OSCCTRL (0x40001000) /**< \brief (OSCCTRL ) Base Address */
  461. #define OSC32KCTRL (0x40001400) /**< \brief (OSC32KCTRL) Base Address */
  462. #define PAC (0x40000000) /**< \brief (PAC ) Base Address */
  463. #define PAC_SEC (0x40000200) /**< \brief (PAC ) Base Address */
  464. #define PM (0x40000400) /**< \brief (PM ) Base Address */
  465. #define PORT (0x40003000) /**< \brief (PORT ) Base Address */
  466. #define PORT_SEC (0x40003200) /**< \brief (PORT ) Base Address */
  467. #define PORT_IOBUS (0x60000000) /**< \brief (PORT ) Base Address */
  468. #define PORT_IOBUS_SEC (0x60000200) /**< \brief (PORT ) Base Address */
  469. #define PTC (0x42002400) /**< \brief (PTC ) Base Address */
  470. #define RSTC (0x40000C00) /**< \brief (RSTC ) Base Address */
  471. #define RTC (0x40002400) /**< \brief (RTC ) Base Address */
  472. #define SERCOM0 (0x42000400) /**< \brief (SERCOM0 ) Base Address */
  473. #define SERCOM1 (0x42000800) /**< \brief (SERCOM1 ) Base Address */
  474. #define SERCOM2 (0x42000C00) /**< \brief (SERCOM2 ) Base Address */
  475. #define SUPC (0x40001800) /**< \brief (SUPC ) Base Address */
  476. #define TC0 (0x42001000) /**< \brief (TC0 ) Base Address */
  477. #define TC1 (0x42001400) /**< \brief (TC1 ) Base Address */
  478. #define TC2 (0x42001800) /**< \brief (TC2 ) Base Address */
  479. #define TRAM (0x42003400) /**< \brief (TRAM ) Base Address */
  480. #define TRNG (0x42002800) /**< \brief (TRNG ) Base Address */
  481. #define WDT (0x40002000) /**< \brief (WDT ) Base Address */
  482. #else /* For C/C++ compiler */
  483. #define AC ((Ac *)0x40003400U) /**< \brief (AC ) Base Address */
  484. #define AC_INST_NUM 1 /**< \brief (AC ) Number of instances */
  485. #define AC_INSTS { AC } /**< \brief (AC ) Instances List */
  486. #define ADC ((Adc *)0x42001C00U) /**< \brief (ADC ) Base Address */
  487. #define ADC_INST_NUM 1 /**< \brief (ADC ) Number of instances */
  488. #define ADC_INSTS { ADC } /**< \brief (ADC ) Instances List */
  489. #define CCL ((Ccl *)0x42002C00U) /**< \brief (CCL ) Base Address */
  490. #define CCL_INST_NUM 1 /**< \brief (CCL ) Number of instances */
  491. #define CCL_INSTS { CCL } /**< \brief (CCL ) Instances List */
  492. #define DAC ((Dac *)0x42002000U) /**< \brief (DAC ) Base Address */
  493. #define DAC_INST_NUM 1 /**< \brief (DAC ) Number of instances */
  494. #define DAC_INSTS { DAC } /**< \brief (DAC ) Instances List */
  495. #define DMAC ((Dmac *)0x41006000U) /**< \brief (DMAC ) Base Address */
  496. #define DMAC_INST_NUM 1 /**< \brief (DMAC ) Number of instances */
  497. #define DMAC_INSTS { DMAC } /**< \brief (DMAC ) Instances List */
  498. #define DSU ((Dsu *)0x41002000U) /**< \brief (DSU ) Base Address */
  499. #define DSU_INST_NUM 1 /**< \brief (DSU ) Number of instances */
  500. #define DSU_INSTS { DSU } /**< \brief (DSU ) Instances List */
  501. #define EIC ((Eic *)0x40002800U) /**< \brief (EIC ) Base Address */
  502. #define EIC_SEC ((Eic *)0x40002A00U) /**< \brief (EIC ) Base Address */
  503. #define EIC_INST_NUM 1 /**< \brief (EIC ) Number of instances */
  504. #define EIC_INSTS { EIC } /**< \brief (EIC ) Instances List */
  505. #define EVSYS ((Evsys *)0x42000000U) /**< \brief (EVSYS ) Base Address */
  506. #define EVSYS_SEC ((Evsys *)0x42000200U) /**< \brief (EVSYS ) Base Address */
  507. #define EVSYS_INST_NUM 1 /**< \brief (EVSYS ) Number of instances */
  508. #define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS ) Instances List */
  509. #define FREQM ((Freqm *)0x40002C00U) /**< \brief (FREQM ) Base Address */
  510. #define FREQM_INST_NUM 1 /**< \brief (FREQM ) Number of instances */
  511. #define FREQM_INSTS { FREQM } /**< \brief (FREQM ) Instances List */
  512. #define GCLK ((Gclk *)0x40001C00U) /**< \brief (GCLK ) Base Address */
  513. #define GCLK_INST_NUM 1 /**< \brief (GCLK ) Number of instances */
  514. #define GCLK_INSTS { GCLK } /**< \brief (GCLK ) Instances List */
  515. #define IDAU ((Idau *)0x41000000U) /**< \brief (IDAU ) Base Address */
  516. #define IDAU_INST_NUM 1 /**< \brief (IDAU ) Number of instances */
  517. #define IDAU_INSTS { IDAU } /**< \brief (IDAU ) Instances List */
  518. #define MCLK ((Mclk *)0x40000800U) /**< \brief (MCLK ) Base Address */
  519. #define MCLK_INST_NUM 1 /**< \brief (MCLK ) Number of instances */
  520. #define MCLK_INSTS { MCLK } /**< \brief (MCLK ) Instances List */
  521. #define NVMCTRL ((Nvmctrl *)0x41004000U) /**< \brief (NVMCTRL ) Base Address */
  522. #define NVMCTRL_SEC ((Nvmctrl *)0x41005000U) /**< \brief (NVMCTRL ) Base Address */
  523. #define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL ) Number of instances */
  524. #define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL ) Instances List */
  525. #define OPAMP ((Opamp *)0x42003000U) /**< \brief (OPAMP ) Base Address */
  526. #define OPAMP_INST_NUM 1 /**< \brief (OPAMP ) Number of instances */
  527. #define OPAMP_INSTS { OPAMP } /**< \brief (OPAMP ) Instances List */
  528. #define OSCCTRL ((Oscctrl *)0x40001000U) /**< \brief (OSCCTRL ) Base Address */
  529. #define OSCCTRL_INST_NUM 1 /**< \brief (OSCCTRL ) Number of instances */
  530. #define OSCCTRL_INSTS { OSCCTRL } /**< \brief (OSCCTRL ) Instances List */
  531. #define OSC32KCTRL ((Osc32kctrl *)0x40001400U) /**< \brief (OSC32KCTRL) Base Address */
  532. #define OSC32KCTRL_INST_NUM 1 /**< \brief (OSC32KCTRL) Number of instances */
  533. #define OSC32KCTRL_INSTS { OSC32KCTRL } /**< \brief (OSC32KCTRL) Instances List */
  534. #define PAC ((Pac *)0x40000000U) /**< \brief (PAC ) Base Address */
  535. #define PAC_SEC ((Pac *)0x40000200U) /**< \brief (PAC ) Base Address */
  536. #define PAC_INST_NUM 1 /**< \brief (PAC ) Number of instances */
  537. #define PAC_INSTS { PAC } /**< \brief (PAC ) Instances List */
  538. #define PM ((Pm *)0x40000400U) /**< \brief (PM ) Base Address */
  539. #define PM_INST_NUM 1 /**< \brief (PM ) Number of instances */
  540. #define PM_INSTS { PM } /**< \brief (PM ) Instances List */
  541. #define PORT ((Port *)0x40003000U) /**< \brief (PORT ) Base Address */
  542. #define PORT_SEC ((Port *)0x40003200U) /**< \brief (PORT ) Base Address */
  543. #define PORT_IOBUS ((Port *)0x60000000U) /**< \brief (PORT ) Base Address */
  544. #define PORT_IOBUS_SEC ((Port *)0x60000200U) /**< \brief (PORT ) Base Address */
  545. #define PORT_INST_NUM 1 /**< \brief (PORT ) Number of instances */
  546. #define PORT_INSTS { PORT } /**< \brief (PORT ) Instances List */
  547. #define PTC ((Ptc *)0x42002400U) /**< \brief (PTC ) Base Address */
  548. #define PTC_INST_NUM 1 /**< \brief (PTC ) Number of instances */
  549. #define PTC_INSTS { PTC } /**< \brief (PTC ) Instances List */
  550. #define RSTC ((Rstc *)0x40000C00U) /**< \brief (RSTC ) Base Address */
  551. #define RSTC_INST_NUM 1 /**< \brief (RSTC ) Number of instances */
  552. #define RSTC_INSTS { RSTC } /**< \brief (RSTC ) Instances List */
  553. #define RTC ((Rtc *)0x40002400U) /**< \brief (RTC ) Base Address */
  554. #define RTC_INST_NUM 1 /**< \brief (RTC ) Number of instances */
  555. #define RTC_INSTS { RTC } /**< \brief (RTC ) Instances List */
  556. #define SERCOM0 ((Sercom *)0x42000400U) /**< \brief (SERCOM0 ) Base Address */
  557. #define SERCOM1 ((Sercom *)0x42000800U) /**< \brief (SERCOM1 ) Base Address */
  558. #define SERCOM2 ((Sercom *)0x42000C00U) /**< \brief (SERCOM2 ) Base Address */
  559. #define SERCOM_INST_NUM 3 /**< \brief (SERCOM ) Number of instances */
  560. #define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2 } /**< \brief (SERCOM ) Instances List */
  561. #define SUPC ((Supc *)0x40001800U) /**< \brief (SUPC ) Base Address */
  562. #define SUPC_INST_NUM 1 /**< \brief (SUPC ) Number of instances */
  563. #define SUPC_INSTS { SUPC } /**< \brief (SUPC ) Instances List */
  564. #define TC0 ((Tc *)0x42001000U) /**< \brief (TC0 ) Base Address */
  565. #define TC1 ((Tc *)0x42001400U) /**< \brief (TC1 ) Base Address */
  566. #define TC2 ((Tc *)0x42001800U) /**< \brief (TC2 ) Base Address */
  567. #define TC_INST_NUM 3 /**< \brief (TC ) Number of instances */
  568. #define TC_INSTS { TC0, TC1, TC2 } /**< \brief (TC ) Instances List */
  569. #define TRAM ((Tram *)0x42003400U) /**< \brief (TRAM ) Base Address */
  570. #define TRAM_INST_NUM 1 /**< \brief (TRAM ) Number of instances */
  571. #define TRAM_INSTS { TRAM } /**< \brief (TRAM ) Instances List */
  572. #define TRNG ((Trng *)0x42002800U) /**< \brief (TRNG ) Base Address */
  573. #define TRNG_INST_NUM 1 /**< \brief (TRNG ) Number of instances */
  574. #define TRNG_INSTS { TRNG } /**< \brief (TRNG ) Instances List */
  575. #define WDT ((Wdt *)0x40002000U) /**< \brief (WDT ) Base Address */
  576. #define WDT_INST_NUM 1 /**< \brief (WDT ) Number of instances */
  577. #define WDT_INSTS { WDT } /**< \brief (WDT ) Instances List */
  578. #endif /* (defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  579. /** @} end of Peripheral Base Address Definitions */
  580. /** \addtogroup SAML11E16A_pio Peripheral Pio Definitions
  581. * @{
  582. */
  583. /* ************************************************************************** */
  584. /* PIO DEFINITIONS FOR SAML11E16A*/
  585. /* ************************************************************************** */
  586. #include "pio/saml11e16a.h"
  587. /** @} end of Peripheral Pio Definitions */
  588. /* ************************************************************************** */
  589. /* MEMORY MAPPING DEFINITIONS FOR SAML11E16A*/
  590. /* ************************************************************************** */
  591. #define FLASH_SIZE _U_(0x00010000) /* 64kB Memory segment type: flash */
  592. #define FLASH_PAGE_SIZE _U_( 64)
  593. #define FLASH_NB_OF_PAGES _U_( 1024)
  594. #define AUX_SIZE _U_(0x00000100) /* 0kB Memory segment type: fuses */
  595. #define AUX_PAGE_SIZE _U_( 64)
  596. #define AUX_NB_OF_PAGES _U_( 4)
  597. #define BOCOR_SIZE _U_(0x00000100) /* 0kB Memory segment type: fuses */
  598. #define BOCOR_PAGE_SIZE _U_( 64)
  599. #define BOCOR_NB_OF_PAGES _U_( 4)
  600. #define DATAFLASH_SIZE _U_(0x00000800) /* 2kB Memory segment type: flash */
  601. #define DATAFLASH_PAGE_SIZE _U_( 64)
  602. #define DATAFLASH_NB_OF_PAGES _U_( 32)
  603. #define SW_CALIB_SIZE _U_(0x00000008) /* 0kB Memory segment type: fuses */
  604. #define TEMP_LOG_SIZE _U_(0x00000008) /* 0kB Memory segment type: fuses */
  605. #define USER_PAGE_SIZE _U_(0x00000100) /* 0kB Memory segment type: user_page */
  606. #define USER_PAGE_PAGE_SIZE _U_( 64)
  607. #define USER_PAGE_NB_OF_PAGES _U_( 4)
  608. #define HSRAM_SIZE _U_(0x00004000) /* 16kB Memory segment type: ram */
  609. #define HPB0_SIZE _U_(0x00008000) /* 32kB Memory segment type: io */
  610. #define HPB1_SIZE _U_(0x00010000) /* 64kB Memory segment type: io */
  611. #define HPB2_SIZE _U_(0x00004000) /* 16kB Memory segment type: io */
  612. #define PPB_SIZE _U_(0x00100000) /* 1024kB Memory segment type: io */
  613. #define SCS_SIZE _U_(0x00001000) /* 4kB Memory segment type: io */
  614. #define PERIPHERALS_SIZE _U_(0x20000000) /* 524288kB Memory segment type: io */
  615. #define FLASH_ADDR _U_(0x00000000) /**< FLASH base address (type: flash)*/
  616. #define AUX_ADDR _U_(0x00806000) /**< AUX base address (type: fuses)*/
  617. #define BOCOR_ADDR _U_(0x0080c000) /**< BOCOR base address (type: fuses)*/
  618. #define DATAFLASH_ADDR _U_(0x00400000) /**< DATAFLASH base address (type: flash)*/
  619. #define SW_CALIB_ADDR _U_(0x00806020) /**< SW_CALIB base address (type: fuses)*/
  620. #define TEMP_LOG_ADDR _U_(0x00806038) /**< TEMP_LOG base address (type: fuses)*/
  621. #define USER_PAGE_ADDR _U_(0x00804000) /**< USER_PAGE base address (type: user_page)*/
  622. #define HSRAM_ADDR _U_(0x20000000) /**< HSRAM base address (type: ram)*/
  623. #define HPB0_ADDR _U_(0x40000000) /**< HPB0 base address (type: io)*/
  624. #define HPB1_ADDR _U_(0x41000000) /**< HPB1 base address (type: io)*/
  625. #define HPB2_ADDR _U_(0x42000000) /**< HPB2 base address (type: io)*/
  626. #define PPB_ADDR _U_(0xe0000000) /**< PPB base address (type: io)*/
  627. #define SCS_ADDR _U_(0xe000e000) /**< SCS base address (type: io)*/
  628. #define PERIPHERALS_ADDR _U_(0x40000000) /**< PERIPHERALS base address (type: io)*/
  629. #define NVMCTRL_AUX AUX_ADDR /**< \brief \deprecated Old style definition. Use AUX_ADDR instead */
  630. #define NVMCTRL_BOCOR BOCOR_ADDR /**< \brief \deprecated Old style definition. Use BOCOR_ADDR instead */
  631. #define NVMCTRL_DATAFLASH DATAFLASH_ADDR /**< \brief \deprecated Old style definition. Use DATAFLASH_ADDR instead */
  632. #define NVMCTRL_SW_CALIB SW_CALIB_ADDR /**< \brief \deprecated Old style definition. Use SW_CALIB_ADDR instead */
  633. #define NVMCTRL_TEMP_LOG TEMP_LOG_ADDR /**< \brief \deprecated Old style definition. Use TEMP_LOG_ADDR instead */
  634. #define NVMCTRL_USER USER_PAGE_ADDR /**< \brief \deprecated Old style definition. Use USER_PAGE_ADDR instead */
  635. /* ************************************************************************** */
  636. /** DEVICE SIGNATURES FOR SAML11E16A */
  637. /* ************************************************************************** */
  638. #define DSU_DID _UL_(0X20830000)
  639. /* ************************************************************************** */
  640. /** ELECTRICAL DEFINITIONS FOR SAML11E16A */
  641. /* ************************************************************************** */
  642. /* ************************************************************************** */
  643. /** Event Generator IDs for SAML11E16A */
  644. /* ************************************************************************** */
  645. #define EVENT_ID_GEN_OSCCTRL_XOSC_FAIL 1 /**< ID for OSCCTRL event generator XOSC_FAIL */
  646. #define EVENT_ID_GEN_OSC32KCTRL_XOSC32K_FAIL 2 /**< ID for OSC32KCTRL event generator XOSC32K_FAIL */
  647. #define EVENT_ID_GEN_SUPC_BOD33DET 3 /**< ID for SUPC event generator BOD33DET */
  648. #define EVENT_ID_GEN_RTC_PER_0 4 /**< ID for RTC event generator PER_0 */
  649. #define EVENT_ID_GEN_RTC_PER_1 5 /**< ID for RTC event generator PER_1 */
  650. #define EVENT_ID_GEN_RTC_PER_2 6 /**< ID for RTC event generator PER_2 */
  651. #define EVENT_ID_GEN_RTC_PER_3 7 /**< ID for RTC event generator PER_3 */
  652. #define EVENT_ID_GEN_RTC_PER_4 8 /**< ID for RTC event generator PER_4 */
  653. #define EVENT_ID_GEN_RTC_PER_5 9 /**< ID for RTC event generator PER_5 */
  654. #define EVENT_ID_GEN_RTC_PER_6 10 /**< ID for RTC event generator PER_6 */
  655. #define EVENT_ID_GEN_RTC_PER_7 11 /**< ID for RTC event generator PER_7 */
  656. #define EVENT_ID_GEN_RTC_CMP_0 12 /**< ID for RTC event generator CMP_0 */
  657. #define EVENT_ID_GEN_RTC_CMP_1 13 /**< ID for RTC event generator CMP_1 */
  658. #define EVENT_ID_GEN_RTC_TAMPER 14 /**< ID for RTC event generator TAMPER */
  659. #define EVENT_ID_GEN_RTC_OVF 15 /**< ID for RTC event generator OVF */
  660. #define EVENT_ID_GEN_RTC_PERD 16 /**< ID for RTC event generator PERD */
  661. #define EVENT_ID_GEN_EIC_EXTINT_0 17 /**< ID for EIC event generator EXTINT_0 */
  662. #define EVENT_ID_GEN_EIC_EXTINT_1 18 /**< ID for EIC event generator EXTINT_1 */
  663. #define EVENT_ID_GEN_EIC_EXTINT_2 19 /**< ID for EIC event generator EXTINT_2 */
  664. #define EVENT_ID_GEN_EIC_EXTINT_3 20 /**< ID for EIC event generator EXTINT_3 */
  665. #define EVENT_ID_GEN_EIC_EXTINT_4 21 /**< ID for EIC event generator EXTINT_4 */
  666. #define EVENT_ID_GEN_EIC_EXTINT_5 22 /**< ID for EIC event generator EXTINT_5 */
  667. #define EVENT_ID_GEN_EIC_EXTINT_6 23 /**< ID for EIC event generator EXTINT_6 */
  668. #define EVENT_ID_GEN_EIC_EXTINT_7 24 /**< ID for EIC event generator EXTINT_7 */
  669. #define EVENT_ID_GEN_DMAC_CH_0 25 /**< ID for DMAC event generator CH_0 */
  670. #define EVENT_ID_GEN_DMAC_CH_1 26 /**< ID for DMAC event generator CH_1 */
  671. #define EVENT_ID_GEN_DMAC_CH_2 27 /**< ID for DMAC event generator CH_2 */
  672. #define EVENT_ID_GEN_DMAC_CH_3 28 /**< ID for DMAC event generator CH_3 */
  673. #define EVENT_ID_GEN_TC0_OVF 29 /**< ID for TC0 event generator OVF */
  674. #define EVENT_ID_GEN_TC0_MCX_0 30 /**< ID for TC0 event generator MCX_0 */
  675. #define EVENT_ID_GEN_TC0_MCX_1 31 /**< ID for TC0 event generator MCX_1 */
  676. #define EVENT_ID_GEN_TC1_OVF 32 /**< ID for TC1 event generator OVF */
  677. #define EVENT_ID_GEN_TC1_MCX_0 33 /**< ID for TC1 event generator MCX_0 */
  678. #define EVENT_ID_GEN_TC1_MCX_1 34 /**< ID for TC1 event generator MCX_1 */
  679. #define EVENT_ID_GEN_TC2_OVF 35 /**< ID for TC2 event generator OVF */
  680. #define EVENT_ID_GEN_TC2_MCX_0 36 /**< ID for TC2 event generator MCX_0 */
  681. #define EVENT_ID_GEN_TC2_MCX_1 37 /**< ID for TC2 event generator MCX_1 */
  682. #define EVENT_ID_GEN_ADC_RESRDY 38 /**< ID for ADC event generator RESRDY */
  683. #define EVENT_ID_GEN_ADC_WINMON 39 /**< ID for ADC event generator WINMON */
  684. #define EVENT_ID_GEN_AC_COMP_0 40 /**< ID for AC event generator COMP_0 */
  685. #define EVENT_ID_GEN_AC_COMP_1 41 /**< ID for AC event generator COMP_1 */
  686. #define EVENT_ID_GEN_AC_WIN_0 42 /**< ID for AC event generator WIN_0 */
  687. #define EVENT_ID_GEN_DAC_EMPTY 43 /**< ID for DAC event generator EMPTY */
  688. #define EVENT_ID_GEN_TRNG_READY 46 /**< ID for TRNG event generator READY */
  689. #define EVENT_ID_GEN_CCL_LUTOUT_0 47 /**< ID for CCL event generator LUTOUT_0 */
  690. #define EVENT_ID_GEN_CCL_LUTOUT_1 48 /**< ID for CCL event generator LUTOUT_1 */
  691. #define EVENT_ID_GEN_PAC_ERR 49 /**< ID for PAC event generator ERR */
  692. /* ************************************************************************** */
  693. /** Event User IDs for SAML11E16A */
  694. /* ************************************************************************** */
  695. #define EVENT_ID_USER_OSCCTRL_TUNE 0 /**< ID for OSCCTRL event user TUNE */
  696. #define EVENT_ID_USER_RTC_TAMPER 1 /**< ID for RTC event user TAMPER */
  697. #define EVENT_ID_USER_NVMCTRL_PAGEW 2 /**< ID for NVMCTRL event user PAGEW */
  698. #define EVENT_ID_USER_PORT_EV_0 3 /**< ID for PORT event user EV_0 */
  699. #define EVENT_ID_USER_PORT_EV_1 4 /**< ID for PORT event user EV_1 */
  700. #define EVENT_ID_USER_PORT_EV_2 5 /**< ID for PORT event user EV_2 */
  701. #define EVENT_ID_USER_PORT_EV_3 6 /**< ID for PORT event user EV_3 */
  702. #define EVENT_ID_USER_DMAC_CH_0 7 /**< ID for DMAC event user CH_0 */
  703. #define EVENT_ID_USER_DMAC_CH_1 8 /**< ID for DMAC event user CH_1 */
  704. #define EVENT_ID_USER_DMAC_CH_2 9 /**< ID for DMAC event user CH_2 */
  705. #define EVENT_ID_USER_DMAC_CH_3 10 /**< ID for DMAC event user CH_3 */
  706. #define EVENT_ID_USER_TC0_EVU 11 /**< ID for TC0 event user EVU */
  707. #define EVENT_ID_USER_TC1_EVU 12 /**< ID for TC1 event user EVU */
  708. #define EVENT_ID_USER_TC2_EVU 13 /**< ID for TC2 event user EVU */
  709. #define EVENT_ID_USER_ADC_START 14 /**< ID for ADC event user START */
  710. #define EVENT_ID_USER_ADC_SYNC 15 /**< ID for ADC event user SYNC */
  711. #define EVENT_ID_USER_AC_SOC_0 16 /**< ID for AC event user SOC_0 */
  712. #define EVENT_ID_USER_AC_SOC_1 17 /**< ID for AC event user SOC_1 */
  713. #define EVENT_ID_USER_DAC_START 18 /**< ID for DAC event user START */
  714. #define EVENT_ID_USER_CCL_LUTIN_0 21 /**< ID for CCL event user LUTIN_0 */
  715. #define EVENT_ID_USER_CCL_LUTIN_1 22 /**< ID for CCL event user LUTIN_1 */
  716. #ifdef __cplusplus
  717. }
  718. #endif
  719. /** @} end of SAML11E16A definitions */
  720. #endif /* _SAML11E16A_H_ */