]> git.donarmstrong.com Git - qmk_firmware.git/blob - tool/mbed/mbed-sdk/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11U6X/LPC11U6x.h
Squashed 'tmk_core/' changes from 7967731..b9e0ea0
[qmk_firmware.git] / tool / mbed / mbed-sdk / libraries / mbed / targets / cmsis / TARGET_NXP / TARGET_LPC11U6X / LPC11U6x.h
1
2 /****************************************************************************************************//**
3  * @file     LPC11U6x.h
4  *
5  * @brief    CMSIS Cortex-M0PLUS Peripheral Access Layer Header File for
6  *           LPC11U6x from .
7  *
8  * @version  V0.4
9  * @date     22. October 2013
10  *
11  * @note     Generated with SVDConv V2.81a 
12  *           from CMSIS SVD File 'LPC11U6x.svd' Version 0.4,
13  *
14  *                                                                                      modified by Keil
15  *******************************************************************************************************/
16
17
18
19 /** @addtogroup (null)
20   * @{
21   */
22
23 /** @addtogroup LPC11U6x
24   * @{
25   */
26
27 #ifndef LPC11U6X_H
28 #define LPC11U6X_H
29
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33
34
35 /* -------------------------  Interrupt Number Definition  ------------------------ */
36
37 typedef enum {
38 /* -----------------  Cortex-M0PLUS Processor Exceptions Numbers  ----------------- */
39   Reset_IRQn                    = -15,              /*!<   1  Reset Vector, invoked on Power up and warm reset                 */
40   NonMaskableInt_IRQn           = -14,              /*!<   2  Non maskable Interrupt, cannot be stopped or preempted           */
41   HardFault_IRQn                = -13,              /*!<   3  Hard Fault, all classes of Fault                                 */
42
43
44
45   SVCall_IRQn                   =  -5,              /*!<  11  System Service Call via SVC instruction                          */
46
47   
48   PendSV_IRQn                   =  -2,              /*!<  14  Pendable request for system service                              */
49   SysTick_IRQn                  =  -1,              /*!<  15  System Tick Timer                                                */
50 /* ---------------------  LPC11U6x Specific Interrupt Numbers  -------------------- */
51   PIN_INT0_IRQn                 =   0,              /*!<   0  PIN_INT0                                                         */
52   PIN_INT1_IRQn                 =   1,              /*!<   1  PIN_INT1                                                         */
53   PIN_INT2_IRQn                 =   2,              /*!<   2  PIN_INT2                                                         */
54   PIN_INT3_IRQn                 =   3,              /*!<   3  PIN_INT3                                                         */
55   PIN_INT4_IRQn                 =   4,              /*!<   4  PIN_INT4                                                         */
56   PIN_INT5_IRQn                 =   5,              /*!<   5  PIN_INT5                                                         */
57   PIN_INT6_IRQn                 =   6,              /*!<   6  PIN_INT6                                                         */
58   PIN_INT7_IRQn                 =   7,              /*!<   7  PIN_INT7                                                         */
59   GINT0_IRQn                    =   8,              /*!<   8  GINT0                                                            */
60   GINT1_IRQn                    =   9,              /*!<   9  GINT1                                                            */
61   I2C1_IRQn                     =  10,              /*!<  10  I2C1                                                             */
62   USART1_4_IRQn                 =  11,              /*!<  11  USART1_4                                                         */
63   USART2_3_IRQn                 =  12,              /*!<  12  USART2_3                                                         */
64   SCT0_1_IRQn                   =  13,              /*!<  13  SCT0_1                                                           */
65   SSP1_IRQn                     =  14,              /*!<  14  SSP1                                                             */
66   I2C0_IRQn                     =  15,              /*!<  15  I2C0                                                             */
67   CT16B0_IRQn                   =  16,              /*!<  16  CT16B0                                                           */
68   CT16B1_IRQn                   =  17,              /*!<  17  CT16B1                                                           */
69   CT32B0_IRQn                   =  18,              /*!<  18  CT32B0                                                           */
70   CT32B1_IRQn                   =  19,              /*!<  19  CT32B1                                                           */
71   SSP0_IRQn                     =  20,              /*!<  20  SSP0                                                             */
72   USART0_IRQn                   =  21,              /*!<  21  USART0                                                           */
73   USB_IRQn                      =  22,              /*!<  22  USB                                                              */
74   USB_FIQ_IRQn                  =  23,              /*!<  23  USB_FIQ                                                          */
75   ADC_A_IRQn                    =  24,              /*!<  24  ADC_A                                                            */
76   RTC_IRQn                      =  25,              /*!<  25  RTC                                                              */
77   BOD_WDT_IRQn                  =  26,              /*!<  26  BOD_WDT                                                          */
78   FLASH_IRQn                    =  27,              /*!<  27  FLASH                                                            */
79   DMA_IRQn                      =  28,              /*!<  28  DMA                                                              */
80   ADC_B_IRQn                    =  29,              /*!<  29  ADC_B                                                            */
81   USBWAKEUP_IRQn                =  30               /*!<  30  USBWAKEUP                                                        */
82 } IRQn_Type;
83
84
85 /** @addtogroup Configuration_of_CMSIS
86   * @{
87   */
88
89
90 /* ================================================================================ */
91 /* ================      Processor and Core Peripheral Section     ================ */
92 /* ================================================================================ */
93
94 /* ----------------Configuration of the Cortex-M0PLUS Processor and Core Peripherals---------------- */
95 #define __CM0PLUS_REV                 0x0000        /*!< Cortex-M0PLUS Core Revision                                           */
96 #define __MPU_PRESENT                  0            /*!< MPU present or not                                                    */
97 #define __NVIC_PRIO_BITS               2            /*!< Number of Bits used for Priority Levels                               */
98 #define __Vendor_SysTickConfig         0            /*!< Set to 1 if different SysTick Config is used                          */
99 #define __VTOR_PRESENT                 1            /*!< Set to 1 if CPU supports Vector Table Offset Register                 */
100 /** @} */ /* End of group Configuration_of_CMSIS */
101
102 #include "core_cm0plus.h"                           /*!< Cortex-M0PLUS processor and core peripherals                          */
103 #include "system_LPC11U6x.h"                        /*!< LPC11U6x System                                                       */
104
105
106 /* ================================================================================ */
107 /* ================       Device Specific Peripheral Section       ================ */
108 /* ================================================================================ */
109
110
111 /** @addtogroup Device_Peripheral_Registers
112   * @{
113   */
114
115
116 /* -------------------  Start of section using anonymous unions  ------------------ */
117 #if defined(__CC_ARM)
118   #pragma push
119   #pragma anon_unions
120 #elif defined(__ICCARM__)
121   #pragma language=extended
122 #elif defined(__GNUC__)
123   /* anonymous unions are enabled by default */
124 #elif defined(__TMS470__)
125 /* anonymous unions are enabled by default */
126 #elif defined(__TASKING__)
127   #pragma warning 586
128 #else
129   #warning Not supported compiler type
130 #endif
131
132
133
134 /* ================================================================================ */
135 /* ================                      I2C0                      ================ */
136 /* ================================================================================ */
137
138
139 /**
140   * @brief I2C-bus controller (I2C0)
141   */
142
143 typedef struct {                                    /*!< I2C0 Structure                                                        */
144   __IO uint32_t  CONSET;                            /*!< I2C Control Set Register. When a one is written to a bit of
145                                                          this register, the corresponding bit in the I2C control register
146                                                           is set. Writing a zero has no effect on the corresponding bit
147                                                           in the I2C control register.                                         */
148   __I  uint32_t  STAT;                              /*!< I2C Status Register. During I2C operation, this register provides
149                                                          detailed status codes that allow software to determine the next
150                                                           action needed.                                                       */
151   __IO uint32_t  DAT;                               /*!< I2C Data Register. During master or slave transmit mode, data
152                                                          to be transmitted is written to this register. During master
153                                                           or slave receive mode, data that has been received may be read
154                                                           from this register.                                                  */
155   __IO uint32_t  ADR0;                              /*!< I2C Slave Address Register 0. Contains the 7-bit slave address
156                                                          for operation of the I2C interface in slave mode, and is not
157                                                           used in master mode. The least significant bit determines whether
158                                                           a slave responds to the General Call address.                        */
159   __IO uint32_t  SCLH;                              /*!< SCH Duty Cycle Register High Half Word. Determines the high
160                                                          time of the I2C clock.                                                */
161   __IO uint32_t  SCLL;                              /*!< SCL Duty Cycle Register Low Half Word. Determines the low time
162                                                          of the I2C clock. I2nSCLL and I2nSCLH together determine the
163                                                           clock frequency generated by an I2C master and certain times
164                                                           used in slave mode.                                                  */
165   __O  uint32_t  CONCLR;                            /*!< I2C Control Clear Register. When a one is written to a bit of
166                                                          this register, the corresponding bit in the I2C control register
167                                                           is cleared. Writing a zero has no effect on the corresponding
168                                                           bit in the I2C control register.                                     */
169   __IO uint32_t  MMCTRL;                            /*!< Monitor mode control register.                                        */
170   __IO uint32_t  ADR1;                              /*!< I2C Slave Address Register. Contains the 7-bit slave address
171                                                          for operation of the I2C interface in slave mode, and is not
172                                                           used in master mode. The least significant bit determines whether
173                                                           a slave responds to the General Call address.                        */
174   __IO uint32_t  ADR2;                              /*!< I2C Slave Address Register. Contains the 7-bit slave address
175                                                          for operation of the I2C interface in slave mode, and is not
176                                                           used in master mode. The least significant bit determines whether
177                                                           a slave responds to the General Call address.                        */
178   __IO uint32_t  ADR3;                              /*!< I2C Slave Address Register. Contains the 7-bit slave address
179                                                          for operation of the I2C interface in slave mode, and is not
180                                                           used in master mode. The least significant bit determines whether
181                                                           a slave responds to the General Call address.                        */
182   __I  uint32_t  DATA_BUFFER;                       /*!< Data buffer register. The contents of the 8 MSBs of the I2DAT
183                                                          shift register will be transferred to the DATA_BUFFER automatically
184                                                           after every nine bits (8 bits of data plus ACK or NACK) has
185                                                           been received on the bus.                                            */
186   __IO uint32_t  MASK0;                             /*!< I2C Slave address mask register. This mask register is associated
187                                                          with I2ADR0 to determine an address match. The mask register
188                                                           has no effect when comparing to the General Call address (0000000).  */
189   __IO uint32_t  MASK1;                             /*!< I2C Slave address mask register. This mask register is associated
190                                                          with I2ADR0 to determine an address match. The mask register
191                                                           has no effect when comparing to the General Call address (0000000).  */
192   __IO uint32_t  MASK2;                             /*!< I2C Slave address mask register. This mask register is associated
193                                                          with I2ADR0 to determine an address match. The mask register
194                                                           has no effect when comparing to the General Call address (0000000).  */
195   __IO uint32_t  MASK3;                             /*!< I2C Slave address mask register. This mask register is associated
196                                                          with I2ADR0 to determine an address match. The mask register
197                                                           has no effect when comparing to the General Call address (0000000).  */
198 } LPC_I2C0_Type;
199
200
201 /* ================================================================================ */
202 /* ================                      WWDT                      ================ */
203 /* ================================================================================ */
204
205
206 /**
207   * @brief Windowed Watchdog Timer (WWDT) (WWDT)
208   */
209
210 typedef struct {                                    /*!< WWDT Structure                                                        */
211   __IO uint32_t  MOD;                               /*!< Watchdog mode register. This register contains the basic mode
212                                                          and status of the Watchdog Timer.                                     */
213   __IO uint32_t  TC;                                /*!< Watchdog timer constant register. This 24-bit register determines
214                                                          the time-out value.                                                   */
215   __O  uint32_t  FEED;                              /*!< Watchdog feed sequence register. Writing 0xAA followed by 0x55
216                                                          to this register reloads the Watchdog timer with the value contained
217                                                           in WDTC.                                                             */
218   __I  uint32_t  TV;                                /*!< Watchdog timer value register. This 24-bit register reads out
219                                                          the current value of the Watchdog timer.                              */
220   __IO uint32_t  CLKSEL;                            /*!< Watchdog clock select register.                                       */
221   __IO uint32_t  WARNINT;                           /*!< Watchdog Warning Interrupt compare value.                             */
222   __IO uint32_t  WINDOW;                            /*!< Watchdog Window compare value.                                        */
223 } LPC_WWDT_Type;
224
225
226 /* ================================================================================ */
227 /* ================                     USART0                     ================ */
228 /* ================================================================================ */
229
230
231 /**
232   * @brief USART0 (USART0)
233   */
234
235 typedef struct {                                    /*!< USART0 Structure                                                      */
236   
237   union {
238     __IO uint32_t  DLL;                             /*!< Divisor Latch LSB. Least significant byte of the baud rate divisor
239                                                          value. The full divisor is used to generate a baud rate from
240                                                           the fractional rate divider. (DLAB=1)                                */
241     __O  uint32_t  THR;                             /*!< Transmit Holding Register. The next character to be transmitted
242                                                          is written here. (DLAB=0)                                             */
243     __I  uint32_t  RBR;                             /*!< Receiver Buffer Register. Contains the next received character
244                                                          to be read. (DLAB=0)                                                  */
245   };
246   
247   union {
248     __IO uint32_t  IER;                             /*!< Interrupt Enable Register. Contains individual interrupt enable
249                                                          bits for the 7 potential USART interrupts. (DLAB=0)                   */
250     __IO uint32_t  DLM;                             /*!< Divisor Latch MSB. Most significant byte of the baud rate divisor
251                                                          value. The full divisor is used to generate a baud rate from
252                                                           the fractional rate divider. (DLAB=1)                                */
253   };
254   
255   union {
256     __O  uint32_t  FCR;                             /*!< FIFO Control Register. Controls USART FIFO usage and modes.           */
257     __I  uint32_t  IIR;                             /*!< Interrupt ID Register. Identifies which interrupt(s) are pending.     */
258   };
259   __IO uint32_t  LCR;                               /*!< Line Control Register. Contains controls for frame formatting
260                                                          and break generation.                                                 */
261   __IO uint32_t  MCR;                               /*!< Modem Control Register.                                               */
262   __I  uint32_t  LSR;                               /*!< Line Status Register. Contains flags for transmit and receive
263                                                          status, including line errors.                                        */
264   __I  uint32_t  MSR;                               /*!< Modem Status Register.                                                */
265   __IO uint32_t  SCR;                               /*!< Scratch Pad Register. Eight-bit temporary storage for software.       */
266   __IO uint32_t  ACR;                               /*!< Auto-baud Control Register. Contains controls for the auto-baud
267                                                          feature.                                                              */
268   __IO uint32_t  ICR;                               /*!< IrDA Control Register. Enables and configures the IrDA (remote
269                                                          control) mode.                                                        */
270   __IO uint32_t  FDR;                               /*!< Fractional Divider Register. Generates a clock input for the
271                                                          baud rate divider.                                                    */
272   __IO uint32_t  OSR;                               /*!< Oversampling Register. Controls the degree of oversampling during
273                                                          each bit time.                                                        */
274   __IO uint32_t  TER;                               /*!< Transmit Enable Register. Turns off USART transmitter for use
275                                                          with software flow control.                                           */
276   __I  uint32_t  RESERVED0[3];
277   __IO uint32_t  HDEN;                              /*!< Half duplex enable register.                                          */
278   __I  uint32_t  RESERVED1;
279   __IO uint32_t  SCICTRL;                           /*!< Smart Card Interface Control register. Enables and configures
280                                                          the Smart Card Interface feature.                                     */
281   __IO uint32_t  RS485CTRL;                         /*!< RS-485/EIA-485 Control. Contains controls to configure various
282                                                          aspects of RS-485/EIA-485 modes.                                      */
283   __IO uint32_t  RS485ADRMATCH;                     /*!< RS-485/EIA-485 address match. Contains the address match value
284                                                          for RS-485/EIA-485 mode.                                              */
285   __IO uint32_t  RS485DLY;                          /*!< RS-485/EIA-485 direction control delay.                               */
286   __IO uint32_t  SYNCCTRL;                          /*!< Synchronous mode control register.                                    */
287 } LPC_USART0_Type;
288
289
290 /* ================================================================================ */
291 /* ================                     CT16B0                     ================ */
292 /* ================================================================================ */
293
294
295 /**
296   * @brief 16-bit counter/timers CT16B0 (CT16B0)
297   */
298
299 typedef struct {                                    /*!< CT16B0 Structure                                                      */
300   __IO uint32_t  IR;                                /*!< Interrupt Register. The IR can be written to clear interrupts.
301                                                          The IR can be read to identify which of eight possible interrupt
302                                                           sources are pending.                                                 */
303   __IO uint32_t  TCR;                               /*!< Timer Control Register. The TCR is used to control the Timer
304                                                          Counter functions. The Timer Counter can be disabled or reset
305                                                           through the TCR.                                                     */
306   __IO uint32_t  TC;                                /*!< Timer Counter. The 16-bit TC is incremented every PR+1 cycles
307                                                          of PCLK. The TC is controlled through the TCR.                        */
308   __IO uint32_t  PR;                                /*!< Prescale Register. When the Prescale Counter (below) is equal
309                                                          to this value, the next clock increments the TC and clears the
310                                                           PC.                                                                  */
311   __IO uint32_t  PC;                                /*!< Prescale Counter. The 16-bit PC is a counter which is incremented
312                                                          to the value stored in PR. When the value in PR is reached,
313                                                           the TC is incremented and the PC is cleared. The PC is observable
314                                                           and controllable through the bus interface.                          */
315   __IO uint32_t  MCR;                               /*!< Match Control Register. The MCR is used to control if an interrupt
316                                                          is generated and if the TC is reset when a Match occurs.              */
317   __IO uint32_t  MR0;                               /*!< Match Register. MR can be enabled through the MCR to reset the
318                                                          TC, stop both the TC and PC, and/or generate an interrupt every
319                                                           time MR0 matches the TC.                                             */
320   __IO uint32_t  MR1;                               /*!< Match Register. MR can be enabled through the MCR to reset the
321                                                          TC, stop both the TC and PC, and/or generate an interrupt every
322                                                           time MR0 matches the TC.                                             */
323   __IO uint32_t  MR2;                               /*!< Match Register. MR can be enabled through the MCR to reset the
324                                                          TC, stop both the TC and PC, and/or generate an interrupt every
325                                                           time MR0 matches the TC.                                             */
326   __IO uint32_t  MR3;                               /*!< Match Register. MR can be enabled through the MCR to reset the
327                                                          TC, stop both the TC and PC, and/or generate an interrupt every
328                                                           time MR0 matches the TC.                                             */
329   __IO uint32_t  CCR;                               /*!< Capture Control Register. The CCR controls which edges of the
330                                                          capture inputs are used to load the Capture Registers and whether
331                                                           or not an interrupt is generated when a capture takes place.         */
332   __I  uint32_t  CR0;                               /*!< Capture Register. CR is loaded with the value of TC when there
333                                                          is an event on the CAP input.                                         */
334   __I  uint32_t  CR1;                               /*!< Capture Register. CR is loaded with the value of TC when there
335                                                          is an event on the CAP input.                                         */
336   __I  uint32_t  CR2;                               /*!< Capture Register. CR is loaded with the value of TC when there
337                                                          is an event on the CAP input.                                         */
338   __I  uint32_t  RESERVED0;
339   __IO uint32_t  EMR;                               /*!< External Match Register. The EMR controls the match function
340                                                          and the external match pins CT16B0_MAT[1:0] and CT16B1_MAT[1:0].      */
341   __I  uint32_t  RESERVED1[12];
342   __IO uint32_t  CTCR;                              /*!< Count Control Register. The CTCR selects between Timer and Counter
343                                                          mode, and in Counter mode selects the signal and edge(s) for
344                                                           counting.                                                            */
345   __IO uint32_t  PWMC;                              /*!< PWM Control Register. The PWMCON enables PWM mode for the external
346                                                          match pins CT16B0_MAT[1:0] and CT16B1_MAT[1:0].                       */
347 } LPC_CT16B0_Type;
348
349
350 /* ================================================================================ */
351 /* ================                     CT32B0                     ================ */
352 /* ================================================================================ */
353
354
355 /**
356   * @brief 32-bit counter/timers CT32B0 (CT32B0)
357   */
358
359 typedef struct {                                    /*!< CT32B0 Structure                                                      */
360   __IO uint32_t  IR;                                /*!< Interrupt Register. The IR can be written to clear interrupts.
361                                                          The IR can be read to identify which of eight possible interrupt
362                                                           sources are pending.                                                 */
363   __IO uint32_t  TCR;                               /*!< Timer Control Register. The TCR is used to control the Timer
364                                                          Counter functions. The Timer Counter can be disabled or reset
365                                                           through the TCR.                                                     */
366   __IO uint32_t  TC;                                /*!< Timer Counter. The 32-bit TC is incremented every PR+1 cycles
367                                                          of PCLK. The TC is controlled through the TCR.                        */
368   __IO uint32_t  PR;                                /*!< Prescale Register. When the Prescale Counter (below) is equal
369                                                          to this value, the next clock increments the TC and clears the
370                                                           PC.                                                                  */
371   __IO uint32_t  PC;                                /*!< Prescale Counter. The 32-bit PC is a counter which is incremented
372                                                          to the value stored in PR. When the value in PR is reached,
373                                                           the TC is incremented and the PC is cleared. The PC is observable
374                                                           and controllable through the bus interface.                          */
375   __IO uint32_t  MCR;                               /*!< Match Control Register. The MCR is used to control if an interrupt
376                                                          is generated and if the TC is reset when a Match occurs.              */
377   __IO uint32_t  MR0;                               /*!< Match Register. MR can be enabled through the MCR to reset the
378                                                          TC, stop both the TC and PC, and/or generate an interrupt every
379                                                           time MR0 matches the TC.                                             */
380   __IO uint32_t  MR1;                               /*!< Match Register. MR can be enabled through the MCR to reset the
381                                                          TC, stop both the TC and PC, and/or generate an interrupt every
382                                                           time MR0 matches the TC.                                             */
383   __IO uint32_t  MR2;                               /*!< Match Register. MR can be enabled through the MCR to reset the
384                                                          TC, stop both the TC and PC, and/or generate an interrupt every
385                                                           time MR0 matches the TC.                                             */
386   __IO uint32_t  MR3;                               /*!< Match Register. MR can be enabled through the MCR to reset the
387                                                          TC, stop both the TC and PC, and/or generate an interrupt every
388                                                           time MR0 matches the TC.                                             */
389   __IO uint32_t  CCR;                               /*!< Capture Control Register. The CCR controls which edges of the
390                                                          capture inputs are used to load the Capture Registers and whether
391                                                           or not an interrupt is generated when a capture takes place.         */
392   __I  uint32_t  CR0;                               /*!< Capture Register. CR is loaded with the value of TC when there
393                                                          is an event on the CAP input.                                         */
394   __I  uint32_t  CR1;                               /*!< Capture Register. CR is loaded with the value of TC when there
395                                                          is an event on the CAP input.                                         */
396   __I  uint32_t  CR2;                               /*!< Capture Register. CR is loaded with the value of TC when there
397                                                          is an event on the CAP input.                                         */
398   __I  uint32_t  RESERVED0;
399   __IO uint32_t  EMR;                               /*!< External Match Register. The EMR controls the match function
400                                                          and the external match pins CT32Bn_MAT[3:0].                          */
401   __I  uint32_t  RESERVED1[12];
402   __IO uint32_t  CTCR;                              /*!< Count Control Register. The CTCR selects between Timer and Counter
403                                                          mode, and in Counter mode selects the signal and edge(s) for
404                                                           counting.                                                            */
405   __IO uint32_t  PWMC;                              /*!< PWM Control Register. The PWMCON enables PWM mode for the external
406                                                          match pins CT32Bn_MAT[3:0].                                           */
407 } LPC_CT32B0_Type;
408
409
410 /* ================================================================================ */
411 /* ================                       ADC                      ================ */
412 /* ================================================================================ */
413
414
415 /**
416   * @brief Product name title=Kylin UM Chapter title=Kylin12-bit Analog-to-Digital Converter (ADC) Modification date=5/13/2013 Major revision=0 Minor revision=1  (ADC)
417   */
418
419 typedef struct {                                    /*!< ADC Structure                                                         */
420   __IO uint32_t  CTRL;                              /*!< A/D Control Register. Contains the clock divide value, enable
421                                                          bits for each sequence and the A/D power-down bit.                    */
422   __I  uint32_t  RESERVED0;
423   __IO uint32_t  SEQA_CTRL;                         /*!< A/D Conversion Sequence-A control Register: Controls triggering
424                                                          and channel selection for conversion sequence-A. Also specifies
425                                                           interrupt mode for sequence-A.                                       */
426   __IO uint32_t  SEQB_CTRL;                         /*!< A/D Conversion Sequence-B Control Register: Controls triggering
427                                                          and channel selection for conversion sequence-B. Also specifies
428                                                           interrupt mode for sequence-B.                                       */
429   __IO uint32_t  SEQA_GDAT;                         /*!< A/D Sequence-A Global Data Register. This register contains
430                                                          the result of the most recent A/D conversion performed under
431                                                           sequence-A                                                           */
432   __IO uint32_t  SEQB_GDAT;                         /*!< A/D Sequence-B Global Data Register. This register contains
433                                                          the result of the most recent A/D conversion performed under
434                                                           sequence-B                                                           */
435   __I  uint32_t  RESERVED1[2];
436   __I  uint32_t  DAT[12];                           /*!< A/D Channel 0 Data Register. This register contains the result
437                                                          of the most recent conversion completed on channel 0.                 */
438   __IO uint32_t  THR0_LOW;                          /*!< A/D Low Compare Threshold Register 0 : Contains the lower threshold
439                                                          level for automatic threshold comparison for any channels linked
440                                                           to threshold pair 0.                                                 */
441   __IO uint32_t  THR1_LOW;                          /*!< A/D Low Compare Threshold Register 1: Contains the lower threshold
442                                                          level for automatic threshold comparison for any channels linked
443                                                           to threshold pair 1.                                                 */
444   __IO uint32_t  THR0_HIGH;                         /*!< A/D High Compare Threshold Register 0: Contains the upper threshold
445                                                          level for automatic threshold comparison for any channels linked
446                                                           to threshold pair 0.                                                 */
447   __IO uint32_t  THR1_HIGH;                         /*!< A/D High Compare Threshold Register 1: Contains the upper threshold
448                                                          level for automatic threshold comparison for any channels linked
449                                                           to threshold pair 1.                                                 */
450   __I  uint32_t  CHAN_THRSEL;                       /*!< A/D Channel-Threshold Select Register. Specifies which set of
451                                                          threshold compare registers are to be used for each channel           */
452   __IO uint32_t  INTEN;                             /*!< A/D Interrupt Enable Register. This register contains enable
453                                                          bits that enable the sequence-A, sequence-B, threshold compare
454                                                           and data overrun interrupts to be generated.                         */
455   __I  uint32_t  FLAGS;                             /*!< A/D Flags Register. Contains the four interrupt request flags
456                                                          and the individual component overrun and threshold-compare flags.
457                                                           (The overrun bits replicate information stored in the result
458                                                           registers).                                                          */
459   __IO uint32_t  TRM;                               /*!< ADC trim register.                                                    */
460 } LPC_ADC_Type;
461
462
463 /* ================================================================================ */
464 /* ================                       RTC                      ================ */
465 /* ================================================================================ */
466
467
468 /**
469   * @brief Real-Time Clock (RTC) (RTC)
470   */
471
472 typedef struct {                                    /*!< RTC Structure                                                         */
473   __IO uint32_t  CTRL;                              /*!< RTC control register                                                  */
474   __IO uint32_t  MATCH;                             /*!< RTC match register                                                    */
475   __IO uint32_t  COUNT;                             /*!< RTC counter register                                                  */
476   __IO uint32_t  WAKE;                              /*!< RTC high-resolution/wake-up timer control register                    */
477 } LPC_RTC_Type;
478
479
480 /* ================================================================================ */
481 /* ================                   DMATRIGMUX                   ================ */
482 /* ================================================================================ */
483
484
485 /**
486   * @brief Product name title=Kylin UM Chapter title=KylinDMA controller Modification date=5/13/2013 Major revision=0 Minor revision=1  (DMATRIGMUX)
487   */
488
489 typedef struct {                                    /*!< DMATRIGMUX Structure                                                  */
490   __IO uint32_t  DMA_ITRIG_PINMUX[16];              /*!< Trigger input select register for DMA channel 0.                      */
491 } LPC_DMATRIGMUX_Type;
492
493
494 /* ================================================================================ */
495 /* ================                       PMU                      ================ */
496 /* ================================================================================ */
497
498
499 /**
500   * @brief Product name title=Kylin UM Chapter title=KylinPower Management Unit (PMU) Modification date=5/13/2013 Major revision=0 Minor revision=1  (PMU)
501   */
502
503 typedef struct {                                    /*!< PMU Structure                                                         */
504   __IO uint32_t  PCON;                              /*!< Power control register                                                */
505   __IO uint32_t  GPREG0;                            /*!< General purpose register 0                                            */
506   __IO uint32_t  GPREG1;                            /*!< General purpose register 0                                            */
507   __IO uint32_t  GPREG2;                            /*!< General purpose register 0                                            */
508   __IO uint32_t  GPREG3;                            /*!< General purpose register 0                                            */
509   __IO uint32_t  DPDCTRL;                           /*!< Deep power down control register                                      */
510 } LPC_PMU_Type;
511
512
513 /* ================================================================================ */
514 /* ================                    FLASHCTRL                   ================ */
515 /* ================================================================================ */
516
517
518 /**
519   * @brief Flash controller  (FLASHCTRL)
520   */
521
522 typedef struct {                                    /*!< FLASHCTRL Structure                                                   */
523   __I  uint32_t  RESERVED0[4];
524   __IO uint32_t  FLASHCFG;                          /*!< Flash configuration register                                          */
525   __I  uint32_t  RESERVED1[3];
526   __IO uint32_t  FMSSTART;                          /*!< Signature start address register                                      */
527   __IO uint32_t  FMSSTOP;                           /*!< Signature stop-address register                                       */
528   __I  uint32_t  RESERVED2;
529   __I  uint32_t  FMSW0;                             /*!< Signature Word                                                        */
530 } LPC_FLASHCTRL_Type;
531
532
533 /* ================================================================================ */
534 /* ================                      SSP0                      ================ */
535 /* ================================================================================ */
536
537
538 /**
539   * @brief SSP/SPI  (SSP0)
540   */
541
542 typedef struct {                                    /*!< SSP0 Structure                                                        */
543   __IO uint32_t  CR0;                               /*!< Control Register 0. Selects the serial clock rate, bus type,
544                                                          and data size.                                                        */
545   __IO uint32_t  CR1;                               /*!< Control Register 1. Selects master/slave and other modes.             */
546   __IO uint32_t  DR;                                /*!< Data Register. Writes fill the transmit FIFO, and reads empty
547                                                          the receive FIFO.                                                     */
548   __I  uint32_t  SR;                                /*!< Status Register                                                       */
549   __IO uint32_t  CPSR;                              /*!< Clock Prescale Register                                               */
550   __IO uint32_t  IMSC;                              /*!< Interrupt Mask Set and Clear Register                                 */
551   __I  uint32_t  RIS;                               /*!< Raw Interrupt Status Register                                         */
552   __I  uint32_t  MIS;                               /*!< Masked Interrupt Status Register                                      */
553   __O  uint32_t  ICR;                               /*!< SSPICR Interrupt Clear Register                                       */
554 } LPC_SSP0_Type;
555
556
557 /* ================================================================================ */
558 /* ================                      IOCON                     ================ */
559 /* ================================================================================ */
560
561
562 /**
563   * @brief Product name title=Kylin UM Chapter title=KylinI/O control (IOCON) Modification date=5/13/2013 Major revision=0 Minor revision=1  (IOCON)
564   */
565
566 typedef struct {                                    /*!< IOCON Structure                                                       */
567   __IO uint32_t  PIO0_0;                            /*!< I/O configuration for port PIO0                                       */
568   __IO uint32_t  PIO0_1;                            /*!< I/O configuration for port PIO0                                       */
569   __IO uint32_t  PIO0_2;                            /*!< I/O configuration for port PIO0                                       */
570   __IO uint32_t  PIO0_3;                            /*!< I/O configuration for port PIO0                                       */
571   __IO uint32_t  PIO0_4;                            /*!< I/O configuration for port PIO0                                       */
572   __IO uint32_t  PIO0_5;                            /*!< I/O configuration for port PIO0                                       */
573   __IO uint32_t  PIO0_6;                            /*!< I/O configuration for port PIO0                                       */
574   __IO uint32_t  PIO0_7;                            /*!< I/O configuration for port PIO0                                       */
575   __IO uint32_t  PIO0_8;                            /*!< I/O configuration for port PIO0                                       */
576   __IO uint32_t  PIO0_9;                            /*!< I/O configuration for port PIO0                                       */
577   __IO uint32_t  PIO0_10;                           /*!< I/O configuration for port PIO0                                       */
578   __IO uint32_t  PIO0_11;                           /*!< I/O configuration for port PIO0                                       */
579   __IO uint32_t  PIO0_12;                           /*!< I/O configuration for port PIO0                                       */
580   __IO uint32_t  PIO0_13;                           /*!< I/O configuration for port PIO0                                       */
581   __IO uint32_t  PIO0_14;                           /*!< I/O configuration for port PIO0                                       */
582   __IO uint32_t  PIO0_15;                           /*!< I/O configuration for port PIO0                                       */
583   __IO uint32_t  PIO0_16;                           /*!< I/O configuration for port PIO0                                       */
584   __IO uint32_t  PIO0_17;                           /*!< I/O configuration for port PIO0                                       */
585   __IO uint32_t  PIO0_18;                           /*!< I/O configuration for port PIO0                                       */
586   __IO uint32_t  PIO0_19;                           /*!< I/O configuration for port PIO0                                       */
587   __IO uint32_t  PIO0_20;                           /*!< I/O configuration for port PIO0                                       */
588   __IO uint32_t  PIO0_21;                           /*!< I/O configuration for port PIO0                                       */
589   __IO uint32_t  PIO0_22;                           /*!< I/O configuration for port PIO0                                       */
590   __IO uint32_t  PIO0_23;                           /*!< I/O configuration for port PIO0                                       */
591   __IO uint32_t  PIO1_0;                            /*!< I/O configuration for port PIO1                                       */
592   __IO uint32_t  PIO1_1;                            /*!< I/O configuration for port PIO1                                       */
593   __IO uint32_t  PIO1_2;                            /*!< I/O configuration for port PIO1                                       */
594   __IO uint32_t  PIO1_3;                            /*!< I/O configuration for port PIO1                                       */
595   __IO uint32_t  PIO1_4;                            /*!< I/O configuration for port PIO1                                       */
596   __IO uint32_t  PIO1_5;                            /*!< I/O configuration for port PIO1                                       */
597   __IO uint32_t  PIO1_6;                            /*!< I/O configuration for port PIO1                                       */
598   __IO uint32_t  PIO1_7;                            /*!< I/O configuration for port PIO1                                       */
599   __IO uint32_t  PIO1_8;                            /*!< I/O configuration for port PIO1                                       */
600   __IO uint32_t  PIO1_9;                            /*!< I/O configuration for port PIO1                                       */
601   __IO uint32_t  PIO1_10;                           /*!< I/O configuration for port PIO1                                       */
602   __IO uint32_t  PIO1_11;                           /*!< I/O configuration for port PIO1                                       */
603   __IO uint32_t  PIO1_12;                           /*!< I/O configuration for port PIO1                                       */
604   __IO uint32_t  PIO1_13;                           /*!< I/O configuration for port PIO1                                       */
605   __IO uint32_t  PIO1_14;                           /*!< I/O configuration for port PIO1                                       */
606   __IO uint32_t  PIO1_15;                           /*!< I/O configuration for port PIO1                                       */
607   __IO uint32_t  PIO1_16;                           /*!< I/O configuration for port PIO1                                       */
608   __IO uint32_t  PIO1_17;                           /*!< I/O configuration for port PIO1                                       */
609   __IO uint32_t  PIO1_18;                           /*!< I/O configuration for port PIO1                                       */
610   __IO uint32_t  PIO1_19;                           /*!< I/O configuration for port PIO1                                       */
611   __IO uint32_t  PIO1_20;                           /*!< I/O configuration for port PIO1                                       */
612   __IO uint32_t  PIO1_21;                           /*!< I/O configuration for port PIO1                                       */
613   __IO uint32_t  PIO1_22;                           /*!< I/O configuration for port PIO1                                       */
614   __IO uint32_t  PIO1_23;                           /*!< I/O configuration for port PIO1                                       */
615   __IO uint32_t  PIO1_24;                           /*!< I/O configuration for port PIO1                                       */
616   __IO uint32_t  PIO1_25;                           /*!< I/O configuration for port PIO1                                       */
617   __IO uint32_t  PIO1_26;                           /*!< I/O configuration for port PIO1                                       */
618   __IO uint32_t  PIO1_27;                           /*!< I/O configuration for port PIO1                                       */
619   __IO uint32_t  PIO1_28;                           /*!< I/O configuration for port PIO1                                       */
620   __IO uint32_t  PIO1_29;                           /*!< I/O configuration for port PIO1                                       */
621   __IO uint32_t  PIO1_30;                           /*!< I/O configuration for port PIO1                                       */
622   __IO uint32_t  PIO1_31;                           /*!< I/O configuration for port PIO1                                       */
623   __I  uint32_t  RESERVED0[4];
624   __IO uint32_t  PIO2_0;                            /*!< I/O configuration for port PIO2                                       */
625   __IO uint32_t  PIO2_1;                            /*!< I/O configuration for port PIO2                                       */
626   __I  uint32_t  RESERVED1;
627   __IO uint32_t  PIO2_2;                            /*!< I/O configuration for port PIO2                                       */
628   __IO uint32_t  PIO2_3;                            /*!< I/O configuration for port PIO2                                       */
629   __IO uint32_t  PIO2_4;                            /*!< I/O configuration for port PIO2                                       */
630   __IO uint32_t  PIO2_5;                            /*!< I/O configuration for port PIO2                                       */
631   __IO uint32_t  PIO2_6;                            /*!< I/O configuration for port PIO2                                       */
632   __IO uint32_t  PIO2_7;                            /*!< I/O configuration for port PIO2                                       */
633   __IO uint32_t  PIO2_8;                            /*!< I/O configuration for port PIO2                                       */
634   __IO uint32_t  PIO2_9;                            /*!< I/O configuration for port PIO2                                       */
635   __IO uint32_t  PIO2_10;                           /*!< I/O configuration for port PIO2                                       */
636   __IO uint32_t  PIO2_11;                           /*!< I/O configuration for port PIO2                                       */
637   __IO uint32_t  PIO2_12;                           /*!< I/O configuration for port PIO2                                       */
638   __IO uint32_t  PIO2_13;                           /*!< I/O configuration for port PIO2                                       */
639   __IO uint32_t  PIO2_14;                           /*!< I/O configuration for port PIO2                                       */
640   __IO uint32_t  PIO2_15;                           /*!< I/O configuration for port PIO2                                       */
641   __IO uint32_t  PIO2_16;                           /*!< I/O configuration for port PIO2                                       */
642   __IO uint32_t  PIO2_17;                           /*!< I/O configuration for port PIO2                                       */
643   __IO uint32_t  PIO2_18;                           /*!< I/O configuration for port PIO2                                       */
644   __IO uint32_t  PIO2_19;                           /*!< I/O configuration for port PIO2                                       */
645   __IO uint32_t  PIO2_20;                           /*!< I/O configuration for port PIO2                                       */
646   __IO uint32_t  PIO2_21;                           /*!< I/O configuration for port PIO2                                       */
647   __IO uint32_t  PIO2_22;                           /*!< I/O configuration for port PIO2                                       */
648   __IO uint32_t  PIO2_23;                           /*!< I/O configuration for port PIO2                                       */
649 } LPC_IOCON_Type;
650
651
652 /* ================================================================================ */
653 /* ================                     SYSCON                     ================ */
654 /* ================================================================================ */
655
656
657 /**
658   * @brief Product name title=Kylin UM Chapter title=KylinSystem configuration (SYSCON) Modification date=5/13/2013 Major revision=0 Minor revision=1  (SYSCON)
659   */
660
661 typedef struct {                                    /*!< SYSCON Structure                                                      */
662   __IO uint32_t  SYSMEMREMAP;                       /*!< System memory remap                                                   */
663   __IO uint32_t  PRESETCTRL;                        /*!< Peripheral reset control                                              */
664   __IO uint32_t  SYSPLLCTRL;                        /*!< System PLL control                                                    */
665   __I  uint32_t  SYSPLLSTAT;                        /*!< System PLL status                                                     */
666   __IO uint32_t  USBPLLCTRL;                        /*!< USB PLL control                                                       */
667   __I  uint32_t  USBPLLSTAT;                        /*!< USB PLL status                                                        */
668   __I  uint32_t  RESERVED0;
669   __IO uint32_t  RTCOSCCTRL;                        /*!< RTC oscillator 32 kHz output control                                  */
670   __IO uint32_t  SYSOSCCTRL;                        /*!< System oscillator control                                             */
671   __IO uint32_t  WDTOSCCTRL;                        /*!< Watchdog oscillator control                                           */
672   __I  uint32_t  RESERVED1[2];
673   __IO uint32_t  SYSRSTSTAT;                        /*!< System reset status register                                          */
674   __I  uint32_t  RESERVED2[3];
675   __IO uint32_t  SYSPLLCLKSEL;                      /*!< System PLL clock source select                                        */
676   __IO uint32_t  SYSPLLCLKUEN;                      /*!< System PLL clock source update enable                                 */
677   __IO uint32_t  USBPLLCLKSEL;                      /*!< USB PLL clock source select                                           */
678   __IO uint32_t  USBPLLCLKUEN;                      /*!< USB PLL clock source update enable                                    */
679   __I  uint32_t  RESERVED3[8];
680   __IO uint32_t  MAINCLKSEL;                        /*!< Main clock source select                                              */
681   __IO uint32_t  MAINCLKUEN;                        /*!< Main clock source update enable                                       */
682   __IO uint32_t  SYSAHBCLKDIV;                      /*!< System clock divider                                                  */
683   __I  uint32_t  RESERVED4;
684   __IO uint32_t  SYSAHBCLKCTRL;                     /*!< System clock control                                                  */
685   __I  uint32_t  RESERVED5[4];
686   __IO uint32_t  SSP0CLKDIV;                        /*!< SSP0 clock divider                                                    */
687   __IO uint32_t  USART0CLKDIV;                      /*!< USART0 clock divider                                                  */
688   __IO uint32_t  SSP1CLKDIV;                        /*!< SSP1 clock divider                                                    */
689   __IO uint32_t  FRGCLKDIV;                         /*!< Clock divider for the common fractional baud rate generator
690                                                          of USART1 to USART4                                                   */
691   __I  uint32_t  RESERVED6[7];
692   __IO uint32_t  USBCLKSEL;                         /*!< USB clock source select                                               */
693   __IO uint32_t  USBCLKUEN;                         /*!< USB clock source update enable                                        */
694   __IO uint32_t  USBCLKDIV;                         /*!< USB clock source divider                                              */
695   __I  uint32_t  RESERVED7[5];
696   __IO uint32_t  CLKOUTSEL;                         /*!< CLKOUT clock source select                                            */
697   __IO uint32_t  CLKOUTUEN;                         /*!< CLKOUT clock source update enable                                     */
698   __IO uint32_t  CLKOUTDIV;                         /*!< CLKOUT clock divider                                                  */
699   __I  uint32_t  RESERVED8;
700   __IO uint32_t  UARTFRGDIV;                        /*!< USART fractional generator divider value                              */
701   __IO uint32_t  UARTFRGMULT;                       /*!< USART fractional generator multiplier value                           */
702   __I  uint32_t  RESERVED9;
703   __IO uint32_t  EXTTRACECMD;                       /*!< External trace buffer command register                                */
704   __I  uint32_t  PIOPORCAP0;                        /*!< POR captured PIO status 0                                             */
705   __I  uint32_t  PIOPORCAP1;                        /*!< POR captured PIO status 1                                             */
706   __I  uint32_t  PIOPORCAP2;                        /*!< POR captured PIO status 1                                             */
707   __I  uint32_t  RESERVED10[10];
708   __IO uint32_t  IOCONCLKDIV6;                      /*!< Peripheral clock 6 to the IOCON block for programmable glitch
709                                                          filter                                                                */
710   __IO uint32_t  IOCONCLKDIV5;                      /*!< Peripheral clock 5 to the IOCON block for programmable glitch
711                                                          filter                                                                */
712   __IO uint32_t  IOCONCLKDIV4;                      /*!< Peripheral clock 4 to the IOCON block for programmable glitch
713                                                          filter                                                                */
714   __IO uint32_t  IOCONCLKDIV3;                      /*!< Peripheral clock 3 to the IOCON block for programmable glitch
715                                                          filter                                                                */
716   __IO uint32_t  IOCONCLKDIV2;                      /*!< Peripheral clock 2 to the IOCON block for programmable glitch
717                                                          filter                                                                */
718   __IO uint32_t  IOCONCLKDIV1;                      /*!< Peripheral clock 1 to the IOCON block for programmable glitch
719                                                          filter                                                                */
720   __IO uint32_t  IOCONCLKDIV0;                      /*!< Peripheral clock 0 to the IOCON block for programmable glitch
721                                                          filter                                                                */
722   __IO uint32_t  BODCTRL;                           /*!< Brown-Out Detect                                                      */
723   __IO uint32_t  SYSTCKCAL;                         /*!< System tick counter calibration                                       */
724   __IO uint32_t  AHBMATRIXPRIO;                     /*!< AHB matrix priority configuration                                     */
725   __I  uint32_t  RESERVED11[5];
726   __IO uint32_t  IRQLATENCY;                        /*!< IRQ delay. Allows trade-off between interrupt latency and determinism. */
727   __IO uint32_t  NMISRC;                            /*!< NMI Source Control                                                    */
728   union {
729   __IO uint32_t  PINTSEL[8];
730     struct {
731     __IO uint32_t  PINTSEL0;                        /*!< GPIO Pin Interrupt Select register 0                                  */
732     __IO uint32_t  PINTSEL1;                        /*!< GPIO Pin Interrupt Select register 0                                  */
733     __IO uint32_t  PINTSEL2;                        /*!< GPIO Pin Interrupt Select register 0                                  */
734     __IO uint32_t  PINTSEL3;                        /*!< GPIO Pin Interrupt Select register 0                                  */
735     __IO uint32_t  PINTSEL4;                        /*!< GPIO Pin Interrupt Select register 0                                  */
736     __IO uint32_t  PINTSEL5;                        /*!< GPIO Pin Interrupt Select register 0                                  */
737     __IO uint32_t  PINTSEL6;                        /*!< GPIO Pin Interrupt Select register 0                                  */
738     __IO uint32_t  PINTSEL7;                        /*!< GPIO Pin Interrupt Select register 0                                  */
739     };
740   };
741   __IO uint32_t  USBCLKCTRL;                        /*!< USB clock control                                                     */
742   __I  uint32_t  USBCLKST;                          /*!< USB clock status                                                      */
743   __I  uint32_t  RESERVED12[25];
744   __IO uint32_t  STARTERP0;                         /*!< Start logic 0 interrupt wake-up enable register 0                     */
745   __I  uint32_t  RESERVED13[3];
746   __IO uint32_t  STARTERP1;                         /*!< Start logic 1 interrupt wake-up enable register 1                     */
747   __I  uint32_t  RESERVED14[6];
748   __IO uint32_t  PDSLEEPCFG;                        /*!< Power-down states in deep-sleep mode                                  */
749   __IO uint32_t  PDAWAKECFG;                        /*!< Power-down states for wake-up from deep-sleep                         */
750   __IO uint32_t  PDRUNCFG;                          /*!< Power configuration register                                          */
751   __I  uint32_t  RESERVED15[110];
752   __I  uint32_t  DEVICE_ID;                         /*!< Device ID                                                             */
753 } LPC_SYSCON_Type;
754
755
756 /* ================================================================================ */
757 /* ================                     USART4                     ================ */
758 /* ================================================================================ */
759
760
761 /**
762   * @brief USART4  (USART4)
763   */
764
765 typedef struct {                                    /*!< USART4 Structure                                                      */
766   __IO uint32_t  CFG;                               /*!< USART Configuration register. Basic USART configuration settings
767                                                          that typically are not changed during operation.                      */
768   __IO uint32_t  CTL;                               /*!< USART Control register. USART control settings that are more
769                                                          likely to change during operation.                                    */
770   __IO uint32_t  STAT;                              /*!< USART Status register. The complete status value can be read
771                                                          here. Writing ones clears some bits in the register. Some bits
772                                                           can be cleared by writing a 1 to them.                               */
773   __IO uint32_t  INTENSET;                          /*!< Interrupt Enable read and Set register. Contains an individual
774                                                          interrupt enable bit for each potential USART interrupt. A complete
775                                                           value may be read from this register. Writing a 1 to any implemented
776                                                           bit position causes that bit to be set.                              */
777   __O  uint32_t  INTENCLR;                          /*!< Interrupt Enable Clear register. Allows clearing any combination
778                                                          of bits in the INTENSET register. Writing a 1 to any implemented
779                                                           bit position causes the corresponding bit to be cleared.             */
780   __I  uint32_t  RXDAT;                             /*!< Receiver Data register. Contains the last character received.         */
781   __I  uint32_t  RXDATSTAT;                         /*!< Receiver Data with Status register. Combines the last character
782                                                          received with the current USART receive status. Allows DMA or
783                                                           software to recover incoming data and status together.               */
784   __IO uint32_t  TXDAT;                             /*!< Transmit Data register. Data to be transmitted is written here.       */
785   __IO uint32_t  BRG;                               /*!< Baud Rate Generator register. 16-bit integer baud rate divisor
786                                                          value.                                                                */
787   __I  uint32_t  INTSTAT;                           /*!< Interrupt status register. Reflects interrupts that are currently
788                                                          enabled.                                                              */
789   __IO uint32_t  OSR;                               /*!< Oversample selection register for asynchronous communication.         */
790   __IO uint32_t  ADDR;                              /*!< Address register for automatic address matching.                      */
791 } LPC_USART4_Type;
792
793
794 /* ================================================================================ */
795 /* ================                      GINT0                     ================ */
796 /* ================================================================================ */
797
798
799 /**
800   * @brief GPIO group interrupt 0 (GINT0)
801   */
802
803 typedef struct {                                    /*!< GINT0 Structure                                                       */
804   __IO uint32_t  CTRL;                              /*!< GPIO grouped interrupt control register                               */
805   __I  uint32_t  RESERVED0[7];
806   __IO uint32_t  PORT_POL[3];                       /*!< GPIO grouped interrupt port 0 polarity register                       */
807   __I  uint32_t  RESERVED1[5];
808   __IO uint32_t  PORT_ENA[3];                       /*!< GPIO grouped interrupt port enable register                           */
809 } LPC_GINT0_Type;
810
811
812 /* ================================================================================ */
813 /* ================                       USB                      ================ */
814 /* ================================================================================ */
815
816
817 /**
818   * @brief USB device controller (USB)
819   */
820
821 typedef struct {                                    /*!< USB Structure                                                         */
822   __IO uint32_t  DEVCMDSTAT;                        /*!< USB Device Command/Status register                                    */
823   __IO uint32_t  INFO;                              /*!< USB Info register                                                     */
824   __IO uint32_t  EPLISTSTART;                       /*!< USB EP Command/Status List start address                              */
825   __IO uint32_t  DATABUFSTART;                      /*!< USB Data buffer start address                                         */
826   __IO uint32_t  LPM;                               /*!< Link Power Management register                                        */
827   __IO uint32_t  EPSKIP;                            /*!< USB Endpoint skip                                                     */
828   __IO uint32_t  EPINUSE;                           /*!< USB Endpoint Buffer in use                                            */
829   __IO uint32_t  EPBUFCFG;                          /*!< USB Endpoint Buffer Configuration register                            */
830   __IO uint32_t  INTSTAT;                           /*!< USB interrupt status register                                         */
831   __IO uint32_t  INTEN;                             /*!< USB interrupt enable register                                         */
832   __IO uint32_t  INTSETSTAT;                        /*!< USB set interrupt status register                                     */
833   __IO uint32_t  INTROUTING;                        /*!< USB interrupt routing register                                        */
834   __I  uint32_t  RESERVED0;
835   __I  uint32_t  EPTOGGLE;                          /*!< USB Endpoint toggle register                                          */
836 } LPC_USB_Type;
837
838
839 /* ================================================================================ */
840 /* ================                       CRC                      ================ */
841 /* ================================================================================ */
842
843
844 /**
845   * @brief Cyclic Redundancy Check (CRC) engine (CRC)
846   */
847
848 typedef struct {                                    /*!< CRC Structure                                                         */
849   __IO uint32_t  MODE;                              /*!< CRC mode register                                                     */
850   __IO uint32_t  SEED;                              /*!< CRC seed register                                                     */
851   
852   union {
853     __O  uint32_t  WR_DATA;                         /*!< CRC data register                                                     */
854     __I  uint32_t  SUM;                             /*!< CRC checksum register                                                 */
855   };
856 } LPC_CRC_Type;
857
858
859 /* ================================================================================ */
860 /* ================                       DMA                      ================ */
861 /* ================================================================================ */
862
863
864 /**
865   * @brief Product name title=Kylin UM Chapter title=KylinDMA controller Modification date=5/13/2013 Major revision=0 Minor revision=1  (DMA)
866   */
867
868 typedef struct {                                    /*!< DMA Structure                                                         */
869   __IO uint32_t  CTRL;                              /*!< DMA control.                                                          */
870   __I  uint32_t  INTSTAT;                           /*!< Interrupt status.                                                     */
871   __IO uint32_t  SRAMBASE;                          /*!< SRAM address of the channel configuration table.                      */
872   __I  uint32_t  RESERVED0[5];
873   __IO uint32_t  ENABLESET0;                        /*!< Channel Enable read and Set for all DMA channels.                     */
874   __I  uint32_t  RESERVED1;
875   __O  uint32_t  ENABLECLR0;                        /*!< Channel Enable Clear for all DMA channels.                            */
876   __I  uint32_t  RESERVED2;
877   __I  uint32_t  ACTIVE0;                           /*!< Channel Active status for all DMA channels.                           */
878   __I  uint32_t  RESERVED3;
879   __I  uint32_t  BUSY0;                             /*!< Channel Busy status for all DMA channels.                             */
880   __I  uint32_t  RESERVED4;
881   __IO uint32_t  ERRINT0;                           /*!< Error Interrupt status for all DMA channels.                          */
882   __I  uint32_t  RESERVED5;
883   __IO uint32_t  INTENSET0;                         /*!< Interrupt Enable read and Set for all DMA channels.                   */
884   __I  uint32_t  RESERVED6;
885   __O  uint32_t  INTENCLR0;                         /*!< Interrupt Enable Clear for all DMA channels.                          */
886   __I  uint32_t  RESERVED7;
887   __IO uint32_t  INTA0;                             /*!< Interrupt A status for all DMA channels.                              */
888   __I  uint32_t  RESERVED8;
889   __IO uint32_t  INTB0;                             /*!< Interrupt B status for all DMA channels.                              */
890   __I  uint32_t  RESERVED9;
891   __O  uint32_t  SETVALID0;                         /*!< Set ValidPending control bits for all DMA channels.                   */
892   __I  uint32_t  RESERVED10;
893   __O  uint32_t  SETTRIG0;                          /*!< Set Trigger control bits for all DMA channels.                        */
894   __I  uint32_t  RESERVED11;
895   __O  uint32_t  ABORT0;                            /*!< Channel Abort control for all DMA channels.                           */
896   __I  uint32_t  RESERVED12[225];
897   __IO uint32_t  CFG0;                              /*!< Configuration register for DMA channel 0.                             */
898   __I  uint32_t  CTLSTAT0;                          /*!< Control and status register for DMA channel 0.                        */
899   __IO uint32_t  XFERCFG0;                          /*!< Transfer configuration register for DMA channel 0.                    */
900   __I  uint32_t  RESERVED13;
901   __IO uint32_t  CFG1;                              /*!< Configuration register for DMA channel 0.                             */
902   __I  uint32_t  CTLSTAT1;                          /*!< Control and status register for DMA channel 0.                        */
903   __IO uint32_t  XFERCFG1;                          /*!< Transfer configuration register for DMA channel 0.                    */
904   __I  uint32_t  RESERVED14;
905   __IO uint32_t  CFG2;                              /*!< Configuration register for DMA channel 0.                             */
906   __I  uint32_t  CTLSTAT2;                          /*!< Control and status register for DMA channel 0.                        */
907   __IO uint32_t  XFERCFG2;                          /*!< Transfer configuration register for DMA channel 0.                    */
908   __I  uint32_t  RESERVED15;
909   __IO uint32_t  CFG3;                              /*!< Configuration register for DMA channel 0.                             */
910   __I  uint32_t  CTLSTAT3;                          /*!< Control and status register for DMA channel 0.                        */
911   __IO uint32_t  XFERCFG3;                          /*!< Transfer configuration register for DMA channel 0.                    */
912   __I  uint32_t  RESERVED16;
913   __IO uint32_t  CFG4;                              /*!< Configuration register for DMA channel 0.                             */
914   __I  uint32_t  CTLSTAT4;                          /*!< Control and status register for DMA channel 0.                        */
915   __IO uint32_t  XFERCFG4;                          /*!< Transfer configuration register for DMA channel 0.                    */
916   __I  uint32_t  RESERVED17;
917   __IO uint32_t  CFG5;                              /*!< Configuration register for DMA channel 0.                             */
918   __I  uint32_t  CTLSTAT5;                          /*!< Control and status register for DMA channel 0.                        */
919   __IO uint32_t  XFERCFG5;                          /*!< Transfer configuration register for DMA channel 0.                    */
920   __I  uint32_t  RESERVED18;
921   __IO uint32_t  CFG6;                              /*!< Configuration register for DMA channel 0.                             */
922   __I  uint32_t  CTLSTAT6;                          /*!< Control and status register for DMA channel 0.                        */
923   __IO uint32_t  XFERCFG6;                          /*!< Transfer configuration register for DMA channel 0.                    */
924   __I  uint32_t  RESERVED19;
925   __IO uint32_t  CFG7;                              /*!< Configuration register for DMA channel 0.                             */
926   __I  uint32_t  CTLSTAT7;                          /*!< Control and status register for DMA channel 0.                        */
927   __IO uint32_t  XFERCFG7;                          /*!< Transfer configuration register for DMA channel 0.                    */
928   __I  uint32_t  RESERVED20;
929   __IO uint32_t  CFG8;                              /*!< Configuration register for DMA channel 0.                             */
930   __I  uint32_t  CTLSTAT8;                          /*!< Control and status register for DMA channel 0.                        */
931   __IO uint32_t  XFERCFG8;                          /*!< Transfer configuration register for DMA channel 0.                    */
932   __I  uint32_t  RESERVED21;
933   __IO uint32_t  CFG9;                              /*!< Configuration register for DMA channel 0.                             */
934   __I  uint32_t  CTLSTAT9;                          /*!< Control and status register for DMA channel 0.                        */
935   __IO uint32_t  XFERCFG9;                          /*!< Transfer configuration register for DMA channel 0.                    */
936   __I  uint32_t  RESERVED22;
937   __IO uint32_t  CFG10;                             /*!< Configuration register for DMA channel 0.                             */
938   __I  uint32_t  CTLSTAT10;                         /*!< Control and status register for DMA channel 0.                        */
939   __IO uint32_t  XFERCFG10;                         /*!< Transfer configuration register for DMA channel 0.                    */
940   __I  uint32_t  RESERVED23;
941   __IO uint32_t  CFG11;                             /*!< Configuration register for DMA channel 0.                             */
942   __I  uint32_t  CTLSTAT11;                         /*!< Control and status register for DMA channel 0.                        */
943   __IO uint32_t  XFERCFG11;                         /*!< Transfer configuration register for DMA channel 0.                    */
944   __I  uint32_t  RESERVED24;
945   __IO uint32_t  CFG12;                             /*!< Configuration register for DMA channel 0.                             */
946   __I  uint32_t  CTLSTAT12;                         /*!< Control and status register for DMA channel 0.                        */
947   __IO uint32_t  XFERCFG12;                         /*!< Transfer configuration register for DMA channel 0.                    */
948   __I  uint32_t  RESERVED25;
949   __IO uint32_t  CFG13;                             /*!< Configuration register for DMA channel 0.                             */
950   __I  uint32_t  CTLSTAT13;                         /*!< Control and status register for DMA channel 0.                        */
951   __IO uint32_t  XFERCFG13;                         /*!< Transfer configuration register for DMA channel 0.                    */
952   __I  uint32_t  RESERVED26;
953   __IO uint32_t  CFG14;                             /*!< Configuration register for DMA channel 0.                             */
954   __I  uint32_t  CTLSTAT14;                         /*!< Control and status register for DMA channel 0.                        */
955   __IO uint32_t  XFERCFG14;                         /*!< Transfer configuration register for DMA channel 0.                    */
956   __I  uint32_t  RESERVED27;
957   __IO uint32_t  CFG15;                             /*!< Configuration register for DMA channel 0.                             */
958   __I  uint32_t  CTLSTAT15;                         /*!< Control and status register for DMA channel 0.                        */
959   __IO uint32_t  XFERCFG15;                         /*!< Transfer configuration register for DMA channel 0.                    */
960 } LPC_DMA_Type;
961
962
963 /* ================================================================================ */
964 /* ================                      SCT0                      ================ */
965 /* ================================================================================ */
966
967
968 /**
969   * @brief Product name title=Kylin UM Chapter title=KylinState Configurable Timers (SCT0/1) Modification date=5/14/2013 Major revision=0 Minor revision=1  (SCT0)
970   */
971
972 typedef struct {                                    /*!< SCT0 Structure                                                        */
973   __IO uint32_t  CONFIG;                            /*!< SCT configuration register                                            */
974   __IO uint32_t  CTRL;                              /*!< SCT control register                                                  */
975   __IO uint32_t  LIMIT;                             /*!< SCT limit register                                                    */
976   __IO uint32_t  HALT;                              /*!< SCT halt condition register                                           */
977   __IO uint32_t  STOP;                              /*!< SCT stop condition register                                           */
978   __IO uint32_t  START;                             /*!< SCT start condition register                                          */
979   __I  uint32_t  RESERVED0[10];
980   __IO uint32_t  COUNT;                             /*!< SCT counter register                                                  */
981   __IO uint32_t  STATE;                             /*!< SCT state register                                                    */
982   __I  uint32_t  INPUT;                             /*!< SCT input register                                                    */
983   __IO uint32_t  REGMODE;                           /*!< SCT match/capture registers mode register                             */
984   __IO uint32_t  OUTPUT;                            /*!< SCT output register                                                   */
985   __IO uint32_t  OUTPUTDIRCTRL;                     /*!< SCT output counter direction control register                         */
986   __IO uint32_t  RES;                               /*!< SCT conflict resolution register                                      */
987   __IO uint32_t  DMAREQ0;                           /*!< SCT DMA request 0 register                                            */
988   __IO uint32_t  DMAREQ1;                           /*!< SCT DMA request 1 register                                            */
989   __I  uint32_t  RESERVED1[35];
990   __IO uint32_t  EVEN;                              /*!< SCT event enable register                                             */
991   __IO uint32_t  EVFLAG;                            /*!< SCT event flag register                                               */
992   __IO uint32_t  CONEN;                             /*!< SCT conflict enable register                                          */
993   __IO uint32_t  CONFLAG;                           /*!< SCT conflict flag register                                            */
994   
995   union {
996     __IO uint32_t  CAP0;                            /*!< SCT capture register of capture channel 0 to 4; REGMOD0 to REGMODE4
997                                                          = 1                                                                   */
998     __IO uint32_t  MATCH0;                          /*!< SCT match value register of match channels 0 to 4; REGMOD0 to
999                                                          REGMODE4 = 0                                                          */
1000   };
1001   
1002   union {
1003     __IO uint32_t  CAP1;                            /*!< SCT capture register of capture channel 0 to 4; REGMOD0 to REGMODE4
1004                                                          = 1                                                                   */
1005     __IO uint32_t  MATCH1;                          /*!< SCT match value register of match channels 0 to 4; REGMOD0 to
1006                                                          REGMODE4 = 0                                                          */
1007   };
1008   
1009   union {
1010     __IO uint32_t  MATCH2;                          /*!< SCT match value register of match channels 0 to 4; REGMOD0 to
1011                                                          REGMODE4 = 0                                                          */
1012     __IO uint32_t  CAP2;                            /*!< SCT capture register of capture channel 0 to 4; REGMOD0 to REGMODE4
1013                                                          = 1                                                                   */
1014   };
1015   
1016   union {
1017     __IO uint32_t  CAP3;                            /*!< SCT capture register of capture channel 0 to 4; REGMOD0 to REGMODE4
1018                                                          = 1                                                                   */
1019     __IO uint32_t  MATCH3;                          /*!< SCT match value register of match channels 0 to 4; REGMOD0 to
1020                                                          REGMODE4 = 0                                                          */
1021   };
1022   
1023   union {
1024     __IO uint32_t  CAP4;                            /*!< SCT capture register of capture channel 0 to 4; REGMOD0 to REGMODE4
1025                                                          = 1                                                                   */
1026     __IO uint32_t  MATCH4;                          /*!< SCT match value register of match channels 0 to 4; REGMOD0 to
1027                                                          REGMODE4 = 0                                                          */
1028   };
1029   __I  uint32_t  RESERVED2[59];
1030   
1031   union {
1032     __IO uint32_t  CAPCTRL0;                        /*!< SCT capture control register 0 to 4; REGMOD0 = 1 to REGMODE4
1033                                                          = 1                                                                   */
1034     __IO uint32_t  MATCHREL0;                       /*!< SCT match reload value register 0 to 4; REGMOD0 = 0 to REGMODE4
1035                                                          = 0                                                                   */
1036   };
1037   
1038   union {
1039     __IO uint32_t  MATCHREL1;                       /*!< SCT match reload value register 0 to 4; REGMOD0 = 0 to REGMODE4
1040                                                          = 0                                                                   */
1041     __IO uint32_t  CAPCTRL1;                        /*!< SCT capture control register 0 to 4; REGMOD0 = 1 to REGMODE4
1042                                                          = 1                                                                   */
1043   };
1044   
1045   union {
1046     __IO uint32_t  MATCHREL2;                       /*!< SCT match reload value register 0 to 4; REGMOD0 = 0 to REGMODE4
1047                                                          = 0                                                                   */
1048     __IO uint32_t  CAPCTRL2;                        /*!< SCT capture control register 0 to 4; REGMOD0 = 1 to REGMODE4
1049                                                          = 1                                                                   */
1050   };
1051   
1052   union {
1053     __IO uint32_t  CAPCTRL3;                        /*!< SCT capture control register 0 to 4; REGMOD0 = 1 to REGMODE4
1054                                                          = 1                                                                   */
1055     __IO uint32_t  MATCHREL3;                       /*!< SCT match reload value register 0 to 4; REGMOD0 = 0 to REGMODE4
1056                                                          = 0                                                                   */
1057   };
1058   
1059   union {
1060     __IO uint32_t  CAPCTRL4;                        /*!< SCT capture control register 0 to 4; REGMOD0 = 1 to REGMODE4
1061                                                          = 1                                                                   */
1062     __IO uint32_t  MATCHREL4;                       /*!< SCT match reload value register 0 to 4; REGMOD0 = 0 to REGMODE4
1063                                                          = 0                                                                   */
1064   };
1065   __I  uint32_t  RESERVED3[59];
1066   __IO uint32_t  EV0_STATE;                         /*!< SCT event state register 0                                            */
1067   __IO uint32_t  EV0_CTRL;                          /*!< SCT event control register 0                                          */
1068   __IO uint32_t  EV1_STATE;                         /*!< SCT event state register 0                                            */
1069   __IO uint32_t  EV1_CTRL;                          /*!< SCT event control register 0                                          */
1070   __IO uint32_t  EV2_STATE;                         /*!< SCT event state register 0                                            */
1071   __IO uint32_t  EV2_CTRL;                          /*!< SCT event control register 0                                          */
1072   __IO uint32_t  EV3_STATE;                         /*!< SCT event state register 0                                            */
1073   __IO uint32_t  EV3_CTRL;                          /*!< SCT event control register 0                                          */
1074   __IO uint32_t  EV4_STATE;                         /*!< SCT event state register 0                                            */
1075   __IO uint32_t  EV4_CTRL;                          /*!< SCT event control register 0                                          */
1076   __IO uint32_t  EV5_STATE;                         /*!< SCT event state register 0                                            */
1077   __IO uint32_t  EV5_CTRL;                          /*!< SCT event control register 0                                          */
1078   __I  uint32_t  RESERVED4[116];
1079   __IO uint32_t  OUT0_SET;                          /*!< SCT output 0 set register                                             */
1080   __IO uint32_t  OUT0_CLR;                          /*!< SCT output 0 clear register                                           */
1081   __IO uint32_t  OUT1_SET;                          /*!< SCT output 0 set register                                             */
1082   __IO uint32_t  OUT1_CLR;                          /*!< SCT output 0 clear register                                           */
1083   __IO uint32_t  OUT2_SET;                          /*!< SCT output 0 set register                                             */
1084   __IO uint32_t  OUT2_CLR;                          /*!< SCT output 0 clear register                                           */
1085   __IO uint32_t  OUT3_SET;                          /*!< SCT output 0 set register                                             */
1086   __IO uint32_t  OUT3_CLR;                          /*!< SCT output 0 clear register                                           */
1087 } LPC_SCT0_Type;
1088
1089
1090 /* ================================================================================ */
1091 /* ================                    GPIO_PORT                   ================ */
1092 /* ================================================================================ */
1093
1094
1095 /**
1096   * @brief General Purpose I/O (GPIO)  (GPIO_PORT)
1097   */
1098
1099 typedef struct {                                    /*!< GPIO_PORT Structure                                                   */
1100   __IO uint8_t   B[88];                             /*!< Byte pin registers                                                    */
1101   __I  uint32_t  RESERVED0[42];
1102   __IO uint32_t  W[88];                             /*!< Word pin registers                                                    */
1103   __I  uint32_t  RESERVED1[1896];
1104   __IO uint32_t  DIR[3];                            /*!< Port Direction registers                                              */
1105   __I  uint32_t  RESERVED2[29];
1106   __IO uint32_t  MASK[3];                           /*!< Port Mask register                                                    */
1107   __I  uint32_t  RESERVED3[29];
1108   __IO uint32_t  PIN[3];                            /*!< Port pin register                                                     */
1109   __I  uint32_t  RESERVED4[29];
1110   __IO uint32_t  MPIN[3];                           /*!< Masked port register                                                  */
1111   __I  uint32_t  RESERVED5[29];
1112   __IO uint32_t  SET[3];                            /*!< Write: Set port register Read: port output bits                       */
1113   __I  uint32_t  RESERVED6[29];
1114   __O  uint32_t  CLR[3];                            /*!< Clear port                                                            */
1115   __I  uint32_t  RESERVED7[29];
1116   __O  uint32_t  NOT[3];                            /*!< Toggle port                                                           */
1117 } LPC_GPIO_PORT_Type;
1118
1119
1120 /* ================================================================================ */
1121 /* ================                      PINT                      ================ */
1122 /* ================================================================================ */
1123
1124
1125 /**
1126   * @brief Pin interruptand pattern match (PINT)  (PINT)
1127   */
1128
1129 typedef struct {                                    /*!< PINT Structure                                                        */
1130   __IO uint32_t  ISEL;                              /*!< Pin Interrupt Mode register                                           */
1131   __IO uint32_t  IENR;                              /*!< Pin interrupt level or rising edge interrupt enable register          */
1132   __O  uint32_t  SIENR;                             /*!< Pin interrupt level or rising edge interrupt set register             */
1133   __O  uint32_t  CIENR;                             /*!< Pin interrupt level (rising edge interrupt) clear register            */
1134   __IO uint32_t  IENF;                              /*!< Pin interrupt active level or falling edge interrupt enable
1135                                                          register                                                              */
1136   __O  uint32_t  SIENF;                             /*!< Pin interrupt active level or falling edge interrupt set register     */
1137   __O  uint32_t  CIENF;                             /*!< Pin interrupt active level or falling edge interrupt clear register   */
1138   __IO uint32_t  RISE;                              /*!< Pin interrupt rising edge register                                    */
1139   __IO uint32_t  FALL;                              /*!< Pin interrupt falling edge register                                   */
1140   __IO uint32_t  IST;                               /*!< Pin interrupt status register                                         */
1141   __IO uint32_t  PMCTRL;                            /*!< Pattern match interrupt control register                              */
1142   __IO uint32_t  PMSRC;                             /*!< Pattern match interrupt bit-slice source register                     */
1143   __IO uint32_t  PMCFG;                             /*!< Pattern match interrupt bit slice configuration register              */
1144 } LPC_PINT_Type;
1145
1146
1147 /* --------------------  End of section using anonymous unions  ------------------- */
1148 #if defined(__CC_ARM)
1149   #pragma pop
1150 #elif defined(__ICCARM__)
1151   /* leave anonymous unions enabled */
1152 #elif defined(__GNUC__)
1153   /* anonymous unions are enabled by default */
1154 #elif defined(__TMS470__)
1155   /* anonymous unions are enabled by default */
1156 #elif defined(__TASKING__)
1157   #pragma warning restore
1158 #else
1159   #warning Not supported compiler type
1160 #endif
1161
1162
1163
1164
1165 /* ================================================================================ */
1166 /* ================              Peripheral memory map             ================ */
1167 /* ================================================================================ */
1168
1169 #define LPC_I2C0_BASE                   0x40000000UL
1170 #define LPC_WWDT_BASE                   0x40004000UL
1171 #define LPC_USART0_BASE                 0x40008000UL
1172 #define LPC_CT16B0_BASE                 0x4000C000UL
1173 #define LPC_CT16B1_BASE                 0x40010000UL
1174 #define LPC_CT32B0_BASE                 0x40014000UL
1175 #define LPC_CT32B1_BASE                 0x40018000UL
1176 #define LPC_ADC_BASE                    0x4001C000UL
1177 #define LPC_I2C1_BASE                   0x40020000UL
1178 #define LPC_RTC_BASE                    0x40024000UL
1179 #define LPC_DMATRIGMUX_BASE             0x40028000UL
1180 #define LPC_PMU_BASE                    0x40038000UL
1181 #define LPC_FLASHCTRL_BASE              0x4003C000UL
1182 #define LPC_SSP0_BASE                   0x40040000UL
1183 #define LPC_IOCON_BASE                  0x40044000UL
1184 #define LPC_SYSCON_BASE                 0x40048000UL
1185 #define LPC_USART4_BASE                 0x4004C000UL
1186 #define LPC_SSP1_BASE                   0x40058000UL
1187 #define LPC_GINT0_BASE                  0x4005C000UL
1188 #define LPC_GINT1_BASE                  0x40060000UL
1189 #define LPC_USART1_BASE                 0x4006C000UL
1190 #define LPC_USART2_BASE                 0x40070000UL
1191 #define LPC_USART3_BASE                 0x40074000UL
1192 #define LPC_USB_BASE                    0x40080000UL
1193 #define LPC_CRC_BASE                    0x50000000UL
1194 #define LPC_DMA_BASE                    0x50004000UL
1195 #define LPC_SCT0_BASE                   0x5000C000UL
1196 #define LPC_SCT1_BASE                   0x5000E000UL
1197 #define LPC_GPIO_PORT_BASE              0xA0000000UL
1198 #define LPC_PINT_BASE                   0xA0004000UL
1199
1200
1201 /* ================================================================================ */
1202 /* ================             Peripheral declaration             ================ */
1203 /* ================================================================================ */
1204
1205 #define LPC_I2C0                        ((LPC_I2C0_Type           *) LPC_I2C0_BASE)
1206 #define LPC_WWDT                        ((LPC_WWDT_Type           *) LPC_WWDT_BASE)
1207 #define LPC_USART0                      ((LPC_USART0_Type         *) LPC_USART0_BASE)
1208 #define LPC_CT16B0                      ((LPC_CT16B0_Type         *) LPC_CT16B0_BASE)
1209 #define LPC_CT16B1                      ((LPC_CT16B0_Type         *) LPC_CT16B1_BASE)
1210 #define LPC_CT32B0                      ((LPC_CT32B0_Type         *) LPC_CT32B0_BASE)
1211 #define LPC_CT32B1                      ((LPC_CT32B0_Type         *) LPC_CT32B1_BASE)
1212 #define LPC_ADC                         ((LPC_ADC_Type            *) LPC_ADC_BASE)
1213 #define LPC_I2C1                        ((LPC_I2C0_Type           *) LPC_I2C1_BASE)
1214 #define LPC_RTC                         ((LPC_RTC_Type            *) LPC_RTC_BASE)
1215 #define LPC_DMATRIGMUX                  ((LPC_DMATRIGMUX_Type     *) LPC_DMATRIGMUX_BASE)
1216 #define LPC_PMU                         ((LPC_PMU_Type            *) LPC_PMU_BASE)
1217 #define LPC_FLASHCTRL                   ((LPC_FLASHCTRL_Type      *) LPC_FLASHCTRL_BASE)
1218 #define LPC_SSP0                        ((LPC_SSP0_Type           *) LPC_SSP0_BASE)
1219 #define LPC_IOCON                       ((LPC_IOCON_Type          *) LPC_IOCON_BASE)
1220 #define LPC_SYSCON                      ((LPC_SYSCON_Type         *) LPC_SYSCON_BASE)
1221 #define LPC_USART4                      ((LPC_USART4_Type         *) LPC_USART4_BASE)
1222 #define LPC_SSP1                        ((LPC_SSP0_Type           *) LPC_SSP1_BASE)
1223 #define LPC_GINT0                       ((LPC_GINT0_Type          *) LPC_GINT0_BASE)
1224 #define LPC_GINT1                       ((LPC_GINT0_Type          *) LPC_GINT1_BASE)
1225 #define LPC_USART1                      ((LPC_USART4_Type         *) LPC_USART1_BASE)
1226 #define LPC_USART2                      ((LPC_USART4_Type         *) LPC_USART2_BASE)
1227 #define LPC_USART3                      ((LPC_USART4_Type         *) LPC_USART3_BASE)
1228 #define LPC_USB                         ((LPC_USB_Type            *) LPC_USB_BASE)
1229 #define LPC_CRC                         ((LPC_CRC_Type            *) LPC_CRC_BASE)
1230 #define LPC_DMA                         ((LPC_DMA_Type            *) LPC_DMA_BASE)
1231 #define LPC_SCT0                        ((LPC_SCT0_Type           *) LPC_SCT0_BASE)
1232 #define LPC_SCT1                        ((LPC_SCT0_Type           *) LPC_SCT1_BASE)
1233 #define LPC_GPIO_PORT                   ((LPC_GPIO_PORT_Type      *) LPC_GPIO_PORT_BASE)
1234 #define LPC_PINT                        ((LPC_PINT_Type           *) LPC_PINT_BASE)
1235
1236
1237 /** @} */ /* End of group Device_Peripheral_Registers */
1238 /** @} */ /* End of group LPC11U6x */
1239 /** @} */ /* End of group (null) */
1240
1241 #ifdef __cplusplus
1242 }
1243 #endif
1244
1245
1246 #endif  /* LPC11U6x_H */
1247