diff options
author | Peichao Wang <peichao.wang@bitland.corp-partner.google.com> | 2020-04-18 08:25:53 +0800 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2020-05-21 22:34:06 +0000 |
commit | 712311f56e2f9fec0124ca7903078dc180abf81c (patch) | |
tree | f83fedef543a1619c18d87ea762ddd6bcf591abf /src/soc/amd/common/block/include | |
parent | 30ce0f383f2f3cf47e3f8cef2ea4ce2f7b478be9 (diff) | |
download | coreboot-712311f56e2f9fec0124ca7903078dc180abf81c.tar.xz |
soc/amd/common/block/gpio: add API for gpio override table
This function adds support for gpio_configure_pads_with_override
which:
1. Takes as input two GPIO tables -- base config table and override
config table
2. Configures each pad in base config by first checking if there is a
config available for the pad in override config table. If yes, then
uses the one from override config table. Else, uses the base config to
configure the pad.
BUG=b:153456574
TEST=Build and boot dalboz
BRANCH=none
Signed-off-by: peichao.wang <peichao.wang@bitland.corp-partner.google.com>
Change-Id: I07bfe82827d1f7aea9fcc96574d6deab9e91d503
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/coreboot/+/2153423
Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Commit-Queue: Furquan Shaikh <furquan@chromium.org>
Tested-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/41576
Reviewed-by: Furquan Shaikh <furquan@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/amd/common/block/include')
-rw-r--r-- | src/soc/amd/common/block/include/amdblocks/gpio_banks.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/soc/amd/common/block/include/amdblocks/gpio_banks.h b/src/soc/amd/common/block/include/amdblocks/gpio_banks.h index b603e2ddd1..572e639f70 100644 --- a/src/soc/amd/common/block/include/amdblocks/gpio_banks.h +++ b/src/soc/amd/common/block/include/amdblocks/gpio_banks.h @@ -276,6 +276,21 @@ enum { typedef uint32_t gpio_t; +/* + * gpio_configure_pads_with_override accepts as input two GPIO tables: + * 1. Base config + * 2. Override config + * + * This function configures raw pads in base config and applies override in + * override config if any. Thus, for every GPIO_x in base config, this function + * looks up the GPIO in override config and if it is present there, then applies + * the configuration from override config. + */ +void gpio_configure_pads_with_override(const struct soc_amd_gpio *base_cfg, + size_t base_num_pads, + const struct soc_amd_gpio *override_cfg, + size_t override_num_pads); + /* Get the address of the control register of a particular pin */ uintptr_t gpio_get_address(gpio_t gpio_num); |