From 5e053af7a677d0c1f98e624057ba7409f8492596 Mon Sep 17 00:00:00 2001 From: Eric Lai Date: Thu, 26 Nov 2020 12:58:10 +0800 Subject: mb/google/brya: Add GPIO stubs Add stubbed out GPIO configuration and perform GPIO initialization during bootblock and ramstage. BUG=b:174266035 TEST=Build Test Signed-off-by: Eric Lai Change-Id: Ia658ab4b466242cf8658abb239f19a9c0a03849a Reviewed-on: https://review.coreboot.org/c/coreboot/+/48065 Tested-by: build bot (Jenkins) Reviewed-by: Tim Wawrzynczak --- src/mainboard/google/brya/Kconfig | 4 ++++ src/mainboard/google/brya/Makefile.inc | 5 ++++ src/mainboard/google/brya/bootblock.c | 6 ++++- src/mainboard/google/brya/mainboard.c | 6 ++++- .../google/brya/variants/baseboard/Makefile.inc | 3 +++ .../google/brya/variants/baseboard/gpio.c | 27 ++++++++++++++++++++++ .../baseboard/include/baseboard/variants.h | 7 ++++++ .../brya/variants/brya0/include/variant/gpio.h | 8 +++++++ 8 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 src/mainboard/google/brya/variants/baseboard/Makefile.inc create mode 100644 src/mainboard/google/brya/variants/baseboard/gpio.c create mode 100644 src/mainboard/google/brya/variants/brya0/include/variant/gpio.h (limited to 'src/mainboard') diff --git a/src/mainboard/google/brya/Kconfig b/src/mainboard/google/brya/Kconfig index f538adef01..3c0875719f 100644 --- a/src/mainboard/google/brya/Kconfig +++ b/src/mainboard/google/brya/Kconfig @@ -26,4 +26,8 @@ config MAINBOARD_PART_NUMBER string default "brya" if BOARD_GOOGLE_BRYA0 +config VARIANT_DIR + string + default "brya0" if BOARD_GOOGLE_BRYA0 + endif # BOARD_GOOGLE_BASEBOARD_BRYA diff --git a/src/mainboard/google/brya/Makefile.inc b/src/mainboard/google/brya/Makefile.inc index 1680fd0a2b..cdd0eb6ef8 100644 --- a/src/mainboard/google/brya/Makefile.inc +++ b/src/mainboard/google/brya/Makefile.inc @@ -4,5 +4,10 @@ romstage-y += romstage.c ramstage-y += mainboard.c +VARIANT_DIR:=$(call strip_quotes,$(CONFIG_VARIANT_DIR)) + subdirs-y += variants/baseboard +subdirs-y += variants/$(VARIANT_DIR) + CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/baseboard/include +CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/include diff --git a/src/mainboard/google/brya/bootblock.c b/src/mainboard/google/brya/bootblock.c index 8a7b93a968..817dd0fa42 100644 --- a/src/mainboard/google/brya/bootblock.c +++ b/src/mainboard/google/brya/bootblock.c @@ -1,8 +1,12 @@ /* SPDX-License-Identifier: GPL-2.0-or-later */ +#include #include void bootblock_mainboard_init(void) { - /* TODO: Perform mainboard initialization */ + const struct pad_config *pads; + size_t num; + pads = variant_early_gpio_table(&num); + gpio_configure_pads(pads, num); } diff --git a/src/mainboard/google/brya/mainboard.c b/src/mainboard/google/brya/mainboard.c index 3dc2c41d69..d7c31565b9 100644 --- a/src/mainboard/google/brya/mainboard.c +++ b/src/mainboard/google/brya/mainboard.c @@ -1,10 +1,14 @@ /* SPDX-License-Identifier: GPL-2.0-or-later */ +#include #include static void mainboard_init(void *chip_info) { - /* TODO: Perform mainboard initialization */ + const struct pad_config *pads; + size_t num; + pads = variant_gpio_table(&num); + gpio_configure_pads(pads, num); } static void mainboard_enable(struct device *dev) diff --git a/src/mainboard/google/brya/variants/baseboard/Makefile.inc b/src/mainboard/google/brya/variants/baseboard/Makefile.inc new file mode 100644 index 0000000000..9fb63f5f43 --- /dev/null +++ b/src/mainboard/google/brya/variants/baseboard/Makefile.inc @@ -0,0 +1,3 @@ +bootblock-y += gpio.c + +ramstage-y += gpio.c diff --git a/src/mainboard/google/brya/variants/baseboard/gpio.c b/src/mainboard/google/brya/variants/baseboard/gpio.c new file mode 100644 index 0000000000..39450cee10 --- /dev/null +++ b/src/mainboard/google/brya/variants/baseboard/gpio.c @@ -0,0 +1,27 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include +#include +#include + +/* Pad configuration in ramstage */ +static const struct pad_config gpio_table[] = { + /* ToDo: Fill gpio configuration */ +}; + +/* Early pad configuration in bootblock */ +static const struct pad_config early_gpio_table[] = { + /* ToDo: Fill early gpio configuration */ +}; + +const struct pad_config *__weak variant_gpio_table(size_t *num) +{ + *num = ARRAY_SIZE(gpio_table); + return gpio_table; +} + +const struct pad_config *__weak variant_early_gpio_table(size_t *num) +{ + *num = ARRAY_SIZE(early_gpio_table); + return early_gpio_table; +} diff --git a/src/mainboard/google/brya/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/brya/variants/baseboard/include/baseboard/variants.h index d16d3dad53..95f2d65a24 100644 --- a/src/mainboard/google/brya/variants/baseboard/include/baseboard/variants.h +++ b/src/mainboard/google/brya/variants/baseboard/include/baseboard/variants.h @@ -6,4 +6,11 @@ #include #include +/* The next set of functions return the gpio table and fill in the number of entries for + * each table. + */ + +const struct pad_config *variant_gpio_table(size_t *num); +const struct pad_config *variant_early_gpio_table(size_t *num); + #endif /*__BASEBOARD_VARIANTS_H__ */ diff --git a/src/mainboard/google/brya/variants/brya0/include/variant/gpio.h b/src/mainboard/google/brya/variants/brya0/include/variant/gpio.h new file mode 100644 index 0000000000..27c87b3fe7 --- /dev/null +++ b/src/mainboard/google/brya/variants/brya0/include/variant/gpio.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#ifndef __MAINBOARD_GPIO_H__ +#define __MAINBOARD_GPIO_H__ + +#include + +#endif /* __MAINBOARD_GPIO_H__ */ -- cgit v1.2.3