xref: /rk3399_ARM-atf/plat/brcm/board/stingray/include/sdio.h (revision 926cd70a0cc3a0cbf209a87765a8dc0b869798e3)
1*3942d3a8SSheetal Tigadoli /*
2*3942d3a8SSheetal Tigadoli  * Copyright (c) 2019-2020, Broadcom
3*3942d3a8SSheetal Tigadoli  *
4*3942d3a8SSheetal Tigadoli  * SPDX-License-Identifier: BSD-3-Clause
5*3942d3a8SSheetal Tigadoli  */
6*3942d3a8SSheetal Tigadoli 
7*3942d3a8SSheetal Tigadoli #ifndef SDIO_H
8*3942d3a8SSheetal Tigadoli #define SDIO_H
9*3942d3a8SSheetal Tigadoli 
10*3942d3a8SSheetal Tigadoli #include <stdbool.h>
11*3942d3a8SSheetal Tigadoli 
12*3942d3a8SSheetal Tigadoli #define SR_IPROC_SDIO0_CFG_BASE      0x689006e4
13*3942d3a8SSheetal Tigadoli #define SR_IPROC_SDIO0_SID_BASE      0x68900b00
14*3942d3a8SSheetal Tigadoli #define SR_IPROC_SDIO0_PAD_BASE      0x68a4017c
15*3942d3a8SSheetal Tigadoli #define SR_IPROC_SDIO0_IOCTRL_BASE   0x68e02408
16*3942d3a8SSheetal Tigadoli 
17*3942d3a8SSheetal Tigadoli #define SR_IPROC_SDIO1_CFG_BASE      0x68900734
18*3942d3a8SSheetal Tigadoli #define SR_IPROC_SDIO1_SID_BASE      0x68900b08
19*3942d3a8SSheetal Tigadoli #define SR_IPROC_SDIO1_PAD_BASE      0x68a401b4
20*3942d3a8SSheetal Tigadoli #define SR_IPROC_SDIO1_IOCTRL_BASE   0x68e03408
21*3942d3a8SSheetal Tigadoli 
22*3942d3a8SSheetal Tigadoli #define NS3Z_IPROC_SDIO0_CFG_BASE    0x68a20540
23*3942d3a8SSheetal Tigadoli #define NS3Z_IPROC_SDIO0_SID_BASE    0x68900b00
24*3942d3a8SSheetal Tigadoli #define NS3Z_IPROC_SDIO0_TP_OUT_SEL  0x68a20308
25*3942d3a8SSheetal Tigadoli #define NS3Z_IPROC_SDIO0_PAD_BASE    0x68a20500
26*3942d3a8SSheetal Tigadoli #define NS3Z_IPROC_SDIO0_IOCTRL_BASE 0x68e02408
27*3942d3a8SSheetal Tigadoli 
28*3942d3a8SSheetal Tigadoli #define PHY_BYPASS      BIT(14)
29*3942d3a8SSheetal Tigadoli #define LEGACY_EN       BIT(31)
30*3942d3a8SSheetal Tigadoli #define PHY_DISABLE     (LEGACY_EN | PHY_BYPASS)
31*3942d3a8SSheetal Tigadoli 
32*3942d3a8SSheetal Tigadoli #define NS3Z_IPROC_SDIO1_CFG_BASE    0x68a30540
33*3942d3a8SSheetal Tigadoli #define NS3Z_IPROC_SDIO1_SID_BASE    0x68900b08
34*3942d3a8SSheetal Tigadoli #define NS3Z_IPROC_SDIO1_PAD_BASE    0x68a30500
35*3942d3a8SSheetal Tigadoli #define NS3Z_IPROC_SDIO1_IOCTRL_BASE 0x68e03408
36*3942d3a8SSheetal Tigadoli 
37*3942d3a8SSheetal Tigadoli #define ICFG_SDIO_CAP0          0x10
38*3942d3a8SSheetal Tigadoli #define ICFG_SDIO_CAP1          0x14
39*3942d3a8SSheetal Tigadoli #define ICFG_SDIO_STRAPSTATUS_0 0x0
40*3942d3a8SSheetal Tigadoli #define ICFG_SDIO_STRAPSTATUS_1 0x4
41*3942d3a8SSheetal Tigadoli #define ICFG_SDIO_STRAPSTATUS_2 0x8
42*3942d3a8SSheetal Tigadoli #define ICFG_SDIO_STRAPSTATUS_3 0xc
43*3942d3a8SSheetal Tigadoli #define ICFG_SDIO_STRAPSTATUS_4 0x18
44*3942d3a8SSheetal Tigadoli 
45*3942d3a8SSheetal Tigadoli #define ICFG_SDIO_SID_ARADDR    0x0
46*3942d3a8SSheetal Tigadoli #define ICFG_SDIO_SID_AWADDR    0x4
47*3942d3a8SSheetal Tigadoli 
48*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__SLOT_TYPE_MASK         0x3
49*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__SLOT_TYPE_SHIFT        27
50*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__INT_MODE_SHIFT         26
51*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__SYS_BUS_64BIT_SHIFT    25
52*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__VOLTAGE_1P8V_SHIFT     24
53*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__VOLTAGE_3P0V_SHIFT     23
54*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__VOLTAGE_3P3V_SHIFT     22
55*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__SUSPEND_RESUME_SHIFT   21
56*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__SDMA_SHIFT             20
57*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__HIGH_SPEED_SHIFT       19
58*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__ADMA2_SHIFT            18
59*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__EXTENDED_MEDIA_SHIFT   17
60*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__MAX_BLOCK_LEN_MASK     0x3
61*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__MAX_BLOCK_LEN_SHIFT    15
62*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__BASE_CLK_FREQ_MASK     0xff
63*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__BASE_CLK_FREQ_SHIFT    7
64*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__TIMEOUT_UNIT_SHIFT     6
65*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__TIMEOUT_CLK_FREQ_MASK  0x3f
66*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP0__TIMEOUT_CLK_FREQ_SHIFT 0
67*3942d3a8SSheetal Tigadoli 
68*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP1__SPI_BLOCK_MODE_SHIFT   22
69*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP1__SPI_MODE_SHIFT         21
70*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP1__CLK_MULT_MASK          0xff
71*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP1__CLK_MULT_SHIFT         13
72*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP1__RETUNING_MODE_MASK     0x3
73*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP1__RETUNING_MODE_SHIFT    11
74*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP1__TUNE_SDR50_SHIFT       10
75*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP1__TIME_RETUNE_MASK       0xf
76*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP1__TIME_RETUNE_SHIFT      6
77*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP1__DRIVER_D_SHIFT         5
78*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP1__DRIVER_C_SHIFT         4
79*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP1__DRIVER_A_SHIFT         3
80*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP1__DDR50_SHIFT            2
81*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP1__SDR104_SHIFT           1
82*3942d3a8SSheetal Tigadoli #define ICFG_SDIOx_CAP1__SDR50_SHIFT            0
83*3942d3a8SSheetal Tigadoli 
84*3942d3a8SSheetal Tigadoli #ifdef USE_DDR
85*3942d3a8SSheetal Tigadoli #define SDIO_DMA  1
86*3942d3a8SSheetal Tigadoli #else
87*3942d3a8SSheetal Tigadoli #define SDIO_DMA  0
88*3942d3a8SSheetal Tigadoli #endif
89*3942d3a8SSheetal Tigadoli 
90*3942d3a8SSheetal Tigadoli #define SDIO0_CAP0_CFG  \
91*3942d3a8SSheetal Tigadoli 	(0x1 << ICFG_SDIOx_CAP0__SLOT_TYPE_SHIFT) \
92*3942d3a8SSheetal Tigadoli 	| (0x0 << ICFG_SDIOx_CAP0__INT_MODE_SHIFT) \
93*3942d3a8SSheetal Tigadoli 	| (0x0 << ICFG_SDIOx_CAP0__SYS_BUS_64BIT_SHIFT) \
94*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP0__VOLTAGE_1P8V_SHIFT) \
95*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP0__VOLTAGE_3P0V_SHIFT) \
96*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP0__VOLTAGE_3P3V_SHIFT) \
97*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP0__SUSPEND_RESUME_SHIFT) \
98*3942d3a8SSheetal Tigadoli 	| (SDIO_DMA << ICFG_SDIOx_CAP0__SDMA_SHIFT) \
99*3942d3a8SSheetal Tigadoli 	| (SDIO_DMA << ICFG_SDIOx_CAP0__ADMA2_SHIFT) \
100*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP0__HIGH_SPEED_SHIFT) \
101*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP0__EXTENDED_MEDIA_SHIFT) \
102*3942d3a8SSheetal Tigadoli 	| (0x2 << ICFG_SDIOx_CAP0__MAX_BLOCK_LEN_SHIFT) \
103*3942d3a8SSheetal Tigadoli 	| (0xc8 << ICFG_SDIOx_CAP0__BASE_CLK_FREQ_SHIFT) \
104*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP0__TIMEOUT_UNIT_SHIFT) \
105*3942d3a8SSheetal Tigadoli 	| (0x30 << ICFG_SDIOx_CAP0__TIMEOUT_CLK_FREQ_SHIFT)
106*3942d3a8SSheetal Tigadoli 
107*3942d3a8SSheetal Tigadoli #define SDIO0_CAP1_CFG  \
108*3942d3a8SSheetal Tigadoli 	(0x1 << ICFG_SDIOx_CAP1__SPI_BLOCK_MODE_SHIFT)\
109*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP1__SPI_MODE_SHIFT)\
110*3942d3a8SSheetal Tigadoli 	| (0x0 << ICFG_SDIOx_CAP1__CLK_MULT_SHIFT)\
111*3942d3a8SSheetal Tigadoli 	| (0x2 << ICFG_SDIOx_CAP1__RETUNING_MODE_SHIFT)\
112*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP1__TUNE_SDR50_SHIFT)\
113*3942d3a8SSheetal Tigadoli 	| (0x0 << ICFG_SDIOx_CAP1__DRIVER_D_SHIFT)\
114*3942d3a8SSheetal Tigadoli 	| (0x0 << ICFG_SDIOx_CAP1__DRIVER_C_SHIFT)\
115*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP1__DRIVER_A_SHIFT)\
116*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP1__DDR50_SHIFT)\
117*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP1__SDR104_SHIFT)\
118*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP1__SDR50_SHIFT)
119*3942d3a8SSheetal Tigadoli 
120*3942d3a8SSheetal Tigadoli #define SDIO1_CAP0_CFG  \
121*3942d3a8SSheetal Tigadoli 	(0x0 << ICFG_SDIOx_CAP0__SLOT_TYPE_SHIFT) \
122*3942d3a8SSheetal Tigadoli 	| (0x0 << ICFG_SDIOx_CAP0__INT_MODE_SHIFT) \
123*3942d3a8SSheetal Tigadoli 	| (0x0 << ICFG_SDIOx_CAP0__SYS_BUS_64BIT_SHIFT) \
124*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP0__VOLTAGE_1P8V_SHIFT) \
125*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP0__VOLTAGE_3P0V_SHIFT) \
126*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP0__VOLTAGE_3P3V_SHIFT) \
127*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP0__SUSPEND_RESUME_SHIFT) \
128*3942d3a8SSheetal Tigadoli 	| (SDIO_DMA << ICFG_SDIOx_CAP0__SDMA_SHIFT) \
129*3942d3a8SSheetal Tigadoli 	| (SDIO_DMA << ICFG_SDIOx_CAP0__ADMA2_SHIFT) \
130*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP0__HIGH_SPEED_SHIFT) \
131*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP0__EXTENDED_MEDIA_SHIFT) \
132*3942d3a8SSheetal Tigadoli 	| (0x2 << ICFG_SDIOx_CAP0__MAX_BLOCK_LEN_SHIFT) \
133*3942d3a8SSheetal Tigadoli 	| (0xc8 << ICFG_SDIOx_CAP0__BASE_CLK_FREQ_SHIFT) \
134*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP0__TIMEOUT_UNIT_SHIFT) \
135*3942d3a8SSheetal Tigadoli 	| (0x30 << ICFG_SDIOx_CAP0__TIMEOUT_CLK_FREQ_SHIFT)
136*3942d3a8SSheetal Tigadoli 
137*3942d3a8SSheetal Tigadoli #define SDIO1_CAP1_CFG  \
138*3942d3a8SSheetal Tigadoli 	(0x1 << ICFG_SDIOx_CAP1__SPI_BLOCK_MODE_SHIFT)\
139*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP1__SPI_MODE_SHIFT)\
140*3942d3a8SSheetal Tigadoli 	| (0x0 << ICFG_SDIOx_CAP1__CLK_MULT_SHIFT)\
141*3942d3a8SSheetal Tigadoli 	| (0x2 << ICFG_SDIOx_CAP1__RETUNING_MODE_SHIFT)\
142*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP1__TUNE_SDR50_SHIFT)\
143*3942d3a8SSheetal Tigadoli 	| (0x0 << ICFG_SDIOx_CAP1__DRIVER_D_SHIFT)\
144*3942d3a8SSheetal Tigadoli 	| (0x0 << ICFG_SDIOx_CAP1__DRIVER_C_SHIFT)\
145*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP1__DRIVER_A_SHIFT)\
146*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP1__DDR50_SHIFT)\
147*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP1__SDR104_SHIFT)\
148*3942d3a8SSheetal Tigadoli 	| (0x1 << ICFG_SDIOx_CAP1__SDR50_SHIFT)
149*3942d3a8SSheetal Tigadoli 
150*3942d3a8SSheetal Tigadoli #define PAD_SDIO_CLK      0x4
151*3942d3a8SSheetal Tigadoli #define PAD_SDIO_DATA0    0x8
152*3942d3a8SSheetal Tigadoli #define PAD_SDIO_DATA1    0xc
153*3942d3a8SSheetal Tigadoli #define PAD_SDIO_DATA2    0x10
154*3942d3a8SSheetal Tigadoli #define PAD_SDIO_DATA3    0x14
155*3942d3a8SSheetal Tigadoli #define PAD_SDIO_DATA4    0x18
156*3942d3a8SSheetal Tigadoli #define PAD_SDIO_DATA5    0x1c
157*3942d3a8SSheetal Tigadoli #define PAD_SDIO_DATA6    0x20
158*3942d3a8SSheetal Tigadoli #define PAD_SDIO_DATA7    0x24
159*3942d3a8SSheetal Tigadoli #define PAD_SDIO_CMD      0x28
160*3942d3a8SSheetal Tigadoli 
161*3942d3a8SSheetal Tigadoli /* 12mA Drive strength*/
162*3942d3a8SSheetal Tigadoli #define PAD_SDIO_SELX     (0x5 << 1)
163*3942d3a8SSheetal Tigadoli #define PAD_SDIO_SRC      (1 << 0)
164*3942d3a8SSheetal Tigadoli #define PAD_SDIO_MASK     (0xF << 0)
165*3942d3a8SSheetal Tigadoli #define PAD_SDIO_VALUE    (PAD_SDIO_SELX | PAD_SDIO_SRC)
166*3942d3a8SSheetal Tigadoli 
167*3942d3a8SSheetal Tigadoli /*
168*3942d3a8SSheetal Tigadoli  * SDIO_PRESETVAL0
169*3942d3a8SSheetal Tigadoli  *
170*3942d3a8SSheetal Tigadoli  * Each 13 Bit filed consists:
171*3942d3a8SSheetal Tigadoli  * drivestrength - 12:11
172*3942d3a8SSheetal Tigadoli  * clkgensel - b10
173*3942d3a8SSheetal Tigadoli  * sdkclkfreqsel - 9:0
174*3942d3a8SSheetal Tigadoli  * Field		Bit(s)		Description
175*3942d3a8SSheetal Tigadoli  * ============================================================
176*3942d3a8SSheetal Tigadoli  * SDR25_PRESET		25:13		Preset Value for SDR25
177*3942d3a8SSheetal Tigadoli  * SDR50_PRESET		12:0		Preset Value for SDR50
178*3942d3a8SSheetal Tigadoli  */
179*3942d3a8SSheetal Tigadoli #define SDIO_PRESETVAL0		0x01005001
180*3942d3a8SSheetal Tigadoli 
181*3942d3a8SSheetal Tigadoli /*
182*3942d3a8SSheetal Tigadoli  * SDIO_PRESETVAL1
183*3942d3a8SSheetal Tigadoli  *
184*3942d3a8SSheetal Tigadoli  * Each 13 Bit filed consists:
185*3942d3a8SSheetal Tigadoli  * drivestrength - 12:11
186*3942d3a8SSheetal Tigadoli  * clkgensel - b10
187*3942d3a8SSheetal Tigadoli  * sdkclkfreqsel - 9:0
188*3942d3a8SSheetal Tigadoli  * Field		Bit(s)		Description
189*3942d3a8SSheetal Tigadoli  * ============================================================
190*3942d3a8SSheetal Tigadoli  * SDR104_PRESET		25:13		Preset Value for SDR104
191*3942d3a8SSheetal Tigadoli  * SDR12_PRESET		12:0		Preset Value for SDR12
192*3942d3a8SSheetal Tigadoli  */
193*3942d3a8SSheetal Tigadoli #define SDIO_PRESETVAL1		0x03000004
194*3942d3a8SSheetal Tigadoli 
195*3942d3a8SSheetal Tigadoli /*
196*3942d3a8SSheetal Tigadoli  * SDIO_PRESETVAL2
197*3942d3a8SSheetal Tigadoli  *
198*3942d3a8SSheetal Tigadoli  * Each 13 Bit filed consists:
199*3942d3a8SSheetal Tigadoli  * drivestrength - 12:11
200*3942d3a8SSheetal Tigadoli  * clkgensel - b10
201*3942d3a8SSheetal Tigadoli  * sdkclkfreqsel - 9:0
202*3942d3a8SSheetal Tigadoli  * Field		Bit(s)		Description
203*3942d3a8SSheetal Tigadoli  * ============================================================
204*3942d3a8SSheetal Tigadoli  * HIGH_SPEED_PRESET	25:13		Preset Value for High Speed
205*3942d3a8SSheetal Tigadoli  * INIT_PRESET		12:0		Preset Value for Initialization
206*3942d3a8SSheetal Tigadoli  */
207*3942d3a8SSheetal Tigadoli #define SDIO_PRESETVAL2		0x010040FA
208*3942d3a8SSheetal Tigadoli 
209*3942d3a8SSheetal Tigadoli /*
210*3942d3a8SSheetal Tigadoli  * SDIO_PRESETVAL3
211*3942d3a8SSheetal Tigadoli  *
212*3942d3a8SSheetal Tigadoli  * Each 13 Bit filed consists:
213*3942d3a8SSheetal Tigadoli  * drivestrength - 12:11
214*3942d3a8SSheetal Tigadoli  * clkgensel - b10
215*3942d3a8SSheetal Tigadoli  * sdkclkfreqsel - 9:0
216*3942d3a8SSheetal Tigadoli  * Field		Bit(s)		Description
217*3942d3a8SSheetal Tigadoli  * ============================================================
218*3942d3a8SSheetal Tigadoli  * DDR50_PRESET		25:13		Preset Value for DDR50
219*3942d3a8SSheetal Tigadoli  * DEFAULT_PRESET	12:0		Preset Value for Default Speed
220*3942d3a8SSheetal Tigadoli  */
221*3942d3a8SSheetal Tigadoli #define SDIO_PRESETVAL3		0x01004004
222*3942d3a8SSheetal Tigadoli 
223*3942d3a8SSheetal Tigadoli /*
224*3942d3a8SSheetal Tigadoli  * SDIO_PRESETVAL4
225*3942d3a8SSheetal Tigadoli  *
226*3942d3a8SSheetal Tigadoli  * Field			Bit(s)		Description
227*3942d3a8SSheetal Tigadoli  * ============================================================
228*3942d3a8SSheetal Tigadoli  * FORCE_USE_IP_TUNE_CLK	30		Force use IP clock
229*3942d3a8SSheetal Tigadoli  * TUNING_COUNT			29:24		Tuning count
230*3942d3a8SSheetal Tigadoli  * OVERRIDE_1P8V		23:16
231*3942d3a8SSheetal Tigadoli  * OVERRIDE_3P3V		15:8
232*3942d3a8SSheetal Tigadoli  * OVERRIDE_3P0V		7:0
233*3942d3a8SSheetal Tigadoli  */
234*3942d3a8SSheetal Tigadoli #define SDIO_PRESETVAL4		0x20010101
235*3942d3a8SSheetal Tigadoli 
236*3942d3a8SSheetal Tigadoli #define SDIO_SID_SHIFT		5
237*3942d3a8SSheetal Tigadoli 
238*3942d3a8SSheetal Tigadoli typedef struct {
239*3942d3a8SSheetal Tigadoli 	uintptr_t cfg_base;
240*3942d3a8SSheetal Tigadoli 	uintptr_t sid_base;
241*3942d3a8SSheetal Tigadoli 	uintptr_t io_ctrl_base;
242*3942d3a8SSheetal Tigadoli 	uintptr_t pad_base;
243*3942d3a8SSheetal Tigadoli } SDIO_CFG;
244*3942d3a8SSheetal Tigadoli 
245*3942d3a8SSheetal Tigadoli void brcm_stingray_sdio_init(void);
246*3942d3a8SSheetal Tigadoli 
247*3942d3a8SSheetal Tigadoli #endif /* SDIO_H */
248