diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mainboard/google/rex/mainboard.c | 20 | ||||
-rw-r--r-- | src/mainboard/google/rex/variants/baseboard/include/baseboard/variants.h | 1 |
2 files changed, 17 insertions, 4 deletions
diff --git a/src/mainboard/google/rex/mainboard.c b/src/mainboard/google/rex/mainboard.c index bb64c6380f..c1c22dba50 100644 --- a/src/mainboard/google/rex/mainboard.c +++ b/src/mainboard/google/rex/mainboard.c @@ -8,16 +8,28 @@ #include <drivers/wwan/fm/chip.h> #include <ec/ec.h> #include <fw_config.h> +#include <stdlib.h> #include <vendorcode/google/chromeos/chromeos.h> WEAK_DEV_PTR(rp6_wwan); +void __weak fw_config_gpio_padbased_override(struct pad_config *padbased_table) +{ + /* default implementation does nothing */ +} + 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); + struct pad_config *padbased_table; + const struct pad_config *base_pads; + size_t base_num; + + padbased_table = new_padbased_table(); + base_pads = variant_gpio_table(&base_num); + gpio_padbased_override(padbased_table, base_pads, base_num); + fw_config_gpio_padbased_override(padbased_table); + gpio_configure_pads_with_padbased(padbased_table); + free(padbased_table); } void __weak variant_generate_s0ix_hook(enum s0ix_entry entry) diff --git a/src/mainboard/google/rex/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/rex/variants/baseboard/include/baseboard/variants.h index f3ace8a3f7..b51517c403 100644 --- a/src/mainboard/google/rex/variants/baseboard/include/baseboard/variants.h +++ b/src/mainboard/google/rex/variants/baseboard/include/baseboard/variants.h @@ -15,6 +15,7 @@ const struct pad_config *variant_gpio_table(size_t *num); const struct pad_config *variant_early_gpio_table(size_t *num); const struct pad_config *variant_romstage_gpio_table(size_t *num); +void fw_config_gpio_padbased_override(struct pad_config *padbased_table); const struct mb_cfg *variant_memory_params(void); void variant_get_spd_info(struct mem_spd *spd_info); |