diff options
author | David Wu <david_wu@quanta.corp-partner.google.com> | 2018-09-14 21:07:13 +0800 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2018-10-19 09:24:05 +0000 |
commit | eaab80efaf36d7a97f611229c1c6558b7217dd07 (patch) | |
tree | 01e47dfb9f68bd71cb38267038a9e833b0e7661d | |
parent | d1be92ce071933919d8c81b929e007264b88d3b0 (diff) | |
download | coreboot-eaab80efaf36d7a97f611229c1c6558b7217dd07.tar.xz |
mb/google/fizz: Provide cros_gpio variant API
Add support for ChromeOS GPIO ACPI table information by providing weak
implementation from the baseboard.
BUG=b:117066935
BRANCH=Fizz
TEST=emerge-fizz coreboot
Change-Id: I2fa52c005cacdbcc322d107a3ac92d22df3f3697
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/28964
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
-rw-r--r-- | src/mainboard/google/fizz/chromeos.c | 12 | ||||
-rw-r--r-- | src/mainboard/google/fizz/variants/baseboard/gpio.c | 11 | ||||
-rw-r--r-- | src/mainboard/google/fizz/variants/baseboard/include/baseboard/variants.h | 2 |
3 files changed, 19 insertions, 6 deletions
diff --git a/src/mainboard/google/fizz/chromeos.c b/src/mainboard/google/fizz/chromeos.c index 98bee6b0ad..066d0c3e84 100644 --- a/src/mainboard/google/fizz/chromeos.c +++ b/src/mainboard/google/fizz/chromeos.c @@ -15,6 +15,7 @@ #include <gpio.h> #include <rules.h> +#include <baseboard/variants.h> #include <soc/gpio.h> #include <vendorcode/google/chromeos/chromeos.h> @@ -44,12 +45,11 @@ int get_write_protect_state(void) return gpio_get(GPIO_PCH_WP); } -static const struct cros_gpio cros_gpios[] = { - CROS_GPIO_REC_AL(CROS_GPIO_VIRTUAL, CROS_GPIO_DEVICE_NAME), - CROS_GPIO_WP_AH(GPIO_PCH_WP, CROS_GPIO_DEVICE_NAME), -}; - void mainboard_chromeos_acpi_generate(void) { - chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios)); + const struct cros_gpio *gpios; + size_t num; + + gpios = variant_cros_gpios(&num); + chromeos_acpi_gpio_generate(gpios, num); } diff --git a/src/mainboard/google/fizz/variants/baseboard/gpio.c b/src/mainboard/google/fizz/variants/baseboard/gpio.c index 1e24fc2771..4cd38652a2 100644 --- a/src/mainboard/google/fizz/variants/baseboard/gpio.c +++ b/src/mainboard/google/fizz/variants/baseboard/gpio.c @@ -267,3 +267,14 @@ const struct pad_config * __weak *num = ARRAY_SIZE(early_gpio_table); return early_gpio_table; } + +static const struct cros_gpio cros_gpios[] = { + CROS_GPIO_REC_AL(CROS_GPIO_VIRTUAL, CROS_GPIO_DEVICE_NAME), + CROS_GPIO_WP_AH(GPIO_PCH_WP, CROS_GPIO_DEVICE_NAME), +}; + +const struct cros_gpio * __weak variant_cros_gpios(size_t *num) +{ + *num = ARRAY_SIZE(cros_gpios); + return cros_gpios; +} diff --git a/src/mainboard/google/fizz/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/fizz/variants/baseboard/include/baseboard/variants.h index d2abb1c089..ceef7fb755 100644 --- a/src/mainboard/google/fizz/variants/baseboard/include/baseboard/variants.h +++ b/src/mainboard/google/fizz/variants/baseboard/include/baseboard/variants.h @@ -18,6 +18,7 @@ #include <soc/gpio.h> #include <stdint.h> +#include <vendorcode/google/chromeos/chromeos.h> /* * The next set of functions return the gpio table and fill in the number of @@ -26,5 +27,6 @@ const struct pad_config *variant_gpio_table(size_t *num); const struct pad_config *variant_early_gpio_table(size_t *num); +const struct cros_gpio *variant_cros_gpios(size_t *num); #endif /* __BASEBOARD_VARIANTS_H__ */ |