hw_regs.h 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. /* hw_regs.h */
  2. /*
  3. This file is part of the ARM-Crypto-Lib.
  4. Copyright (C) 2010 Daniel Otte (daniel.otte@rub.de)
  5. This program is free software: you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation, either version 3 of the License, or
  8. (at your option) any later version.
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #ifndef HW_REGS_H_
  17. #define HW_REGS_H_
  18. #include <stdint.h>
  19. #define SET_REG(r,v) (*((volatile uint32_t*)(r))) = (v)
  20. #define GET_REG(r) (*((volatile uint32_t*)(r)))
  21. #define HW_REG(r) (*((volatile uint32_t*)(r)))
  22. #define HW16_REG(r) (*((volatile uint16_t*)(r)))
  23. #define HW8_REG(r) (*((volatile uint8_t*)(r)))
  24. #define _BV(x) (1UL<<(x))
  25. #define SYSCTL_BASE 0x400FE000
  26. #define DID0_OFFSET 0x000
  27. #define DID1_OFFSET 0x004
  28. #define DC0_OFFSET 0x008
  29. #define DC1_OFFSET 0x010
  30. #define DC2_OFFSET 0x014
  31. #define DC3_OFFSET 0x018
  32. #define DC4_OFFSET 0x01C
  33. #define DC5_OFFSET 0x020
  34. #define DC6_OFFSET 0x024
  35. #define DC7_OFFSET 0x028
  36. #define DC8_OFFSET 0x02C
  37. #define PBORCTL_OFFSET 0x030
  38. #define SRCR0_OFFSET 0x040
  39. #define SRCR1_OFFSET 0x044
  40. #define SRCR2_OFFSET 0x048
  41. #define RIS_OFFSET 0x050
  42. #define IMC_OFFSET 0x054
  43. #define MISC_OFFSET 0x058
  44. #define RESC_OFFSET 0x05C
  45. #define RCC_OFFSET 0x060
  46. #define PLLCFG_OFFSET 0x064
  47. #define GPIOHBCTL_OFFSET 0x06C
  48. #define RCC2_OFFSET 0x070
  49. #define MOSCCTL_OFFSET 0x07C
  50. #define RCGC0_OFFSET 0x100
  51. #define RCGC1_OFFSET 0x104
  52. #define RCGC2_OFFSET 0x108
  53. #define SCGC0_OFFSET 0x110
  54. #define SCGC1_OFFSET 0x114
  55. #define SCGC2_OFFSET 0x118
  56. #define DCGC0_OFFSET 0x120
  57. #define DCGC1_OFFSET 0x124
  58. #define DCGC2_OFFSET 0x128
  59. #define DSLPCLKCFG_OFFSET 0x144
  60. #define PIOSCCAL_OFFSET 0x150
  61. #define PIOSCSTAT_OFFSET 0x154
  62. #define I2SMCLKCFG_OFFSET 0x170
  63. #define DC9_OFFSET 0x190
  64. #define NVMSTAT_OFFSET 0x1A0
  65. #define RCC_ACG 27
  66. #define RCC_SYSDIV 23
  67. #define RCC_USESYSDIV 22
  68. #define RCC_PWRDN 13
  69. #define RCC_BYPASS 11
  70. #define RCC_XTAL 6
  71. #define RCC_OSCSRC 4
  72. #define RCC_IOSCDIS 1
  73. #define RCC_MOSCDIS 0
  74. #define RCC2_USERCC2 31
  75. #define RCC2_DIV400 30
  76. #define RCC2_SYSDIV2 23
  77. #define RCC2_SYSDIV2LSB 22
  78. #define RCC2_USBPWRDN 14
  79. #define RCC2_PWRDN2 13
  80. #define RCC2_BYPASS2 11
  81. #define RCC2_OSCSR2 4
  82. #define RCGC0_WDT0 3
  83. #define RCGC0_HIB 6
  84. #define RCGC0_MAXADC0SPD 8
  85. #define RCGC0_MAXADC1SPD 10
  86. #define RCGC0_ADC0 16
  87. #define RCGC0_ADC1 17
  88. #define RCGC0_CAN0 24
  89. #define RCGC0_CAN1 25
  90. #define RCGC0_WDT1 28
  91. #define RCGC1_UART0 0
  92. #define RCGC1_UART1 1
  93. #define RCGC1_UART2 2
  94. #define RCGC1_SSI0 4
  95. #define RCGC1_SSI1 5
  96. #define RCGC1_I2C0 12
  97. #define RCGC1_I2C1 14
  98. #define RCGC1_TIMER0 16
  99. #define RCGC1_TIMER1 17
  100. #define RCGC1_TIMER2 18
  101. #define RCGC1_TIMER3 19
  102. #define RCGC1_COMP0 24
  103. #define RCGC1_COMP1 25
  104. #define RCGC1_COMP2 26
  105. #define RCGC1_I2S0 28
  106. #define RCGC1_EPI0 30
  107. #define RCGC2_GPIOA 0
  108. #define RCGC2_GPIOB 1
  109. #define RCGC2_GPIOC 2
  110. #define RCGC2_GPIOD 3
  111. #define RCGC2_GPIOE 4
  112. #define RCGC2_GPIOF 5
  113. #define RCGC2_GPIOG 6
  114. #define RCGC2_GPIOH 7
  115. #define RCGC2_GPIOJ 8
  116. #define RCGC2_UDMA 13
  117. #define RCGC2_USB0 16
  118. #define RCGC2_EMAC0 28
  119. #define RCGC2_EPHY0 30
  120. #define RIS_MOSCPUPRIS 8
  121. #define RIS_USBPLLLRIS 7
  122. #define RIS_PLLLRIS 6
  123. #define RIS BORRIS 1
  124. #define GPIOA 0
  125. #define GPIOB 1
  126. #define GPIOC 2
  127. #define GPIOD 3
  128. #define GPIOE 4
  129. #define GPIOF 5
  130. #define GPIOG 6
  131. #define GPIOH 7
  132. #define GPIOJ 8
  133. #define GPIOA_BASE 0x40004000
  134. #define GPIOB_BASE 0x40005000
  135. #define GPIOC_BASE 0x40006000
  136. #define GPIOD_BASE 0x40007000
  137. #define GPIOE_BASE 0x40024000
  138. #define GPIOF_BASE 0x40025000
  139. #define GPIOG_BASE 0x40026000
  140. #define GPIOH_BASE 0x40027000
  141. #define GPIOJ_BASE 0x4003D000
  142. #define GPIO_DATA_OFFSET 0x000
  143. #define GPIO_DIR_OFFSET 0x400
  144. #define GPIO_IS_OFFSET 0x404
  145. #define GPIO_IBE_OFFSET 0x408
  146. #define GPIO_IEV_OFFSET 0x40C
  147. #define GPIO_IM_OFFSET 0x410
  148. #define GPIO_RIS_OFFSET 0x414
  149. #define GPIO_MIS_OFFSET 0x418
  150. #define GPIO_ICR_OFFSET 0x41C
  151. #define GPIO_AFSEL_OFFSET 0x420
  152. #define GPIO_DR2R_OFFSET 0x500
  153. #define GPIO_DR4R_OFFSET 0x504
  154. #define GPIO_DR8R_OFFSET 0x508
  155. #define GPIO_ODR_OFFSET 0x50C
  156. #define GPIO_PUR_OFFSET 0x510
  157. #define GPIO_PDR_OFFSET 0x514
  158. #define GPIO_SLR_OFFSET 0x518
  159. #define GPIO_DEN_OFFSET 0x51C
  160. #define GPIO_LOCK_OFFSET 0x520
  161. #define GPIO_CR_OFFSET 0x524
  162. #define GPIO_AMSEL_OFFSET 0x528
  163. #define GPIO_PCTL_OFFSET 0x52C
  164. #define GPIO_PeriphID4_OFFSET 0xFD0
  165. #define GPIO_PeriphID5_OFFSET 0xFD4
  166. #define GPIO_PeriphID6_OFFSET 0xFD8
  167. #define GPIO_PeriphID7_OFFSET 0xFDC
  168. #define GPIO_PeriphID0_OFFSET 0xFE0
  169. #define GPIO_PeriphID1_OFFSET 0xFE4
  170. #define GPIO_PeriphID2_OFFSET 0xFE8
  171. #define GPIO_PeriphID3_OFFSET 0xFEC
  172. #define GPIO_PCellID0_OFFSET 0xFF0
  173. #define GPIO_PCellID1_OFFSET 0xFF4
  174. #define GPIO_PCellID2_OFFSET 0xFF8
  175. #define GPIO_PCellID3_OFFSET 0xFFC
  176. #define ISR_ENABLE_VECTOR 0xE000E100
  177. #endif /* HW_REGS_H_ */