#ifndef _RTL8710_SYS_H_ #define _RTL8710_SYS_H_ #include // ~/programming/rtl8710/doc/registers/8195a/fwlib/rtl8195a/rtl8195a_sys_on.h typedef struct{ volatile uint16_t PWR_CTRL; // 0x0000 volatile uint16_t ISO_CTRL; // 0x0002 uint32_t RESERVED1[1]; volatile uint32_t FUNC_EN; // 0x0008 uint32_t RESERVED2[1]; volatile uint32_t CLK_CTRL0; // 0x0010 volatile uint32_t CLK_CTRL1; // 0x0014 uint32_t RESERVED3[2]; volatile uint32_t EFUSE_SYSCFG0; // 0x0020 volatile uint32_t EFUSE_SYSCFG1; // 0x0024 volatile uint32_t EFUSE_SYSCFG2; // 0x0028 volatile uint32_t EFUSE_SYSCFG3; // 0x002C volatile uint32_t EFUSE_SYSCFG4; // 0x0030 volatile uint32_t EFUSE_SYSCFG5; // 0x0034 volatile uint32_t EFUSE_SYSCFG6; // 0x0038 volatile uint32_t EFUSE_SYSCFG7; // 0x003C volatile uint32_t REGU_CTRL0; // 0x0040 uint32_t RESERVED4[1]; volatile uint32_t SWR_CTRL0; // 0x0048 volatile uint32_t SWR_CTRL1; // 0x004C uint32_t RESERVED5[4]; volatile uint32_t XTAL_CTRL0; // 0x0060 volatile uint32_t XTAL_CTRL1; // 0x0064 uint32_t RESERVED6[2]; volatile uint32_t SYSPLL_CTRL0; // 0x0070 volatile uint32_t SYSPLL_CTRL1; // 0x0074 volatile uint32_t SYSPLL_CTRL2; // 0x0078 uint32_t RESERVED7[5]; volatile uint32_t ANA_TIM_CTRL; // 0x0090 volatile uint32_t DSLP_TIM_CTRL; // 0x0094 volatile uint32_t DSLP_TIM_CAL_CTRL; // 0x0098 uint32_t RESERVED8[1]; volatile uint32_t DEBUG_CTRL; // 0x00A0 volatile uint32_t PINMUX_CTRL; // 0x00A4 volatile uint32_t GPIO_DSTBY_WAKE_CTRL0; // 0x00A8 volatile uint32_t GPIO_DSTBY_WAKE_CTRL1; // 0x00AC uint32_t RESERVED9[3]; volatile uint32_t DEBUG_REG; // 0x00BC uint32_t RESERVED10[8]; volatile uint32_t EEPROM_CTRL0; // 0x00E0 volatile uint32_t EEPROM_CTRL1; // 0x00E4 volatile uint32_t EFUSE_CTRL; // 0x00E8 volatile uint32_t EFUSE_TEST; // 0x00EC volatile uint32_t DSTBY_INFO0; // 0x00F0 volatile uint32_t DSTBY_INFO1; // 0x00F4 volatile uint32_t DSTBY_INFO2; // 0x00F8 volatile uint32_t DSTBY_INFO3; // 0x00FC volatile uint32_t SLP_WAKE_EVENT_MSK0; // 0x0100 volatile uint32_t SLP_WAKE_EVENT_MSK1; // 0x0104 volatile uint32_t SLP_WAKE_EVENT_STATUS0; // 0x0108 volatile uint32_t SLP_WAKE_EVENT_STATUS1; // 0x010C volatile uint32_t SNF_WAKE_EVENT_MSK0; // 0x0110 volatile uint32_t SNF_WAKE_EVENT_STATUS; // 0x0114 volatile uint32_t PWRMGT_CTRL; // 0x0118 uint32_t RESERVED11[1]; volatile uint32_t PWRMGT_OPTION; // 0x0120 volatile uint32_t PWRMGT_OPTION_EXT; // 0x0124 uint32_t RESERVED12[2]; volatile uint32_t DSLP_WEVENT; // 0x0130 volatile uint32_t PERI_MONITOR; // 0x0134 uint32_t RESERVED13[46]; volatile uint32_t SYSTEM_CFG0; // 0x01F0 volatile uint32_t SYSTEM_CFG1; // 0x01F4 volatile uint32_t SYSTEM_CFG2; // 0x01F8 }__attribute__((packed)) SYS_TypeDef; #define SYS ((SYS_TypeDef *)0x40000000) // SYS_PWR_CTRL #define SYS_PWR_CTRL_PEON_EN (((uint16_t)0x01) << 0) #define SYS_PWR_CTRL_RET_MEM_EN (((uint16_t)0x01) << 1) #define SYS_PWR_CTRL_SOC_EN (((uint16_t)0x01) << 2) // SYS_ISO_CTRL #define SYS_ISO_CTRL_PEON (((uint16_t)0x01) << 0) #define SYS_ISO_CTRL_RET_MEM (((uint16_t)0x01) << 1) #define SYS_ISO_CTRL_SOC (((uint16_t)0x01) << 2) #define SYS_ISO_CTRL_SYSPLL (((uint16_t)0x01) << 7) // SYS_FUNC_EN #define SYS_FUNC_EN_FEN_EELDR (((uint32_t)0x01) << 0) #define SYS_FUNC_EN_SOC_SYSPEON_EN (((uint32_t)0x01) << 4) #define SYS_FUNC_EN_FEN_SIC (((uint32_t)0x01) << 24) #define SYS_FUNC_EN_FEN_SIC_MST (((uint32_t)0x01) << 25) #define SYS_FUNC_EN_PWRON_TRAP_SHTDN_N (((uint32_t)0x01) << 30) #define SYS_FUNC_EN_AMACRO_EN (((uint32_t)0x01) << 31) // SYS_CLK_CTRL0 #define SYS_CLK_CTRL0_CK_SYSREG_EN (((uint32_t)0x01) << 0) #define SYS_CLK_CTRL0_CK_EELDR_EN (((uint32_t)0x01) << 1) #define SYS_CLK_CTRL0_SOC_OCP_IOBUS_CK_EN (((uint32_t)0x01) << 2) // SYS_CLK_CTRL1 #define SYS_CLK_CTRL1_PESOC_EELDR_CK_SEL (((uint32_t)0x01) << 0) #define SYS_CLK_CTRL1_PESOC_OCP_CPU_CK_SEL (((uint32_t)0x07) << 4) #endif