diff --git a/src/mainboard/google/gru/mainboard.c b/src/mainboard/google/gru/mainboard.c index 1c823f3e7c..b8a3e5521a 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 7c0dfd0594..d644f7d7c2 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 @@ -49,6 +50,13 @@ static void init_dvs_outputs(void) udelay(500); } +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) { /* @@ -68,6 +76,7 @@ void main(void) /* Init DVS to conservative values. */ init_dvs_outputs(); + prepare_sdmmc(); prepare_usb(); sdram_init(get_sdram_config());