coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
gpio.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#include <types.h>
4
5
#include "
gpio.h
"
6
7
/* Pad configuration in ramstage */
8
static
const
struct
pad_config
gpio_table
[] = {
9
/* ------- GPIO Group GPP_A ------- */
10
PAD_CFG_NF
(
GPP_A14
,
NONE
, DEEP, NF1),
/* USB_2_3_OC_N */
11
PAD_CFG_NF
(
GPP_A15
,
NONE
, DEEP, NF1),
/* USB_4_5_OC_N */
12
PAD_CFG_NF
(
GPP_A16
,
NONE
, DEEP, NF1),
/* USB_6_7_OC_N */
13
PAD_CFG_NF
(
GPP_A18
,
NONE
, DEEP, NF1),
/* DP1_HPD */
14
PAD_CFG_NF
(
GPP_A19
,
NONE
, DEEP, NF1),
/* DP2_HPD */
15
PAD_CFG_NF
(
GPP_A20
,
NONE
, DEEP, NF1),
/* DP3_HPD */
16
PAD_NC
(
GPP_A23
,
NONE
),
/* ESPI_CS1 */
17
18
/* ------- GPIO Group GPP_B ------- */
19
PAD_CFG_NF
(
GPP_B0
,
NONE
, DEEP, NF1),
/* AUX_VID0 */
20
PAD_CFG_NF
(
GPP_B1
,
NONE
, DEEP, NF1),
/* AUX_VID1 */
21
PAD_CFG_NF
(
GPP_B14
,
NONE
, DEEP, NF1),
/* SATA_SPKR_N */
22
PAD_NC
(
GPP_B18
,
NONE
),
23
PAD_NC
(
GPP_B23
,
NONE
),
/* SML1_ALERT */
24
25
/* ------- GPIO Group GPP_C ------- */
26
PAD_NC
(
GPP_C5
,
NONE
),
/* SML0_ALERT */
27
PAD_CFG_NF
(
GPP_C6
,
NONE
, DEEP, NF1),
/* SML1_CLK */
28
PAD_CFG_NF
(
GPP_C7
,
NONE
, DEEP, NF1),
/* SML1_DATA */
29
30
/* ------- GPIO Group GPP_D ------- */
31
PAD_NC
(
GPP_D9
,
NONE
),
32
PAD_NC
(
GPP_D10
,
NONE
),
33
PAD_NC
(
GPP_D11
,
NONE
),
34
PAD_NC
(
GPP_D12
,
NONE
),
35
36
/* ------- GPIO Group GPP_E ------- */
37
PAD_NC
(
GPP_E0
,
NONE
),
38
PAD_CFG_GPI
(
GPP_E3
,
NONE
, DEEP),
/* TPM INT (todo: check) */
39
PAD_CFG_GPI
(
GPP_E6
,
NONE
, DEEP),
40
PAD_CFG_GPI_SMI_LOW
(
GPP_E7
,
NONE
, DEEP, EDGE_SINGLE),
/* EC SMI# */
41
PAD_CFG_GPO
(
GPP_E8
, 1, DEEP),
/* PERST_CB_RESET_N */
42
PAD_CFG_NF
(
GPP_E9
,
NONE
, DEEP, NF1),
/* USB_0_1_OC_N */
43
PAD_CFG_NF
(
GPP_E14
,
NONE
, DEEP, NF1),
/* DP0_HPD (VGA_RED) */
44
PAD_NC
(
GPP_E15
,
NONE
),
45
PAD_NC
(
GPP_E16
,
NONE
),
46
PAD_CFG_NF
(
GPP_E18
,
NONE
, DEEP, NF1),
/* DP3_DDC_CTRLCLK */
47
PAD_CFG_NF
(
GPP_E19
,
NONE
, DEEP, NF1),
/* DP3_DDC_CTRLDATA */
48
PAD_CFG_NF
(
GPP_E20
,
NONE
, DEEP, NF1),
/* DP2_DDC_CTRLCLK */
49
PAD_CFG_NF
(
GPP_E21
,
NONE
, DEEP, NF1),
/* DP2_DDC_CTRLDATA */
50
PAD_CFG_NF
(
GPP_E22
,
NONE
, DEEP, NF1),
/* DP0_DDC_CTRLCLK */
51
PAD_CFG_NF
(
GPP_E23
,
NONE
, DEEP, NF1),
/* DP0_DDC_CTRLDATA */
52
53
/* ------- GPIO Group GPP_F ------- */
54
PAD_NC
(
GPP_F0
,
NONE
),
55
PAD_NC
(
GPP_F1
,
NONE
),
56
PAD_CFG_GPI
(
GPP_F2
,
NONE
, DEEP),
57
PAD_NC
(
GPP_F3
,
NONE
),
58
PAD_NC
(
GPP_F5
,
NONE
),
59
PAD_CFG_GPO
(
GPP_F9
, 1, DEEP),
/* EC_SLP_S0_CS_N */
60
PAD_CFG_GPI
(
GPP_F12
,
NONE
, DEEP),
61
PAD_CFG_GPI
(
GPP_F13
,
NONE
, DEEP),
62
PAD_NC
(
GPP_F20
,
NONE
),
63
PAD_NC
(
GPP_F21
,
NONE
),
64
PAD_CFG_GPO
(
GPP_F22
, 1, DEEP),
/* PERST_PHY0_N */
65
66
/* ------- GPIO Group GPP_H ------- */
67
PAD_CFG_NF
(
GPP_H15
,
NONE
, DEEP, NF1),
/* DDPB_CTRLCLK */
68
PAD_CFG_NF
(
GPP_H17
,
NONE
, DEEP, NF1),
/* DDPB_CTRLDATA */
69
70
/* ------- GPIO Group GPP_R ------- */
71
PAD_CFG_NF
(
GPP_R5
,
NONE
, DEEP, NF1),
/* HDA_SDI1 */
72
73
/* ------- GPIO Group GPP_T ------- */
74
PAD_NC
(
GPP_T2
,
NONE
),
75
PAD_NC
(
GPP_T3
,
NONE
),
76
77
/* ------- GPIO Group GPD ------- */
78
PAD_NC
(
GPD8
,
NONE
),
/* SUSCLK */
79
PAD_CFG_GPO
(
GPD11
, 1, PLTRST),
/* LAN_DISABLE_N */
80
};
81
82
void
configure_gpio_pads
(
void
)
83
{
84
gpio_configure_pads
(
gpio_table
,
ARRAY_SIZE
(
gpio_table
));
85
}
GPD11
#define GPD11
Definition:
gpio_soc_defs.h:392
GPP_T3
#define GPP_T3
Definition:
gpio_soc_defs.h:94
GPP_D10
#define GPP_D10
Definition:
gpio_soc_defs.h:262
GPP_E3
#define GPP_E3
Definition:
gpio_soc_defs.h:631
GPP_A18
#define GPP_A18
Definition:
gpio_soc_defs.h:137
GPP_F21
#define GPP_F21
Definition:
gpio_soc_defs.h:594
GPP_F12
#define GPP_F12
Definition:
gpio_soc_defs.h:585
GPP_H15
#define GPP_H15
Definition:
gpio_soc_defs.h:231
GPP_E0
#define GPP_E0
Definition:
gpio_soc_defs.h:628
GPP_B1
#define GPP_B1
Definition:
gpio_soc_defs.h:54
GPP_F20
#define GPP_F20
Definition:
gpio_soc_defs.h:593
GPP_C5
#define GPP_C5
Definition:
gpio_soc_defs.h:542
GPP_A14
#define GPP_A14
Definition:
gpio_soc_defs.h:133
GPP_H17
#define GPP_H17
Definition:
gpio_soc_defs.h:233
GPP_D12
#define GPP_D12
Definition:
gpio_soc_defs.h:264
GPP_E6
#define GPP_E6
Definition:
gpio_soc_defs.h:634
GPP_F0
#define GPP_F0
Definition:
gpio_soc_defs.h:573
GPP_A19
#define GPP_A19
Definition:
gpio_soc_defs.h:138
GPP_D9
#define GPP_D9
Definition:
gpio_soc_defs.h:261
GPP_F5
#define GPP_F5
Definition:
gpio_soc_defs.h:578
GPP_D11
#define GPP_D11
Definition:
gpio_soc_defs.h:263
GPP_A23
#define GPP_A23
Definition:
gpio_soc_defs.h:142
GPP_F9
#define GPP_F9
Definition:
gpio_soc_defs.h:582
GPP_E14
#define GPP_E14
Definition:
gpio_soc_defs.h:642
GPP_E23
#define GPP_E23
Definition:
gpio_soc_defs.h:651
GPP_E9
#define GPP_E9
Definition:
gpio_soc_defs.h:637
GPP_E8
#define GPP_E8
Definition:
gpio_soc_defs.h:636
GPP_A20
#define GPP_A20
Definition:
gpio_soc_defs.h:139
GPP_A16
#define GPP_A16
Definition:
gpio_soc_defs.h:135
GPP_F1
#define GPP_F1
Definition:
gpio_soc_defs.h:574
GPP_C6
#define GPP_C6
Definition:
gpio_soc_defs.h:543
GPP_E7
#define GPP_E7
Definition:
gpio_soc_defs.h:635
GPP_F13
#define GPP_F13
Definition:
gpio_soc_defs.h:586
GPP_E19
#define GPP_E19
Definition:
gpio_soc_defs.h:647
GPP_E18
#define GPP_E18
Definition:
gpio_soc_defs.h:646
GPP_B14
#define GPP_B14
Definition:
gpio_soc_defs.h:67
GPP_B18
#define GPP_B18
Definition:
gpio_soc_defs.h:71
GPP_B0
#define GPP_B0
Definition:
gpio_soc_defs.h:53
GPP_R5
#define GPP_R5
Definition:
gpio_soc_defs.h:674
GPP_E20
#define GPP_E20
Definition:
gpio_soc_defs.h:648
GPP_A15
#define GPP_A15
Definition:
gpio_soc_defs.h:134
GPD8
#define GPD8
Definition:
gpio_soc_defs.h:389
GPP_B23
#define GPP_B23
Definition:
gpio_soc_defs.h:76
GPP_E15
#define GPP_E15
Definition:
gpio_soc_defs.h:643
GPP_E16
#define GPP_E16
Definition:
gpio_soc_defs.h:644
GPP_T2
#define GPP_T2
Definition:
gpio_soc_defs.h:93
GPP_F2
#define GPP_F2
Definition:
gpio_soc_defs.h:575
GPP_F22
#define GPP_F22
Definition:
gpio_soc_defs.h:595
GPP_F3
#define GPP_F3
Definition:
gpio_soc_defs.h:576
GPP_E22
#define GPP_E22
Definition:
gpio_soc_defs.h:650
GPP_E21
#define GPP_E21
Definition:
gpio_soc_defs.h:649
GPP_C7
#define GPP_C7
Definition:
gpio_soc_defs.h:544
ARRAY_SIZE
#define ARRAY_SIZE(a)
Definition:
helpers.h:12
configure_gpio_pads
void configure_gpio_pads(void)
Definition:
gpio.c:82
gpio_table
static const struct pad_config gpio_table[]
Definition:
gpio.c:8
NONE
@ NONE
Definition:
qup_se_handlers_common.h:196
gpio_configure_pads
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
PAD_NC
#define PAD_NC(pin)
Definition:
gpio_defs.h:263
PAD_CFG_GPI
#define PAD_CFG_GPI(pad, pull, rst)
Definition:
gpio_defs.h:284
PAD_CFG_NF
#define PAD_CFG_NF(pad, pull, rst, func)
Definition:
gpio_defs.h:197
PAD_CFG_GPO
#define PAD_CFG_GPO(pad, val, rst)
Definition:
gpio_defs.h:247
PAD_CFG_GPI_SMI_LOW
#define PAD_CFG_GPI_SMI_LOW(pad, pull, rst, trig)
Definition:
gpio_defs.h:425
gpio.h
pad_config
Definition:
gpio.h:75
src
mainboard
prodrive
atlas
gpio.c
Generated by
1.9.1