summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Wu <david_wu@quanta.corp-partner.google.com>2018-09-14 21:07:13 +0800
committerPatrick Georgi <pgeorgi@google.com>2018-10-19 09:24:05 +0000
commiteaab80efaf36d7a97f611229c1c6558b7217dd07 (patch)
tree01e47dfb9f68bd71cb38267038a9e833b0e7661d
parentd1be92ce071933919d8c81b929e007264b88d3b0 (diff)
downloadcoreboot-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.c12
-rw-r--r--src/mainboard/google/fizz/variants/baseboard/gpio.c11
-rw-r--r--src/mainboard/google/fizz/variants/baseboard/include/baseboard/variants.h2
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__ */