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