summaryrefslogtreecommitdiff
path: root/src/mainboard/google
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard/google')
-rw-r--r--src/mainboard/google/gru/board.h2
-rw-r--r--src/mainboard/google/gru/bootblock.c10
-rw-r--r--src/mainboard/google/gru/mainboard.c47
3 files changed, 24 insertions, 35 deletions
diff --git a/src/mainboard/google/gru/board.h b/src/mainboard/google/gru/board.h
index cc7581da65..7237d46d2c 100644
--- a/src/mainboard/google/gru/board.h
+++ b/src/mainboard/google/gru/board.h
@@ -30,7 +30,7 @@
#define GPIO_EC_IRQ GPIO(1, C, 2)
#define GPIO_P15V_EN dead_code_t(gpio_t, "PP1500 doesn't exist on Scarlet")
#define GPIO_P18V_AUDIO_PWREN dead_code_t(gpio_t, "doesn't exist on Scarlet")
-#define GPIO_P30V_EN dead_code_t(gpio_t, "PP3000 doesn't exist on Scarlet")
+#define GPIO_P30V_EN GPIO(0, B, 1)
#define GPIO_TP_RST_L dead_code_t(gpio_t, "don't need TP_RST_L on Scarlet")
#define GPIO_TPM_IRQ GPIO(1, C, 1)
#define GPIO_WP GPIO(0, B, 5)
diff --git a/src/mainboard/google/gru/bootblock.c b/src/mainboard/google/gru/bootblock.c
index 01aa4bf47a..a3d31212c2 100644
--- a/src/mainboard/google/gru/bootblock.c
+++ b/src/mainboard/google/gru/bootblock.c
@@ -48,12 +48,10 @@ void bootblock_mainboard_early_init(void)
if (IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET))
write32(&rk3399_grf->io_vsel, RK_SETBITS(1 << 3));
- if (!IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET)) {
- /* Enable rails powering GPIO blocks, among other things.
- These are EC-controlled on Scarlet and already on. */
- gpio_output(GPIO_P15V_EN, 1);
- gpio_output(GPIO_P30V_EN, 1);
- }
+ /* Enable rails powering GPIO blocks, among other things. */
+ gpio_output(GPIO_P30V_EN, 1);
+ if (!IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET))
+ gpio_output(GPIO_P15V_EN, 1); /* Scarlet: EC-controlled */
#if IS_ENABLED(CONFIG_DRIVERS_UART)
_Static_assert(CONFIG_CONSOLE_SERIAL_UART_ADDRESS == UART2_BASE,
diff --git a/src/mainboard/google/gru/mainboard.c b/src/mainboard/google/gru/mainboard.c
index df3df4fcae..43fbb71183 100644
--- a/src/mainboard/google/gru/mainboard.c
+++ b/src/mainboard/google/gru/mainboard.c
@@ -90,36 +90,27 @@ static void register_gpio_suspend(void)
* with highest voltage first.
* Since register_bl31() appends to the front of the list, we need to
* register them backwards, with 1.5V coming first.
+ * 1.5V and 1.8V are EC-controlled on Scarlet, so we skip them.
*/
- static struct bl31_gpio_param param_p15_en = {
- .h = {
- .type = PARAM_SUSPEND_GPIO,
- },
- .gpio = {
- .polarity = BL31_GPIO_LEVEL_LOW,
- },
- };
- param_p15_en.gpio.index = GPIO_P15V_EN.raw;
- 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 = GPIO_P18V_AUDIO_PWREN.raw;
- register_bl31_param(&param_p18_audio_en.h);
+ if (!IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET)) {
+ static struct bl31_gpio_param param_p15_en = {
+ .h = { .type = PARAM_SUSPEND_GPIO },
+ .gpio = { .polarity = BL31_GPIO_LEVEL_LOW },
+ };
+ param_p15_en.gpio.index = GPIO_P15V_EN.raw;
+ 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 = GPIO_P18V_AUDIO_PWREN.raw;
+ 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,
- },
+ .h = { .type = PARAM_SUSPEND_GPIO },
+ .gpio = { .polarity = BL31_GPIO_LEVEL_LOW },
};
param_p30_en.gpio.index = GPIO_P30V_EN.raw;
register_bl31_param(&param_p30_en.h);
@@ -354,8 +345,8 @@ static void mainboard_init(device_t dev)
if (!IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET)) {
configure_touchpad(); /* Scarlet: works differently */
setup_usb(1); /* Scarlet: only one USB port */
- register_gpio_suspend(); /* Scarlet: all EC-controlled */
}
+ register_gpio_suspend();
register_reset_to_bl31();
register_poweroff_to_bl31();
register_apio_suspend();