drv_sys.h 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #ifndef __DRV_SYS_H__
  2. #define __DRV_SYS_H__
  3. #include <rtthread.h>
  4. #include "drv_common.h"
  5. #include "NuMicro.h"
  6. typedef enum
  7. {
  8. USB0_ID_DEVICE,
  9. USB0_ID_HOST,
  10. USB0_ID_CNT
  11. } E_SYS_USB0_ID;
  12. struct nu_module
  13. {
  14. char *name;
  15. void *m_pvBase;
  16. uint32_t u32RstId;
  17. IRQn_Type eIRQn;
  18. } ;
  19. typedef struct nu_module *nu_module_t;
  20. typedef struct
  21. {
  22. vu32 vu32RegAddr;
  23. char *szRegName;
  24. vu32 vu32BitMask;
  25. char *szBMName;
  26. vu32 vu32Value;
  27. char *szVName;
  28. } S_NU_REG;
  29. #define SYS_GPA_MFPL (SYS_BASE + 0x0080U)
  30. #define SYS_GPA_MFPH (SYS_BASE + 0x0084U)
  31. #define SYS_GPB_MFPL (SYS_BASE + 0x0088U)
  32. #define SYS_GPB_MFPH (SYS_BASE + 0x008CU)
  33. #define SYS_GPC_MFPL (SYS_BASE + 0x0090U)
  34. #define SYS_GPC_MFPH (SYS_BASE + 0x0094U)
  35. #define SYS_GPD_MFPL (SYS_BASE + 0x0098U)
  36. #define SYS_GPD_MFPH (SYS_BASE + 0x009CU)
  37. #define SYS_GPE_MFPL (SYS_BASE + 0x00A0U)
  38. #define SYS_GPE_MFPH (SYS_BASE + 0x00A4U)
  39. #define SYS_GPF_MFPL (SYS_BASE + 0x00A8U)
  40. #define SYS_GPF_MFPH (SYS_BASE + 0x00ACU)
  41. #define SYS_GPG_MFPL (SYS_BASE + 0x00B0U)
  42. #define SYS_GPG_MFPH (SYS_BASE + 0x00B4U)
  43. #define SYS_GPH_MFPL (SYS_BASE + 0x00B8U)
  44. #define SYS_GPH_MFPH (SYS_BASE + 0x00BCU)
  45. #define SYS_GPI_MFPL (SYS_BASE + 0x00C0U)
  46. #define SYS_GPI_MFPH (SYS_BASE + 0x00C4U)
  47. #define SYS_GPJ_MFPL (SYS_BASE + 0x00C8U)
  48. #define SYS_GPJ_MFPH (SYS_BASE + 0x00CCU)
  49. #define SYS_GPK_MFPL (SYS_BASE + 0x00D0U)
  50. #define SYS_GPK_MFPH (SYS_BASE + 0x00D4U)
  51. #define SYS_GPL_MFPL (SYS_BASE + 0x00D8U)
  52. #define SYS_GPL_MFPH (SYS_BASE + 0x00DCU)
  53. #define SYS_GPM_MFPL (SYS_BASE + 0x00E0U)
  54. #define SYS_GPM_MFPH (SYS_BASE + 0x00E4U)
  55. #define SYS_GPN_MFPL (SYS_BASE + 0x00E8U)
  56. #define SYS_GPN_MFPH (SYS_BASE + 0x00ECU)
  57. #define SYS_USBPMISCR (SYS_BASE + 0x0060U)
  58. #define SYS_USBP0PCR (SYS_BASE + 0x0064U)
  59. #define SYS_USBP1PCR (SYS_BASE + 0x0068U)
  60. #define CLK_PWRCTL (CLK_BASE + 0x0000U)
  61. #define CLK_SYSCLK0 (CLK_BASE + 0x0004U)
  62. #define CLK_SYSCLK1 (CLK_BASE + 0x0008U)
  63. #define CLK_APBCLK0 (CLK_BASE + 0x000CU)
  64. #define CLK_APBCLK1 (CLK_BASE + 0x0010U)
  65. #define CLK_APBCLK2 (CLK_BASE + 0x0014U)
  66. #define CLK_CLKSEL0 (CLK_BASE + 0x0018U)
  67. #define CLK_CLKSEL1 (CLK_BASE + 0x001CU)
  68. #define CLK_CLKSEL2 (CLK_BASE + 0x0020U)
  69. #define CLK_CLKSEL3 (CLK_BASE + 0x0024U)
  70. #define CLK_CLKSEL4 (CLK_BASE + 0x0028U)
  71. #define CLK_CLKDIV0 (CLK_BASE + 0x002CU)
  72. #define CLK_CLKDIV1 (CLK_BASE + 0x0030U)
  73. #define CLK_CLKDIV2 (CLK_BASE + 0x0034U)
  74. #define CLK_CLKDIV3 (CLK_BASE + 0x0038U)
  75. #define CLK_CLKDIV4 (CLK_BASE + 0x003CU)
  76. #define CLK_CLKOCTL (CLK_BASE + 0x0040U)
  77. #define NUREG_EXPORT(vu32RegAddr, vu32BitMask, vu32Value) { vu32RegAddr, #vu32RegAddr, vu32BitMask, #vu32BitMask, vu32Value, #vu32Value }
  78. void nu_clock_base_init(void);
  79. void nu_sys_ip_reset(uint32_t u32ModuleIndex);
  80. void nu_sys_ipclk_enable(uint32_t eIPClkIdx);
  81. void nu_sys_ipclk_disable(uint32_t eIPClkIdx);
  82. E_SYS_USB0_ID nu_sys_usb0_role(void);
  83. void nu_sys_check_register(S_NU_REG *psNuReg);
  84. #endif