diff options
author | Tim Wawrzynczak <twawrzynczak@chromium.org> | 2021-06-08 14:44:56 -0600 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2021-06-10 05:34:13 +0000 |
commit | 5fed1590e53d97b99bac123329767c1d8efe5862 (patch) | |
tree | 5f43c2030b678d07d8d51ec390b8324f93fb9e06 /src | |
parent | bc1445392fd021f7729e4d5f7e2c4639f1f64cf5 (diff) |
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 <twawrzynczak@chromium.org>
Change-Id: I3ae6c11ca8614d523f3402f1c1abb7c82124e473
Reviewed-on: https://review.coreboot.org/c/coreboot/+/55324
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: EricR Lai <ericr_lai@compal.corp-partner.google.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/mainboard/google/brya/mainboard.c | 11 | ||||
-rw-r--r-- | src/mainboard/google/brya/variants/baseboard/gpio.c | 6 | ||||
-rw-r--r-- | src/mainboard/google/brya/variants/baseboard/include/baseboard/variants.h | 1 |
3 files changed, 14 insertions, 4 deletions
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); |