aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/amd/mandolin/variants/cereme/early_gpio.c
diff options
context:
space:
mode:
authorFelix Held <felix.held@amd.corp-partner.google.com>2020-06-23 01:14:46 +0200
committerFelix Held <felix-coreboot@felixheld.de>2020-09-30 22:24:31 +0000
commit407b866a3eb6b0196454ee281da3823c4079c56f (patch)
tree003d5e9e2e743677db359149a04d3bc92893b876 /src/mainboard/amd/mandolin/variants/cereme/early_gpio.c
parent4ae3e41debd49c9870eb88e39c4f9b6afff97b4a (diff)
mb/amd: Add Pollock CRB Cereme as Mandolin variant
Even though the devicetrees of Mandolin and Cereme are relatively similar, they are kept as separate files instead of using devicetree overrides to facilitate creating mainboard ports based on those CRBs. The two boards are reference boards for different zen/zen+ APU platforms that share the silicon, but use different packages. This is also consistent with the google/zork boards that have two different full base devicetrees for the two different platforms and then use devicetree overrides for the different variants of the two reference designs. BUG=b:159617786,b:169644059 BRANCH=zork Change-Id: Ief8a05b0a360563d26a81941720b78014feb0d25 Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Signed-off-by: Matt Papageorge <matthewpapa07@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/42786 Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/mainboard/amd/mandolin/variants/cereme/early_gpio.c')
-rw-r--r--src/mainboard/amd/mandolin/variants/cereme/early_gpio.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/mainboard/amd/mandolin/variants/cereme/early_gpio.c b/src/mainboard/amd/mandolin/variants/cereme/early_gpio.c
new file mode 100644
index 0000000000..b4ee5f485a
--- /dev/null
+++ b/src/mainboard/amd/mandolin/variants/cereme/early_gpio.c
@@ -0,0 +1,32 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <soc/gpio.h>
+#include "../../gpio.h"
+
+/* GPIO pins used by coreboot should be initialized in bootblock */
+
+static const struct soc_amd_gpio gpio_set_stage_reset[] = {
+ /* not LLB */
+ PAD_GPI(GPIO_12, PULL_UP),
+ /* not USB_OC1_L */
+ PAD_GPI(GPIO_17, PULL_UP),
+ /* not USB_OC2_L */
+ PAD_GPI(GPIO_18, PULL_UP),
+ /* SDIO eMMC power control */
+ PAD_NF(GPIO_22, EMMC_PRW_CTRL, PULL_NONE),
+ /* PCIe Reset 0 */
+ PAD_NF(GPIO_26, PCIE_RST_L, PULL_NONE),
+ /* PCIe Reset 1 */
+ PAD_NF(GPIO_27, PCIE_RST1_L, PULL_NONE),
+ /* eSPI CS# */
+ PAD_NF(GPIO_30, ESPI_CS_L, PULL_NONE),
+ /* FANOUT0 */
+ PAD_NF(GPIO_85, FANOUT0, PULL_NONE),
+ /* PC beep to codec */
+ PAD_NF(GPIO_91, SPKR, PULL_NONE),
+};
+
+void mainboard_program_early_gpios(void)
+{
+ program_gpios(gpio_set_stage_reset, ARRAY_SIZE(gpio_set_stage_reset));
+}