diff options
Diffstat (limited to 'firmware/target/arm/imx233/sdmmc-imx233.c')
-rw-r--r-- | firmware/target/arm/imx233/sdmmc-imx233.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/firmware/target/arm/imx233/sdmmc-imx233.c b/firmware/target/arm/imx233/sdmmc-imx233.c index 99dd817ec6..164bf79eee 100644 --- a/firmware/target/arm/imx233/sdmmc-imx233.c +++ b/firmware/target/arm/imx233/sdmmc-imx233.c | |||
@@ -206,6 +206,17 @@ static void sdmmc_detect_callback(int ssp) | |||
206 | imx233_ssp_sdmmc_is_detect_inverted(ssp)); | 206 | imx233_ssp_sdmmc_is_detect_inverted(ssp)); |
207 | } | 207 | } |
208 | 208 | ||
209 | static void sdmmc_enable_pullups(int drive, bool pullup) | ||
210 | { | ||
211 | /* setup pins, never use alternatives pin on SSP1 because no device use it | ||
212 | * but this could be made a flag */ | ||
213 | int bus_width = SDMMC_MODE(drive) == MMC_MODE ? 8 : 4; | ||
214 | if(SDMMC_SSP(drive) == 1) | ||
215 | imx233_ssp_setup_ssp1_sd_mmc_pins(pullup, bus_width, false); | ||
216 | else | ||
217 | imx233_ssp_setup_ssp2_sd_mmc_pins(pullup, bus_width); | ||
218 | } | ||
219 | |||
209 | static void sdmmc_power(int drive, bool on) | 220 | static void sdmmc_power(int drive, bool on) |
210 | { | 221 | { |
211 | /* power chip if needed */ | 222 | /* power chip if needed */ |
@@ -223,13 +234,8 @@ static void sdmmc_power(int drive, bool on) | |||
223 | } | 234 | } |
224 | if(SDMMC_FLAGS(drive) & POWER_DELAY) | 235 | if(SDMMC_FLAGS(drive) & POWER_DELAY) |
225 | sleep(SDMMC_CONF(drive).power_delay); | 236 | sleep(SDMMC_CONF(drive).power_delay); |
226 | /* setup pins, never use alternatives pin on SSP1 because no device use it | 237 | /* enable pullups for identification */ |
227 | * but this could be made a flag */ | 238 | sdmmc_enable_pullups(drive, true); |
228 | int bus_width = SDMMC_MODE(drive) == MMC_MODE ? 8 : 4; | ||
229 | if(SDMMC_SSP(drive) == 1) | ||
230 | imx233_ssp_setup_ssp1_sd_mmc_pins(on, bus_width, PINCTRL_DRIVE_4mA, false); | ||
231 | else | ||
232 | imx233_ssp_setup_ssp2_sd_mmc_pins(on, bus_width, PINCTRL_DRIVE_4mA); | ||
233 | } | 239 | } |
234 | 240 | ||
235 | #define MCI_NO_RESP 0 | 241 | #define MCI_NO_RESP 0 |