1 /* 2 * Copyright (c) 2021 Chipsea Technologies (Shenzhen) Corp., Ltd. All rights reserved. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 #ifndef _CS1000LITE_RTC_CORE_H_ 16 #define _CS1000LITE_RTC_CORE_H_ 17 18 #include "chip.h" 19 20 // ============================================================================= 21 // MACROS 22 // ============================================================================= 23 24 // ============================================================================= 25 // TYPES 26 // ============================================================================= 27 28 // ============================================================================ 29 // CS1000LITE_RTC_CORE_T 30 // ----------------------------------------------------------------------------- 31 /// 32 // ============================================================================= 33 #define REG_CS1000LITE_RTC_CORE_BASE 0x50018800 34 35 typedef volatile struct 36 { 37 __IO uint32_t rtc_rg_clk_cfg1; //0x00000000 38 __IO uint32_t rtc_rg_clk_cfg2; //0x00000004 39 __IO uint32_t rtc_rg_dcdc_rf_cfg1; //0x00000008 40 __IO uint32_t rtc_rg_por_ctrl_cfg1; //0x0000000C 41 __IO uint32_t rtc_rg_por_ctrl_cfg2; //0x00000010 42 __IO uint32_t rtc_rg_other_ctrl_cfg1; //0x00000014 43 __IO uint32_t rtc_rg_other_ctrl_cfg2; //0x00000018 44 __IO uint32_t rtc_rg_por_seq_num_cfg1; //0x0000001C 45 __IO uint32_t rtc_rg_por_seq_num_cfg2; //0x00000020 46 __IO uint32_t rtc_rg_por_seq_num_cfg3; //0x00000024 47 __IO uint32_t rtc_rg_other_ctrl_cfg3; //0x00000028 48 __IO uint32_t rtc_rg_int_irq; //0x0000002C 49 __IO uint32_t rtc_rg_pwr_cfg; //0x00000030 50 } HWP_CS1000LITE_RTC_CORE_T; 51 52 static HWP_CS1000LITE_RTC_CORE_T * const cs1000liteRtcCore = ((HWP_CS1000LITE_RTC_CORE_T*)REG_CS1000LITE_RTC_CORE_BASE); 53 54 55 //rtc_rg_clk_cfg1 56 #define CS1000LITE_RTC_CORE_RTC_RG_PU_XTAL32K (1<<0) 57 #define CS1000LITE_RTC_CORE_RTC_RG_XTAL32K_MODE_SEL (1<<1) 58 #define CS1000LITE_RTC_CORE_RTC_RG_XTAL32K_COMP_IBIT(n) (((n)&7)<<2) 59 #define CS1000LITE_RTC_CORE_RTC_RG_XTAL32K_IBIT(n) (((n)&7)<<5) 60 #define CS1000LITE_RTC_CORE_RTC_RG_XTAL32K_AMP_BIT(n) (((n)&7)<<8) 61 #define CS1000LITE_RTC_CORE_RTC_RG_XTAL32K_CLK_EN(n) (((n)&7)<<11) 62 #define CS1000LITE_RTC_CORE_RTC_RG_POR_CLK32K_FBIT(n) (((n)&7)<<14) 63 #define CS1000LITE_RTC_CORE_RTC_RG_XTAL_CAP_STEP(n) (((n)&0x3F)<<17) 64 #define CS1000LITE_RTC_CORE_RTC_RG_LPO512K_TEMP_COEF_BIT(n) (((n)&7)<<23) 65 #define CS1000LITE_RTC_CORE_RTC_RG_LPO512K_CLK_SEL (1<<26) 66 #define CS1000LITE_RTC_CORE_RTC_RG_CLK_128K_OUT_EN_SW_MODE (1<<27) 67 #define CS1000LITE_RTC_CORE_RTC_RG_CLK_128K_OUT_EN_SW_SET (1<<28) 68 69 //rtc_rg_clk_cfg2 70 #define CS1000LITE_RTC_CORE_RTC_RG_PU_MDLL128K (1<<0) 71 #define CS1000LITE_RTC_CORE_RTC_RG_MDLL128K_DIV_BIT(n) (((n)&7)<<1) 72 #define CS1000LITE_RTC_CORE_RTC_RG_MDLL128K_FREQ_C_BIT(n) (((n)&15)<<4) 73 #define CS1000LITE_RTC_CORE_RTC_RG_MDLL128K_FREQ_F_BIT(n) (((n)&0x3F)<<8) 74 #define CS1000LITE_RTC_CORE_RTC_RG_MDLL128K_RSTN (1<<14) 75 #define CS1000LITE_RTC_CORE_RTC_RG_MDLL128K_EN (1<<15) 76 #define CS1000LITE_RTC_CORE_RTC_RG_MDLL128K_SEL (1<<16) 77 #define CS1000LITE_RTC_CORE_RTC_RG_XTAL_CAP_LP_BIT(n) (((n)&31)<<17) 78 #define CS1000LITE_RTC_CORE_RTC_RG_XTAL_CAP2_BIT(n) (((n)&31)<<22) 79 #define CS1000LITE_RTC_CORE_RTC_RG_XTAL_CAP1_BIT(n) (((n)&31)<<27) 80 81 //rtc_rg_dcdc_rf_cfg1 82 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_PFM_THRESHOLD(n) (((n)&3)<<0) 83 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_VBIT_NOR_TUNE(n) (((n)&15)<<6) 84 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_VBIT_DS_SW(n) (((n)&15)<<10) 85 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_VBIT_AVDD12(n) (((n)&3)<<14) 86 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_VREF_SOURCE_INT (1<<16) 87 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_ADD_I_LIMIT (1<<17) 88 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_LESS_SOFTTIME(n) (((n)&3)<<18) 89 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_IBIT_LDO_LIMIT (1<<20) 90 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_EN_CURRENT_LIMIT (1<<24) 91 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_DISCHARGE_ENB (1<<25) 92 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_PFM_MODE_SEL (1<<26) 93 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_REDUCE_I_LIMIT (1<<27) 94 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_CLK_DETVO_LP_DIV(n) (((n)&3)<<28) 95 #define CS1000LITE_RTC_CORE_RTC_RG_PU_DCDC_RF_AVDDRF (1<<30) 96 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_RDY (1<<31) 97 98 //rtc_rg_por_ctrl_cfg1 99 #define CS1000LITE_RTC_CORE_RTC_RG_POR_VRTC_VBIT (1<<0) 100 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_DCDC_MODE_SEL (1<<1) 101 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_PA_DCDC_MODE_SEL (1<<2) 102 #define CS1000LITE_RTC_CORE_RTC_RG_POR_MS_VBIT(n) (((n)&3)<<3) 103 #define CS1000LITE_RTC_CORE_RTC_RG_PU_VBAT_SENSE (1<<5) 104 #define CS1000LITE_RTC_CORE_RTC_RG_UVLO0_EN (1<<6) 105 #define CS1000LITE_RTC_CORE_RTC_RG_UVLO0_VBIT(n) (((n)&15)<<7) 106 #define CS1000LITE_RTC_CORE_RTC_RG_WDG_RSTN_PD_EN (1<<11) 107 #define CS1000LITE_RTC_CORE_RTC_RG_BOR_VBAT_SEL_BIT (1<<12) 108 #define CS1000LITE_RTC_CORE_RTC_RG_LDO_VRTC09_DISABLE_CLK (1<<13) 109 #define CS1000LITE_RTC_CORE_RTC_RG_LVL_PULLR_ENB (1<<14) 110 #define CS1000LITE_RTC_CORE_RTC_RG_POR_EN_VRTC_CLAMP (1<<15) 111 #define CS1000LITE_RTC_CORE_RTC_RG_POR_EN_VIOULP_CLAMP (1<<16) 112 #define CS1000LITE_RTC_CORE_RTC_RG_PU_VRTC_SENSE (1<<17) 113 #define CS1000LITE_RTC_CORE_RTC_RG_BOR_EN (1<<18) 114 #define CS1000LITE_RTC_CORE_RTC_RG_BOR_VBIT(n) (((n)&15)<<19) 115 #define CS1000LITE_RTC_CORE_RTC_RG_PD_RC512K_PWR_PD_EN (1<<23) 116 #define CS1000LITE_RTC_CORE_RTC_RG_LDO_VCORE09_PU_EN (1<<24) 117 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_VCORE09_PU_EN (1<<25) 118 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_PA_LDO_MODE_EN (1<<26) 119 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_LDO_MODE_EN (1<<27) 120 #define CS1000LITE_RTC_CORE_RTC_RG_GPIO_CFG(n) (((n)&15)<<28) 121 122 //rtc_rg_por_ctrl_cfg2 123 #define CS1000LITE_RTC_CORE_RTC_RG_GPIO27_MUX0_EN(n) (((n)&0x3F)<<0) 124 #define CS1000LITE_RTC_CORE_RTC_RG_GPIO27_MUX1_EN(n) (((n)&0x3F)<<6) 125 #define CS1000LITE_RTC_CORE_RTC_RG_GPIO27_MUX2_EN(n) (((n)&0x3F)<<12) 126 #define CS1000LITE_RTC_CORE_RTC_RG_GPIO27_PULL_DN(n) (((n)&0x3F)<<18) 127 #define CS1000LITE_RTC_CORE_RTC_RG_GPIO27_PULL_UP(n) (((n)&0x3F)<<24) 128 129 //rtc_rg_other_ctrl_cfg1 130 #define CS1000LITE_RTC_CORE_RTC_RG_PRESETN_PSM (1<<0) 131 #define CS1000LITE_RTC_CORE_RTC_RG_PRESETN_CALENDAR (1<<1) 132 #define CS1000LITE_RTC_CORE_RTC_RG_ALM_POWER_ON_EN (1<<2) 133 #define CS1000LITE_RTC_CORE_RTC_RG_REPOWER_BOR_EN (1<<3) 134 #define CS1000LITE_RTC_CORE_RTC_RG_DEEP_SLEEP_AWAKE_EN(n) (((n)&15)<<4) 135 #define CS1000LITE_RTC_CORE_RTC_RG_REPOWER_WDG_EN (1<<8) 136 #define CS1000LITE_RTC_CORE_RTC_RG_WDG_RST_RTC_RF_EN (1<<9) 137 #define CS1000LITE_RTC_CORE_RTC_RG_BOR_EN_PWR_PD (1<<10) 138 #define CS1000LITE_RTC_CORE_RTC_RG_GPIO_SLEW_RATE_D(n) (((n)&15)<<11) 139 #define CS1000LITE_RTC_CORE_RTC_RG_GPIO_IBIT_D (1<<15) 140 #define CS1000LITE_RTC_CORE_RTC_RG_TEST_EN_DCDC_PA (1<<16) 141 #define CS1000LITE_RTC_CORE_RTC_RG_TEST_EN_DCDC_RF (1<<17) 142 #define CS1000LITE_RTC_CORE_RTC_RG_TEST_EN_DCDC_CORE (1<<18) 143 #define CS1000LITE_RTC_CORE_RTC_RG_TEST_EN_XTAL26M (1<<19) 144 #define CS1000LITE_RTC_CORE_RTC_RG_AVDD_SENSE_EN_V33V18V13 (1<<20) 145 #define CS1000LITE_RTC_CORE_RTC_RG_MS_VIO_RO (1<<21) 146 #define CS1000LITE_RTC_CORE_RTC_RG_TEST_EN_OSC13M (1<<22) 147 #define CS1000LITE_RTC_CORE_RTC_RG_TEST_EN_USB (1<<23) 148 #define CS1000LITE_RTC_CORE_RTC_RG_TEST_BIT(n) (((n)&15)<<24) 149 #define CS1000LITE_RTC_CORE_RTC_RG_LED0_MODE (1<<28) 150 #define CS1000LITE_RTC_CORE_RTC_RG_LED1_MODE (1<<29) 151 152 //rtc_rg_other_ctrl_cfg2 153 #define CS1000LITE_RTC_CORE_CFG_ANA_FIX_DCDC_RF_VOL (1<<2) 154 #define CS1000LITE_RTC_CORE_A2D_RTC_MS_VBAT (1<<12) 155 #define CS1000LITE_RTC_CORE_RTC_RG_DEVICE_ID_CFG(n) (((n)&7)<<13) 156 #define CS1000LITE_RTC_CORE_RTC_RG_XTAL_IBIAS_STEP(n) (((n)&0x3F)<<16) 157 #define CS1000LITE_RTC_CORE_RTC_RG_XTAL_IBIAS_LP_BIT(n) (((n)&31)<<22) 158 #define CS1000LITE_RTC_CORE_RTC_RG_XTAL_IBIAS_BIT(n) (((n)&31)<<27) 159 160 //rtc_rg_por_seq_num_cfg1 161 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_PU_SEQ_NUM(n) (((n)&31)<<0) 162 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_VCORE09_PU_SEQ_NUM(n) (((n)&31)<<5) 163 #define CS1000LITE_RTC_CORE_RTC_RG_LDO_PA_PU_SEQ_NUM(n) (((n)&31)<<10) 164 #define CS1000LITE_RTC_CORE_RTC_RG_AVDD18_PU_SEQ_NUM(n) (((n)&31)<<15) 165 #define CS1000LITE_RTC_CORE_RTC_RG_PU_USB_SEQ_NUM(n) (((n)&31)<<20) 166 #define CS1000LITE_RTC_CORE_RTC_RG_USBPLL_CLK_EN_SEQ_NUM(n) (((n)&31)<<25) 167 #define CS1000LITE_RTC_CORE_RTC_RG_DEVICE_HYS_PFM_MODE_EN (1<<30) 168 #define CS1000LITE_RTC_CORE_RTC_RG_DEVICE_PU_DCDC_RF_SEQ_EN (1<<31) 169 170 //rtc_rg_por_seq_num_cfg2 171 #define CS1000LITE_RTC_CORE_RTC_RG_XEN_EN_SEQ_NUM(n) (((n)&31)<<0) 172 #define CS1000LITE_RTC_CORE_RTC_RG_RESET_B_SEQ_NUM(n) (((n)&31)<<5) 173 #define CS1000LITE_RTC_CORE_RTC_RG_SLP_XEN_EN_SEQ_NUM(n) (((n)&31)<<10) 174 #define CS1000LITE_RTC_CORE_RTC_RG_SLP_RESET_B_SEQ_NUM(n) (((n)&31)<<15) 175 #define CS1000LITE_RTC_CORE_RTC_RG_VBAT_RSTN_TH(n) (((n)&0xFF)<<20) 176 177 //rtc_rg_por_seq_num_cfg3 178 #define CS1000LITE_RTC_CORE_RTC_RG_PBINT_POR_TRIG_CNT_TH(n) (((n)&0xFF)<<0) 179 #define CS1000LITE_RTC_CORE_RTC_RG_PBINT_POR_DEBC_CNT_TH(n) (((n)&0xFF)<<8) 180 #define CS1000LITE_RTC_CORE_RTC_RG_GPIO_POR_TRIG_CNT_TH(n) (((n)&0xFF)<<16) 181 #define CS1000LITE_RTC_CORE_RTC_RG_DEVICE_POR_TRIG_CNT_TH(n) (((n)&0xFF)<<24) 182 183 //rtc_rg_other_ctrl_cfg3 184 #define CS1000LITE_RTC_CORE_RTC_RG_GPIO_SLEW_RATE_B(n) (((n)&15)<<0) 185 #define CS1000LITE_RTC_CORE_RTC_RG_GPIO_SLEW_RATE_C(n) (((n)&15)<<4) 186 #define CS1000LITE_RTC_CORE_RTC_RG_GPIO27_OUT_REG(n) (((n)&0x3F)<<8) 187 #define CS1000LITE_RTC_CORE_RTC_RG_GPIO27_IE(n) (((n)&0x3F)<<14) 188 #define CS1000LITE_RTC_CORE_RTC_RG_GPIO27_SEL(n) (((n)&0x3F)<<20) 189 #define CS1000LITE_RTC_CORE_RTC_RG_GPIO27_OEN(n) (((n)&0x3F)<<26) 190 191 //rtc_rg_int_irq 192 #define CS1000LITE_RTC_CORE_RTC_RG_INT_MASK(n) (((n)&15)<<0) 193 #define CS1000LITE_RTC_CORE_RTC_RG_INT_CLR(n) (((n)&15)<<4) 194 #define CS1000LITE_RTC_CORE_RTC_RG_DBG_MUX(n) (((n)&31)<<8) 195 #define CS1000LITE_RTC_CORE_RTC_RG_INT_EN (1<<15) 196 #define CS1000LITE_RTC_CORE_RTC_INT_RAW_STATUS(n) (((n)&15)<<16) 197 #define CS1000LITE_RTC_CORE_RTC_INT_MASK_STATUS(n) (((n)&15)<<20) 198 199 //rtc_rg_pwr_cfg 200 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_VBIT_DET_VO_NOR(n) (((n)&15)<<0) 201 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_VBIT_DET_VO_DS(n) (((n)&15)<<4) 202 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_LOW_SENSE_NOR(n) (((n)&7)<<8) 203 #define CS1000LITE_RTC_CORE_RTC_RG_DCDC_RF_LOW_SENSE_DS(n) (((n)&7)<<11) 204 205 #endif 206