1 /******************************************************************************
2 ** File Name: deep_sleep_cfg.h *
5 ** Copyright: 2007 Spreatrum, Incoporated. All Rights Reserved. *
6 ** Description: This file defines the basic function for ldo management. *
7 ******************************************************************************/
9 /******************************************************************************
11 ** ------------------------------------------------------------------------- *
12 ** DATE NAME DESCRIPTION *
13 ** 07/09/2007 jiexia.yu Create. *
14 ******************************************************************************/
15 #ifndef _DEEP_SLEEP_CFG_H_
16 #define _DEEP_SLEEP_CFG_H_
18 /**---------------------------------------------------------------------------*
20 **---------------------------------------------------------------------------*/
23 /**---------------------------------------------------------------------------*
25 **---------------------------------------------------------------------------*/
31 /**---------------------------------------------------------------------------*
33 **---------------------------------------------------------------------------*/
35 typedef void (*SLP_ENTER_FUNC) (uint8 slp_type);
39 SLP_CFG_NULL = 0, //id for NULL
47 SLP_AHB_NULL = 0, //id for NULL
48 SLP_AHB_DCAM, //id for AHB device dcam
49 SLP_AHB_USBD, //id for AHB device usbd
50 SLP_AHB_EMC, //id for AHB device emc
51 SLP_AHB_DMA, //id for AHB device dma
52 SLP_AHB_BUS, //id for AHB device bus
58 SLP_APB_NULL = 0, //id for NULL
59 SLP_APB_WDG, //id for APB device watchdog
60 SLP_APB_ADC, //id for APB device adc
61 SLP_APB_TMR, //id for APB device timer
62 SLP_APB_SIM, //id for APB device sim
63 SLP_APB_I2C, //id for APB device i2c
64 SLP_APB_TPC, //id for APB device tpc
65 SLP_APB_PWM, //id for APB device pwm
66 SLP_APB_KPD, //id for APB device keypad
67 SLP_APB_GPIO, //id for APB device gpio
68 SLP_APB_GEA, //id for APB device gea
69 SLP_APB_SYSTMR, //id for APB device sys timer
70 SLP_APB_UART0, //id for APB device uart0
71 SLP_APB_UART1, //id for APB device uart1
72 SLP_APB_SPI0, //id for APB device spi0
73 SLP_APB_IIS, //id for APB device iis
74 SLP_APB_SPI1, //id for APB device spi1
75 SLP_APB_PIN, //id for APB device pin
82 SLP_CTL_NULL = 0, //id for NULL
83 SLP_CTRL_MCU_FORCE_STOP, //id for arm and ahb ctrl
84 SLP_CTRL_MCU_DMA_WAKEUP_EN, //id for dma wake up ctrl
85 SLP_CTRL_MCU_SYS_SLEEP_EN, //id for sys sleep ctrl
86 SLP_CTRL_MCU_DEEP_SLEEP_EN, //id for deep sleep ctrl
87 SLP_CTRL_APB_STOP, //id for APB sleep ctrl
88 SLP_CTRL_APB_FORCE_ON, //id for APB sleep ctrl
89 SLP_CTRL_APB_FORCE_SLEEP, //id for APB sleep ctrl
90 SLP_CTRL_XTLEN, //id for xtlen sleep ctrl
91 SLP_CTRL_DMA_SLEEP_MOD, //id for dma sleep mode ctrl
92 SLP_CTRL_MCU_PLL_EN, //id for mcu pll enable
99 AHB_CAN_SLP_APB_CAN_SLP,
100 AHB_CAN_SLP_APB_NO_SLP,
101 AHB_NO_SLP_APB_CAN_SLP,
102 AHB_NO_SLP_APB_NO_SLP,
132 } SLP_AHB_CTL_T, * SLP_AHB_CTL_PTR;
142 } SLP_APB_CTL_T, * SLP_APB_CTL_PTR;
152 } SLP_BIT_CTL_T, * SLP_BIT_CTL_PTR;
156 SLP_AHB_CTL_T ahb_ctrl[SLP_AHB_DEV_MAX];
157 SLP_APB_CTL_T apb_ctrl[SLP_APB_DEV_MAX];
158 SLP_BIT_CTL_T slp_bit_ctrl[SLP_CTRL_MAX];
159 SLP_ENTER_FUNC slp_handler;
160 } SLP_COM_CTL_T, *SLPCOMCTL_PTR;
164 SLP_COM_CTL_T slp_com_cfg;
165 } SLP_CTL_T, * SLPCTL_PTR;
169 CHIP_TYPE_E chip_type;
170 SLPCTL_PTR sleep_ctl;
171 } SLP_CFG_T, * SLP_CFG_PTR;
173 /*****************************************************************************/
174 // Function name: Slp_Get_Cfg
175 // Description : this function get sleep table entry according to chip type
176 // Global resource dependence:
179 /*****************************************************************************/
180 PUBLIC SLPCTL_PTR Slp_Get_Cfg (void);
181 /*****************************************************************************/
182 // Function name: Slp_Get_Apb_Status
183 // Description : this function get chip sleep status according ahb and apb
185 // Global resource dependence:
188 /*****************************************************************************/
189 PUBLIC SLP_TYPE_E Slp_Get_Slp_Status (void);
190 /*****************************************************************************/
191 // Function name: Slp_Reg_Cfg
192 // Description : this function config the regs according different sleep status
194 // Global resource dependence:
197 /*****************************************************************************/
198 PUBLIC void Slp_Reg_Cfg (SLP_TYPE_E slp_type,SLP_CFG_TYPE_E cfg_type);
200 PUBLIC int tx_enter_deep_sleep (uint32 level);
202 /**---------------------------------------------------------------------------*
204 **---------------------------------------------------------------------------*/
209 #endif // _LDO_MANAGER_H_