diff --git a/src/mainboard/google/gru/mainboard.c b/src/mainboard/google/gru/mainboard.c index bb9b6fca98..57f1c0e946 100644 --- a/src/mainboard/google/gru/mainboard.c +++ b/src/mainboard/google/gru/mainboard.c @@ -155,7 +155,6 @@ static void register_poweroff_to_bl31(void) static void configure_sdmmc(void) { - gpio_output(GPIO(4, D, 5), 1); /* SDMMC_PWR_EN */ gpio_output(GPIO(2, A, 2), 1); /* SDMMC_SDIO_PWR_EN */ /* SDMMC_DET_L is different on Kevin board revision 0. */ diff --git a/src/mainboard/google/gru/romstage.c b/src/mainboard/google/gru/romstage.c index 7f84a2a2a1..b0b004a16e 100644 --- a/src/mainboard/google/gru/romstage.c +++ b/src/mainboard/google/gru/romstage.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -40,6 +41,13 @@ static void init_dvs_outputs(void) pwm_regulator_configure(PWM_REGULATOR_CENTERLOG, 950); } +static void prepare_sdmmc(void) +{ + /* Enable main SD rail early to allow ramp time before enabling SDIO + * rail. */ + gpio_output(GPIO(4, D, 5), 1); /* SDMMC_PWR_EN */ +} + static void prepare_usb(void) { /* @@ -59,6 +67,7 @@ void main(void) /* Init DVS to conservative values. */ init_dvs_outputs(); + prepare_sdmmc(); prepare_usb(); sdram_init(get_sdram_config());