summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Chen <marcochen@chromium.org>2019-07-15 08:50:35 +0800
committerMartin Roth <martinroth@google.com>2019-07-16 16:32:35 +0000
commit8a6174d6e8925fed42b16b2d8db8c6403c1b3368 (patch)
tree0b92bbb60abb91d93074749d69102ad86aa721a6
parent9310ff4b3df272c912347add5e45f270d003e2ed (diff)
downloadcoreboot-8a6174d6e8925fed42b16b2d8db8c6403c1b3368.tar.gz
coreboot-8a6174d6e8925fed42b16b2d8db8c6403c1b3368.tar.bz2
coreboot-8a6174d6e8925fed42b16b2d8db8c6403c1b3368.zip
mb/google/octopus: add variant_early_override_gpio_table
Allow variants to override GPIO configurations of baseboard in the bootblock stage. BUG=b:137033609 BRANCH=octopus TEST=built Change-Id: I18d380cdf58f0f24e1bb1bff394ed8a91188a22c Signed-off-by: Marco Chen <marcochen@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/34339 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com> Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
-rw-r--r--src/mainboard/google/octopus/bootblock.c8
-rw-r--r--src/mainboard/google/octopus/variants/baseboard/gpio.c6
-rw-r--r--src/mainboard/google/octopus/variants/baseboard/include/baseboard/variants.h1
3 files changed, 12 insertions, 3 deletions
diff --git a/src/mainboard/google/octopus/bootblock.c b/src/mainboard/google/octopus/bootblock.c
index 0c239db3694d..4da3e94b8345 100644
--- a/src/mainboard/google/octopus/bootblock.c
+++ b/src/mainboard/google/octopus/bootblock.c
@@ -21,8 +21,8 @@
void bootblock_mainboard_init(void)
{
- const struct pad_config *pads;
- size_t num;
+ const struct pad_config *pads, *override_pads;
+ size_t num, override_num;
lpc_configure_pads();
@@ -34,5 +34,7 @@ void bootblock_mainboard_init(void)
mainboard_ec_init();
pads = variant_early_gpio_table(&num);
- gpio_configure_pads(pads, num);
+ override_pads = variant_early_override_gpio_table(&override_num);
+ gpio_configure_pads_with_override(pads, num,
+ override_pads, override_num);
}
diff --git a/src/mainboard/google/octopus/variants/baseboard/gpio.c b/src/mainboard/google/octopus/variants/baseboard/gpio.c
index febf7792e7a7..82f4ee1618ff 100644
--- a/src/mainboard/google/octopus/variants/baseboard/gpio.c
+++ b/src/mainboard/google/octopus/variants/baseboard/gpio.c
@@ -299,6 +299,12 @@ const struct pad_config *__weak variant_override_gpio_table(size_t *num)
return NULL;
}
+const struct pad_config *__weak variant_early_override_gpio_table(size_t *num)
+{
+ *num = 0;
+ return NULL;
+}
+
/* GPIOs needed prior to ramstage. */
static const struct pad_config early_gpio_table[] = {
PAD_CFG_GPI(GPIO_190, NONE, DEEP), /* PCH_WP_OD */
diff --git a/src/mainboard/google/octopus/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/octopus/variants/baseboard/include/baseboard/variants.h
index 5374ace79563..33a8f525276b 100644
--- a/src/mainboard/google/octopus/variants/baseboard/include/baseboard/variants.h
+++ b/src/mainboard/google/octopus/variants/baseboard/include/baseboard/variants.h
@@ -26,6 +26,7 @@
const struct pad_config *variant_base_gpio_table(size_t *num);
const struct pad_config *variant_override_gpio_table(size_t *num);
const struct pad_config *variant_early_gpio_table(size_t *num);
+const struct pad_config *variant_early_override_gpio_table(size_t *num);
const struct pad_config *variant_sleep_gpio_table(size_t *num, int slp_typ);
/* Baseboard default swizzle. Can be reused if swizzle is same. */