From 5fed1590e53d97b99bac123329767c1d8efe5862 Mon Sep 17 00:00:00 2001 From: Tim Wawrzynczak Date: Tue, 8 Jun 2021 14:44:56 -0600 Subject: mb/google/brya: Add variant GPIO override functions Provide functions to allow for variants to override only a few pads from the baseboard table. BUG=b:189362981 Signed-off-by: Tim Wawrzynczak Change-Id: I3ae6c11ca8614d523f3402f1c1abb7c82124e473 Reviewed-on: https://review.coreboot.org/c/coreboot/+/55324 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh Reviewed-by: EricR Lai --- src/mainboard/google/brya/mainboard.c | 11 +++++++---- src/mainboard/google/brya/variants/baseboard/gpio.c | 6 ++++++ .../brya/variants/baseboard/include/baseboard/variants.h | 1 + 3 files changed, 14 insertions(+), 4 deletions(-) (limited to 'src/mainboard') diff --git a/src/mainboard/google/brya/mainboard.c b/src/mainboard/google/brya/mainboard.c index 99a060df7f..1bdd013fec 100644 --- a/src/mainboard/google/brya/mainboard.c +++ b/src/mainboard/google/brya/mainboard.c @@ -8,10 +8,13 @@ static void mainboard_init(void *chip_info) { - const struct pad_config *pads; - size_t num; - pads = variant_gpio_table(&num); - gpio_configure_pads(pads, num); + const struct pad_config *base_pads; + const struct pad_config *override_pads; + size_t base_num, override_num; + + base_pads = variant_gpio_table(&base_num); + override_pads = variant_gpio_override_table(&override_num); + gpio_configure_pads_with_override(base_pads, base_num, override_pads, override_num); } static void mainboard_dev_init(struct device *dev) diff --git a/src/mainboard/google/brya/variants/baseboard/gpio.c b/src/mainboard/google/brya/variants/baseboard/gpio.c index b7783c0ae2..697bda0374 100644 --- a/src/mainboard/google/brya/variants/baseboard/gpio.c +++ b/src/mainboard/google/brya/variants/baseboard/gpio.c @@ -406,6 +406,12 @@ const struct pad_config *__weak variant_gpio_table(size_t *num) return gpio_table; } +const struct pad_config *__weak variant_gpio_override_table(size_t *num) +{ + *num = 0; + return NULL; +} + const struct pad_config *__weak variant_early_gpio_table(size_t *num) { *num = ARRAY_SIZE(early_gpio_table); diff --git a/src/mainboard/google/brya/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/brya/variants/baseboard/include/baseboard/variants.h index fb105e806a..26640f17cd 100644 --- a/src/mainboard/google/brya/variants/baseboard/include/baseboard/variants.h +++ b/src/mainboard/google/brya/variants/baseboard/include/baseboard/variants.h @@ -12,6 +12,7 @@ */ const struct pad_config *variant_gpio_table(size_t *num); +const struct pad_config *variant_gpio_override_table(size_t *num); const struct pad_config *variant_early_gpio_table(size_t *num); const struct cros_gpio *variant_cros_gpios(size_t *num); -- cgit v1.2.3