xref: /rk3399_rockchip-uboot/board/samsung/odroid/setup.h (revision 114cc4290b2f24bb314edf2edd5d8738a0778c4b)
1*bf3a08beSPrzemyslaw Marczak /*
2*bf3a08beSPrzemyslaw Marczak  * Copyright (C) 2014 Samsung Electronics
3*bf3a08beSPrzemyslaw Marczak  * Przemyslaw Marczak <p.marczak@samsung.com>
4*bf3a08beSPrzemyslaw Marczak  *
5*bf3a08beSPrzemyslaw Marczak  * SPDX-License-Identifier:	GPL-2.0+
6*bf3a08beSPrzemyslaw Marczak  */
7*bf3a08beSPrzemyslaw Marczak 
8*bf3a08beSPrzemyslaw Marczak #ifndef __ODROIDU3_SETUP__
9*bf3a08beSPrzemyslaw Marczak #define __ODROIDU3_SETUP__
10*bf3a08beSPrzemyslaw Marczak 
11*bf3a08beSPrzemyslaw Marczak /* A/M PLL_CON0 */
12*bf3a08beSPrzemyslaw Marczak #define SDIV(x)                 ((x) & 0x7)
13*bf3a08beSPrzemyslaw Marczak #define PDIV(x)                 (((x) & 0x3f) << 8)
14*bf3a08beSPrzemyslaw Marczak #define MDIV(x)                 (((x) & 0x3ff) << 16)
15*bf3a08beSPrzemyslaw Marczak #define FSEL(x)                 (((x) & 0x1) << 27)
16*bf3a08beSPrzemyslaw Marczak #define PLL_LOCKED_BIT          (0x1 << 29)
17*bf3a08beSPrzemyslaw Marczak #define PLL_ENABLE(x)           (((x) & 0x1) << 31)
18*bf3a08beSPrzemyslaw Marczak 
19*bf3a08beSPrzemyslaw Marczak /* CLK_SRC_CPU */
20*bf3a08beSPrzemyslaw Marczak #define MUX_APLL_SEL(x)         ((x) & 0x1)
21*bf3a08beSPrzemyslaw Marczak #define MUX_CORE_SEL(x)         (((x) & 0x1) << 16)
22*bf3a08beSPrzemyslaw Marczak #define MUX_HPM_SEL(x)          (((x) & 0x1) << 20)
23*bf3a08beSPrzemyslaw Marczak #define MUX_MPLL_USER_SEL_C(x)  (((x) & 0x1) << 24)
24*bf3a08beSPrzemyslaw Marczak 
25*bf3a08beSPrzemyslaw Marczak #define MUX_STAT_CHANGING       0x100
26*bf3a08beSPrzemyslaw Marczak 
27*bf3a08beSPrzemyslaw Marczak /* CLK_MUX_STAT_CPU */
28*bf3a08beSPrzemyslaw Marczak #define APLL_SEL(x)             ((x) & 0x7)
29*bf3a08beSPrzemyslaw Marczak #define CORE_SEL(x)             (((x) & 0x7) << 16)
30*bf3a08beSPrzemyslaw Marczak #define HPM_SEL(x)              (((x) & 0x7) << 20)
31*bf3a08beSPrzemyslaw Marczak #define MPLL_USER_SEL_C(x)      (((x) & 0x7) << 24)
32*bf3a08beSPrzemyslaw Marczak #define MUX_STAT_CPU_CHANGING   (APLL_SEL(MUX_STAT_CHANGING) | \
33*bf3a08beSPrzemyslaw Marczak 				CORE_SEL(MUX_STAT_CHANGING) | \
34*bf3a08beSPrzemyslaw Marczak 				HPM_SEL(MUX_STAT_CHANGING) | \
35*bf3a08beSPrzemyslaw Marczak 				MPLL_USER_SEL_C(MUX_STAT_CHANGING))
36*bf3a08beSPrzemyslaw Marczak 
37*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_CPU0 */
38*bf3a08beSPrzemyslaw Marczak #define CORE_RATIO(x)           ((x) & 0x7)
39*bf3a08beSPrzemyslaw Marczak #define COREM0_RATIO(x)         (((x) & 0x7) << 4)
40*bf3a08beSPrzemyslaw Marczak #define COREM1_RATIO(x)         (((x) & 0x7) << 8)
41*bf3a08beSPrzemyslaw Marczak #define PERIPH_RATIO(x)         (((x) & 0x7) << 12)
42*bf3a08beSPrzemyslaw Marczak #define ATB_RATIO(x)            (((x) & 0x7) << 16)
43*bf3a08beSPrzemyslaw Marczak #define PCLK_DBG_RATIO(x)       (((x) & 0x7) << 20)
44*bf3a08beSPrzemyslaw Marczak #define APLL_RATIO(x)           (((x) & 0x7) << 24)
45*bf3a08beSPrzemyslaw Marczak #define CORE2_RATIO(x)          (((x) & 0x7) << 28)
46*bf3a08beSPrzemyslaw Marczak 
47*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_STAT_CPU0 */
48*bf3a08beSPrzemyslaw Marczak #define DIV_CORE(x)             ((x) & 0x1)
49*bf3a08beSPrzemyslaw Marczak #define DIV_COREM0(x)           (((x) & 0x1) << 4)
50*bf3a08beSPrzemyslaw Marczak #define DIV_COREM1(x)           (((x) & 0x1) << 8)
51*bf3a08beSPrzemyslaw Marczak #define DIV_PERIPH(x)           (((x) & 0x1) << 12)
52*bf3a08beSPrzemyslaw Marczak #define DIV_ATB(x)              (((x) & 0x1) << 16)
53*bf3a08beSPrzemyslaw Marczak #define DIV_PCLK_DBG(x)         (((x) & 0x1) << 20)
54*bf3a08beSPrzemyslaw Marczak #define DIV_APLL(x)             (((x) & 0x1) << 24)
55*bf3a08beSPrzemyslaw Marczak #define DIV_CORE2(x)            (((x) & 0x1) << 28)
56*bf3a08beSPrzemyslaw Marczak 
57*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_CHANGING       0x1
58*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_CPU0_CHANGING  (DIV_CORE(DIV_STAT_CHANGING) | \
59*bf3a08beSPrzemyslaw Marczak 				DIV_COREM0(DIV_STAT_CHANGING) | \
60*bf3a08beSPrzemyslaw Marczak 				DIV_COREM1(DIV_STAT_CHANGING) | \
61*bf3a08beSPrzemyslaw Marczak 				DIV_PERIPH(DIV_STAT_CHANGING) | \
62*bf3a08beSPrzemyslaw Marczak 				DIV_ATB(DIV_STAT_CHANGING) | \
63*bf3a08beSPrzemyslaw Marczak 				DIV_PCLK_DBG(DIV_STAT_CHANGING) | \
64*bf3a08beSPrzemyslaw Marczak 				DIV_APLL(DIV_STAT_CHANGING) | \
65*bf3a08beSPrzemyslaw Marczak 				DIV_CORE2(DIV_STAT_CHANGING))
66*bf3a08beSPrzemyslaw Marczak 
67*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_CPU1 */
68*bf3a08beSPrzemyslaw Marczak #define COPY_RATIO(x)           ((x) & 0x7)
69*bf3a08beSPrzemyslaw Marczak #define HPM_RATIO(x)            (((x) & 0x7) << 4)
70*bf3a08beSPrzemyslaw Marczak #define CORES_RATIO(x)          (((x) & 0x7) << 8)
71*bf3a08beSPrzemyslaw Marczak 
72*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_STAT_CPU1 */
73*bf3a08beSPrzemyslaw Marczak #define DIV_COPY(x)             ((x) & 0x7)
74*bf3a08beSPrzemyslaw Marczak #define DIV_HPM(x)              (((x) & 0x1) << 4)
75*bf3a08beSPrzemyslaw Marczak #define DIV_CORES(x)            (((x) & 0x1) << 8)
76*bf3a08beSPrzemyslaw Marczak 
77*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_CPU1_CHANGING	(DIV_COPY(DIV_STAT_CHANGING) | \
78*bf3a08beSPrzemyslaw Marczak 				DIV_HPM(DIV_STAT_CHANGING) | \
79*bf3a08beSPrzemyslaw Marczak 				DIV_CORES(DIV_STAT_CHANGING))
80*bf3a08beSPrzemyslaw Marczak 
81*bf3a08beSPrzemyslaw Marczak /* CLK_SRC_DMC */
82*bf3a08beSPrzemyslaw Marczak #define MUX_C2C_SEL(x)		((x) & 0x1)
83*bf3a08beSPrzemyslaw Marczak #define MUX_DMC_BUS_SEL(x)	(((x) & 0x1) << 4)
84*bf3a08beSPrzemyslaw Marczak #define MUX_DPHY_SEL(x)		(((x) & 0x1) << 8)
85*bf3a08beSPrzemyslaw Marczak #define MUX_MPLL_SEL(x)		(((x) & 0x1) << 12)
86*bf3a08beSPrzemyslaw Marczak #define MUX_PWI_SEL(x)		(((x) & 0xf) << 16)
87*bf3a08beSPrzemyslaw Marczak #define MUX_G2D_ACP0_SEL(x)	(((x) & 0x1) << 20)
88*bf3a08beSPrzemyslaw Marczak #define MUX_G2D_ACP1_SEL(x)	(((x) & 0x1) << 24)
89*bf3a08beSPrzemyslaw Marczak #define MUX_G2D_ACP_SEL(x)	(((x) & 0x1) << 28)
90*bf3a08beSPrzemyslaw Marczak 
91*bf3a08beSPrzemyslaw Marczak /* CLK_MUX_STAT_DMC */
92*bf3a08beSPrzemyslaw Marczak #define C2C_SEL(x)		(((x)) & 0x7)
93*bf3a08beSPrzemyslaw Marczak #define DMC_BUS_SEL(x)		(((x) & 0x7) << 4)
94*bf3a08beSPrzemyslaw Marczak #define DPHY_SEL(x)		(((x) & 0x7) << 8)
95*bf3a08beSPrzemyslaw Marczak #define MPLL_SEL(x)		(((x) & 0x7) << 12)
96*bf3a08beSPrzemyslaw Marczak /* #define PWI_SEL(x)		(((x) & 0xf) << 16)  - Reserved */
97*bf3a08beSPrzemyslaw Marczak #define G2D_ACP0_SEL(x)		(((x) & 0x7) << 20)
98*bf3a08beSPrzemyslaw Marczak #define G2D_ACP1_SEL(x)		(((x) & 0x7) << 24)
99*bf3a08beSPrzemyslaw Marczak #define G2D_ACP_SEL(x)		(((x) & 0x7) << 28)
100*bf3a08beSPrzemyslaw Marczak 
101*bf3a08beSPrzemyslaw Marczak #define MUX_STAT_DMC_CHANGING	(C2C_SEL(MUX_STAT_CHANGING) | \
102*bf3a08beSPrzemyslaw Marczak 				DMC_BUS_SEL(MUX_STAT_CHANGING) | \
103*bf3a08beSPrzemyslaw Marczak 				DPHY_SEL(MUX_STAT_CHANGING) | \
104*bf3a08beSPrzemyslaw Marczak 				MPLL_SEL(MUX_STAT_CHANGING) |\
105*bf3a08beSPrzemyslaw Marczak 				G2D_ACP0_SEL(MUX_STAT_CHANGING) | \
106*bf3a08beSPrzemyslaw Marczak 				G2D_ACP1_SEL(MUX_STAT_CHANGING) | \
107*bf3a08beSPrzemyslaw Marczak 				G2D_ACP_SEL(MUX_STAT_CHANGING))
108*bf3a08beSPrzemyslaw Marczak 
109*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_DMC0 */
110*bf3a08beSPrzemyslaw Marczak #define ACP_RATIO(x)		((x) & 0x7)
111*bf3a08beSPrzemyslaw Marczak #define ACP_PCLK_RATIO(x)	(((x) & 0x7) << 4)
112*bf3a08beSPrzemyslaw Marczak #define DPHY_RATIO(x)		(((x) & 0x7) << 8)
113*bf3a08beSPrzemyslaw Marczak #define DMC_RATIO(x)		(((x) & 0x7) << 12)
114*bf3a08beSPrzemyslaw Marczak #define DMCD_RATIO(x)		(((x) & 0x7) << 16)
115*bf3a08beSPrzemyslaw Marczak #define DMCP_RATIO(x)		(((x) & 0x7) << 20)
116*bf3a08beSPrzemyslaw Marczak 
117*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_STAT_DMC0 */
118*bf3a08beSPrzemyslaw Marczak #define DIV_ACP(x)		((x) & 0x1)
119*bf3a08beSPrzemyslaw Marczak #define DIV_ACP_PCLK(x)		(((x) & 0x1) << 4)
120*bf3a08beSPrzemyslaw Marczak #define DIV_DPHY(x)		(((x) & 0x1) << 8)
121*bf3a08beSPrzemyslaw Marczak #define DIV_DMC(x)		(((x) & 0x1) << 12)
122*bf3a08beSPrzemyslaw Marczak #define DIV_DMCD(x)		(((x) & 0x1) << 16)
123*bf3a08beSPrzemyslaw Marczak #define DIV_DMCP(x)		(((x) & 0x1) << 20)
124*bf3a08beSPrzemyslaw Marczak 
125*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_DMC0_CHANGING	(DIV_ACP(DIV_STAT_CHANGING) | \
126*bf3a08beSPrzemyslaw Marczak 				DIV_ACP_PCLK(DIV_STAT_CHANGING) | \
127*bf3a08beSPrzemyslaw Marczak 				DIV_DPHY(DIV_STAT_CHANGING) | \
128*bf3a08beSPrzemyslaw Marczak 				DIV_DMC(DIV_STAT_CHANGING) | \
129*bf3a08beSPrzemyslaw Marczak 				DIV_DMCD(DIV_STAT_CHANGING) | \
130*bf3a08beSPrzemyslaw Marczak 				DIV_DMCP(DIV_STAT_CHANGING))
131*bf3a08beSPrzemyslaw Marczak 
132*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_DMC1 */
133*bf3a08beSPrzemyslaw Marczak #define G2D_ACP_RATIO(x)	((x) & 0xf)
134*bf3a08beSPrzemyslaw Marczak #define C2C_RATIO(x)		(((x) & 0x7) << 4)
135*bf3a08beSPrzemyslaw Marczak #define PWI_RATIO(x)		(((x) & 0xf) << 8)
136*bf3a08beSPrzemyslaw Marczak #define C2C_ACLK_RATIO(x)	(((x) & 0x7) << 12)
137*bf3a08beSPrzemyslaw Marczak #define DVSEM_RATIO(x)		(((x) & 0x7f) << 16)
138*bf3a08beSPrzemyslaw Marczak #define DPM_RATIO(x)		(((x) & 0x7f) << 24)
139*bf3a08beSPrzemyslaw Marczak 
140*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_STAT_DMC1 */
141*bf3a08beSPrzemyslaw Marczak #define DIV_G2D_ACP(x)		((x) & 0x1)
142*bf3a08beSPrzemyslaw Marczak #define DIV_C2C(x)		(((x) & 0x1) << 4)
143*bf3a08beSPrzemyslaw Marczak #define DIV_PWI(x)		(((x) & 0x1) << 8)
144*bf3a08beSPrzemyslaw Marczak #define DIV_C2C_ACLK(x)		(((x) & 0x1) << 12)
145*bf3a08beSPrzemyslaw Marczak #define DIV_DVSEM(x)		(((x) & 0x1) << 16)
146*bf3a08beSPrzemyslaw Marczak #define DIV_DPM(x)		(((x) & 0x1) << 24)
147*bf3a08beSPrzemyslaw Marczak 
148*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_DMC1_CHANGING	(DIV_G2D_ACP(DIV_STAT_CHANGING) | \
149*bf3a08beSPrzemyslaw Marczak 				DIV_C2C(DIV_STAT_CHANGING) | \
150*bf3a08beSPrzemyslaw Marczak 				DIV_PWI(DIV_STAT_CHANGING) | \
151*bf3a08beSPrzemyslaw Marczak 				DIV_C2C_ACLK(DIV_STAT_CHANGING) | \
152*bf3a08beSPrzemyslaw Marczak 				DIV_DVSEM(DIV_STAT_CHANGING) | \
153*bf3a08beSPrzemyslaw Marczak 				DIV_DPM(DIV_STAT_CHANGING))
154*bf3a08beSPrzemyslaw Marczak 
155*bf3a08beSPrzemyslaw Marczak /* Set CLK_SRC_PERIL0 */
156*bf3a08beSPrzemyslaw Marczak #define UART4_SEL(x)		(((x) & 0xf) << 16)
157*bf3a08beSPrzemyslaw Marczak #define UART3_SEL(x)		(((x) & 0xf) << 12)
158*bf3a08beSPrzemyslaw Marczak #define UART2_SEL(x)		(((x) & 0xf) << 8)
159*bf3a08beSPrzemyslaw Marczak #define UART1_SEL(x)		(((x) & 0xf) << 4)
160*bf3a08beSPrzemyslaw Marczak #define UART0_SEL(x)		((x) & 0xf)
161*bf3a08beSPrzemyslaw Marczak 
162*bf3a08beSPrzemyslaw Marczak /* Set CLK_DIV_PERIL0 */
163*bf3a08beSPrzemyslaw Marczak #define UART4_RATIO(x)		(((x) & 0xf) << 16)
164*bf3a08beSPrzemyslaw Marczak #define UART3_RATIO(x)		(((x) & 0xf) << 12)
165*bf3a08beSPrzemyslaw Marczak #define UART2_RATIO(x)		(((x) & 0xf) << 8)
166*bf3a08beSPrzemyslaw Marczak #define UART1_RATIO(x)		(((x) & 0xf) << 4)
167*bf3a08beSPrzemyslaw Marczak #define UART0_RATIO(x)		((x) & 0xf)
168*bf3a08beSPrzemyslaw Marczak 
169*bf3a08beSPrzemyslaw Marczak /* Set CLK_DIV_STAT_PERIL0 */
170*bf3a08beSPrzemyslaw Marczak #define DIV_UART4(x)		(((x) & 0x1) << 16)
171*bf3a08beSPrzemyslaw Marczak #define DIV_UART3(x)		(((x) & 0x1) << 12)
172*bf3a08beSPrzemyslaw Marczak #define DIV_UART2(x)		(((x) & 0x1) << 8)
173*bf3a08beSPrzemyslaw Marczak #define DIV_UART1(x)		(((x) & 0x1) << 4)
174*bf3a08beSPrzemyslaw Marczak #define DIV_UART0(x)		((x) & 0x1)
175*bf3a08beSPrzemyslaw Marczak 
176*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_PERIL0_CHANGING	(DIV_UART4(DIV_STAT_CHANGING) | \
177*bf3a08beSPrzemyslaw Marczak 					DIV_UART3(DIV_STAT_CHANGING) | \
178*bf3a08beSPrzemyslaw Marczak 					DIV_UART2(DIV_STAT_CHANGING) | \
179*bf3a08beSPrzemyslaw Marczak 					DIV_UART1(DIV_STAT_CHANGING) | \
180*bf3a08beSPrzemyslaw Marczak 					DIV_UART0(DIV_STAT_CHANGING))
181*bf3a08beSPrzemyslaw Marczak 
182*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_FSYS1 */
183*bf3a08beSPrzemyslaw Marczak #define MMC0_RATIO(x)		((x) & 0xf)
184*bf3a08beSPrzemyslaw Marczak #define MMC0_PRE_RATIO(x)	(((x) & 0xff) << 8)
185*bf3a08beSPrzemyslaw Marczak #define MMC1_RATIO(x)		(((x) & 0xf) << 16)
186*bf3a08beSPrzemyslaw Marczak #define MMC1_PRE_RATIO(x)	(((x) & 0xff) << 24)
187*bf3a08beSPrzemyslaw Marczak 
188*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_STAT_FSYS1 */
189*bf3a08beSPrzemyslaw Marczak #define DIV_MMC0(x)		((x) & 1)
190*bf3a08beSPrzemyslaw Marczak #define DIV_MMC0_PRE(x)		(((x) & 1) << 8)
191*bf3a08beSPrzemyslaw Marczak #define DIV_MMC1(x)		(((x) & 1) << 16)
192*bf3a08beSPrzemyslaw Marczak #define DIV_MMC1_PRE(x)		(((x) & 1) << 24)
193*bf3a08beSPrzemyslaw Marczak 
194*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_FSYS1_CHANGING		(DIV_MMC0(DIV_STAT_CHANGING) | \
195*bf3a08beSPrzemyslaw Marczak 					DIV_MMC0_PRE(DIV_STAT_CHANGING) | \
196*bf3a08beSPrzemyslaw Marczak 					DIV_MMC1(DIV_STAT_CHANGING) | \
197*bf3a08beSPrzemyslaw Marczak 					DIV_MMC1_PRE(DIV_STAT_CHANGING))
198*bf3a08beSPrzemyslaw Marczak 
199*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_FSYS2 */
200*bf3a08beSPrzemyslaw Marczak #define MMC2_RATIO(x)		((x) & 0xf)
201*bf3a08beSPrzemyslaw Marczak #define MMC2_PRE_RATIO(x)	(((x) & 0xff) << 8)
202*bf3a08beSPrzemyslaw Marczak #define MMC3_RATIO(x)		(((x) & 0xf) << 16)
203*bf3a08beSPrzemyslaw Marczak #define MMC3_PRE_RATIO(x)	(((x) & 0xff) << 24)
204*bf3a08beSPrzemyslaw Marczak 
205*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_STAT_FSYS2 */
206*bf3a08beSPrzemyslaw Marczak #define DIV_MMC2(x)		((x) & 0x1)
207*bf3a08beSPrzemyslaw Marczak #define DIV_MMC2_PRE(x)		(((x) & 0x1) << 8)
208*bf3a08beSPrzemyslaw Marczak #define DIV_MMC3(x)		(((x) & 0x1) << 16)
209*bf3a08beSPrzemyslaw Marczak #define DIV_MMC3_PRE(x)		(((x) & 0x1) << 24)
210*bf3a08beSPrzemyslaw Marczak 
211*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_FSYS2_CHANGING		(DIV_MMC2(DIV_STAT_CHANGING) | \
212*bf3a08beSPrzemyslaw Marczak 					DIV_MMC2_PRE(DIV_STAT_CHANGING) | \
213*bf3a08beSPrzemyslaw Marczak 					DIV_MMC3(DIV_STAT_CHANGING) | \
214*bf3a08beSPrzemyslaw Marczak 					DIV_MMC3_PRE(DIV_STAT_CHANGING))
215*bf3a08beSPrzemyslaw Marczak 
216*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_FSYS3 */
217*bf3a08beSPrzemyslaw Marczak #define MMC4_RATIO(x)		((x) & 0x7)
218*bf3a08beSPrzemyslaw Marczak #define MMC4_PRE_RATIO(x)	(((x) & 0xff) << 8)
219*bf3a08beSPrzemyslaw Marczak 
220*bf3a08beSPrzemyslaw Marczak /* CLK_DIV_STAT_FSYS3 */
221*bf3a08beSPrzemyslaw Marczak #define DIV_MMC4(x)		((x) & 0x1)
222*bf3a08beSPrzemyslaw Marczak #define DIV_MMC4_PRE(x)		(((x) & 0x1) << 8)
223*bf3a08beSPrzemyslaw Marczak 
224*bf3a08beSPrzemyslaw Marczak #define DIV_STAT_FSYS3_CHANGING		(DIV_MMC4(DIV_STAT_CHANGING) | \
225*bf3a08beSPrzemyslaw Marczak 					DIV_MMC4_PRE(DIV_STAT_CHANGING))
226*bf3a08beSPrzemyslaw Marczak 
227*bf3a08beSPrzemyslaw Marczak /* XCL205 GPIO config - Odroid U3 */
228*bf3a08beSPrzemyslaw Marczak #define XCL205_GPIO_BASE		EXYNOS4X12_GPIO_PART1_BASE
229*bf3a08beSPrzemyslaw Marczak #define XCL205_EN_GPIO_OFFSET		0x20 /* GPA1 */
230*bf3a08beSPrzemyslaw Marczak #define XCL205_EN_GPIO_PIN		1
231*bf3a08beSPrzemyslaw Marczak #define XCL205_EN_GPIO_CON		(XCL205_GPIO_BASE + \
232*bf3a08beSPrzemyslaw Marczak 					 XCL205_EN_GPIO_OFFSET)
233*bf3a08beSPrzemyslaw Marczak #define XCL205_EN_GPIO_CON_CFG		(S5P_GPIO_OUTPUT << \
234*bf3a08beSPrzemyslaw Marczak 					 4 * XCL205_EN_GPIO_PIN)
235*bf3a08beSPrzemyslaw Marczak #define XCL205_EN_GPIO_DAT_CFG		(0x1 << XCL205_EN_GPIO_PIN)
236*bf3a08beSPrzemyslaw Marczak #define XCL205_EN_GPIO_PUD_CFG		(S5P_GPIO_PULL_UP << \
237*bf3a08beSPrzemyslaw Marczak 					 2 * XCL205_EN_GPIO_PIN)
238*bf3a08beSPrzemyslaw Marczak #define XCL205_EN_GPIO_DRV_CFG		(S5P_GPIO_DRV_4X << \
239*bf3a08beSPrzemyslaw Marczak 					 2 * XCL205_EN_GPIO_PIN)
240*bf3a08beSPrzemyslaw Marczak 
241*bf3a08beSPrzemyslaw Marczak #define XCL205_STATE_GPIO_OFFSET	0x80 /* GPC1 */
242*bf3a08beSPrzemyslaw Marczak #define XCL205_STATE_GPIO_PIN		2
243*bf3a08beSPrzemyslaw Marczak #define XCL205_STATE_GPIO_CON		(XCL205_GPIO_BASE + \
244*bf3a08beSPrzemyslaw Marczak 					 XCL205_STATE_GPIO_OFFSET)
245*bf3a08beSPrzemyslaw Marczak #define XCL205_STATE_GPIO_DAT		XCL205_STATE_GPIO_CON + 0x4
246*bf3a08beSPrzemyslaw Marczak #define XCL205_STATE_GPIO_CON_CFG	(S5P_GPIO_INPUT << \
247*bf3a08beSPrzemyslaw Marczak 					4 * XCL205_STATE_GPIO_PIN)
248*bf3a08beSPrzemyslaw Marczak #define XCL205_STATE_GPIO_PUD_CFG	(S5P_GPIO_PULL_NONE << \
249*bf3a08beSPrzemyslaw Marczak 					 2 * XCL205_STATE_GPIO_PIN)
250*bf3a08beSPrzemyslaw Marczak 
251*bf3a08beSPrzemyslaw Marczak #ifdef CONFIG_BOARD_TYPES
252*bf3a08beSPrzemyslaw Marczak extern void sdelay(unsigned long);
253*bf3a08beSPrzemyslaw Marczak #endif
254*bf3a08beSPrzemyslaw Marczak 
255*bf3a08beSPrzemyslaw Marczak #endif /*__ODROIDU3_SETUP__ */
256