From a46056fa9a814c44796fe89220c3753c6aed8560 Mon Sep 17 00:00:00 2001 From: Tim Wawrzynczak Date: Thu, 17 Feb 2022 11:40:54 -0700 Subject: [PATCH] mb/google/brya: Add variant_init and variant_finalize callbacks Some brya variants may need to initialize and finalize some variant-specific devices during ramstage, therefore add the commonly-used hooks and callbacks to support this. Signed-off-by: Tim Wawrzynczak Change-Id: Iede6dc5a5b9a7385fedd59d4eeaaba118eff0e20 Reviewed-on: https://review.coreboot.org/c/coreboot/+/62382 Tested-by: build bot (Jenkins) Reviewed-by: Subrata Banik Reviewed-by: Angel Pons --- src/mainboard/google/brya/mainboard.c | 19 ++++++++++++++++++- .../baseboard/include/baseboard/variants.h | 3 +++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/mainboard/google/brya/mainboard.c b/src/mainboard/google/brya/mainboard.c index d85dc05ea1..85d29fd69b 100644 --- a/src/mainboard/google/brya/mainboard.c +++ b/src/mainboard/google/brya/mainboard.c @@ -7,11 +7,11 @@ #include #include #include -#include #include #include #include #include +#include WEAK_DEV_PTR(rp6_wwan); @@ -64,6 +64,11 @@ __weak void variant_update_soc_chip_config(struct soc_intel_alderlake_config *co /* default implementation does nothing */ } +__weak void variant_init(void) +{ + /* default implementation does nothing */ +} + static void mainboard_init(void *chip_info) { const struct pad_config *base_pads; @@ -74,6 +79,7 @@ static void mainboard_init(void *chip_info) override_pads = variant_gpio_override_table(&override_num); gpio_configure_pads_with_override(base_pads, base_num, override_pads, override_num); + variant_init(); variant_devtree_update(); } @@ -174,7 +180,18 @@ static void mainboard_enable(struct device *dev) dev->ops->acpi_fill_ssdt = mainboard_fill_ssdt; } + +void __weak variant_finalize(void) +{ +} + +static void mainboard_final(void *chip_info) +{ + variant_finalize(); +} + struct chip_operations mainboard_ops = { .init = mainboard_init, .enable_dev = mainboard_enable, + .final = mainboard_final, }; 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 b088ecb10e..42e76227b6 100644 --- a/src/mainboard/google/brya/variants/baseboard/include/baseboard/variants.h +++ b/src/mainboard/google/brya/variants/baseboard/include/baseboard/variants.h @@ -82,4 +82,7 @@ void variant_update_psys_power_limits(const struct cpu_power_limits *limits, size_t num_entries, const struct psys_config *config); +void variant_init(void); +void variant_finalize(void); + #endif /*__BASEBOARD_VARIANTS_H__ */