aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/prodrive
diff options
context:
space:
mode:
authorAngel Pons <th3fanbus@gmail.com>2020-11-24 15:26:10 +0100
committerPatrick Georgi <pgeorgi@google.com>2020-11-30 08:02:09 +0000
commitfe17a8cd6a2e734bd1bb8be45a41b3e1d46ab904 (patch)
treea9f0b0b8504328490e61fad4100ac0654bab4e0f /src/mainboard/prodrive
parent329ebb340b157bc64065473a960a97eae0e30914 (diff)
mb/prodrive/hermes: Encapsulate GPIO setup
Having variants' gpio.c call the `gpio_configure_pads` function results in an API that does not need to pass data around, which is much simpler. Change-Id: I1064dc6258561bcf83f0e249d65b823368cf0d31 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/47958 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Singer <felixsinger@posteo.net>
Diffstat (limited to 'src/mainboard/prodrive')
-rw-r--r--src/mainboard/prodrive/hermes/bootblock.c16
-rw-r--r--src/mainboard/prodrive/hermes/ramstage.c5
-rw-r--r--src/mainboard/prodrive/hermes/variants/baseboard/gpio.c12
-rw-r--r--src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h7
4 files changed, 13 insertions, 27 deletions
diff --git a/src/mainboard/prodrive/hermes/bootblock.c b/src/mainboard/prodrive/hermes/bootblock.c
index 1426a552d4..40fd0b48a3 100644
--- a/src/mainboard/prodrive/hermes/bootblock.c
+++ b/src/mainboard/prodrive/hermes/bootblock.c
@@ -6,20 +6,12 @@
#include <variant/gpio.h>
#include "gpio.h"
-static void early_config_gpio(void)
-{
- /* This is a hack for FSP because it does things in MemoryInit()
- * which it shouldn't do. We have to prepare certain gpios here
- * because of the brokenness in FSP. */
- size_t num = 0;
- const struct pad_config *early_gpio_table = get_early_gpio_table(&num);
-
- gpio_configure_pads(early_gpio_table, num);
-}
-
void bootblock_mainboard_early_init(void)
{
- early_config_gpio();
+ /* This is a hack for FSP because it does things in MemoryInit()
+ which it shouldn't do. We have to prepare certain gpios here
+ because of the brokenness in FSP. */
+ program_early_gpio_pads();
}
void bootblock_mainboard_init(void)
diff --git a/src/mainboard/prodrive/hermes/ramstage.c b/src/mainboard/prodrive/hermes/ramstage.c
index 135d7754aa..e3dfffc2b3 100644
--- a/src/mainboard/prodrive/hermes/ramstage.c
+++ b/src/mainboard/prodrive/hermes/ramstage.c
@@ -10,12 +10,9 @@ static fsp_params parmas_list[] = {
void mainboard_silicon_init_params(FSP_S_CONFIG *params)
{
- size_t num = 0;
- const struct pad_config *gpio_table = get_gpio_table(&num);
-
/* Configure pads prior to SiliconInit() in case there's any
dependencies during hardware initialization. */
- gpio_configure_pads(gpio_table, num);
+ program_gpio_pads();
params->SataLedEnable = 1;
diff --git a/src/mainboard/prodrive/hermes/variants/baseboard/gpio.c b/src/mainboard/prodrive/hermes/variants/baseboard/gpio.c
index 8735a9ef4b..096dc35785 100644
--- a/src/mainboard/prodrive/hermes/variants/baseboard/gpio.c
+++ b/src/mainboard/prodrive/hermes/variants/baseboard/gpio.c
@@ -2,6 +2,8 @@
#include "include/variant/gpio.h"
#include <commonlib/helpers.h>
+#include <soc/gpio.h>
+#include <intelblocks/gpio_defs.h>
/* Pad configuration in ramstage */
static const struct pad_config gpio_table[] = {
@@ -389,14 +391,12 @@ const struct pad_config early_gpio_table[] = {
PAD_CFG_GPO(GPP_H5, 0, DEEP), /* PCH_HBLED_n */
};
-const struct pad_config *get_gpio_table(size_t *num)
+void program_gpio_pads(void)
{
- *num = ARRAY_SIZE(gpio_table);
- return gpio_table;
+ gpio_configure_pads(gpio_table, ARRAY_SIZE(gpio_table));
}
-const struct pad_config *get_early_gpio_table(size_t *num)
+void program_early_gpio_pads(void)
{
- *num = ARRAY_SIZE(early_gpio_table);
- return early_gpio_table;
+ gpio_configure_pads(early_gpio_table, ARRAY_SIZE(early_gpio_table));
}
diff --git a/src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h b/src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h
index 50d18018f0..8fce3c8b39 100644
--- a/src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h
+++ b/src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h
@@ -3,10 +3,7 @@
#ifndef PCH_GPIO_H
#define PCH_GPIO_H
-#include <soc/gpio.h>
-#include <intelblocks/gpio_defs.h>
-
-const struct pad_config *get_gpio_table(size_t *num);
-const struct pad_config *get_early_gpio_table(size_t *num);
+void program_gpio_pads(void);
+void program_early_gpio_pads(void);
#endif /* PCH_GPIO_H */