coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
early_gpio_m.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <baseboard/gpio.h>
4 #include <baseboard/variants.h>
5 #include <soc/gpio.h>
6 
7 /* Early pad configuration in bootblock */
8 static const struct pad_config early_gpio_table[] = {
9  /* WWAN_RST# */
10  PAD_CFG_GPO(GPP_E5, 0, PLTRST),
11  /* WWAN_PWR_EN */
12  PAD_CFG_GPO(GPP_A8, 1, DEEP),
13 
14  /* H0 : PCH_SSD_RST# */
15  PAD_CFG_GPO(GPP_H0, 0, PLTRST),
16  /* H13 : CPU_SSD_RST# */
17  PAD_CFG_GPO(GPP_H13, 0, PLTRST),
18 
19  /* EC_IN_RW */
20  PAD_CFG_GPI(GPP_E7, NONE, DEEP),
21 
22  /* CPU PCIe VGPIO for RP0 */
43 
44  /* CPU PCIe vGPIO for RP1 */
65 
66  /* CPU PCIe vGPIO for RP2 */
87 
88  /* CPU PCIe vGPIO for RP3 */
109 
110  /* H1_PCH_INT_ODL */
111  PAD_CFG_GPI_APIC(GPP_E3, NONE, PLTRST, LEVEL, INVERT),
112  /* TPM */
113  /* F16 : GSPI1_CS0N */
114  PAD_CFG_NF(GPP_F16, NONE, DEEP, NF4),
115  /* F11 : GSPI1_CLK */
116  PAD_CFG_NF(GPP_F11, NONE, DEEP, NF4),
117  /* F13 : GSPI1_MISO */
118  PAD_CFG_NF(GPP_F13, NONE, DEEP, NF4),
119  /* F12 : GSPI1_MOSI */
120  PAD_CFG_NF(GPP_F12, NONE, DEEP, NF4),
121 
122  /* D10 : PCH_SSD_PWR_EN */
123  PAD_CFG_GPO(GPP_D10, 1, PLTRST),
124  /* D16 : CPU_SSD_PWR_EN */
125  PAD_CFG_GPO(GPP_D16, 1, PLTRST),
126 
127 };
128 
129 static const struct pad_config early_uart_gpio_table[] = {
130  /* UART0 RX */
131  PAD_CFG_NF(GPP_H10, NONE, DEEP, NF2),
132  /* UART0 TX */
133  PAD_CFG_NF(GPP_H11, NONE, DEEP, NF2),
134 };
135 
137 {
138  if (CONFIG(INTEL_LPSS_UART_FOR_CONSOLE))
140 
142 }
#define GPP_vGPIO_PCIE_57
#define GPP_vGPIO_PCIE_9
#define GPP_vGPIO_PCIE_2
#define GPP_vGPIO_PCIE_38
#define GPP_D10
#define GPP_E3
#define GPP_vGPIO_PCIE_48
#define GPP_F12
#define GPP_F16
#define GPP_vGPIO_PCIE_55
#define GPP_vGPIO_PCIE_39
#define GPP_vGPIO_PCIE_78
#define GPP_vGPIO_PCIE_68
#define GPP_vGPIO_PCIE_3
#define GPP_vGPIO_PCIE_45
#define GPP_vGPIO_PCIE_76
#define GPP_vGPIO_PCIE_25
#define GPP_vGPIO_PCIE_10
#define GPP_H11
#define GPP_vGPIO_PCIE_70
#define GPP_vGPIO_PCIE_53
#define GPP_vGPIO_PCIE_62
#define GPP_vGPIO_PCIE_19
#define GPP_vGPIO_PCIE_32
#define GPP_vGPIO_PCIE_49
#define GPP_vGPIO_PCIE_50
#define GPP_vGPIO_PCIE_77
#define GPP_vGPIO_PCIE_64
#define GPP_vGPIO_PCIE_26
#define GPP_vGPIO_PCIE_47
#define GPP_vGPIO_PCIE_31
#define GPP_vGPIO_PCIE_23
#define GPP_vGPIO_PCIE_4
#define GPP_H13
#define GPP_vGPIO_PCIE_13
#define GPP_vGPIO_PCIE_73
#define GPP_vGPIO_PCIE_11
#define GPP_vGPIO_PCIE_6
#define GPP_vGPIO_PCIE_20
#define GPP_vGPIO_PCIE_36
#define GPP_vGPIO_PCIE_24
#define GPP_vGPIO_PCIE_67
#define GPP_vGPIO_PCIE_66
#define GPP_E5
#define GPP_vGPIO_PCIE_22
#define GPP_vGPIO_PCIE_35
#define GPP_vGPIO_PCIE_60
#define GPP_vGPIO_PCIE_29
#define GPP_vGPIO_PCIE_54
#define GPP_vGPIO_PCIE_37
#define GPP_vGPIO_PCIE_33
#define GPP_vGPIO_PCIE_43
#define GPP_vGPIO_PCIE_30
#define GPP_vGPIO_PCIE_46
#define GPP_E7
#define GPP_vGPIO_PCIE_40
#define GPP_F13
#define GPP_vGPIO_PCIE_8
#define GPP_vGPIO_PCIE_15
#define GPP_H0
#define GPP_vGPIO_PCIE_1
#define GPP_vGPIO_PCIE_7
#define GPP_vGPIO_PCIE_71
#define GPP_vGPIO_PCIE_41
#define GPP_vGPIO_PCIE_65
#define GPP_vGPIO_PCIE_75
#define GPP_vGPIO_PCIE_16
#define GPP_vGPIO_PCIE_18
#define GPP_vGPIO_PCIE_5
#define GPP_A8
#define GPP_vGPIO_PCIE_52
#define GPP_vGPIO_PCIE_69
#define GPP_vGPIO_PCIE_21
#define GPP_vGPIO_PCIE_27
#define GPP_vGPIO_PCIE_0
#define GPP_vGPIO_PCIE_44
#define GPP_vGPIO_PCIE_59
#define GPP_vGPIO_PCIE_61
#define GPP_vGPIO_PCIE_12
#define GPP_vGPIO_PCIE_63
#define GPP_vGPIO_PCIE_14
#define GPP_vGPIO_PCIE_58
#define GPP_vGPIO_PCIE_42
#define GPP_vGPIO_PCIE_72
#define GPP_vGPIO_PCIE_51
#define GPP_vGPIO_PCIE_79
#define GPP_vGPIO_PCIE_74
#define GPP_F11
#define GPP_D16
#define GPP_H10
#define GPP_vGPIO_PCIE_34
#define GPP_vGPIO_PCIE_56
#define GPP_vGPIO_PCIE_17
#define GPP_vGPIO_PCIE_28
#define ARRAY_SIZE(a)
Definition: helpers.h:12
@ CONFIG
Definition: dsi_common.h:201
void variant_configure_early_gpio_pads(void)
Definition: early_gpio_m.c:136
static const struct pad_config early_uart_gpio_table[]
Definition: early_gpio_m.c:129
static const struct pad_config early_gpio_table[]
Definition: early_gpio_m.c:8
void gpio_configure_pads(const struct soc_amd_gpio *gpio_list_ptr, size_t size)
program a particular set of GPIO
Definition: gpio.c:307
#define PAD_CFG_GPI(pad, pull, rst)
Definition: gpio_defs.h:284
#define PAD_CFG_NF(pad, pull, rst, func)
Definition: gpio_defs.h:197
#define PAD_CFG_GPI_APIC(pad, pull, rst, trig, inv)
Definition: gpio_defs.h:376
#define PAD_CFG_NF_VWEN(pad, pull, rst, func)
Definition: gpio_defs.h:241
#define PAD_CFG_GPO(pad, val, rst)
Definition: gpio_defs.h:247