Subrata Banik has submitted this change. ( https://review.coreboot.org/c/coreboot/+/82629?usp=email )
Change subject: mb/google/trulo: Refactor gpio pad configuration ......................................................................
mb/google/trulo: Refactor gpio pad configuration
This patch tries to simplify the baseboard/variant GPIO programming for Google/Trulo. The idea is to let each variant maintain its own complete GPIO PAD configuration table instead of having a back-and-forth call between baseboard and variants.
With this patch coreboot performing GPIO programming is now much simpler where the common code block calls into respective variants and gets the gpio table prior to the pad configuration.
BUG=b:334826281 ([TWL] Decouple GPIO from baseboard to variant) TEST=Able to build google/orisa.
Change-Id: I4ab88ac094a45c608cd894feb5eeec24b867527a Signed-off-by: Subrata Banik subratabanik@google.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/82629 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Eric Lai ericllai@google.com Reviewed-by: Dinesh Gehlot digehlot@google.com Reviewed-by: Kapil Porwal kapilporwal@google.com --- M src/mainboard/google/brya/variants/baseboard/trulo/Makefile.mk A src/mainboard/google/brya/variants/orisa/Makefile.mk R src/mainboard/google/brya/variants/orisa/gpio.c A src/mainboard/google/brya/variants/trulo/Makefile.mk C src/mainboard/google/brya/variants/trulo/gpio.c 5 files changed, 32 insertions(+), 17 deletions(-)
Approvals: Kapil Porwal: Looks good to me, approved Eric Lai: Looks good to me, approved Dinesh Gehlot: Looks good to me, approved build bot (Jenkins): Verified
diff --git a/src/mainboard/google/brya/variants/baseboard/trulo/Makefile.mk b/src/mainboard/google/brya/variants/baseboard/trulo/Makefile.mk index 54a5c5b..be05cd4 100644 --- a/src/mainboard/google/brya/variants/baseboard/trulo/Makefile.mk +++ b/src/mainboard/google/brya/variants/baseboard/trulo/Makefile.mk @@ -1,8 +1,3 @@ ## SPDX-License-Identifier: GPL-2.0-only
-bootblock-y += gpio.c - romstage-y += memory.c -romstage-y += gpio.c - -ramstage-y += gpio.c diff --git a/src/mainboard/google/brya/variants/orisa/Makefile.mk b/src/mainboard/google/brya/variants/orisa/Makefile.mk new file mode 100644 index 0000000..91f031e --- /dev/null +++ b/src/mainboard/google/brya/variants/orisa/Makefile.mk @@ -0,0 +1,5 @@ +## SPDX-License-Identifier: GPL-2.0-only + +bootblock-y += gpio.c +romstage-y += gpio.c +ramstage-y += gpio.c diff --git a/src/mainboard/google/brya/variants/baseboard/trulo/gpio.c b/src/mainboard/google/brya/variants/orisa/gpio.c similarity index 60% rename from src/mainboard/google/brya/variants/baseboard/trulo/gpio.c rename to src/mainboard/google/brya/variants/orisa/gpio.c index 410f194..beee6fc 100644 --- a/src/mainboard/google/brya/variants/baseboard/trulo/gpio.c +++ b/src/mainboard/google/brya/variants/orisa/gpio.c @@ -16,19 +16,24 @@ /* TODO */ };
-const struct pad_config *__weak variant_gpio_table(size_t *num) +/* Fill romstage gpio configuration */ +static const struct pad_config romstage_gpio_table[] = { + /* TODO */ +}; + +const struct pad_config *variant_gpio_table(size_t *num) { *num = ARRAY_SIZE(gpio_table); return gpio_table; }
-const struct pad_config *__weak variant_gpio_override_table(size_t *num) +const struct pad_config *variant_gpio_override_table(size_t *num) { *num = 0; return NULL; }
-const struct pad_config *__weak variant_early_gpio_table(size_t *num) +const struct pad_config *variant_early_gpio_table(size_t *num) { *num = ARRAY_SIZE(early_gpio_table); return early_gpio_table; @@ -39,8 +44,8 @@ }; DECLARE_CROS_GPIOS(cros_gpios);
-const struct pad_config *__weak variant_romstage_gpio_table(size_t *num) +const struct pad_config *variant_romstage_gpio_table(size_t *num) { - *num = 0; - return NULL; + *num = ARRAY_SIZE(romstage_gpio_table); + return romstage_gpio_table; } diff --git a/src/mainboard/google/brya/variants/trulo/Makefile.mk b/src/mainboard/google/brya/variants/trulo/Makefile.mk new file mode 100644 index 0000000..91f031e --- /dev/null +++ b/src/mainboard/google/brya/variants/trulo/Makefile.mk @@ -0,0 +1,5 @@ +## SPDX-License-Identifier: GPL-2.0-only + +bootblock-y += gpio.c +romstage-y += gpio.c +ramstage-y += gpio.c diff --git a/src/mainboard/google/brya/variants/baseboard/trulo/gpio.c b/src/mainboard/google/brya/variants/trulo/gpio.c similarity index 60% copy from src/mainboard/google/brya/variants/baseboard/trulo/gpio.c copy to src/mainboard/google/brya/variants/trulo/gpio.c index 410f194..beee6fc 100644 --- a/src/mainboard/google/brya/variants/baseboard/trulo/gpio.c +++ b/src/mainboard/google/brya/variants/trulo/gpio.c @@ -16,19 +16,24 @@ /* TODO */ };
-const struct pad_config *__weak variant_gpio_table(size_t *num) +/* Fill romstage gpio configuration */ +static const struct pad_config romstage_gpio_table[] = { + /* TODO */ +}; + +const struct pad_config *variant_gpio_table(size_t *num) { *num = ARRAY_SIZE(gpio_table); return gpio_table; }
-const struct pad_config *__weak variant_gpio_override_table(size_t *num) +const struct pad_config *variant_gpio_override_table(size_t *num) { *num = 0; return NULL; }
-const struct pad_config *__weak variant_early_gpio_table(size_t *num) +const struct pad_config *variant_early_gpio_table(size_t *num) { *num = ARRAY_SIZE(early_gpio_table); return early_gpio_table; @@ -39,8 +44,8 @@ }; DECLARE_CROS_GPIOS(cros_gpios);
-const struct pad_config *__weak variant_romstage_gpio_table(size_t *num) +const struct pad_config *variant_romstage_gpio_table(size_t *num) { - *num = 0; - return NULL; + *num = ARRAY_SIZE(romstage_gpio_table); + return romstage_gpio_table; }