[coreboot-gerrit] Patch set updated for coreboot: google/gru: pass the gpio power supply enable pin to bl31

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Thu Oct 6 17:30:48 CEST 2016


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16719

-gerrit

commit d4075f58e5f0ea30fac71d3c6f3fb6c040b835b7
Author: Lin Huang <hl at rock-chips.com>
Date:   Mon Aug 22 17:35:40 2016 -0700

    google/gru: pass the gpio power supply enable pin to bl31
    
    We need to disable some regulators when device goes into suspend.
    This means that we need to pass some gpios to bl31, and disable these
    gpios when bl31 runs the suspend function.
    
    BRANCH=None
    BUG=chrome-os-partner:56423
    TEST=enter suspend, measure suspend gpios go to low
    
    [pg: also update arm-trusted-firmware to match]
    
    Change-Id: Ia0835e16f7e65de6dd24a892241f0af542ec5b4b
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: 0f3332ef2136fd93f7faad579386ba5af003cf70
    Original-Change-Id: I03d0407e0ef035823519a997534dcfea078a7ccd
    Original-Signed-off-by: Lin Huang <hl at rock-chips.com>
    Original-Reviewed-on: https://chromium-review.googlesource.com/374046
    Original-Commit-Ready: Caesar Wang <wxt at rock-chips.com>
    Original-Tested-by: Caesar Wang <wxt at rock-chips.com>
    Original-Reviewed-by: Julius Werner <jwerner at chromium.org>
---
 3rdparty/arm-trusted-firmware        |  2 +-
 src/mainboard/google/gru/board.h     |  3 +++
 src/mainboard/google/gru/mainboard.c | 43 ++++++++++++++++++++++++++++++++++++
 3 files changed, 47 insertions(+), 1 deletion(-)

diff --git a/3rdparty/arm-trusted-firmware b/3rdparty/arm-trusted-firmware
index e4f51ee..bfd9251 160000
--- a/3rdparty/arm-trusted-firmware
+++ b/3rdparty/arm-trusted-firmware
@@ -1 +1 @@
-Subproject commit e4f51eee91187e980f5e0e436c65f325fc35c94b
+Subproject commit bfd925139fdbc2e87979849907b34843aa326994
diff --git a/src/mainboard/google/gru/board.h b/src/mainboard/google/gru/board.h
index 382c462..7880cca 100644
--- a/src/mainboard/google/gru/board.h
+++ b/src/mainboard/google/gru/board.h
@@ -25,6 +25,9 @@
 #define GPIO_POWEROFF	GPIO(1, A, 6)
 #define GPIO_RESET	GPIO(0, B, 3)
 #define GPIO_WP		GPIO(1, C, 2)
+#define GPIO_P15V_EN	GPIO(0, B, 2)
+#define GPIO_P30V_EN	GPIO(0, B, 4)
+#define GPIO_P18V_AUDIO_PWREN	GPIO(0, A, 2)
 
 void setup_chromeos_gpios(void);
 
diff --git a/src/mainboard/google/gru/mainboard.c b/src/mainboard/google/gru/mainboard.c
index 8359ca4..902228b 100644
--- a/src/mainboard/google/gru/mainboard.c
+++ b/src/mainboard/google/gru/mainboard.c
@@ -43,6 +43,48 @@ static void configure_emmc(void)
 	rkclk_configure_emmc();
 }
 
+static void register_gpio_suspend(void)
+{
+	/*
+	 * these 3 pin to disable gpio2 ~ gpio4 1.5v, 1.8v, 3.3v power supply
+	 * so need to shut down the power supply from high voltage to
+	 * low voltage, and consider register_bl31() appends to the front off
+	 * the list, we should register 1.5v enable pin to 3.3v enable pin
+	 */
+	static struct bl31_gpio_param param_p15_en = {
+		.h = {
+			.type = PARAM_SUSPEND_GPIO,
+		},
+		.gpio = {
+			.polarity = BL31_GPIO_LEVEL_LOW,
+		},
+	};
+	param_p15_en.gpio.index = GET_GPIO_NUM(GPIO_P15V_EN);
+	register_bl31_param(&param_p15_en.h);
+
+	static struct bl31_gpio_param param_p18_audio_en = {
+		.h = {
+			.type = PARAM_SUSPEND_GPIO,
+		},
+		.gpio = {
+			.polarity = BL31_GPIO_LEVEL_LOW,
+		},
+	};
+	param_p18_audio_en.gpio.index = GET_GPIO_NUM(GPIO_P18V_AUDIO_PWREN);
+	register_bl31_param(&param_p18_audio_en.h);
+
+	static struct bl31_gpio_param param_p30_en = {
+		.h = {
+			.type = PARAM_SUSPEND_GPIO,
+		},
+		.gpio = {
+			.polarity = BL31_GPIO_LEVEL_LOW,
+		},
+	};
+	param_p30_en.gpio.index = GET_GPIO_NUM(GPIO_P30V_EN);
+	register_bl31_param(&param_p30_en.h);
+}
+
 static void register_reset_to_bl31(void)
 {
 	static struct bl31_gpio_param param_reset = {
@@ -184,6 +226,7 @@ static void mainboard_init(device_t dev)
 	setup_usb();
 	register_reset_to_bl31();
 	register_poweroff_to_bl31();
+	register_gpio_suspend();
 }
 
 static void enable_backlight_booster(void)



More information about the coreboot-gerrit mailing list