google/gru: power up SD card

Make sure SD card is powered up properly.

Please refer to TRM V0.3 Part1 Page 324 for sdmmc pinmux.

BRANCH=none
BUG=chrome-os-partner:51537
TEST=With other patches, boot into chromeos prompt

Change-Id: Ib53b05c1fce851ca7cbcc2207fce2dce3b1bfe9a
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: d37e688a458749e331a50c2ebf2018cba6629823
Original-Change-Id: I9f67c0bc16ddefa5ebe52a10c6d9e54194828a89
Original-Signed-off-by: Lin Huang <hl@rock-chips.com>
Original-Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/337192
Reviewed-on: https://review.coreboot.org/14718
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
diff --git a/src/mainboard/google/gru/mainboard.c b/src/mainboard/google/gru/mainboard.c
index 649f162..c24584e 100644
--- a/src/mainboard/google/gru/mainboard.c
+++ b/src/mainboard/google/gru/mainboard.c
@@ -15,9 +15,22 @@
  */
 
 #include <device/device.h>
+#include <gpio.h>
+#include <soc/clock.h>
+#include <soc/grf.h>
+
+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 */
+	gpio_input(GPIO(4, D, 2));      /* SDMMC_DET_L */
+	gpio_output(GPIO(2, D, 4), 0);  /* Keep the max voltage */
+	write32(&rk3399_grf->iomux_sdmmc, IOMUX_SDMMC);
+}
 
 static void mainboard_init(device_t dev)
 {
+	configure_sdmmc();
 }
 
 static void mainboard_enable(device_t dev)