]> git.sur5r.net Git - freertos/blob
90cf33faf63802e1515d7e177518240f3d4bdbb6
[freertos] /
1 /**************************************************************************//**\r
2  * @file efm32pg1b100f256gm32.h\r
3  * @brief CMSIS Cortex-M Peripheral Access Layer Header File\r
4  *        for EFM32PG1B100F256GM32\r
5  * @version 4.2.1\r
6  ******************************************************************************\r
7  * @section License\r
8  * <b>Copyright 2015 Silicon Laboratories, Inc. http://www.silabs.com</b>\r
9  ******************************************************************************\r
10  *\r
11  * Permission is granted to anyone to use this software for any purpose,\r
12  * including commercial applications, and to alter it and redistribute it\r
13  * freely, subject to the following restrictions:\r
14  *\r
15  * 1. The origin of this software must not be misrepresented; you must not\r
16  *    claim that you wrote the original software.@n\r
17  * 2. Altered source versions must be plainly marked as such, and must not be\r
18  *    misrepresented as being the original software.@n\r
19  * 3. This notice may not be removed or altered from any source distribution.\r
20  *\r
21  * DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Silicon Laboratories, Inc.\r
22  * has no obligation to support this Software. Silicon Laboratories, Inc. is\r
23  * providing the Software "AS IS", with no express or implied warranties of any\r
24  * kind, including, but not limited to, any implied warranties of\r
25  * merchantability or fitness for any particular purpose or warranties against\r
26  * infringement of any proprietary rights of a third party.\r
27  *\r
28  * Silicon Laboratories, Inc. will not be liable for any consequential,\r
29  * incidental, or special damages, or any other relief, or for any claim by\r
30  * any third party, arising from your use of this Software.\r
31  *\r
32  *****************************************************************************/\r
33 \r
34 #ifndef SILICON_LABS_EFM32PG1B100F256GM32_H\r
35 #define SILICON_LABS_EFM32PG1B100F256GM32_H\r
36 \r
37 #ifdef __cplusplus\r
38 extern "C" {\r
39 #endif\r
40 \r
41 /**************************************************************************//**\r
42  * @addtogroup Parts\r
43  * @{\r
44  *****************************************************************************/\r
45 \r
46 /**************************************************************************//**\r
47  * @defgroup EFM32PG1B100F256GM32 EFM32PG1B100F256GM32\r
48  * @{\r
49  *****************************************************************************/\r
50 \r
51 /** Interrupt Number Definition */\r
52 typedef enum IRQn\r
53 {\r
54 /******  Cortex-M4 Processor Exceptions Numbers *******************************************/\r
55   NonMaskableInt_IRQn   = -14,              /*!< 2  Cortex-M4 Non Maskable Interrupt      */\r
56   HardFault_IRQn        = -13,              /*!< 3  Cortex-M4 Hard Fault Interrupt        */\r
57   MemoryManagement_IRQn = -12,              /*!< 4  Cortex-M4 Memory Management Interrupt */\r
58   BusFault_IRQn         = -11,              /*!< 5  Cortex-M4 Bus Fault Interrupt         */\r
59   UsageFault_IRQn       = -10,              /*!< 6  Cortex-M4 Usage Fault Interrupt       */\r
60   SVCall_IRQn           = -5,               /*!< 11 Cortex-M4 SV Call Interrupt           */\r
61   DebugMonitor_IRQn     = -4,               /*!< 12 Cortex-M4 Debug Monitor Interrupt     */\r
62   PendSV_IRQn           = -2,               /*!< 14 Cortex-M4 Pend SV Interrupt           */\r
63   SysTick_IRQn          = -1,               /*!< 15 Cortex-M4 System Tick Interrupt       */\r
64 \r
65 /******  EFM32PG1B Peripheral Interrupt Numbers *********************************************/\r
66 \r
67   EMU_IRQn              = 0,  /*!< 16+0 EFM32 EMU Interrupt */\r
68   WDOG0_IRQn            = 2,  /*!< 16+2 EFM32 WDOG0 Interrupt */\r
69   LDMA_IRQn             = 8,  /*!< 16+8 EFM32 LDMA Interrupt */\r
70   GPIO_EVEN_IRQn        = 9,  /*!< 16+9 EFM32 GPIO_EVEN Interrupt */\r
71   TIMER0_IRQn           = 10, /*!< 16+10 EFM32 TIMER0 Interrupt */\r
72   USART0_RX_IRQn        = 11, /*!< 16+11 EFM32 USART0_RX Interrupt */\r
73   USART0_TX_IRQn        = 12, /*!< 16+12 EFM32 USART0_TX Interrupt */\r
74   ACMP0_IRQn            = 13, /*!< 16+13 EFM32 ACMP0 Interrupt */\r
75   ADC0_IRQn             = 14, /*!< 16+14 EFM32 ADC0 Interrupt */\r
76   IDAC0_IRQn            = 15, /*!< 16+15 EFM32 IDAC0 Interrupt */\r
77   I2C0_IRQn             = 16, /*!< 16+16 EFM32 I2C0 Interrupt */\r
78   GPIO_ODD_IRQn         = 17, /*!< 16+17 EFM32 GPIO_ODD Interrupt */\r
79   TIMER1_IRQn           = 18, /*!< 16+18 EFM32 TIMER1 Interrupt */\r
80   USART1_RX_IRQn        = 19, /*!< 16+19 EFM32 USART1_RX Interrupt */\r
81   USART1_TX_IRQn        = 20, /*!< 16+20 EFM32 USART1_TX Interrupt */\r
82   LEUART0_IRQn          = 21, /*!< 16+21 EFM32 LEUART0 Interrupt */\r
83   PCNT0_IRQn            = 22, /*!< 16+22 EFM32 PCNT0 Interrupt */\r
84   CMU_IRQn              = 23, /*!< 16+23 EFM32 CMU Interrupt */\r
85   MSC_IRQn              = 24, /*!< 16+24 EFM32 MSC Interrupt */\r
86   CRYPTO_IRQn           = 25, /*!< 16+25 EFM32 CRYPTO Interrupt */\r
87   LETIMER0_IRQn         = 26, /*!< 16+26 EFM32 LETIMER0 Interrupt */\r
88   RTCC_IRQn             = 29, /*!< 16+29 EFM32 RTCC Interrupt */\r
89   CRYOTIMER_IRQn        = 31, /*!< 16+31 EFM32 CRYOTIMER Interrupt */\r
90   FPUEH_IRQn            = 33, /*!< 16+33 EFM32 FPUEH Interrupt */\r
91 } IRQn_Type;\r
92 \r
93 /**************************************************************************//**\r
94  * @defgroup EFM32PG1B100F256GM32_Core EFM32PG1B100F256GM32 Core\r
95  * @{\r
96  * @brief Processor and Core Peripheral Section\r
97  *****************************************************************************/\r
98 #define __MPU_PRESENT             1 /**< Presence of MPU  */\r
99 #define __FPU_PRESENT             1 /**< Presence of FPU  */\r
100 #define __NVIC_PRIO_BITS          3 /**< NVIC interrupt priority bits */\r
101 #define __Vendor_SysTickConfig    0 /**< Is 1 if different SysTick counter is used */\r
102 \r
103 /** @} End of group EFM32PG1B100F256GM32_Core */\r
104 \r
105 /**************************************************************************//**\r
106 * @defgroup EFM32PG1B100F256GM32_Part EFM32PG1B100F256GM32 Part\r
107 * @{\r
108 ******************************************************************************/\r
109 \r
110 /** Part family */\r
111 #define _EFM32_PEARL_FAMILY             1 /**< PEARL Gecko MCU Family  */\r
112 #define _EFM_DEVICE                       /**< Silicon Labs EFM-type microcontroller */\r
113 #define _SILICON_LABS_32B_PLATFORM_2      /**< Silicon Labs platform name */\r
114 #define _SILICON_LABS_32B_PLATFORM      2 /**< Silicon Labs platform name */\r
115 \r
116 /* If part number is not defined as compiler option, define it */\r
117 #if !defined(EFM32PG1B100F256GM32)\r
118 #define EFM32PG1B100F256GM32    1 /**< PEARL Gecko Part */\r
119 #endif\r
120 \r
121 /** Configure part number */\r
122 #define PART_NUMBER               "EFM32PG1B100F256GM32" /**< Part Number */\r
123 \r
124 /** Memory Base addresses and limits */\r
125 #define FLASH_MEM_BASE            ((uint32_t) 0x00000000UL) /**< FLASH base address  */\r
126 #define FLASH_MEM_SIZE            ((uint32_t) 0x10000000UL) /**< FLASH available address space  */\r
127 #define FLASH_MEM_END             ((uint32_t) 0x0FFFFFFFUL) /**< FLASH end address  */\r
128 #define FLASH_MEM_BITS            ((uint32_t) 0x28UL)       /**< FLASH used bits  */\r
129 #define RAM_CODE_MEM_BASE         ((uint32_t) 0x10000000UL) /**< RAM_CODE base address  */\r
130 #define RAM_CODE_MEM_SIZE         ((uint32_t) 0x7C00UL)     /**< RAM_CODE available address space  */\r
131 #define RAM_CODE_MEM_END          ((uint32_t) 0x10007BFFUL) /**< RAM_CODE end address  */\r
132 #define RAM_CODE_MEM_BITS         ((uint32_t) 0x15UL)       /**< RAM_CODE used bits  */\r
133 #define PER_BITCLR_MEM_BASE       ((uint32_t) 0x44000000UL) /**< PER_BITCLR base address  */\r
134 #define PER_BITCLR_MEM_SIZE       ((uint32_t) 0xE8000UL)    /**< PER_BITCLR available address space  */\r
135 #define PER_BITCLR_MEM_END        ((uint32_t) 0x440E7FFFUL) /**< PER_BITCLR end address  */\r
136 #define PER_BITCLR_MEM_BITS       ((uint32_t) 0x20UL)       /**< PER_BITCLR used bits  */\r
137 #define CRYPTO_BITSET_MEM_BASE    ((uint32_t) 0x460F0000UL) /**< CRYPTO_BITSET base address  */\r
138 #define CRYPTO_BITSET_MEM_SIZE    ((uint32_t) 0x400UL)      /**< CRYPTO_BITSET available address space  */\r
139 #define CRYPTO_BITSET_MEM_END     ((uint32_t) 0x460F03FFUL) /**< CRYPTO_BITSET end address  */\r
140 #define CRYPTO_BITSET_MEM_BITS    ((uint32_t) 0x10UL)       /**< CRYPTO_BITSET used bits  */\r
141 #define CRYPTO_MEM_BASE           ((uint32_t) 0x400F0000UL) /**< CRYPTO base address  */\r
142 #define CRYPTO_MEM_SIZE           ((uint32_t) 0x400UL)      /**< CRYPTO available address space  */\r
143 #define CRYPTO_MEM_END            ((uint32_t) 0x400F03FFUL) /**< CRYPTO end address  */\r
144 #define CRYPTO_MEM_BITS           ((uint32_t) 0x10UL)       /**< CRYPTO used bits  */\r
145 #define CRYPTO_BITCLR_MEM_BASE    ((uint32_t) 0x440F0000UL) /**< CRYPTO_BITCLR base address  */\r
146 #define CRYPTO_BITCLR_MEM_SIZE    ((uint32_t) 0x400UL)      /**< CRYPTO_BITCLR available address space  */\r
147 #define CRYPTO_BITCLR_MEM_END     ((uint32_t) 0x440F03FFUL) /**< CRYPTO_BITCLR end address  */\r
148 #define CRYPTO_BITCLR_MEM_BITS    ((uint32_t) 0x10UL)       /**< CRYPTO_BITCLR used bits  */\r
149 #define PER_BITSET_MEM_BASE       ((uint32_t) 0x46000000UL) /**< PER_BITSET base address  */\r
150 #define PER_BITSET_MEM_SIZE       ((uint32_t) 0xE8000UL)    /**< PER_BITSET available address space  */\r
151 #define PER_BITSET_MEM_END        ((uint32_t) 0x460E7FFFUL) /**< PER_BITSET end address  */\r
152 #define PER_BITSET_MEM_BITS       ((uint32_t) 0x20UL)       /**< PER_BITSET used bits  */\r
153 #define PER_MEM_BASE              ((uint32_t) 0x40000000UL) /**< PER base address  */\r
154 #define PER_MEM_SIZE              ((uint32_t) 0xE8000UL)    /**< PER available address space  */\r
155 #define PER_MEM_END               ((uint32_t) 0x400E7FFFUL) /**< PER end address  */\r
156 #define PER_MEM_BITS              ((uint32_t) 0x20UL)       /**< PER used bits  */\r
157 #define RAM_MEM_BASE              ((uint32_t) 0x20000000UL) /**< RAM base address  */\r
158 #define RAM_MEM_SIZE              ((uint32_t) 0x7C00UL)     /**< RAM available address space  */\r
159 #define RAM_MEM_END               ((uint32_t) 0x20007BFFUL) /**< RAM end address  */\r
160 #define RAM_MEM_BITS              ((uint32_t) 0x15UL)       /**< RAM used bits  */\r
161 \r
162 /** Bit banding area */\r
163 #define BITBAND_PER_BASE          ((uint32_t) 0x42000000UL) /**< Peripheral Address Space bit-band area */\r
164 #define BITBAND_RAM_BASE          ((uint32_t) 0x22000000UL) /**< SRAM Address Space bit-band area */\r
165 \r
166 /** Flash and SRAM limits for EFM32PG1B100F256GM32 */\r
167 #define FLASH_BASE                (0x00000000UL) /**< Flash Base Address */\r
168 #define FLASH_SIZE                (0x00040000UL) /**< Available Flash Memory */\r
169 #define FLASH_PAGE_SIZE           2048           /**< Flash Memory page size */\r
170 #define SRAM_BASE                 (0x20000000UL) /**< SRAM Base Address */\r
171 #define SRAM_SIZE                 (0x00008000UL) /**< Available SRAM Memory */\r
172 #define __CM4_REV                 0x001          /**< Cortex-M4 Core revision r0p1 */\r
173 #define PRS_CHAN_COUNT            12             /**< Number of PRS channels */\r
174 #define DMA_CHAN_COUNT            8              /**< Number of DMA channels */\r
175 \r
176 /** AF channels connect the different on-chip peripherals with the af-mux */\r
177 #define AFCHAN_MAX                72\r
178 #define AFCHANLOC_MAX             32\r
179 /** Analog AF channels */\r
180 #define AFACHAN_MAX               61\r
181 \r
182 /* Part number capabilities */\r
183 \r
184 #define TIMER_PRESENT         /**< TIMER is available in this part */\r
185 #define TIMER_COUNT         2 /**< 2 TIMERs available  */\r
186 #define USART_PRESENT         /**< USART is available in this part */\r
187 #define USART_COUNT         2 /**< 2 USARTs available  */\r
188 #define LEUART_PRESENT        /**< LEUART is available in this part */\r
189 #define LEUART_COUNT        1 /**< 1 LEUARTs available  */\r
190 #define LETIMER_PRESENT       /**< LETIMER is available in this part */\r
191 #define LETIMER_COUNT       1 /**< 1 LETIMERs available  */\r
192 #define PCNT_PRESENT          /**< PCNT is available in this part */\r
193 #define PCNT_COUNT          1 /**< 1 PCNTs available  */\r
194 #define I2C_PRESENT           /**< I2C is available in this part */\r
195 #define I2C_COUNT           1 /**< 1 I2Cs available  */\r
196 #define ADC_PRESENT           /**< ADC is available in this part */\r
197 #define ADC_COUNT           1 /**< 1 ADCs available  */\r
198 #define ACMP_PRESENT          /**< ACMP is available in this part */\r
199 #define ACMP_COUNT          2 /**< 2 ACMPs available  */\r
200 #define IDAC_PRESENT          /**< IDAC is available in this part */\r
201 #define IDAC_COUNT          1 /**< 1 IDACs available  */\r
202 #define WDOG_PRESENT          /**< WDOG is available in this part */\r
203 #define WDOG_COUNT          1 /**< 1 WDOGs available  */\r
204 #define MSC_PRESENT\r
205 #define MSC_COUNT           1\r
206 #define EMU_PRESENT\r
207 #define EMU_COUNT           1\r
208 #define RMU_PRESENT\r
209 #define RMU_COUNT           1\r
210 #define CMU_PRESENT\r
211 #define CMU_COUNT           1\r
212 #define CRYPTO_PRESENT\r
213 #define CRYPTO_COUNT        1\r
214 #define GPIO_PRESENT\r
215 #define GPIO_COUNT          1\r
216 #define PRS_PRESENT\r
217 #define PRS_COUNT           1\r
218 #define LDMA_PRESENT\r
219 #define LDMA_COUNT          1\r
220 #define FPUEH_PRESENT\r
221 #define FPUEH_COUNT         1\r
222 #define GPCRC_PRESENT\r
223 #define GPCRC_COUNT         1\r
224 #define CRYOTIMER_PRESENT\r
225 #define CRYOTIMER_COUNT     1\r
226 #define RTCC_PRESENT\r
227 #define RTCC_COUNT          1\r
228 #define BOOTLOADER_PRESENT\r
229 #define BOOTLOADER_COUNT    1\r
230 \r
231 #include "core_cm4.h"         /* Cortex-M4 processor and core peripherals */\r
232 #include "system_efm32pg1b.h" /* System Header File */\r
233 \r
234 /** @} End of group EFM32PG1B100F256GM32_Part */\r
235 \r
236 /**************************************************************************//**\r
237  * @defgroup EFM32PG1B100F256GM32_Peripheral_TypeDefs EFM32PG1B100F256GM32 Peripheral TypeDefs\r
238  * @{\r
239  * @brief Device Specific Peripheral Register Structures\r
240  *****************************************************************************/\r
241 \r
242 #include "efm32pg1b_msc.h"\r
243 #include "efm32pg1b_emu.h"\r
244 #include "efm32pg1b_rmu.h"\r
245 #include "efm32pg1b_cmu.h"\r
246 #include "efm32pg1b_crypto.h"\r
247 #include "efm32pg1b_gpio_p.h"\r
248 #include "efm32pg1b_gpio.h"\r
249 #include "efm32pg1b_prs_ch.h"\r
250 #include "efm32pg1b_prs.h"\r
251 #include "efm32pg1b_ldma_ch.h"\r
252 #include "efm32pg1b_ldma.h"\r
253 #include "efm32pg1b_fpueh.h"\r
254 #include "efm32pg1b_gpcrc.h"\r
255 #include "efm32pg1b_timer_cc.h"\r
256 #include "efm32pg1b_timer.h"\r
257 #include "efm32pg1b_usart.h"\r
258 #include "efm32pg1b_leuart.h"\r
259 #include "efm32pg1b_letimer.h"\r
260 #include "efm32pg1b_cryotimer.h"\r
261 #include "efm32pg1b_pcnt.h"\r
262 #include "efm32pg1b_i2c.h"\r
263 #include "efm32pg1b_adc.h"\r
264 #include "efm32pg1b_acmp.h"\r
265 #include "efm32pg1b_idac.h"\r
266 #include "efm32pg1b_rtcc_cc.h"\r
267 #include "efm32pg1b_rtcc_ret.h"\r
268 #include "efm32pg1b_rtcc.h"\r
269 #include "efm32pg1b_wdog_pch.h"\r
270 #include "efm32pg1b_wdog.h"\r
271 #include "efm32pg1b_dma_descriptor.h"\r
272 #include "efm32pg1b_devinfo.h"\r
273 #include "efm32pg1b_romtable.h"\r
274 \r
275 /** @} End of group EFM32PG1B100F256GM32_Peripheral_TypeDefs  */\r
276 \r
277 /**************************************************************************//**\r
278  * @defgroup EFM32PG1B100F256GM32_Peripheral_Base EFM32PG1B100F256GM32 Peripheral Memory Map\r
279  * @{\r
280  *****************************************************************************/\r
281 \r
282 #define MSC_BASE          (0x400E0000UL) /**< MSC base address  */\r
283 #define EMU_BASE          (0x400E3000UL) /**< EMU base address  */\r
284 #define RMU_BASE          (0x400E5000UL) /**< RMU base address  */\r
285 #define CMU_BASE          (0x400E4000UL) /**< CMU base address  */\r
286 #define CRYPTO_BASE       (0x400F0000UL) /**< CRYPTO base address  */\r
287 #define GPIO_BASE         (0x4000A000UL) /**< GPIO base address  */\r
288 #define PRS_BASE          (0x400E6000UL) /**< PRS base address  */\r
289 #define LDMA_BASE         (0x400E2000UL) /**< LDMA base address  */\r
290 #define FPUEH_BASE        (0x400E1000UL) /**< FPUEH base address  */\r
291 #define GPCRC_BASE        (0x4001C000UL) /**< GPCRC base address  */\r
292 #define TIMER0_BASE       (0x40018000UL) /**< TIMER0 base address  */\r
293 #define TIMER1_BASE       (0x40018400UL) /**< TIMER1 base address  */\r
294 #define USART0_BASE       (0x40010000UL) /**< USART0 base address  */\r
295 #define USART1_BASE       (0x40010400UL) /**< USART1 base address  */\r
296 #define LEUART0_BASE      (0x4004A000UL) /**< LEUART0 base address  */\r
297 #define LETIMER0_BASE     (0x40046000UL) /**< LETIMER0 base address  */\r
298 #define CRYOTIMER_BASE    (0x4001E000UL) /**< CRYOTIMER base address  */\r
299 #define PCNT0_BASE        (0x4004E000UL) /**< PCNT0 base address  */\r
300 #define I2C0_BASE         (0x4000C000UL) /**< I2C0 base address  */\r
301 #define ADC0_BASE         (0x40002000UL) /**< ADC0 base address  */\r
302 #define ACMP0_BASE        (0x40000000UL) /**< ACMP0 base address  */\r
303 #define ACMP1_BASE        (0x40000400UL) /**< ACMP1 base address  */\r
304 #define IDAC0_BASE        (0x40006000UL) /**< IDAC0 base address  */\r
305 #define RTCC_BASE         (0x40042000UL) /**< RTCC base address  */\r
306 #define WDOG0_BASE        (0x40052000UL) /**< WDOG0 base address  */\r
307 #define DEVINFO_BASE      (0x0FE081B0UL) /**< DEVINFO base address */\r
308 #define ROMTABLE_BASE     (0xE00FFFD0UL) /**< ROMTABLE base address */\r
309 #define LOCKBITS_BASE     (0x0FE04000UL) /**< Lock-bits page base address */\r
310 #define USERDATA_BASE     (0x0FE00000UL) /**< User data page base address */\r
311 \r
312 /** @} End of group EFM32PG1B100F256GM32_Peripheral_Base */\r
313 \r
314 /**************************************************************************//**\r
315  * @defgroup EFM32PG1B100F256GM32_Peripheral_Declaration  EFM32PG1B100F256GM32 Peripheral Declarations\r
316  * @{\r
317  *****************************************************************************/\r
318 \r
319 #define MSC          ((MSC_TypeDef *) MSC_BASE)             /**< MSC base pointer */\r
320 #define EMU          ((EMU_TypeDef *) EMU_BASE)             /**< EMU base pointer */\r
321 #define RMU          ((RMU_TypeDef *) RMU_BASE)             /**< RMU base pointer */\r
322 #define CMU          ((CMU_TypeDef *) CMU_BASE)             /**< CMU base pointer */\r
323 #define CRYPTO       ((CRYPTO_TypeDef *) CRYPTO_BASE)       /**< CRYPTO base pointer */\r
324 #define GPIO         ((GPIO_TypeDef *) GPIO_BASE)           /**< GPIO base pointer */\r
325 #define PRS          ((PRS_TypeDef *) PRS_BASE)             /**< PRS base pointer */\r
326 #define LDMA         ((LDMA_TypeDef *) LDMA_BASE)           /**< LDMA base pointer */\r
327 #define FPUEH        ((FPUEH_TypeDef *) FPUEH_BASE)         /**< FPUEH base pointer */\r
328 #define GPCRC        ((GPCRC_TypeDef *) GPCRC_BASE)         /**< GPCRC base pointer */\r
329 #define TIMER0       ((TIMER_TypeDef *) TIMER0_BASE)        /**< TIMER0 base pointer */\r
330 #define TIMER1       ((TIMER_TypeDef *) TIMER1_BASE)        /**< TIMER1 base pointer */\r
331 #define USART0       ((USART_TypeDef *) USART0_BASE)        /**< USART0 base pointer */\r
332 #define USART1       ((USART_TypeDef *) USART1_BASE)        /**< USART1 base pointer */\r
333 #define LEUART0      ((LEUART_TypeDef *) LEUART0_BASE)      /**< LEUART0 base pointer */\r
334 #define LETIMER0     ((LETIMER_TypeDef *) LETIMER0_BASE)    /**< LETIMER0 base pointer */\r
335 #define CRYOTIMER    ((CRYOTIMER_TypeDef *) CRYOTIMER_BASE) /**< CRYOTIMER base pointer */\r
336 #define PCNT0        ((PCNT_TypeDef *) PCNT0_BASE)          /**< PCNT0 base pointer */\r
337 #define I2C0         ((I2C_TypeDef *) I2C0_BASE)            /**< I2C0 base pointer */\r
338 #define ADC0         ((ADC_TypeDef *) ADC0_BASE)            /**< ADC0 base pointer */\r
339 #define ACMP0        ((ACMP_TypeDef *) ACMP0_BASE)          /**< ACMP0 base pointer */\r
340 #define ACMP1        ((ACMP_TypeDef *) ACMP1_BASE)          /**< ACMP1 base pointer */\r
341 #define IDAC0        ((IDAC_TypeDef *) IDAC0_BASE)          /**< IDAC0 base pointer */\r
342 #define RTCC         ((RTCC_TypeDef *) RTCC_BASE)           /**< RTCC base pointer */\r
343 #define WDOG0        ((WDOG_TypeDef *) WDOG0_BASE)          /**< WDOG0 base pointer */\r
344 #define DEVINFO      ((DEVINFO_TypeDef *) DEVINFO_BASE)     /**< DEVINFO base pointer */\r
345 #define ROMTABLE     ((ROMTABLE_TypeDef *) ROMTABLE_BASE)   /**< ROMTABLE base pointer */\r
346 \r
347 /** @} End of group EFM32PG1B100F256GM32_Peripheral_Declaration */\r
348 \r
349 /**************************************************************************//**\r
350  * @defgroup EFM32PG1B100F256GM32_Peripheral_Offsets  EFM32PG1B100F256GM32 Peripheral Offsets\r
351  * @{\r
352  *****************************************************************************/\r
353 \r
354 #define TIMER_OFFSET      0x400 /**< Offset in bytes between TIMER instances */\r
355 #define USART_OFFSET      0x400 /**< Offset in bytes between USART instances */\r
356 #define LEUART_OFFSET     0x400 /**< Offset in bytes between LEUART instances */\r
357 #define LETIMER_OFFSET    0x400 /**< Offset in bytes between LETIMER instances */\r
358 #define PCNT_OFFSET       0x400 /**< Offset in bytes between PCNT instances */\r
359 #define I2C_OFFSET        0x400 /**< Offset in bytes between I2C instances */\r
360 #define ADC_OFFSET        0x400 /**< Offset in bytes between ADC instances */\r
361 #define ACMP_OFFSET       0x400 /**< Offset in bytes between ACMP instances */\r
362 #define IDAC_OFFSET       0x400 /**< Offset in bytes between IDAC instances */\r
363 #define WDOG_OFFSET       0x400 /**< Offset in bytes between WDOG instances */\r
364 \r
365 /** @} End of group EFM32PG1B100F256GM32_Peripheral_Offsets */\r
366 \r
367 \r
368 /**************************************************************************//**\r
369  * @defgroup EFM32PG1B100F256GM32_BitFields EFM32PG1B100F256GM32 Bit Fields\r
370  * @{\r
371  *****************************************************************************/\r
372 \r
373 #include "efm32pg1b_prs_signals.h"\r
374 #include "efm32pg1b_dmareq.h"\r
375 \r
376 /**************************************************************************//**\r
377  * @defgroup EFM32PG1B100F256GM32_UNLOCK EFM32PG1B100F256GM32 Unlock Codes\r
378  * @{\r
379  *****************************************************************************/\r
380 #define MSC_UNLOCK_CODE      0x1B71 /**< MSC unlock code */\r
381 #define EMU_UNLOCK_CODE      0xADE8 /**< EMU unlock code */\r
382 #define RMU_UNLOCK_CODE      0xE084 /**< RMU unlock code */\r
383 #define CMU_UNLOCK_CODE      0x580E /**< CMU unlock code */\r
384 #define GPIO_UNLOCK_CODE     0xA534 /**< GPIO unlock code */\r
385 #define TIMER_UNLOCK_CODE    0xCE80 /**< TIMER unlock code */\r
386 #define RTCC_UNLOCK_CODE     0xAEE8 /**< RTCC unlock code */\r
387 \r
388 /** @} End of group EFM32PG1B100F256GM32_UNLOCK */\r
389 \r
390 /** @} End of group EFM32PG1B100F256GM32_BitFields */\r
391 \r
392 /**************************************************************************//**\r
393  * @defgroup EFM32PG1B100F256GM32_Alternate_Function EFM32PG1B100F256GM32 Alternate Function\r
394  * @{\r
395  *****************************************************************************/\r
396 \r
397 #include "efm32pg1b_af_ports.h"\r
398 #include "efm32pg1b_af_pins.h"\r
399 \r
400 /** @} End of group EFM32PG1B100F256GM32_Alternate_Function */\r
401 \r
402 /**************************************************************************//**\r
403  *  @brief Set the value of a bit field within a register.\r
404  *\r
405  *  @param REG\r
406  *       The register to update\r
407  *  @param MASK\r
408  *       The mask for the bit field to update\r
409  *  @param VALUE\r
410  *       The value to write to the bit field\r
411  *  @param OFFSET\r
412  *       The number of bits that the field is offset within the register.\r
413  *       0 (zero) means LSB.\r
414  *****************************************************************************/\r
415 #define SET_BIT_FIELD(REG, MASK, VALUE, OFFSET) \\r
416   REG = ((REG) &~(MASK)) | (((VALUE) << (OFFSET)) & (MASK));\r
417 \r
418 /** @} End of group EFM32PG1B100F256GM32 */\r
419 \r
420 /** @} End of group Parts */\r
421 \r
422 #ifdef __cplusplus\r
423 }\r
424 #endif\r
425 #endif /* SILICON_LABS_EFM32PG1B100F256GM32_H */\r