blob: 29985927569f17a08e922897f9df8233d412d66f [file] [log] [blame]
Sheng-Liang Pand9dfd1f2023-12-20 15:07:40 +08001/* SPDX-License-Identifier: GPL-2.0-or-later */
2
3#include <baseboard/gpio.h>
4#include <baseboard/variants.h>
5
6/* Pad configuration in ramstage */
7static const struct pad_config gpio_table[] = {
8 /* A11 : TOUCH_RPT_EN */
9 PAD_NC(GPP_A11, NONE),
10 /* A12 : USB_OC1_N */
11 PAD_CFG_NF(GPP_A12, NONE, DEEP, NF1),
12 /* A13 : USB_OC2_N */
13 PAD_CFG_NF(GPP_A13, NONE, DEEP, NF1),
14 /* A14 : USB_OC3_N */
15 PAD_CFG_NF(GPP_A14, NONE, DEEP, NF1),
16 /* A18 : USB_OC0_N */
17 PAD_CFG_NF(GPP_A18, NONE, DEEP, NF1),
18
19 /* B9 : LAN_CLKREQ_ODL */
20 PAD_CFG_NF(GPP_B9, NONE, DEEP, NF1),
21
22 /* D2 : PWM_PP3300_BUZZER */
23 PAD_CFG_GPO(GPP_D2, 1, DEEP),
24 /* D4 : LAN_PE_ISOLATE_ODL_R */
25 PAD_CFG_GPO(GPP_D4, 1, DEEP),
26 /* D5 : TOUCH_RESET_L */
27 PAD_NC(GPP_D5, NONE),
28 /* D6 : EN_PP3300_TOUCH_S0 */
29 PAD_NC(GPP_D6, NONE),
30 /* D17 : LAN_PERST_L */
31 PAD_CFG_GPO(GPP_D17, 1, PLTRST),
32 /* D19 : WWAN_WLAN_COEX1 */
33 PAD_NC(GPP_D19, NONE),
34 /* D20 : WWAN_WLAN_COEX2 */
35 PAD_NC(GPP_D20, NONE),
36
37 /* E13 : GPP_E13/DDI0_DDC_SCL */
38 PAD_CFG_NF(GPP_E13, NONE, DEEP, NF1),
39 /* E14 : GPP_E14/DDI0_DDC_SDA */
40 PAD_CFG_NF(GPP_E14, NONE, DEEP, NF1),
41 /* E15 : GPP_E15/DDI1_DDC_SCL */
42 PAD_CFG_NF(GPP_E15, NONE, DEEP, NF1),
43 /* E16 : GPP_E16/DDI1_DDC_SDA */
44 PAD_CFG_NF(GPP_E16, NONE, DEEP, NF1),
45
46 /* G0 : SD_CMD */
47 PAD_NC(GPP_G0, NONE),
48 /* G1 : SD_DATA0 */
49 PAD_NC(GPP_G1, NONE),
50 /* G2 : SD_DATA1 */
51 PAD_NC(GPP_G2, NONE),
52 /* G3 : SD_DATA2 */
53 PAD_NC(GPP_G3, NONE),
54 /* G4 : SD_DATA3 */
55 PAD_NC(GPP_G4, NONE),
56 /* G5 : SD_CD_ODL */
57 PAD_NC(GPP_G5, NONE),
58 /* G6 : SD_CLK */
59 PAD_NC(GPP_G6, NONE),
60 /* G7 : SD_SDIO_WP */
61 PAD_NC(GPP_G7, NONE),
62
63 /* H4 : AP_I2C_TS_SDA */
64 PAD_NC(GPP_H4, NONE),
65 /* H5 : AP_I2C_TS_SCL */
66 PAD_NC(GPP_H5, NONE),
67 /* H6 : AP_I2C_CAM_SDA */
68 PAD_NC(GPP_H6, NONE),
69 /* H7 : AP_I2C_CAM_SCL */
70 PAD_NC(GPP_H7, NONE),
71 /* H15 : I2S_SPK_BCLK */
72 PAD_NC(GPP_H15, NONE),
73
74 /* R6 : I2S_SPK_LRCK */
75 PAD_NC(GPP_R6, NONE),
76 /* R7 : I2S_SPK_AUDIO */
77 PAD_NC(GPP_R7, NONE),
78
79 /* S2 : DMIC1_CLK */
80 PAD_NC(GPP_S2, NONE),
81 /* S3 : DMIC1_DATA */
82 PAD_NC(GPP_S3, NONE),
83 /* S6 : DMIC0_CLK */
84 PAD_NC(GPP_S6, NONE),
85 /* S7 : DMIC0_DATA */
86 PAD_NC(GPP_S7, NONE),
87};
88
89const struct pad_config *variant_override_gpio_table(size_t *num)
90{
91 *num = ARRAY_SIZE(gpio_table);
92 return gpio_table;
93}
94
95static const gpio_t hpd_gpios[] = {
96 /* HDMI1 */
97 GPP_A17,
98 /* HDMI2 */
99 GPP_A16,
100 /* USB C0 */
101 GPP_B23,
102};
103
104const gpio_t *variant_hpd_gpios(size_t *num)
105{
106 *num = ARRAY_SIZE(hpd_gpios);
107 return hpd_gpios;
108}