lpc2292_registers.h 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. #ifndef __LPC2292_REGISTERS_H
  2. #define __LPC2292_REGISTERS_H
  3. #include <config.h>
  4. /* Macros for reading/writing registers */
  5. #define PUT8(reg, value) (*(volatile unsigned char*)(reg) = (value))
  6. #define PUT16(reg, value) (*(volatile unsigned short*)(reg) = (value))
  7. #define PUT32(reg, value) (*(volatile unsigned int*)(reg) = (value))
  8. #define GET8(reg) (*(volatile unsigned char*)(reg))
  9. #define GET16(reg) (*(volatile unsigned short*)(reg))
  10. #define GET32(reg) (*(volatile unsigned int*)(reg))
  11. /* External Memory Controller */
  12. #define BCFG0 0xFFE00000 /* 32-bits */
  13. #define BCFG1 0xFFE00004 /* 32-bits */
  14. #define BCFG2 0xFFE00008 /* 32-bits */
  15. #define BCFG3 0xFFE0000c /* 32-bits */
  16. /* System Control Block */
  17. #define EXTINT 0xE01FC140
  18. #define EXTWAKE 0xE01FC144
  19. #define EXTMODE 0xE01FC148
  20. #define EXTPOLAR 0xE01FC14C
  21. #define MEMMAP 0xE01FC040
  22. #define PLLCON 0xE01FC080
  23. #define PLLCFG 0xE01FC084
  24. #define PLLSTAT 0xE01FC088
  25. #define PLLFEED 0xE01FC08C
  26. #define PCON 0xE01FC0C0
  27. #define PCONP 0xE01FC0C4
  28. #define VPBDIV 0xE01FC100
  29. /* Memory Acceleration Module */
  30. #define MAMCR 0xE01FC000
  31. #define MAMTIM 0xE01FC004
  32. /* Vectored Interrupt Controller */
  33. #define VICIRQStatus 0xFFFFF000
  34. #define VICFIQStatus 0xFFFFF004
  35. #define VICRawIntr 0xFFFFF008
  36. #define VICIntSelect 0xFFFFF00C
  37. #define VICIntEnable 0xFFFFF010
  38. #define VICIntEnClr 0xFFFFF014
  39. #define VICSoftInt 0xFFFFF018
  40. #define VICSoftIntClear 0xFFFFF01C
  41. #define VICProtection 0xFFFFF020
  42. #define VICVectAddr 0xFFFFF030
  43. #define VICDefVectAddr 0xFFFFF034
  44. #define VICVectAddr0 0xFFFFF100
  45. #define VICVectAddr1 0xFFFFF104
  46. #define VICVectAddr2 0xFFFFF108
  47. #define VICVectAddr3 0xFFFFF10C
  48. #define VICVectAddr4 0xFFFFF110
  49. #define VICVectAddr5 0xFFFFF114
  50. #define VICVectAddr6 0xFFFFF118
  51. #define VICVectAddr7 0xFFFFF11C
  52. #define VICVectAddr8 0xFFFFF120
  53. #define VICVectAddr9 0xFFFFF124
  54. #define VICVectAddr10 0xFFFFF128
  55. #define VICVectAddr11 0xFFFFF12C
  56. #define VICVectAddr12 0xFFFFF130
  57. #define VICVectAddr13 0xFFFFF134
  58. #define VICVectAddr14 0xFFFFF138
  59. #define VICVectAddr15 0xFFFFF13C
  60. #define VICVectCntl0 0xFFFFF200
  61. #define VICVectCntl1 0xFFFFF204
  62. #define VICVectCntl2 0xFFFFF208
  63. #define VICVectCntl3 0xFFFFF20C
  64. #define VICVectCntl4 0xFFFFF210
  65. #define VICVectCntl5 0xFFFFF214
  66. #define VICVectCntl6 0xFFFFF218
  67. #define VICVectCntl7 0xFFFFF21C
  68. #define VICVectCntl8 0xFFFFF220
  69. #define VICVectCntl9 0xFFFFF224
  70. #define VICVectCntl10 0xFFFFF228
  71. #define VICVectCntl11 0xFFFFF22C
  72. #define VICVectCntl12 0xFFFFF230
  73. #define VICVectCntl13 0xFFFFF234
  74. #define VICVectCntl14 0xFFFFF238
  75. #define VICVectCntl15 0xFFFFF23C
  76. /* Pin connect block */
  77. #define PINSEL0 0xE002C000 /* 32 bits */
  78. #define PINSEL1 0xE002C004 /* 32 bits */
  79. #define PINSEL2 0xE002C014 /* 32 bits */
  80. /* GPIO */
  81. #define IO0PIN 0xE0028000
  82. #define IO0SET 0xE0028004
  83. #define IO0DIR 0xE0028008
  84. #define IO0CLR 0xE002800C
  85. #define IO1PIN 0xE0028010
  86. #define IO1SET 0xE0028014
  87. #define IO1DIR 0xE0028018
  88. #define IO1CLR 0xE002801C
  89. #define IO2PIN 0xE0028020
  90. #define IO2SET 0xE0028024
  91. #define IO2DIR 0xE0028028
  92. #define IO2CLR 0xE002802C
  93. #define IO3PIN 0xE0028030
  94. #define IO3SET 0xE0028034
  95. #define IO3DIR 0xE0028038
  96. #define IO3CLR 0xE002803C
  97. /* Uarts */
  98. #define U0RBR 0xE000C000
  99. #define U0THR 0xE000C000
  100. #define U0IER 0xE000C004
  101. #define U0IIR 0xE000C008
  102. #define U0FCR 0xE000C008
  103. #define U0LCR 0xE000C00C
  104. #define U0LSR 0xE000C014
  105. #define U0SCR 0xE000C01C
  106. #define U0DLL 0xE000C000
  107. #define U0DLM 0xE000C004
  108. #define U1RBR 0xE0010000
  109. #define U1THR 0xE0010000
  110. #define U1IER 0xE0010004
  111. #define U1IIR 0xE0010008
  112. #define U1FCR 0xE0010008
  113. #define U1LCR 0xE001000C
  114. #define U1MCR 0xE0010010
  115. #define U1LSR 0xE0010014
  116. #define U1MSR 0xE0010018
  117. #define U1SCR 0xE001001C
  118. #define U1DLL 0xE0010000
  119. #define U1DLM 0xE0010004
  120. /* I2C */
  121. #define I2CONSET 0xE001C000
  122. #define I2STAT 0xE001C004
  123. #define I2DAT 0xE001C008
  124. #define I2ADR 0xE001C00C
  125. #define I2SCLH 0xE001C010
  126. #define I2SCLL 0xE001C014
  127. #define I2CONCLR 0xE001C018
  128. /* SPI */
  129. #define S0SPCR 0xE0020000
  130. #define S0SPSR 0xE0020004
  131. #define S0SPDR 0xE0020008
  132. #define S0SPCCR 0xE002000C
  133. #define S0SPINT 0xE002001C
  134. #define S1SPCR 0xE0030000
  135. #define S1SPSR 0xE0030004
  136. #define S1SPDR 0xE0030008
  137. #define S1SPCCR 0xE003000C
  138. #define S1SPINT 0xE003001C
  139. /* CAN controller */
  140. /* skip for now */
  141. /* Timers */
  142. #define T0IR 0xE0004000
  143. #define T0TCR 0xE0004004
  144. #define T0TC 0xE0004008
  145. #define T0PR 0xE000400C
  146. #define T0PC 0xE0004010
  147. #define T0MCR 0xE0004014
  148. #define T0MR0 0xE0004018
  149. #define T0MR1 0xE000401C
  150. #define T0MR2 0xE0004020
  151. #define T0MR3 0xE0004024
  152. #define T0CCR 0xE0004028
  153. #define T0CR0 0xE000402C
  154. #define T0CR1 0xE0004030
  155. #define T0CR2 0xE0004034
  156. #define T0CR3 0xE0004038
  157. #define T0EMR 0xE000403C
  158. #define T1IR 0xE0008000
  159. #define T1TCR 0xE0008004
  160. #define T1TC 0xE0008008
  161. #define T1PR 0xE000800C
  162. #define T1PC 0xE0008010
  163. #define T1MCR 0xE0008014
  164. #define T1MR0 0xE0008018
  165. #define T1MR1 0xE000801C
  166. #define T1MR2 0xE0008020
  167. #define T1MR3 0xE0008024
  168. #define T1CCR 0xE0008028
  169. #define T1CR0 0xE000802C
  170. #define T1CR1 0xE0008030
  171. #define T1CR2 0xE0008034
  172. #define T1CR3 0xE0008038
  173. #define T1EMR 0xE000803C
  174. /* PWM */
  175. /* skip for now */
  176. /* A/D converter */
  177. /* skip for now */
  178. /* Real Time Clock */
  179. /* skip for now */
  180. /* Watchdog */
  181. #define WDMOD 0xE0000000
  182. #define WDTC 0xE0000004
  183. #define WDFEED 0xE0000008
  184. #define WDTV 0xE000000C
  185. /* EmbeddedICE LOGIC */
  186. /* skip for now */
  187. #endif