tizen 2.4 release
[kernel/u-boot-tm1.git] / arch / arm / include / asm / arch-sc8830 / chip_x15 / __low_power.h
1 #ifndef __LOW_POWER_H__\r
2 #define __LOW_POWER_H__\r
3 \r
4 /*ldo name*/\r
5 #define DCDC_BG                                         (1 << 0)\r
6 #define LDO_VDD18                                       (1 << 1)\r
7 #define LDO_VDD28                                       (1 << 2)\r
8 #define LDO_VDD25                                       (1 << 3)\r
9 #define LDO_CON                                         (1 << 4)\r
10 #define LDO_DCXO                                                (1 << 5)\r
11 #define LDO_EMMCIO                                      (1 << 6)\r
12 #define LDO_EMMCCORE                            (1 << 7)\r
13 #define LDO_RF0                                         (1 << 8)\r
14 #define DCDC_CORE                                       (1 << 9)\r
15 #define DCDC_ARM                                        (1 << 10)\r
16 #define DCDC_MEM                                        (1 << 11)\r
17 #define DCDC_GEN                                                (1 << 12)\r
18 #define LDO_SD                                          (1 << 13)\r
19 #define LDO_SIM0                                                (1 << 14)\r
20 #define LDO_SIM1                                                (1 << 15)\r
21 #define LDO_SIM2                                                (1 << 16)\r
22 #define LDO_CAMA                                        (1 << 17)\r
23 #define LDO_CAMD                                        (1 << 18)\r
24 #define LDO_CAMIO                                       (1 << 19)\r
25 #define LDO_CAMMOT                                      (1 << 20)\r
26 #define LDO_USB                                         (1 << 21)\r
27 #define LDO_CLSG                                                (1 << 22)\r
28 #define DCDC_WPA                                        (1 << 23)\r
29 #define LDO_LPREF                                       (1 << 24)\r
30 #define LDO_XO                                          (1 << 25)\r
31 #define RESERVED_NUM                            (-1)\r
32 \r
33 #define NO_USED                                         (-2)/*for all no use*/\r
34 #define LP_DIS                                          (1)\r
35 #define LP_EN                                                   (2)\r
36 \r
37 #define BIT3(_X_)                                               ((BIT(3)-1)<<(3*_X_))\r
38 #define BIT8(_X_)                                               ((BIT(8)-1)<<(8*_X_))\r
39 \r
40 \r
41 //PLL\r
42 #define PLL_MPLL                                                (1 << 0)\r
43 #define PLL_DPLL                                                (1 << 1)\r
44 #define PLL_TDPLL                                               (1 << 2)\r
45 #define PLL_WPLL                                                (1 << 3)\r
46 #define PLL_CPLL                                                (1 << 4)\r
47 #define PLL_WIFIPLL1                                    (1 << 5)\r
48 #define PLL_WIFIPLL2                                    (1 << 6)\r
49 #define PLL_XTL0                                                (1 << 7)\r
50 #define PLL_XTL1                                                (1 << 8)\r
51 #define PLL_XTL2                                                (1 << 9)\r
52 #define PLL_XTLBUF0                                     (1 << 10)\r
53 #define PLL_XTLBUF1                                     (1 << 11)\r
54 \r
55 \r
56 #define PD_CA7_TOP                                      (1 << 0)\r
57 #define PD_CA7_C0                                       (1 << 1)\r
58 #define PD_CA7_C1                                       (1 << 2)\r
59 #define PD_CA7_C2                                       (1 << 3)\r
60 #define PD_CA7_C3                                       (1 << 4)\r
61 #define PD_AP_SYS                                       (1 << 5)\r
62 #define PD_MM_TOP                                       (1 << 6)\r
63 #define PD_GPU_TOP                                      (1 << 7)\r
64 #define PD_PUB_SYS                                      (1 << 8)\r
65 \r
66 /**\r
67         some ldos can only controled by ap. for example(shark):\r
68         ldo_cam/ldo_emmc/ldo_clsg/ldo_usb/ldo_sd\r
69 \r
70         All ldos lowpower mode and powerdown mode can triggered by ap(chip_sleep)\r
71         signals.\r
72 */\r
73 struct ldo_reg_bit {\r
74         unsigned int                                            ldo_id;\r
75 \r
76         unsigned int                                            ldo_pd_reg;\r
77         unsigned int                                            ldo_pd_reg_bitmsk;\r
78 \r
79         unsigned int                                            slp_pd_reg;\r
80         unsigned int                                            slp_pd_reg_bitmsk;\r
81 \r
82         unsigned int                                            slp_lp_reg;\r
83         unsigned int                                            slp_lp_reg_bitmsk;\r
84 \r
85         unsigned int                                            xtl_reg;\r
86         unsigned int                                            xtl_reg_bitmsk;\r
87 \r
88         unsigned int                                            ext_xtl_reg;\r
89         unsigned int                                            ext_xtl_reg_bitmsk;\r
90 };\r
91 \r
92 static struct ldo_reg_bit ldo_reg_tb[] = {\r
93         /* chip_id */           /* ldo_pd_reg */                                                /*slp_pd_reg*/                                          /*slp_lp_reg*/                                          /*xtl_reg*/                                                             /*ext_xtl_reg*/\r
94         { DCDC_BG,              ANA_REG_GLB_LDO_DCDC_PD, BIT(0),                -1, -1,                                                         ANA_REG_GLB_PWR_SLP_CTRL3, BIT(15),     ANA_REG_GLB_PWR_XTL_EN3, BIT(0)|BIT(1), ANA_REG_GLB_PWR_XTL_EN3, BIT(0)|BIT(1)  },\r
95         { LDO_VDD18,            ANA_REG_GLB_LDO_DCDC_PD, BIT(1),        ANA_REG_GLB_PWR_SLP_CTRL0, BIT(0),      ANA_REG_GLB_PWR_SLP_CTRL2, BIT(0),      ANA_REG_GLB_PWR_XTL_EN0, BIT(4)|BIT(5), ANA_REG_GLB_PWR_XTL_EN0, BIT(6)|BIT(7)  },\r
96         { LDO_VDD28,            ANA_REG_GLB_LDO_DCDC_PD, BIT(2),        ANA_REG_GLB_PWR_SLP_CTRL0, BIT(1),      ANA_REG_GLB_PWR_SLP_CTRL2, BIT(1),      ANA_REG_GLB_PWR_XTL_EN0, BIT(0)|BIT(1), ANA_REG_GLB_PWR_XTL_EN0, BIT(2)|BIT(3)  },\r
97         { LDO_VDD25,            ANA_REG_GLB_LDO_DCDC_PD, BIT(3),        ANA_REG_GLB_PWR_SLP_CTRL0, BIT(2),      ANA_REG_GLB_PWR_SLP_CTRL2, BIT(2),      ANA_REG_GLB_PWR_XTL_EN1, BIT(4)|BIT(5), ANA_REG_GLB_PWR_XTL_EN1, BIT(6)|BIT(7)  },\r
98         { LDO_CON,              ANA_REG_GLB_LDO_DCDC_PD, BIT(4),        ANA_REG_GLB_PWR_SLP_CTRL0, BIT(3),      ANA_REG_GLB_PWR_SLP_CTRL2, BIT(3),      ANA_REG_GLB_PWR_XTL_EN1, BIT(0)|BIT(1), ANA_REG_GLB_PWR_XTL_EN1, BIT(2)|BIT(3)  },\r
99         { LDO_DCXO,             ANA_REG_GLB_LDO_DCDC_PD, BIT(5),        ANA_REG_GLB_PWR_SLP_CTRL0, BIT(4),      ANA_REG_GLB_PWR_SLP_CTRL2, BIT(4),      ANA_REG_GLB_PWR_XTL_EN0, BIT(8)|BIT(9), ANA_REG_GLB_PWR_XTL_EN1, BIT(10)|BIT(11)        },\r
100         { LDO_EMMCIO,   ANA_REG_GLB_LDO_DCDC_PD, BIT(6),        ANA_REG_GLB_PWR_SLP_CTRL0, BIT(5),      ANA_REG_GLB_PWR_SLP_CTRL2, BIT(5),      -1, -1,                                                                 -1, -1                                                                  },\r
101         { LDO_EMMCCORE, ANA_REG_GLB_LDO_DCDC_PD, BIT(7),        ANA_REG_GLB_PWR_SLP_CTRL0, BIT(6),      ANA_REG_GLB_PWR_SLP_CTRL2, BIT(6),      -1, -1,                                                                 -1, -1                                                                  },\r
102         { LDO_RF0,              ANA_REG_GLB_LDO_DCDC_PD, BIT(8),        ANA_REG_GLB_PWR_SLP_CTRL0, BIT(7),      ANA_REG_GLB_PWR_SLP_CTRL2, BIT(7),      ANA_REG_GLB_PWR_XTL_EN1, BIT(8)|BIT(9), ANA_REG_GLB_PWR_XTL_EN1, BIT(10)|BIT(11)        },\r
103         { DCDC_CORE,    ANA_REG_GLB_LDO_DCDC_PD, BIT(9),        -1, -1,                                                         ANA_REG_GLB_PWR_SLP_CTRL2, BIT(12),     ANA_REG_GLB_PWR_XTL_EN4, BIT(0)|BIT(1), ANA_REG_GLB_PWR_XTL_EN4, BIT(2)|BIT(3)  },\r
104         { DCDC_ARM,             ANA_REG_GLB_LDO_DCDC_PD, BIT(10),       ANA_REG_GLB_PWR_SLP_CTRL0, BIT(8),      ANA_REG_GLB_PWR_SLP_CTRL2, BIT(10),     -1, -1,                                                                 -1, -1                                                                  },\r
105         { DCDC_MEM,             ANA_REG_GLB_LDO_DCDC_PD, BIT(11),       -1, -1,                                                         ANA_REG_GLB_PWR_SLP_CTRL2, BIT(11),     ANA_REG_GLB_PWR_XTL_EN4, BIT(8)|BIT(9), ANA_REG_GLB_PWR_XTL_EN4, BIT(10)|BIT(11)        },\r
106         { DCDC_GEN,             ANA_REG_GLB_LDO_DCDC_PD, BIT(12),       ANA_REG_GLB_PWR_SLP_CTRL0, BIT(10),     ANA_REG_GLB_PWR_SLP_CTRL2, BIT(9),      ANA_REG_GLB_PWR_XTL_EN4, BIT(4)|BIT(5), ANA_REG_GLB_PWR_XTL_EN4, BIT(6)|BIT(7)  },\r
107         { LDO_SD,               ANA_REG_GLB_LDO_PD_CTRL, BIT(0),                ANA_REG_GLB_PWR_SLP_CTRL1, BIT(0),      ANA_REG_GLB_PWR_SLP_CTRL3, BIT(0),      -1, -1,                                                                 -1, -1                                                                  },\r
108         { LDO_SIM0,             ANA_REG_GLB_LDO_PD_CTRL, BIT(1),                ANA_REG_GLB_PWR_SLP_CTRL1, BIT(1),      ANA_REG_GLB_PWR_SLP_CTRL3, BIT(1),      ANA_REG_GLB_PWR_XTL_EN2, BIT(0)|BIT(2), ANA_REG_GLB_PWR_XTL_EN2, BIT(2)|BIT(3)  },\r
109         { LDO_SIM1,             ANA_REG_GLB_LDO_PD_CTRL, BIT(2),                ANA_REG_GLB_PWR_SLP_CTRL1, BIT(2),      ANA_REG_GLB_PWR_SLP_CTRL3, BIT(2),      ANA_REG_GLB_PWR_XTL_EN2, BIT(4)|BIT(5), ANA_REG_GLB_PWR_XTL_EN2, BIT(6)|BIT(7)  },\r
110         { LDO_SIM2,             ANA_REG_GLB_LDO_PD_CTRL, BIT(3),                ANA_REG_GLB_PWR_SLP_CTRL1, BIT(3),      ANA_REG_GLB_PWR_SLP_CTRL3, BIT(3),      ANA_REG_GLB_PWR_XTL_EN2, BIT(8)|BIT(9), ANA_REG_GLB_PWR_XTL_EN2, BIT(10)|BIT(11)        },\r
111         { LDO_CAMA,             ANA_REG_GLB_LDO_PD_CTRL, BIT(4),                ANA_REG_GLB_PWR_SLP_CTRL1, BIT(4),      ANA_REG_GLB_PWR_SLP_CTRL3, BIT(4),      -1, -1,                                                                 -1, -1                                                                  },\r
112         { LDO_CAMD,             ANA_REG_GLB_LDO_PD_CTRL, BIT(5),                ANA_REG_GLB_PWR_SLP_CTRL1, BIT(5),      ANA_REG_GLB_PWR_SLP_CTRL3, BIT(5),      -1, -1,                                                                 -1, -1                                                                  },\r
113         { LDO_CAMIO,            ANA_REG_GLB_LDO_PD_CTRL, BIT(6),                ANA_REG_GLB_PWR_SLP_CTRL1, BIT(6),      ANA_REG_GLB_PWR_SLP_CTRL3, BIT(6),      -1, -1,                                                                 -1, -1                                                                  },\r
114         { LDO_CAMMOT,   ANA_REG_GLB_LDO_PD_CTRL, BIT(7),                ANA_REG_GLB_PWR_SLP_CTRL1, BIT(7),      ANA_REG_GLB_PWR_SLP_CTRL3, BIT(7),      -1, -1,                                                                 -1, -1                                                                  },\r
115         { LDO_USB,              ANA_REG_GLB_LDO_PD_CTRL, BIT(8),                ANA_REG_GLB_PWR_SLP_CTRL1, BIT(8),      ANA_REG_GLB_PWR_SLP_CTRL3, BIT(8),      -1, -1,                                                                 -1, -1                                                                  },\r
116         { LDO_CLSG,             ANA_REG_GLB_LDO_PD_CTRL, BIT(9),                ANA_REG_GLB_PWR_SLP_CTRL1, BIT(9),      ANA_REG_GLB_PWR_SLP_CTRL3, BIT(9),      -1, -1,                                                                 -1, -1                                                                  },\r
117         { DCDC_WPA,             ANA_REG_GLB_LDO_PD_CTRL, BIT(10),       ANA_REG_GLB_PWR_SLP_CTRL0, BIT(9),      ANA_REG_GLB_PWR_SLP_CTRL2, BIT(8),      ANA_REG_GLB_PWR_XTL_EN4, BIT(12)|BIT(13),       ANA_REG_GLB_PWR_XTL_EN4, BIT(14)|BIT(15)        },\r
118         { LDO_LPREF,            ANA_REG_GLB_LDO_PD_CTRL, BIT(11),       ANA_REG_GLB_PWR_SLP_CTRL1, BIT(10),     -1, -1,                                                         -1, -1,                                                                 -1, -1                                                                  },\r
119         { LDO_XO,               -1, -1,                                                         -1, -1,                                                         -1, -1,                                                         ANA_REG_GLB_PWR_XTL_EN3, BIT(4)|BIT(5), ANA_REG_GLB_PWR_XTL_EN3, BIT(6)|BIT(7)  },\r
120 \r
121         { RESERVED_NUM, -1, -1,                                                         -1, -1,                                                         -1, -1,                                                         -1, -1,                                                                 -1, -1,                                                                 }\r
122 };\r
123 \r
124 \r
125 struct pll_reg_bit {\r
126         unsigned int                                            pll_id;\r
127 \r
128         unsigned int                                            pll_sys_reg;\r
129         unsigned int                                            pll_sys_reg_bitmsk;\r
130 \r
131         unsigned int                                            cgm_ap_reg;\r
132         unsigned int                                            cgm_ap_reg_bitmsk;\r
133 \r
134         /*unsigned int cgm_ap_auto_reg;         */\r
135         /*unsigned int cgm_ap_auto_reg_bitmsk;  */\r
136 \r
137         unsigned int                                            pll_wait_reg;\r
138         unsigned int                                            pll_wait_reg_bitmsk;\r
139 };\r
140 \r
141 static struct pll_reg_bit pll_reg_tb[] = {\r
142         { PLL_MPLL,             REG_PMU_APB_MPLL_REL_CFG,               BIT3(0)|BIT(3), REG_PMU_APB_CGM_AP_EN, BIT(6),  REG_PMU_APB_PLL_WAIT_CNT1,      BIT8(0)         },\r
143         { PLL_DPLL,             REG_PMU_APB_DPLL_REL_CFG,               BIT3(0)|BIT(3), REG_PMU_APB_CGM_AP_EN, BIT(1),  REG_PMU_APB_PLL_WAIT_CNT1,      BIT8(1)         },\r
144         { PLL_TDPLL,            REG_PMU_APB_TDPLL_REL_CFG,              BIT3(0)|BIT(3)|BIT(4),  REG_PMU_APB_CGM_AP_EN, BIT(3),  REG_PMU_APB_PLL_WAIT_CNT1,      BIT8(2)         },\r
145         { PLL_WPLL,             REG_PMU_APB_WPLL_REL_CFG,               BIT3(0)|BIT(3)|BIT(4),  REG_PMU_APB_CGM_AP_EN, BIT(5),  REG_PMU_APB_PLL_WAIT_CNT1,      BIT8(3)         },\r
146         { PLL_CPLL,             REG_PMU_APB_CPLL_REL_CFG,               BIT3(0)|BIT(3), REG_PMU_APB_CGM_AP_EN, BIT(2),  REG_PMU_APB_PLL_WAIT_CNT2,      BIT8(0)         },\r
147         { PLL_WIFIPLL1, REG_PMU_APB_WIFIPLL1_REL_CFG,   BIT3(0)|BIT(3), REG_PMU_APB_CGM_AP_EN, BIT(4),  REG_PMU_APB_PLL_WAIT_CNT2,      BIT8(1)         },\r
148         { PLL_WIFIPLL2, REG_PMU_APB_WIFIPLL2_REL_CFG,   BIT3(0)|BIT(3), -1, -1,                                                 REG_PMU_APB_PLL_WAIT_CNT2,      BIT8(2)         },\r
149         { PLL_XTL0,             REG_PMU_APB_XTL0_REL_CFG,               BIT3(0)|BIT(3), -1, -1,                                                 REG_PMU_APB_XTL_WAIT_CNT,       BIT8(0)         },\r
150         { PLL_XTL1,             REG_PMU_APB_XTL1_REL_CFG,               BIT3(0)|BIT(3), -1, -1,                                                 REG_PMU_APB_XTL_WAIT_CNT,       BIT8(1)         },\r
151         { PLL_XTL2,             REG_PMU_APB_XTL2_REL_CFG,               BIT3(0)|BIT(3), -1, -1,                                                 -1, -1                                                                  },\r
152         { PLL_XTLBUF0,  REG_PMU_APB_XTLBUF0_REL_CFG,    BIT3(0)|BIT(3), -1, -1,                                                 REG_PMU_APB_XTLBUF_WAIT_CNT,BIT8(0)     },\r
153         { PLL_XTLBUF1,  REG_PMU_APB_XTLBUF1_REL_CFG,    BIT3(0)|BIT(3), -1, -1,                                                 REG_PMU_APB_XTLBUF_WAIT_CNT,BIT8(1)     },\r
154         { RESERVED_NUM, -1, -1,  -1, -1,  -1, -1 }\r
155 };\r
156 \r
157 struct pd_reg_bit {\r
158         unsigned int                                            pd_shutdown_id;\r
159         unsigned int                                            pd_reg;\r
160         unsigned int                                            iso_on_delay_bitmsk;\r
161         unsigned int                                            pwr_on_seq_delay_bitmsk;\r
162         unsigned int                                            pwr_on_delay_bitmsk;\r
163         unsigned int                                            auto_shutdown_bitmsk;\r
164         unsigned int                                            force_shutdown_bitmsk;\r
165         unsigned int                                            debug_shutdown_bitmsk;\r
166 };\r
167 \r
168 static struct pd_reg_bit shutdown_tb[] = {\r
169         { PD_CA7_TOP,           REG_PMU_APB_PD_CA7_TOP_CFG,     BIT8(0),        BIT8(1),        BIT8(2),        BIT(24),        BIT(25),        BIT(28) },\r
170         { PD_CA7_C0,                    REG_PMU_APB_PD_CA7_C0_CFG,              BIT8(0),        BIT8(1),        BIT8(2),        BIT(24),        BIT(25),        BIT(28) },\r
171         { PD_CA7_C1,                    REG_PMU_APB_PD_CA7_C1_CFG,              BIT8(0),        BIT8(1),        BIT8(2),        BIT(24),        BIT(25),        BIT(28) },\r
172         { PD_CA7_C2,                    REG_PMU_APB_PD_CA7_C2_CFG,              BIT8(0),        BIT8(1),        BIT8(2),        BIT(24),        BIT(25),        BIT(28) },\r
173         { PD_CA7_C3,                    REG_PMU_APB_PD_CA7_C3_CFG,              BIT8(0),        BIT8(1),        BIT8(2),        BIT(24),        BIT(25),        BIT(28) },\r
174         { PD_AP_SYS,                    REG_PMU_APB_PD_AP_SYS_CFG,              BIT8(0),        BIT8(1),        BIT8(2),        BIT(24),        BIT(25),        -1 },\r
175         { PD_MM_TOP,            REG_PMU_APB_PD_MM_TOP_CFG,      BIT8(0),        BIT8(1),        BIT8(2),        BIT(24),        BIT(25),        -1 },\r
176         { PD_GPU_TOP,           REG_PMU_APB_PD_GPU_TOP_CFG,     BIT8(0),        BIT8(1),        BIT8(2),        BIT(24),        BIT(25),        -1 },\r
177         { PD_PUB_SYS,           REG_PMU_APB_PD_PUB_SYS_CFG,     BIT8(0),        BIT8(1),        BIT8(2),        BIT(24),        BIT(25),        -1 },\r
178         { RESERVED_NUM,         -1,                                             -1,             -1,             -1,             -1,             -1,             -1 }\r
179 \r
180 };\r
181 \r
182 /*ldo chip definition*/\r
183 //typedef void (*ldo_status_in_sleep)(struct ldo_lowpower_cfg *ldo_lowpower_cfg);\r
184 #define SLP_LP_MODE                                     (1 << 0)        /* low power in ap sleep mode */\r
185 #define SLP_PD_MODE                                     (1 << 1)        /* power down in  ap sleep mode */\r
186 #define SLP_NO_MODE                                     (1 << 2)        /* all no used in  ap sleep mode */\r
187 \r
188 #define BY_XTL0                                         (1 << 0)\r
189 //#define BY_XTL1                                               (1 << 1)\r
190 #define BY_XTL2                                         (1 << 2)\r
191 #define BY_XTL_ALL                                      (BY_XTL0 | BY_XTL2)\r
192 \r
193 #define BY_EXT_XTL0                                     (1 << 0)\r
194 #define BY_EXT_XTL1                                     (1 << 1)\r
195 //#define BY_EXT_XTL2                                   (1 << 2)\r
196 #define BY_EXT_XTL_ALL                          (BY_EXT_XTL0 | BY_EXT_XTL1)\r
197 \r
198 struct ldo_lowpower_cfg {\r
199         unsigned int                                            ldo_id;\r
200 \r
201         unsigned int                                            ldo_pd;\r
202         unsigned int                                            status_in_sleep;\r
203         unsigned int                                            select_by_xtl;\r
204         unsigned int                                            select_by_ext_xtl;\r
205 \r
206         unsigned int                                            priority;\r
207 };\r
208 \r
209 #define AP_SYS                                          (1 << 0)\r
210 #define CP0_SYS                                         (1 << 1)\r
211 #define CP1_SYS                                         (1 << 2)\r
212 #define CP2_SYS                                         (1 << 3)\r
213 #define REF_SYS                                         (1 << 4)\r
214 \r
215 struct pll_cfg {\r
216         unsigned int                                            pll_id;\r
217 \r
218         unsigned int                                            sys;/*pls config acoording the real exist subsystem*/\r
219 \r
220         unsigned int                                            cgm_ap_en;\r
221         unsigned int                                            wait;\r
222         unsigned int                                            priority;\r
223 };\r
224 \r
225 struct shutdown_cfg {\r
226         unsigned int                                            pd_shutdown_id;\r
227         unsigned int                                            iso_on_delay;\r
228         unsigned int                                            pwr_on_seq_delay;\r
229         unsigned int                                            pwr_on_delay;\r
230 //#define AUTO_SHUTDOWN_DISEN 1\r
231 //#define AUTO_SHUTDOWN_EN 2\r
232         unsigned int                                            auto_shutdown;\r
233 //#define FORCE_SHUTDOWN_DISEN 1\r
234 //#define FORCE_SHUTDOWN_EN 2\r
235         unsigned int                                            force_shutdown;\r
236 //#define DEBUG_SHUTDOWN_DISEN 1\r
237 //#define DEBUG_SHUTDOWN_EN 2\r
238         unsigned int                                            debug_shutdown;\r
239         unsigned int                                            priority;\r
240 };\r
241 \r
242 struct lowpower {\r
243         struct ldo_reg_bit                                      *ldo_reg;\r
244         struct pll_reg_bit                                      *pll_reg;\r
245         struct pd_reg_bit                                       *pd_reg;\r
246         //ldo\r
247         struct ldo_lowpower_cfg                 *ldo_cfg;\r
248         //pll and sys\r
249         struct pll_cfg                                          *pll_sys_cfg;\r
250         //pd_shutdown\r
251         struct shutdown_cfg                             *pd_shutdown_cfg;\r
252 };\r
253 \r
254 void customize_low_power_init_prepare(struct ldo_lowpower_cfg *ldo,\r
255                                                                 struct pll_cfg *pll,\r
256                                                                 struct shutdown_cfg *shutdown);\r
257 void low_power_init(void);\r
258 \r
259 #endif\r