mb/google/kahlee: Add getter function for GPIO array
Instead of getting the address of the GPIO function with an extern,
add a getter function and make the GPIO arrays static.
TEST=Build Grunt; Build & boot Kahlee
BUG=b:69164070
Change-Id: I3defcb66696459b915d7d4f43234d5c08ab7d417
Signed-off-by: Martin Roth <martinroth@google.com>
Reviewed-on: https://review.coreboot.org/22435
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Marc Jones <marc@marcjonesconsulting.com>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
diff --git a/src/mainboard/google/kahlee/BiosCallOuts.c b/src/mainboard/google/kahlee/BiosCallOuts.c
index f26b54e..2f6a603 100644
--- a/src/mainboard/google/kahlee/BiosCallOuts.c
+++ b/src/mainboard/google/kahlee/BiosCallOuts.c
@@ -18,17 +18,16 @@
#include <FchPlatform.h>
#include <soc/southbridge.h>
#include <stdlib.h>
-
-extern const GPIO_CONTROL agesa_board_gpios[];
+#include <baseboard/variants.h>
void platform_FchParams_reset(FCH_RESET_DATA_BLOCK *FchParams_reset)
{
- FchParams_reset->EarlyOemGpioTable = (void *)agesa_board_gpios;
+ FchParams_reset->EarlyOemGpioTable = (void *)get_gpio_table();
}
void platform_FchParams_env(FCH_DATA_BLOCK *FchParams_env)
{
- FchParams_env->PostOemGpioTable = (void *)agesa_board_gpios;
+ FchParams_env->PostOemGpioTable = (void *)get_gpio_table();
/* SDHCI/MMC configuration */
if (IS_ENABLED(CONFIG_BOARD_GOOGLE_KAHLEE))
diff --git a/src/mainboard/google/kahlee/variants/baseboard/gpio.c b/src/mainboard/google/kahlee/variants/baseboard/gpio.c
index 84e40b0..aca96c4 100644
--- a/src/mainboard/google/kahlee/variants/baseboard/gpio.c
+++ b/src/mainboard/google/kahlee/variants/baseboard/gpio.c
@@ -20,10 +20,15 @@
#include <soc/southbridge.h>
#include <stdlib.h>
-const GPIO_CONTROL __attribute__((weak)) agesa_board_gpios[] = {
+static const GPIO_CONTROL agesa_board_gpios[] = {
};
+const __attribute__((weak)) GPIO_CONTROL *get_gpio_table(void)
+{
+ return agesa_board_gpios;
+}
+
/*
* GPE setup table must match ACPI GPE ASL
* { gevent, gpe, direction, level }
diff --git a/src/mainboard/google/kahlee/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/kahlee/variants/baseboard/include/baseboard/variants.h
index 0a57808..aad5607 100644
--- a/src/mainboard/google/kahlee/variants/baseboard/include/baseboard/variants.h
+++ b/src/mainboard/google/kahlee/variants/baseboard/include/baseboard/variants.h
@@ -19,7 +19,9 @@
#include <stddef.h>
#include <soc/smi.h>
+#include <AGESA.h>
+const GPIO_CONTROL *get_gpio_table(void);
const struct sci_source *get_gpe_table(size_t *num);
size_t variant_board_id(void);
diff --git a/src/mainboard/google/kahlee/variants/kahlee/gpio.c b/src/mainboard/google/kahlee/variants/kahlee/gpio.c
index 3e981f5..0fd5f40 100644
--- a/src/mainboard/google/kahlee/variants/kahlee/gpio.c
+++ b/src/mainboard/google/kahlee/variants/kahlee/gpio.c
@@ -21,7 +21,7 @@
#include <stdlib.h>
#include <variant/gpio.h>
-const GPIO_CONTROL agesa_board_gpios[] = {
+static const GPIO_CONTROL agesa_board_gpios[] = {
/* AGPIO2 PCIE/WLAN WAKE# SCI*/
{2, Function1, FCH_GPIO_PULL_UP_ENABLE },
@@ -100,6 +100,11 @@
{-1}
};
+const GPIO_CONTROL *get_gpio_table(void)
+{
+ return agesa_board_gpios;
+}
+
/*
* GPE setup table must match ACPI GPE ASL
* { gevent, gpe, direction, level }