From 62bb7d04dff1a87474a8557f144b24e6b7d006ae Mon Sep 17 00:00:00 2001 From: Hung-Te Lin Date: Thu, 24 Apr 2014 21:07:05 +0800 Subject: [PATCH] nyan*: Disable SD card reader power gpio. When warm booting, SD card reader on Tegra 124 needs to be reset by setting power GPIO to zero. Since we don't really access SD card in Coreboot, set it to zero and let payloads enable power when they need to access SD cards. CQ-DEPEND=CL:196783 BRANCH=nyan BUG=chrome-os-partner:27053 TEST=emerge-nyan coreboot depthcharge chromeos-bootimage # With related changes in depthcharge, boots SD card successfully. Change-Id: I2d368eb9480c978e9e343648b58a729028c94622 Signed-off-by: Hung-Te Lin Reviewed-on: https://chromium-review.googlesource.com/196774 Reviewed-by: David Hendricks Tested-by: Andrew Bresticker --- src/mainboard/google/nyan/mainboard.c | 9 +++++---- src/mainboard/google/nyan_big/mainboard.c | 9 +++++---- src/mainboard/google/nyan_blaze/mainboard.c | 9 +++++---- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/mainboard/google/nyan/mainboard.c b/src/mainboard/google/nyan/mainboard.c index 533ebe7464..e94f118363 100644 --- a/src/mainboard/google/nyan/mainboard.c +++ b/src/mainboard/google/nyan/mainboard.c @@ -97,7 +97,7 @@ static void setup_pinmux(void) pin_down = PINMUX_PULL_DOWN | PINMUX_INPUT_ENABLE, pin_none = PINMUX_PULL_NONE | PINMUX_INPUT_ENABLE; - // MMC3 + // MMC3 (sdcard reader) pinmux_set_config(PINMUX_SDMMC3_CLK_INDEX, PINMUX_SDMMC3_CLK_FUNC_SDMMC3 | pin_none); pinmux_set_config(PINMUX_SDMMC3_CMD_INDEX, @@ -117,10 +117,11 @@ static void setup_pinmux(void) // MMC3 Card Detect pin. gpio_input_pullup(GPIO(V2)); - // Enable MMC power. - gpio_output(GPIO(R0), 1); + // Disable SD card reader power so it can be reset even on warm boot. + // Payloads must enable power before accessing SD card slots. + gpio_output(GPIO(R0), 0); - // MMC4 + // MMC4 (eMMC) pinmux_set_config(PINMUX_SDMMC4_CLK_INDEX, PINMUX_SDMMC4_CLK_FUNC_SDMMC4 | pin_none); pinmux_set_config(PINMUX_SDMMC4_CMD_INDEX, diff --git a/src/mainboard/google/nyan_big/mainboard.c b/src/mainboard/google/nyan_big/mainboard.c index e7a8ff6087..8707257589 100644 --- a/src/mainboard/google/nyan_big/mainboard.c +++ b/src/mainboard/google/nyan_big/mainboard.c @@ -97,7 +97,7 @@ static void setup_pinmux(void) pin_down = PINMUX_PULL_DOWN | PINMUX_INPUT_ENABLE, pin_none = PINMUX_PULL_NONE | PINMUX_INPUT_ENABLE; - // MMC3 + // MMC3 (sdcard reader) pinmux_set_config(PINMUX_SDMMC3_CLK_INDEX, PINMUX_SDMMC3_CLK_FUNC_SDMMC3 | pin_none); pinmux_set_config(PINMUX_SDMMC3_CMD_INDEX, @@ -117,10 +117,11 @@ static void setup_pinmux(void) // MMC3 Card Detect pin. gpio_input_pullup(GPIO(V2)); - // Enable MMC power. - gpio_output(GPIO(R0), 1); + // Disable SD card reader power so it can be reset even on warm boot. + // Payloads must enable power before accessing SD card slots. + gpio_output(GPIO(R0), 0); - // MMC4 + // MMC4 (eMMC) pinmux_set_config(PINMUX_SDMMC4_CLK_INDEX, PINMUX_SDMMC4_CLK_FUNC_SDMMC4 | pin_none); pinmux_set_config(PINMUX_SDMMC4_CMD_INDEX, diff --git a/src/mainboard/google/nyan_blaze/mainboard.c b/src/mainboard/google/nyan_blaze/mainboard.c index a8da16a965..99f0288ce4 100644 --- a/src/mainboard/google/nyan_blaze/mainboard.c +++ b/src/mainboard/google/nyan_blaze/mainboard.c @@ -97,7 +97,7 @@ static void setup_pinmux(void) pin_down = PINMUX_PULL_DOWN | PINMUX_INPUT_ENABLE, pin_none = PINMUX_PULL_NONE | PINMUX_INPUT_ENABLE; - // MMC3 + // MMC3 (sdcard reader) pinmux_set_config(PINMUX_SDMMC3_CLK_INDEX, PINMUX_SDMMC3_CLK_FUNC_SDMMC3 | pin_none); pinmux_set_config(PINMUX_SDMMC3_CMD_INDEX, @@ -117,10 +117,11 @@ static void setup_pinmux(void) // MMC3 Card Detect pin. gpio_input_pullup(GPIO(V2)); - // Enable MMC power. - gpio_output(GPIO(R0), 1); + // Disable SD card reader power so it can be reset even on warm boot. + // Payloads must enable power before accessing SD card slots. + gpio_output(GPIO(R0), 0); - // MMC4 + // MMC4 (eMMC) pinmux_set_config(PINMUX_SDMMC4_CLK_INDEX, PINMUX_SDMMC4_CLK_FUNC_SDMMC4 | pin_none); pinmux_set_config(PINMUX_SDMMC4_CMD_INDEX,