summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTim Wawrzynczak <twawrzynczak@chromium.org>2022-02-17 11:40:54 -0700
committerFelix Held <felix-coreboot@felixheld.de>2022-04-14 15:42:56 +0000
commita46056fa9a814c44796fe89220c3753c6aed8560 (patch)
treecbfefbf713f1c156ac60a1edd153f2b5fa07c962 /src
parentdaed4ea1d0503210fbec8241a25d60a67ac91bc3 (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')
-rw-r--r--src/mainboard/google/brya/mainboard.c19
-rw-r--r--src/mainboard/google/brya/variants/baseboard/include/baseboard/variants.h3
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__ */