mb/google/skyrim: Allow variants to override romstage GPIO table
Switch from gpio_configure_pads() to gpio_configure_pads_with_override() so variants can override romstage GPIO defaults. Rename baseboard function and add an weak empty override function to be used by variants. Will be used for touchscreen power sequencing in a follow-on commit. Change-Id: I45586237919cd07a171beac57f3510e26338f67f Signed-off-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/67811 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Raul Rangel <rrangel@chromium.org>
This commit is contained in:
parent
ffa79073d3
commit
5f69b867f0
@ -5,11 +5,11 @@
|
|||||||
|
|
||||||
void mb_pre_fspm(FSP_M_CONFIG *mcfg)
|
void mb_pre_fspm(FSP_M_CONFIG *mcfg)
|
||||||
{
|
{
|
||||||
size_t base_num_gpios;
|
size_t num_base_gpios, num_override_gpios;
|
||||||
const struct soc_amd_gpio *base_gpios;
|
const struct soc_amd_gpio *base_gpios, *override_gpios;
|
||||||
|
|
||||||
/* Initialize PCIe reset. */
|
baseboard_romstage_gpio_table(&base_gpios, &num_base_gpios);
|
||||||
variant_romstage_gpio_table(&base_gpios, &base_num_gpios);
|
variant_romstage_override_gpio_table(&override_gpios, &num_override_gpios);
|
||||||
|
gpio_configure_pads_with_override(base_gpios, num_base_gpios,
|
||||||
gpio_configure_pads(base_gpios, base_num_gpios);
|
override_gpios, num_override_gpios);
|
||||||
}
|
}
|
||||||
|
@ -202,12 +202,18 @@ static const struct soc_amd_gpio romstage_gpio_table[] = {
|
|||||||
PAD_GPO(GPIO_6, HIGH),
|
PAD_GPO(GPIO_6, HIGH),
|
||||||
};
|
};
|
||||||
|
|
||||||
__weak void variant_romstage_gpio_table(const struct soc_amd_gpio **gpio, size_t *size)
|
void baseboard_romstage_gpio_table(const struct soc_amd_gpio **gpio, size_t *size)
|
||||||
{
|
{
|
||||||
*size = ARRAY_SIZE(romstage_gpio_table);
|
*size = ARRAY_SIZE(romstage_gpio_table);
|
||||||
*gpio = romstage_gpio_table;
|
*gpio = romstage_gpio_table;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__weak void variant_romstage_override_gpio_table(const struct soc_amd_gpio **gpio, size_t *size)
|
||||||
|
{
|
||||||
|
*size = 0;
|
||||||
|
*gpio = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
void baseboard_gpio_table(const struct soc_amd_gpio **gpio, size_t *size)
|
void baseboard_gpio_table(const struct soc_amd_gpio **gpio, size_t *size)
|
||||||
{
|
{
|
||||||
*size = ARRAY_SIZE(base_gpio_table);
|
*size = ARRAY_SIZE(base_gpio_table);
|
||||||
|
@ -39,6 +39,9 @@ void variant_espi_gpio_table(const struct soc_amd_gpio **gpio, size_t *size);
|
|||||||
void variant_tpm_gpio_table(const struct soc_amd_gpio **gpio, size_t *size);
|
void variant_tpm_gpio_table(const struct soc_amd_gpio **gpio, size_t *size);
|
||||||
|
|
||||||
/* This function provides GPIO settings in romstage. */
|
/* This function provides GPIO settings in romstage. */
|
||||||
void variant_romstage_gpio_table(const struct soc_amd_gpio **gpio, size_t *size);
|
void baseboard_romstage_gpio_table(const struct soc_amd_gpio **gpio, size_t *size);
|
||||||
|
|
||||||
|
/* This function allows variant to override any GPIO init in romstage. */
|
||||||
|
void variant_romstage_override_gpio_table(const struct soc_amd_gpio **gpio, size_t *size);
|
||||||
|
|
||||||
#endif /* __BASEBOARD_VARIANTS_H__ */
|
#endif /* __BASEBOARD_VARIANTS_H__ */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user