drv_sys.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. #ifndef __PLAT_INTERRUPT_H__
  2. #define __PLAT_INTERRUPT_H__
  3. #include "rthw.h"
  4. #include <rtconfig.h>
  5. #if defined(BSP_USING_MMU)
  6. #include "mmu.h"
  7. #define NONCACHEABLE BIT31
  8. #else
  9. #define NONCACHEABLE 0
  10. #endif
  11. typedef enum
  12. {
  13. /* SYS_AHBIPRST, SYS_BA + 0x060 */
  14. CHIPRST,
  15. AHBIPRST_Reserved_1,
  16. CPURST,
  17. EBIRST,
  18. PDMA0RST,
  19. PDMA1RST,
  20. SDICRST,
  21. GPIORST,
  22. I2SRST,
  23. AHBIPRST_Reserved_9,
  24. VCAP0RST,
  25. VCAP1RST,
  26. AHBIPRST_Reserved_12,
  27. AHBIPRST_Reserved_13,
  28. AHBIPRST_Reserved_14,
  29. AHBIPRST_Reserved_15,
  30. EMAC0RST,
  31. EMAC1RST,
  32. USBHRST,
  33. USBDRST,
  34. FMIRST,
  35. AHBIPRST_Reserved_21,
  36. AHBIPRST_Reserved_22,
  37. CRYPTORST,
  38. SDHRST,
  39. AHBIPRST_Reserved_25,
  40. AHBIPRST_Reserved_26,
  41. AHBIPRST_Reserved_27,
  42. AHBIPRST_Reserved_28,
  43. AHBIPRST_Reserved_29,
  44. AHBIPRST_Reserved_30,
  45. AHBIPRST_Reserved_31,
  46. /* SYS_APBIPRST0, SYS_BA + 0x064 */
  47. APBIPRST0_Reserved_0,
  48. APBIPRST0_Reserved_1,
  49. APBIPRST0_Reserved_2,
  50. APBIPRST0_Reserved_3,
  51. AICRST,
  52. APBIPRST0_Reserved_5,
  53. APBIPRST0_Reserved_6,
  54. APBIPRST0_Reserved_7,
  55. TIMER0RST,
  56. TIMER1RST,
  57. TIMER2RST,
  58. TIMER3RST,
  59. TIMER4RST,
  60. TIMER5RST,
  61. APBIPRST0_Reserved_14,
  62. APBIPRST0_Reserved_15,
  63. UART0RST,
  64. UART1RST,
  65. UART2RST,
  66. UART3RST,
  67. UART4RST,
  68. UART5RST,
  69. UART6RST,
  70. UART7RST,
  71. UART8RST,
  72. UART9RST,
  73. APBIPRST0_Reserved_26,
  74. APBIPRST0_Reserved_27,
  75. APBIPRST0_Reserved_28,
  76. APBIPRST0_Reserved_29,
  77. APBIPRST0_Reserved_30,
  78. APBIPRST0_Reserved_31,
  79. /* SYS_APBIPRST1, SYS_BA + 0x068 */
  80. I2C0RST,
  81. I2C1RST,
  82. I2C2RST,
  83. I2C3RST,
  84. QSPI0RST,
  85. SPI0RST,
  86. SPI1RST,
  87. APBIPRST1_Reserved_7,
  88. CAN0RST,
  89. CAN1RST,
  90. CAN2RST,
  91. CAN3RST,
  92. SMC0RST,
  93. SMC1RST,
  94. APBIPRST1_Reserved_14,
  95. APBIPRST1_Reserved_15,
  96. APBIPRST1_Reserved_16,
  97. APBIPRST1_Reserved_17,
  98. APBIPRST1_Reserved_18,
  99. APBIPRST1_Reserved_19,
  100. APBIPRST1_Reserved_20,
  101. APBIPRST1_Reserved_21,
  102. APBIPRST1_Reserved_22,
  103. APBIPRST1_Reserved_23,
  104. ADCRST,
  105. APBIPRST1_Reserved_25,
  106. PWM0RST,
  107. PWM1RST,
  108. APBIPRST1_Reserved_28,
  109. APBIPRST1_Reserved_29,
  110. APBIPRST1_Reserved_30,
  111. APBIPRST1_Reserved_31,
  112. SYS_IPRST_CNT
  113. } E_SYS_IPRST;
  114. typedef enum
  115. {
  116. /* CLK_HCLKEN, CLK_BA + 0x010 */
  117. CPUCKEN,
  118. HCLKCKEN,
  119. HCLK1CKEN,
  120. HCLK3CKEN,
  121. HCLK4CKEN,
  122. PCLK0CKEN,
  123. PCLK1CKEN,
  124. TICCKEN,
  125. SRAMCKEN,
  126. EBICKEN,
  127. SDICCKEN,
  128. GPIOCKEN,
  129. PDMA0CKEN,
  130. PDMA1CKEN,
  131. PCLK2CKEN,
  132. CKOCKEN,
  133. EMAC0CKEN,
  134. EMAC1CKEN,
  135. USBHCKEN,
  136. USBDCKEN,
  137. FMICKEN,
  138. NANDCKEN,
  139. SD0CKEN,
  140. CRYPTOCKEN,
  141. I2SCKEN,
  142. HCLKEN_Reserved_25,
  143. VCAP0CKEN,
  144. SENSORCKEN,
  145. HCLKEN_Reserved_28,
  146. HCLKEN_Reserved_29,
  147. SD1CKEN,
  148. VCAP1CKEN,
  149. CLK_HCLKEN_END,
  150. /* CLK_BA+0x014 */
  151. /* CLK_PCLKEN0 CLK_BA+0x018 */
  152. CLK_PCLKEN0_BEGIN = CLK_HCLKEN_END + 32,
  153. WDTCKEN = CLK_PCLKEN0_BEGIN,
  154. WWDTCKEN,
  155. RTCCKEN,
  156. PCLKEN0_Reserved_3,
  157. PCLKEN0_Reserved_4,
  158. PCLKEN0_Reserved_5,
  159. PCLKEN0_Reserved_6,
  160. PCLKEN0_Reserved_7,
  161. TIMER0CKEN,
  162. TIMER1CKEN,
  163. TIMER2CKEN,
  164. TIMER3CKEN,
  165. TIMER4CKEN,
  166. TIMER5CKEN,
  167. PCLKEN0_Reserved_14,
  168. PCLKEN0_Reserved_15,
  169. UART0CKEN,
  170. UART1CKEN,
  171. UART2CKEN,
  172. UART3CKEN,
  173. UART4CKEN,
  174. UART5CKEN,
  175. UART6CKEN,
  176. UART7CKEN,
  177. UART8CKEN,
  178. UART9CKEN,
  179. PCLKEN0_Reserved_26,
  180. PCLKEN0_Reserved_27,
  181. PCLKEN0_Reserved_28,
  182. PCLKEN0_Reserved_29,
  183. PCLKEN0_Reserved_30,
  184. PCLKEN0_Reserved_31,
  185. /* CLK_PCLKEN1, CLK_BA + 0x01C */
  186. I2C0CKEN,
  187. I2C1CKEN,
  188. I2C2CKEN,
  189. I2C3CKEN,
  190. QSPI0CKEN,
  191. SPI0CKEN,
  192. SPI1CKEN,
  193. PCLKEN1_Reserved_7,
  194. CAN0CKEN,
  195. CAN1CKEN,
  196. CAN2CKEN,
  197. CAN3CKEN,
  198. SMC0CKEN,
  199. SMC1CKEN,
  200. PCLKEN1_Reserved_14,
  201. PCLKEN1_Reserved_15,
  202. PCLKEN1_Reserved_16,
  203. PCLKEN1_Reserved_17,
  204. PCLKEN1_Reserved_18,
  205. PCLKEN1_Reserved_19,
  206. PCLKEN1_Reserved_20,
  207. PCLKEN1_Reserved_21,
  208. PCLKEN1_Reserved_22,
  209. PCLKEN1_Reserved_23,
  210. ADCCKEN,
  211. PCLKEN1_Reserved_25,
  212. PWM0CKEN,
  213. PWM1CKEN,
  214. PCLKEN1_Reserved_28,
  215. PCLKEN1_Reserved_29,
  216. PCLKEN1_Reserved_30,
  217. PCLKEN1_Reserved_31,
  218. SYS_IPCLK_CNT
  219. } E_SYS_IPCLK;
  220. typedef enum
  221. {
  222. USB0_ID_DEVICE,
  223. USB0_ID_HOST,
  224. USB0_ID_CNT
  225. } E_SYS_USB0_ID;
  226. void rt_hw_interrupt_init(void);
  227. void rt_hw_interrupt_set_priority(int vector, int priority);
  228. void rt_hw_interrupt_set_type(int vector, int type);
  229. rt_isr_handler_t rt_hw_interrupt_install(int vector, rt_isr_handler_t handler, void *param, const char *name);
  230. void rt_hw_systick_init(void);
  231. void nu_clock_base_init(void);
  232. void nu_systick_udelay(uint32_t delay_us);
  233. void nu_sys_ip_reset(E_SYS_IPRST eIPRstIdx);
  234. void nu_sys_ipclk_enable(E_SYS_IPCLK eIPClkIdx);
  235. void nu_sys_ipclk_disable(E_SYS_IPCLK eIPClkIdx);
  236. E_SYS_USB0_ID nu_sys_usb0_role(void);
  237. #endif