xref: /OK3568_Linux_fs/u-boot/arch/arm/include/asm/arch-sunxi/prcm.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Sunxi A31 Power Management Unit register definition.
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * (C) Copyright 2013 Oliver Schinagl <oliver@schinagl.nl>
5*4882a593Smuzhiyun  * http://linux-sunxi.org
6*4882a593Smuzhiyun  * Allwinner Technology Co., Ltd. <www.allwinnertech.com>
7*4882a593Smuzhiyun  * Berg Xing <bergxing@allwinnertech.com>
8*4882a593Smuzhiyun  * Tom Cubie <tangliang@allwinnertech.com>
9*4882a593Smuzhiyun  *
10*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0+
11*4882a593Smuzhiyun  */
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun #ifndef _SUNXI_PRCM_H
14*4882a593Smuzhiyun #define _SUNXI_PRCM_H
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun #define __PRCM_CPUS_CFG_PRE(n) (((n) & 0x3) << 4)
17*4882a593Smuzhiyun #define PRCM_CPUS_CFG_PRE_MASK __PRCM_CPUS_CFG_PRE(0x3)
18*4882a593Smuzhiyun #define __PRCM_CPUS_CFG_PRE_DIV(n) (((n) >> 1) - 1)
19*4882a593Smuzhiyun #define PRCM_CPUS_CFG_PRE_DIV(n) \
20*4882a593Smuzhiyun 	__PRCM_CPUS_CFG_PRE(__PRCM_CPUS_CFG_CLK_PRE(n))
21*4882a593Smuzhiyun #define __PRCM_CPUS_CFG_POST(n) (((n) & 0x1f) << 8)
22*4882a593Smuzhiyun #define PRCM_CPUS_CFG_POST_MASK __PRCM_CPUS_CFG_POST(0x1f)
23*4882a593Smuzhiyun #define __PRCM_CPUS_CFG_POST_DIV(n) ((n) - 1)
24*4882a593Smuzhiyun #define PRCM_CPUS_CFG_POST_DIV(n) \
25*4882a593Smuzhiyun 	__PRCM_CPUS_CFG_POST_DIV(__PRCM_CPUS_CFG_POST_DIV(n))
26*4882a593Smuzhiyun #define __PRCM_CPUS_CFG_CLK_SRC(n) (((n) & 0x3) << 16)
27*4882a593Smuzhiyun #define PRCM_CPUS_CFG_CLK_SRC_MASK __PRCM_CPUS_CFG_CLK_SRC(0x3)
28*4882a593Smuzhiyun #define __PRCM_CPUS_CFG_CLK_SRC_LOSC 0x0
29*4882a593Smuzhiyun #define __PRCM_CPUS_CFG_CLK_SRC_HOSC 0x1
30*4882a593Smuzhiyun #define __PRCM_CPUS_CFG_CLK_SRC_PLL6 0x2
31*4882a593Smuzhiyun #define __PRCM_CPUS_CFG_CLK_SRC_PDIV 0x3
32*4882a593Smuzhiyun #define PRCM_CPUS_CFG_CLK_SRC_LOSC \
33*4882a593Smuzhiyun 	__PRCM_CPUS_CFG_CLK_SRC(__PRCM_CPUS_CFG_CLK_SRC_LOSC)
34*4882a593Smuzhiyun #define PRCM_CPUS_CFG_CLK_SRC_HOSC \
35*4882a593Smuzhiyun 	__PRCM_CPUS_CFG_CLK_SRC(__PRCM_CPUS_CFG_CLK_SRC_HOSC)
36*4882a593Smuzhiyun #define PRCM_CPUS_CFG_CLK_SRC_PLL6 \
37*4882a593Smuzhiyun 	__PRCM_CPUS_CFG_CLK_SRC(__PRCM_CPUS_CFG_CLK_SRC_PLL6)
38*4882a593Smuzhiyun #define PRCM_CPUS_CFG_CLK_SRC_PDIV \
39*4882a593Smuzhiyun 	__PRCM_CPUS_CFG_CLK_SRC(__PRCM_CPUS_CFG_CLK_SRC_PDIV)
40*4882a593Smuzhiyun 
41*4882a593Smuzhiyun #define __PRCM_APB0_RATIO(n) (((n) & 0x3) << 0)
42*4882a593Smuzhiyun #define PRCM_APB0_RATIO_DIV_MASK __PRCM_APB0_RATIO_DIV(0x3)
43*4882a593Smuzhiyun #define __PRCM_APB0_RATIO_DIV(n) (((n) >> 1) - 1)
44*4882a593Smuzhiyun #define PRCM_APB0_RATIO_DIV(n) \
45*4882a593Smuzhiyun 	__PRCM_APB0_RATIO(__PRCM_APB0_RATIO_DIV(n))
46*4882a593Smuzhiyun 
47*4882a593Smuzhiyun #define PRCM_CPU_CFG_NEON_CLK_EN (0x1 << 0)
48*4882a593Smuzhiyun #define PRCM_CPU_CFG_CPU_CLK_EN (0x1 << 1)
49*4882a593Smuzhiyun 
50*4882a593Smuzhiyun #define PRCM_APB0_GATE_PIO (0x1 << 0)
51*4882a593Smuzhiyun #define PRCM_APB0_GATE_IR (0x1 << 1)
52*4882a593Smuzhiyun #define PRCM_APB0_GATE_TIMER01 (0x1 << 2)
53*4882a593Smuzhiyun #define PRCM_APB0_GATE_P2WI (0x1 << 3)		/* sun6i */
54*4882a593Smuzhiyun #define PRCM_APB0_GATE_RSB (0x1 << 3)		/* sun8i */
55*4882a593Smuzhiyun #define PRCM_APB0_GATE_UART (0x1 << 4)
56*4882a593Smuzhiyun #define PRCM_APB0_GATE_1WIRE (0x1 << 5)
57*4882a593Smuzhiyun #define PRCM_APB0_GATE_I2C (0x1 << 6)
58*4882a593Smuzhiyun 
59*4882a593Smuzhiyun #define PRCM_APB0_RESET_PIO (0x1 << 0)
60*4882a593Smuzhiyun #define PRCM_APB0_RESET_IR (0x1 << 1)
61*4882a593Smuzhiyun #define PRCM_APB0_RESET_TIMER01 (0x1 << 2)
62*4882a593Smuzhiyun #define PRCM_APB0_RESET_P2WI (0x1 << 3)
63*4882a593Smuzhiyun #define PRCM_APB0_RESET_UART (0x1 << 4)
64*4882a593Smuzhiyun #define PRCM_APB0_RESET_1WIRE (0x1 << 5)
65*4882a593Smuzhiyun #define PRCM_APB0_RESET_I2C (0x1 << 6)
66*4882a593Smuzhiyun 
67*4882a593Smuzhiyun #define PRCM_PLL_CTRL_PLL_BIAS (0x1 << 0)
68*4882a593Smuzhiyun #define PRCM_PLL_CTRL_HOSC_GAIN_ENH (0x1 << 1)
69*4882a593Smuzhiyun #define __PRCM_PLL_CTRL_USB_CLK_SRC(n) (((n) & 0x3) << 4)
70*4882a593Smuzhiyun #define PRCM_PLL_CTRL_USB_CLK_SRC_MASK \
71*4882a593Smuzhiyun 	__PRCM_PLL_CTRL_USB_CLK_SRC(0x3)
72*4882a593Smuzhiyun #define __PRCM_PLL_CTRL_USB_CLK_0 0x0
73*4882a593Smuzhiyun #define __PRCM_PLL_CTRL_USB_CLK_1 0x1
74*4882a593Smuzhiyun #define __PRCM_PLL_CTRL_USB_CLK_2 0x2
75*4882a593Smuzhiyun #define __PRCM_PLL_CTRL_USB_CLK_3 0x3
76*4882a593Smuzhiyun #define PRCM_PLL_CTRL_USB_CLK_0 \
77*4882a593Smuzhiyun 	__PRCM_PLL_CTRL_USB_CLK_SRC(__PRCM_PLL_CTRL_USB_CLK_0)
78*4882a593Smuzhiyun #define PRCM_PLL_CTRL_USB_CLK_1 \
79*4882a593Smuzhiyun 	__PRCM_PLL_CTRL_USB_CLK_SRC(__PRCM_PLL_CTRL_USB_CLK_1)
80*4882a593Smuzhiyun #define PRCM_PLL_CTRL_USB_CLK_2 \
81*4882a593Smuzhiyun 	__PRCM_PLL_CTRL_USB_CLK_SRC(__PRCM_PLL_CTRL_USB_CLK_2)
82*4882a593Smuzhiyun #define PRCM_PLL_CTRL_USB_CLK_3 \
83*4882a593Smuzhiyun 	__PRCM_PLL_CTRL_USB_CLK_SRC(__PRCM_PLL_CTRL_USB_CLK_3)
84*4882a593Smuzhiyun #define __PRCM_PLL_CTRL_INT_PLL_IN_SEL(n) (((n) & 0x3) << 12)
85*4882a593Smuzhiyun #define PRCM_PLL_CTRL_INT_PLL_IN_SEL_MASK \
86*4882a593Smuzhiyun 	__PRCM_PLL_CTRL_INT_PLL_IN_SEL(0x3)
87*4882a593Smuzhiyun #define PRCM_PLL_CTRL_INT_PLL_IN_SEL(n) \
88*4882a593Smuzhiyun 	__PRCM_PLL_CTRL_INT_PLL_IN_SEL(n)
89*4882a593Smuzhiyun #define __PRCM_PLL_CTRL_HOSC_CLK_SEL(n) (((n) & 0x3) << 20)
90*4882a593Smuzhiyun #define PRCM_PLL_CTRL_HOSC_CLK_SEL_MASK \
91*4882a593Smuzhiyun 	__PRCM_PLL_CTRL_HOSC_CLK_SEL(0x3)
92*4882a593Smuzhiyun #define __PRCM_PLL_CTRL_HOSC_CLK_0 0x0
93*4882a593Smuzhiyun #define __PRCM_PLL_CTRL_HOSC_CLK_1 0x1
94*4882a593Smuzhiyun #define __PRCM_PLL_CTRL_HOSC_CLK_2 0x2
95*4882a593Smuzhiyun #define __PRCM_PLL_CTRL_HOSC_CLK_3 0x3
96*4882a593Smuzhiyun #define PRCM_PLL_CTRL_HOSC_CLK_0 \
97*4882a593Smuzhiyun 	__PRCM_PLL_CTRL_HOSC_CLK_SEL(__PRCM_PLL_CTRL_HOSC_CLK_0)
98*4882a593Smuzhiyun #define PRCM_PLL_CTRL_HOSC_CLK_1 \
99*4882a593Smuzhiyun 	__PRCM_PLL_CTRL_HOSC_CLK_SEL(__PRCM_PLL_CTRL_HOSC_CLK_1)
100*4882a593Smuzhiyun #define PRCM_PLL_CTRL_HOSC_CLK_2 \
101*4882a593Smuzhiyun 	__PRCM_PLL_CTRL_HOSC_CLK_SEL(__PRCM_PLL_CTRL_HOSC_CLK_2)
102*4882a593Smuzhiyun #define PRCM_PLL_CTRL_HOSC_CLK_3 \
103*4882a593Smuzhiyun 	__PRCM_PLL_CTRL_HOSC_CLK_SEL(__PRCM_PLL_CTRL_HOSC_CLK_3)
104*4882a593Smuzhiyun #define PRCM_PLL_CTRL_PLL_TST_SRC_EXT (0x1 << 24)
105*4882a593Smuzhiyun #define PRCM_PLL_CTRL_LDO_DIGITAL_EN (0x1 << 0)
106*4882a593Smuzhiyun #define PRCM_PLL_CTRL_LDO_ANALOG_EN (0x1 << 1)
107*4882a593Smuzhiyun #define PRCM_PLL_CTRL_EXT_OSC_EN (0x1 << 2)
108*4882a593Smuzhiyun #define PRCM_PLL_CTRL_CLK_TST_EN (0x1 << 3)
109*4882a593Smuzhiyun #define PRCM_PLL_CTRL_IN_PWR_HIGH (0x1 << 15) /* 3.3 for hi 2.5 for lo */
110*4882a593Smuzhiyun #define __PRCM_PLL_CTRL_VDD_LDO_OUT(n) (((n) & 0x7) << 16)
111*4882a593Smuzhiyun #define PRCM_PLL_CTRL_LDO_OUT_MASK \
112*4882a593Smuzhiyun 	__PRCM_PLL_CTRL_LDO_OUT(0x7)
113*4882a593Smuzhiyun /* When using the low voltage 20 mV steps, and high voltage 30 mV steps */
114*4882a593Smuzhiyun #define PRCM_PLL_CTRL_LDO_OUT_L(n) \
115*4882a593Smuzhiyun 	__PRCM_PLL_CTRL_VDD_LDO_OUT((((n) - 1000) / 20) & 0x7)
116*4882a593Smuzhiyun #define PRCM_PLL_CTRL_LDO_OUT_H(n) \
117*4882a593Smuzhiyun 	__PRCM_PLL_CTRL_VDD_LDO_OUT((((n) - 1160) / 30) & 0x7)
118*4882a593Smuzhiyun #define PRCM_PLL_CTRL_LDO_OUT_LV(n) \
119*4882a593Smuzhiyun 	__PRCM_PLL_CTRL_VDD_LDO_OUT((((n) & 0x7) * 20) + 1000)
120*4882a593Smuzhiyun #define PRCM_PLL_CTRL_LDO_OUT_HV(n) \
121*4882a593Smuzhiyun 	__PRCM_PLL_CTRL_VDD_LDO_OUT((((n) & 0x7) * 30) + 1160)
122*4882a593Smuzhiyun #define PRCM_PLL_CTRL_LDO_KEY (0xa7 << 24)
123*4882a593Smuzhiyun #define PRCM_PLL_CTRL_LDO_KEY_MASK (0xff << 24)
124*4882a593Smuzhiyun 
125*4882a593Smuzhiyun #define PRCM_CLK_1WIRE_GATE (0x1 << 31)
126*4882a593Smuzhiyun 
127*4882a593Smuzhiyun #define __PRCM_CLK_MOD0_M(n) (((n) & 0xf) << 0)
128*4882a593Smuzhiyun #define PRCM_CLK_MOD0_M_MASK __PRCM_CLK_MOD0_M(0xf)
129*4882a593Smuzhiyun #define __PRCM_CLK_MOD0_M_X(n) (n - 1)
130*4882a593Smuzhiyun #define PRCM_CLK_MOD0_M(n) __PRCM_CLK_MOD0_M(__PRCM_CLK_MOD0_M_X(n))
131*4882a593Smuzhiyun #define PRCM_CLK_MOD0_OUT_PHASE(n) (((n) & 0x7) << 8)
132*4882a593Smuzhiyun #define PRCM_CLK_MOD0_OUT_PHASE_MASK(n) PRCM_CLK_MOD0_OUT_PHASE(0x7)
133*4882a593Smuzhiyun #define _PRCM_CLK_MOD0_N(n) (((n) & 0x3) << 16)
134*4882a593Smuzhiyun #define PRCM_CLK_MOD0_N_MASK __PRCM_CLK_MOD_N(0x3)
135*4882a593Smuzhiyun #define __PRCM_CLK_MOD0_N_X(n) (((n) >> 1) - 1)
136*4882a593Smuzhiyun #define PRCM_CLK_MOD0_N(n) __PRCM_CLK_MOD0_N(__PRCM_CLK_MOD0_N_X(n))
137*4882a593Smuzhiyun #define PRCM_CLK_MOD0_SMPL_PHASE(n) (((n) & 0x7) << 20)
138*4882a593Smuzhiyun #define PRCM_CLK_MOD0_SMPL_PHASE_MASK PRCM_CLK_MOD0_SMPL_PHASE(0x7)
139*4882a593Smuzhiyun #define PRCM_CLK_MOD0_SRC_SEL(n) (((n) & 0x7) << 24)
140*4882a593Smuzhiyun #define PRCM_CLK_MOD0_SRC_SEL_MASK PRCM_CLK_MOD0_SRC_SEL(0x7)
141*4882a593Smuzhiyun #define PRCM_CLK_MOD0_GATE_EN (0x1 << 31)
142*4882a593Smuzhiyun 
143*4882a593Smuzhiyun #define PRCM_APB0_RESET_PIO (0x1 << 0)
144*4882a593Smuzhiyun #define PRCM_APB0_RESET_IR (0x1 << 1)
145*4882a593Smuzhiyun #define PRCM_APB0_RESET_TIMER01 (0x1 << 2)
146*4882a593Smuzhiyun #define PRCM_APB0_RESET_P2WI (0x1 << 3)
147*4882a593Smuzhiyun #define PRCM_APB0_RESET_UART (0x1 << 4)
148*4882a593Smuzhiyun #define PRCM_APB0_RESET_1WIRE (0x1 << 5)
149*4882a593Smuzhiyun #define PRCM_APB0_RESET_I2C (0x1 << 6)
150*4882a593Smuzhiyun 
151*4882a593Smuzhiyun #define __PRCM_CLK_OUTD_M(n) (((n) & 0x7) << 8)
152*4882a593Smuzhiyun #define PRCM_CLK_OUTD_M_MASK __PRCM_CLK_OUTD_M(0x7)
153*4882a593Smuzhiyun #define __PRCM_CLK_OUTD_M_X() ((n) - 1)
154*4882a593Smuzhiyun #define PRCM_CLK_OUTD_M(n) __PRCM_CLK_OUTD_M(__PRCM_CLK_OUTD_M_X(n))
155*4882a593Smuzhiyun #define __PRCM_CLK_OUTD_N(n) (((n) & 0x7) << 20)
156*4882a593Smuzhiyun #define PRCM_CLK_OUTD_N_MASK __PRCM_CLK_OUTD_N(0x7)
157*4882a593Smuzhiyun #define __PRCM_CLK_OUTD_N_X(n) (((n) >> 1) - 1)
158*4882a593Smuzhiyun #define PRCM_CLK_OUTD_N(n) __PRCM_CLK_OUTD_N(__PRCM_CLK_OUTD_N_X(n)
159*4882a593Smuzhiyun #define __PRCM_CLK_OUTD_SRC_SEL(n) (((n) & 0x3) << 24)
160*4882a593Smuzhiyun #define PRCM_CLK_OUTD_SRC_SEL_MASK __PRCM_CLK_OUTD_SRC_SEL(0x3)
161*4882a593Smuzhiyun #define __PRCM_CLK_OUTD_SRC_LOSC2 0x0
162*4882a593Smuzhiyun #define __PRCM_CLK_OUTD_SRC_LOSC 0x1
163*4882a593Smuzhiyun #define __PRCM_CLK_OUTD_SRC_HOSC 0x2
164*4882a593Smuzhiyun #define __PRCM_CLK_OUTD_SRC_ERR 0x3
165*4882a593Smuzhiyun #define PRCM_CLK_OUTD_SRC_LOSC2 \
166*4882a593Smuzhiyun #deifne __PRCM_CLK_OUTD_SRC_SEL(__PRCM_CLK_OUTD_SRC_LOSC2)
167*4882a593Smuzhiyun #define PRCM_CLK_OUTD_SRC_LOSC \
168*4882a593Smuzhiyun #deifne __PRCM_CLK_OUTD_SRC_SEL(__PRCM_CLK_OUTD_SRC_LOSC)
169*4882a593Smuzhiyun #define PRCM_CLK_OUTD_SRC_HOSC \
170*4882a593Smuzhiyun #deifne __PRCM_CLK_OUTD_SRC_SEL(__PRCM_CLK_OUTD_SRC_HOSC)
171*4882a593Smuzhiyun #define PRCM_CLK_OUTD_SRC_ERR \
172*4882a593Smuzhiyun #deifne __PRCM_CLK_OUTD_SRC_SEL(__PRCM_CLK_OUTD_SRC_ERR)
173*4882a593Smuzhiyun #define PRCM_CLK_OUTD_EN (0x1 << 31)
174*4882a593Smuzhiyun 
175*4882a593Smuzhiyun #define PRCM_CPU0_PWROFF (0x1 << 0)
176*4882a593Smuzhiyun #define PRCM_CPU1_PWROFF (0x1 << 1)
177*4882a593Smuzhiyun #define PRCM_CPU2_PWROFF (0x1 << 2)
178*4882a593Smuzhiyun #define PRCM_CPU3_PWROFF (0x1 << 3)
179*4882a593Smuzhiyun #define PRCM_CPU_ALL_PWROFF (0xf << 0)
180*4882a593Smuzhiyun 
181*4882a593Smuzhiyun #define PRCM_VDD_SYS_DRAM_CH0_PAD_HOLD_PWROFF (0x1 << 0)
182*4882a593Smuzhiyun #define PRCM_VDD_SYS_DRAM_CH1_PAD_HOLD_PWROFF (0x1 << 1)
183*4882a593Smuzhiyun #define PRCM_VDD_SYS_AVCC_A_PWROFF (0x1 << 2)
184*4882a593Smuzhiyun #define PRCM_VDD_SYS_CPU0_VDD_PWROFF (0x1 << 3)
185*4882a593Smuzhiyun 
186*4882a593Smuzhiyun #define PRCM_VDD_GPU_PWROFF (0x1 << 0)
187*4882a593Smuzhiyun 
188*4882a593Smuzhiyun #define PRCM_VDD_SYS_RESET (0x1 << 0)
189*4882a593Smuzhiyun 
190*4882a593Smuzhiyun #define PRCM_CPU1_PWR_CLAMP(n) (((n) & 0xff) << 0)
191*4882a593Smuzhiyun #define PRCM_CPU1_PWR_CLAMP_MASK PRCM_CPU1_PWR_CLAMP(0xff)
192*4882a593Smuzhiyun 
193*4882a593Smuzhiyun #define PRCM_CPU2_PWR_CLAMP(n) (((n) & 0xff) << 0)
194*4882a593Smuzhiyun #define PRCM_CPU2_PWR_CLAMP_MASK PRCM_CPU2_PWR_CLAMP(0xff)
195*4882a593Smuzhiyun 
196*4882a593Smuzhiyun #define PRCM_CPU3_PWR_CLAMP(n) (((n) & 0xff) << 0)
197*4882a593Smuzhiyun #define PRCM_CPU3_PWR_CLAMP_MASK PRCM_CPU3_PWR_CLAMP(0xff)
198*4882a593Smuzhiyun 
199*4882a593Smuzhiyun #define PRCM_SEC_SWITCH_APB0_CLK_NONSEC (0x1 << 0)
200*4882a593Smuzhiyun #define PRCM_SEC_SWITCH_PLL_CFG_NONSEC (0x1 << 1)
201*4882a593Smuzhiyun #define PRCM_SEC_SWITCH_PWR_GATE_NONSEC (0x1 << 2)
202*4882a593Smuzhiyun 
203*4882a593Smuzhiyun #ifndef __ASSEMBLY__
204*4882a593Smuzhiyun #include <linux/compiler.h>
205*4882a593Smuzhiyun 
206*4882a593Smuzhiyun struct __packed sunxi_prcm_reg {
207*4882a593Smuzhiyun 	u32 cpus_cfg;		/* 0x000 */
208*4882a593Smuzhiyun 	u8 res0[0x8];		/* 0x004 */
209*4882a593Smuzhiyun 	u32 apb0_ratio;		/* 0x00c */
210*4882a593Smuzhiyun 	u32 cpu0_cfg;		/* 0x010 */
211*4882a593Smuzhiyun 	u32 cpu1_cfg;		/* 0x014 */
212*4882a593Smuzhiyun 	u32 cpu2_cfg;		/* 0x018 */
213*4882a593Smuzhiyun 	u32 cpu3_cfg;		/* 0x01c */
214*4882a593Smuzhiyun 	u8 res1[0x8];		/* 0x020 */
215*4882a593Smuzhiyun 	u32 apb0_gate;		/* 0x028 */
216*4882a593Smuzhiyun 	u8 res2[0x14];		/* 0x02c */
217*4882a593Smuzhiyun 	u32 pll_ctrl0;		/* 0x040 */
218*4882a593Smuzhiyun 	u32 pll_ctrl1;		/* 0x044 */
219*4882a593Smuzhiyun 	u8 res3[0x8];		/* 0x048 */
220*4882a593Smuzhiyun 	u32 clk_1wire;		/* 0x050 */
221*4882a593Smuzhiyun 	u32 clk_ir;		/* 0x054 */
222*4882a593Smuzhiyun 	u8 res4[0x58];		/* 0x058 */
223*4882a593Smuzhiyun 	u32 apb0_reset;		/* 0x0b0 */
224*4882a593Smuzhiyun 	u8 res5[0x3c];		/* 0x0b4 */
225*4882a593Smuzhiyun 	u32 clk_outd;		/* 0x0f0 */
226*4882a593Smuzhiyun 	u8 res6[0xc];		/* 0x0f4 */
227*4882a593Smuzhiyun 	u32 cpu_pwroff;		/* 0x100 */
228*4882a593Smuzhiyun 	u8 res7[0xc];		/* 0x104 */
229*4882a593Smuzhiyun 	u32 vdd_sys_pwroff;	/* 0x110 */
230*4882a593Smuzhiyun 	u8 res8[0x4];		/* 0x114 */
231*4882a593Smuzhiyun 	u32 gpu_pwroff;		/* 0x118 */
232*4882a593Smuzhiyun 	u8 res9[0x4];		/* 0x11c */
233*4882a593Smuzhiyun 	u32 vdd_pwr_reset;	/* 0x120 */
234*4882a593Smuzhiyun 	u8 res10[0x1c];		/* 0x124 */
235*4882a593Smuzhiyun 	u32 cpu_pwr_clamp[4];	/* 0x140 but first one is actually unused */
236*4882a593Smuzhiyun 	u8 res11[0x30];		/* 0x150 */
237*4882a593Smuzhiyun 	u32 dram_pwr;		/* 0x180 */
238*4882a593Smuzhiyun 	u8 res12[0xc];		/* 0x184 */
239*4882a593Smuzhiyun 	u32 dram_tst;		/* 0x190 */
240*4882a593Smuzhiyun 	u8 res13[0x3c];		/* 0x194 */
241*4882a593Smuzhiyun 	u32 prcm_sec_switch;	/* 0x1d0 */
242*4882a593Smuzhiyun };
243*4882a593Smuzhiyun 
244*4882a593Smuzhiyun void prcm_apb0_enable(u32 flags);
245*4882a593Smuzhiyun void prcm_apb0_disable(u32 flags);
246*4882a593Smuzhiyun 
247*4882a593Smuzhiyun #endif /* __ASSEMBLY__ */
248*4882a593Smuzhiyun #endif /* _PRCM_H */
249