diff options
author | Tim Wawrzynczak <twawrzynczak@chromium.org> | 2022-02-17 11:40:54 -0700 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2022-04-14 15:42:56 +0000 |
commit | a46056fa9a814c44796fe89220c3753c6aed8560 (patch) | |
tree | cbfefbf713f1c156ac60a1edd153f2b5fa07c962 /src/mainboard/google/brya | |
parent | daed4ea1d0503210fbec8241a25d60a67ac91bc3 (diff) |
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 <twawrzynczak@chromium.org>
Change-Id: Iede6dc5a5b9a7385fedd59d4eeaaba118eff0e20
Reviewed-on: https://review.coreboot.org/c/coreboot/+/62382
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Diffstat (limited to 'src/mainboard/google/brya')
-rw-r--r-- | src/mainboard/google/brya/mainboard.c | 19 | ||||
-rw-r--r-- | src/mainboard/google/brya/variants/baseboard/include/baseboard/variants.h | 3 |
2 files changed, 21 insertions, 1 deletions
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 <drivers/tpm/cr50.h> #include <drivers/wwan/fm/chip.h> #include <ec/ec.h> -#include <soc/ramstage.h> #include <fw_config.h> #include <security/tpm/tss.h> #include <soc/gpio.h> #include <soc/ramstage.h> +#include <stdio.h> 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__ */ |