<p>Ege Mihmanli has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/22516">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">google/gru: Add config for scarlet-derived boards<br><br>There is merit in having new boards use the pinouts and controls<br>in scarlet. This adds a config so new scarlet-derived boards can<br>easily use scarlet structure without going through every file<br>and adding new logic.<br><br>BRANCH=none<br>BUG=none<br>TEST=Run "emerge-scarlet coreboot"<br>Signed-off-by: egemih@chromium.org<br><br>Change-Id: Ia1ddb793020084b6905bbce215e66c304b9608de<br>---<br>M src/mainboard/google/gru/Kconfig<br>M src/mainboard/google/gru/board.h<br>M src/mainboard/google/gru/bootblock.c<br>M src/mainboard/google/gru/mainboard.c<br>M src/mainboard/google/gru/pwm_regulator.c<br>5 files changed, 27 insertions(+), 20 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/16/22516/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/src/mainboard/google/gru/Kconfig b/src/mainboard/google/gru/Kconfig<br>index 5eb35d4..3026c7e 100644<br>--- a/src/mainboard/google/gru/Kconfig<br>+++ b/src/mainboard/google/gru/Kconfig<br>@@ -35,6 +35,11 @@<br> default y if BOARD_GOOGLE_GRU || BOARD_GOOGLE_KEVIN || BOARD_GOOGLE_BOB<br> default n<br> <br>+config GRU_BASEBOARD_SCARLET<br>+ bool<br>+ default y if BOARD_GOOGLE_SCARLET<br>+ default n<br>+<br> config BOARD_SPECIFIC_OPTIONS<br> def_bool y<br> select BOARD_ID_AUTO<br>diff --git a/src/mainboard/google/gru/board.h b/src/mainboard/google/gru/board.h<br>index f95db57..d32d768 100644<br>--- a/src/mainboard/google/gru/board.h<br>+++ b/src/mainboard/google/gru/board.h<br>@@ -24,15 +24,15 @@<br> #define GPIO_RESET GPIO(0, B, 3)<br> #define GPIO_SDMMC_PWR GPIO(4, D, 5)<br> <br>-#if IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET)<br>+#if IS_ENABLED(CONFIG_GRU_BASEBOARD_SCARLET)<br> #define GPIO_BACKLIGHT GPIO(4, C, 5)<br> #define GPIO_EC_IN_RW GPIO(0, A, 1)<br> #define GPIO_EC_IRQ GPIO(1, C, 2)<br>-#define GPIO_P15V_EN dead_code_t(gpio_t, "PP1500 doesn't exist on Scarlet")<br>-#define GPIO_P18V_AUDIO_PWREN dead_code_t(gpio_t, "doesn't exist on Scarlet")<br>+#define GPIO_P15V_EN dead_code_t(gpio_t, "PP1500 doesn't exist on board.")<br>+#define GPIO_P18V_AUDIO_PWREN dead_code_t(gpio_t, "doesn't exist on board.")<br> #define GPIO_P30V_EN GPIO(0, B, 1)<br> #define GPIO_SPK_PA_EN GPIO(0, A, 2)<br>-#define GPIO_TP_RST_L dead_code_t(gpio_t, "don't need TP_RST_L on Scarlet")<br>+#define GPIO_TP_RST_L dead_code_t(gpio_t, "don't need TP_RST_L on board.")<br> #define GPIO_TPM_IRQ GPIO(1, C, 1)<br> #define GPIO_WP GPIO(0, B, 5)<br> #else<br>diff --git a/src/mainboard/google/gru/bootblock.c b/src/mainboard/google/gru/bootblock.c<br>index 162a7e5..a18a61c 100644<br>--- a/src/mainboard/google/gru/bootblock.c<br>+++ b/src/mainboard/google/gru/bootblock.c<br>@@ -44,8 +44,8 @@<br> */<br> write32(&rk3399_grf->io_vsel, RK_SETBITS(1 << 0));<br> <br>- /* Scarlet gpio4cd iodomain is 1.8V */<br>- if (IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET))<br>+ /* Scarlet-based gpio4cd iodomain is 1.8V */<br>+ if (IS_ENABLED(CONFIG_GRU_BASEBOARD_SCARLET))<br> write32(&rk3399_grf->io_vsel, RK_SETBITS(1 << 3));<br> <br> /* Reconfigure GPIO1 from dynamic voltage selection through GPIO0_B1 to<br>@@ -56,7 +56,7 @@<br> <br> /* Enable rails powering GPIO blocks, among other things. */<br> gpio_output(GPIO_P30V_EN, 1);<br>- if (!IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET))<br>+ if (!IS_ENABLED(CONFIG_GRU_BASEBOARD_SCARLET))<br> gpio_output(GPIO_P15V_EN, 1); /* Scarlet: EC-controlled */<br> <br> #if IS_ENABLED(CONFIG_DRIVERS_UART)<br>@@ -102,7 +102,7 @@<br> if (IS_ENABLED(CONFIG_GRU_HAS_TPM2)) {<br> rockchip_spi_init(CONFIG_DRIVER_TPM_SPI_BUS, 1500*KHz);<br> <br>- if (IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET)) {<br>+ if (IS_ENABLED(CONFIG_GRU_BASEBOARD_SCARLET)) {<br> gpio_input(GPIO(2, B, 1)); /* SPI2_MISO no-pull */<br> gpio_input(GPIO(2, B, 2)); /* SPI2_MOSI no-pull */<br> gpio_input(GPIO(2, B, 3)); /* SPI2_CLK no-pull */<br>diff --git a/src/mainboard/google/gru/mainboard.c b/src/mainboard/google/gru/mainboard.c<br>index 3721ce8..99b335a 100644<br>--- a/src/mainboard/google/gru/mainboard.c<br>+++ b/src/mainboard/google/gru/mainboard.c<br>@@ -34,7 +34,8 @@<br> <br> /*<br> * We have to drive the stronger pull-up within 1 second of powering up the<br>- * touchpad to prevent its firmware from falling into recovery. Not on Scarlet.<br>+ * touchpad to prevent its firmware from falling into recovery. Not on<br>+ * Scarlet-based boards.<br> */<br> static void configure_touchpad(void)<br> {<br>@@ -90,9 +91,10 @@<br> * with highest voltage first.<br> * Since register_bl31() appends to the front of the list, we need to<br> * register them backwards, with 1.5V coming first.<br>- * 1.5V and 1.8V are EC-controlled on Scarlet, so we skip them.<br>+ * 1.5V and 1.8V are EC-controlled on Scarlet derivatives,<br>+ * so we skip them.<br> */<br>- if (!IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET)) {<br>+ if (!IS_ENABLED(CONFIG_GRU_BASEBOARD_SCARLET)) {<br> static struct bl31_gpio_param param_p15_en = {<br> .h = { .type = PARAM_SUSPEND_GPIO },<br> .gpio = { .polarity = BL31_GPIO_LEVEL_LOW },<br>@@ -159,7 +161,7 @@<br> gpio_output(GPIO(2, A, 2), 1); /* SDMMC_SDIO_PWR_EN */<br> <br> /* set SDMMC_DET_L pin */<br>- if (IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET))<br>+ if (IS_ENABLED(CONFIG_GRU_BASEBOARD_SCARLET))<br> /*<br> * do not have external pull up, so need to<br> * set this pin internal pull up<br>@@ -170,10 +172,10 @@<br> <br> /*<br> * Keep sd card io domain 3v<br>- * In Scarlet this GPIO set to high will get 3v,<br>+ * In Scarlet derivatives, this GPIO set to high will get 3v,<br> * With other board variants setting this GPIO low results in 3V.<br> */<br>- if (IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET))<br>+ if (IS_ENABLED(CONFIG_GRU_BASEBOARD_SCARLET))<br> gpio_output(GPIO(2, D, 4), 1);<br> else<br> gpio_output(GPIO(2, D, 4), 0);<br>@@ -226,7 +228,7 @@<br> /* AUDIO IO domain 1.8V voltage selection */<br> write32(&rk3399_grf->io_vsel, RK_SETBITS(1 << 1));<br> <br>- if (!IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET))<br>+ if (!IS_ENABLED(CONFIG_GRU_BASEBOARD_SCARLET))<br> gpio_output(GPIO_P18V_AUDIO_PWREN, 1);<br> gpio_output(GPIO_SPK_PA_EN, 0);<br> <br>@@ -235,7 +237,7 @@<br> <br> static void configure_display(void)<br> {<br>- if (IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET)) {<br>+ if (IS_ENABLED(CONFIG_GRU_BASEBOARD_SCARLET)) {<br> gpio_output(GPIO(4, D, 1), 0); /* DISPLAY_RST_L */<br> gpio_output(GPIO(4, D, 3), 1); /* PPVARP_LCD */<br> mdelay(10);<br>@@ -340,7 +342,7 @@<br> setup_usb(0);<br> if (IS_ENABLED(CONFIG_GRU_HAS_WLAN_RESET))<br> assert_wifi_reset();<br>- if (!IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET)) {<br>+ if (!IS_ENABLED(CONFIG_GRU_BASEBOARD_SCARLET)) {<br> configure_touchpad(); /* Scarlet: works differently */<br> setup_usb(1); /* Scarlet: only one USB port */<br> }<br>diff --git a/src/mainboard/google/gru/pwm_regulator.c b/src/mainboard/google/gru/pwm_regulator.c<br>index 6a9f171..3ea37cf 100644<br>--- a/src/mainboard/google/gru/pwm_regulator.c<br>+++ b/src/mainboard/google/gru/pwm_regulator.c<br>@@ -48,7 +48,7 @@<br> [PWM_REGULATOR_CENTERLOG] = {7994, 10499}<br> };<br> <br>-/* Applies for Scarlet */<br>+/* Applies for Scarlet-based boards. */<br> int scarlet_pwm_design_voltage[][2] = {<br> [PWM_REGULATOR_GPU] = {7996, 10990},<br> [PWM_REGULATOR_BIG] = {8000, 12992},<br>@@ -63,7 +63,7 @@<br> #else<br> [PWM_REGULATOR_CENTERLOG] = -1,<br> #endif<br>-#if IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET)<br>+#if IS_ENABLED(CONFIG_GRU_BASEBOARD_SCARLET)<br> [PWM_REGULATOR_BIG] = 3,<br> #else<br> [PWM_REGULATOR_BIG] = 1,<br>@@ -85,7 +85,7 @@<br> } else if (IS_ENABLED(CONFIG_BOARD_GOOGLE_KEVIN) && board_id() >= 6) {<br> voltage_min = kevin6_pwm_design_voltage[pwm][0];<br> voltage_max = kevin6_pwm_design_voltage[pwm][1];<br>- } else if (IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET)) {<br>+ } else if (IS_ENABLED(CONFIG_GRU_BASEBOARD_SCARLET)) {<br> voltage_min = scarlet_pwm_design_voltage[pwm][0];<br> voltage_max = scarlet_pwm_design_voltage[pwm][1];<br> }<br></pre><p>To view, visit <a href="https://review.coreboot.org/22516">change 22516</a>. To unsubscribe, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/22516"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ia1ddb793020084b6905bbce215e66c304b9608de </div>
<div style="display:none"> Gerrit-Change-Number: 22516 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Ege Mihmanli <egemih@google.com> </div>