blob: ac5ee43bac011b4a7f4ebcfe67d20ef665ad1762 [file] [log] [blame]
Nicholas Chind5b0aea2023-10-24 18:30:51 -06001/* SPDX-License-Identifier: GPL-2.0-only */
2
Michał Żygowski8ac40f32021-07-09 16:00:16 +02003#ifndef GPIO_NAMES_TIGERLAKE_LP
4#define GPIO_NAMES_TIGERLAKE_LP
5
6#include "gpio_groups.h"
7
8/* ----------------------------- Tiger Lake LP ----------------------------- */
9
10const char *const tigerlake_pch_lp_group_a_names[] = {
11 "GPP_A0", "ESPI_IO0", "n/a", "n/a", "n/a", "n/a",
12 "GPP_A1", "ESPI_IO1", "n/a", "n/a", "n/a", "n/a",
13 "GPP_A2", "ESPI_IO2", "SUSWARN#/SUSPWRDNACK", "n/a", "n/a", "n/a",
14 "GPP_A3", "ESPI_IO3", "SUSACK#", "n/a", "n/a", "n/a",
15 "GPP_A4", "ESPI_CS#", "n/a", "n/a", "n/a", "n/a",
16 "GPP_A5", "ESPI_CLK", "n/a", "n/a", "n/a", "n/a",
17 "GPP_A6", "ESPI_RESET#", "n/a", "n/a", "n/a", "n/a",
18 "GPP_A7", "I2S2_SCLK", "n/a", "n/a", "n/a", "DMIC_CLK_A0",
19 "GPP_A8", "I2S2_SFRM", "CNV_RF_RESET#", "n/a", "n/a", "DMIC_DATA0",
20 "GPP_A9", "I2S2_TXD", "MODEM_CLKREQ", "CRF_XTAL_CLKREQ", "n/a", "DMIC_CLK_A1",
21 "GPP_A10", "I2S2_RXD", "n/a", "n/a", "n/a", "DMIC_DATA1",
22 "GPP_A11", "PMC_I2C_SDA", "n/a", "I2S3_SCLK", "n/a", "n/a",
23 "GPP_A12", "SATAXPCIE1", "SATAGP1", "I2S3_SFRM", "n/a", "n/a",
24 "GPP_A13", "PMC_I2C_SCL", "n/a", "I2S3_TXD", "n/a", "DMIC_CLK_B0",
25 "GPP_A14", "USB_OC1#", "DDSP_HPD3", "I2S3_RXD", "DISP_MISC3", "DMIC_CLK_B1",
26 "GPP_A15", "USB_OC2#", "DDSP_HPD4", "I2S4_SCLK", "DISP_MISC4", "n/a",
27 "GPP_A16", "USB_OC3#", "n/a", "I2S4_SFRM", "n/a", "n/a",
28 "GPP_A17", "DDSP_HDPC", "DISP_MISCC", "I2S4_TXD", "n/a", "n/a",
29 "GPP_A18", "DDSP_HPDB", "DISP_MISCB", "I2S4_RXD", "n/a", "n/a",
30 "GPP_A19", "DDSP_HPD1", "DISP_MISC1", "I2S5_SCLK", "n/a", "n/a",
31 "GPP_A20", "DDSP_HPD2", "DISP_MISC2", "I2S5_SFRM", "n/a", "n/a",
32 "GPP_A21", "BKLTEN_SEC", "DDPC_CTRLCLK", "I2S5_TXD", "n/a", "n/a",
33 "GPP_A22", "BKLTCTL_SEC", "DDPC_CTRLDATA", "I2S5_RXD", "n/a", "n/a",
34 "GPP_A23", "I2S1_SCLK", "n/a", "n/a", "n/a", "n/a",
35 "ESPI_CLK_LOOPBK", "ESPI_CLK_LOOPBK", "n/a", "n/a", "n/a", "n/a",
36};
37
38const struct gpio_group tigerlake_pch_lp_group_a = {
39 .display = "------- GPIO Group GPP_A -------",
40 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_a_names) / 6,
41 .func_count = 6,
42 .pad_names = tigerlake_pch_lp_group_a_names,
43};
44
45const char *const tigerlake_pch_lp_group_b_names[] = {
46 "GPP_B0", "CORE_VID0", "n/a", "n/a",
47 "GPP_B1", "CORE_VID1", "n/a", "n/a",
48 "GPP_B2", "VRALERT#", "n/a", "n/a",
49 "GPP_B3", "CPU_GP2", "n/a", "n/a",
50 "GPP_B4", "CPU_GP3", "n/a", "n/a",
51 "GPP_B5", "ISH_I2C0_SDA", "n/a", "n/a",
52 "GPP_B6", "ISH_I2C0_SCL", "n/a", "n/a",
53 "GPP_B7", "ISH_I2C1_SDA", "n/a", "n/a",
54 "GPP_B8", "ISH_I2C1_SCL", "n/a", "n/a",
55 "GPP_B9", "I2C5_SDA", "ISH_I2C2_SDA", "n/a",
56 "GPP_B10", "I2C5_SCL", "ISH_I2C2_SDL", "n/a",
57 "GPP_B11", "PMCALERT#", "n/a", "n/a",
58 "GPP_B12", "SLP_S0#", "n/a", "n/a",
59 "GPP_B13", "PLTRST#", "n/a", "n/a",
60 "GPP_B14", "SPKR", "TIME_SYNC1", "GSPI0_CS1#",
61 "GPP_B15", "GSPI0_CS0#", "n/a", "n/a",
62 "GPP_B16", "GSPI0_CLK", "n/a", "n/a",
63 "GPP_B17", "GSPI0_MISO", "n/a", "n/a",
64 "GPP_B18", "GSPI0_MOSI", "n/a", "n/a",
65 "GPP_B19", "GSPI1_CS0#", "n/a", "n/a",
66 "GPP_B20", "GSPI1_CLK", "n/a", "n/a",
67 "GPP_B21", "GSPI1_MISO", "n/a", "n/a",
68 "GPP_B22", "GSPI1_MOSI", "n/a", "n/a",
69 "GPP_B23", "SML1ALERT#", "PCHHOT#", "GSPI1_CS1#",
70 "GSPI0_CLK_LOOPBK", "GSPI0_CLK_LOOPBK", "n/a", "n/a",
71 "GSPI1_CLK_LOOPBK", "GSPI1_CLK_LOOPBK", "n/a", "n/a",
72};
73
74const struct gpio_group tigerlake_pch_lp_group_b = {
75 .display = "------- GPIO Group GPP_B -------",
76 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_b_names) / 4,
77 .func_count = 4,
78 .pad_names = tigerlake_pch_lp_group_b_names,
79};
80
81const char *const tigerlake_pch_lp_group_c_names[] = {
82 "GPP_C0", "SMBCLK", "n/a",
83 "GPP_C1", "SMBDATA", "n/a",
84 "GPP_C2", "SMBALERT#", "n/a",
85 "GPP_C3", "SML0CLK", "n/a",
86 "GPP_C4", "SML0DATA", "n/a",
87 "GPP_C5", "SML0ALERT#", "n/a",
88 "GPP_C6", "SML1CLK", "n/a",
89 "GPP_C7", "SML1DATA", "n/a",
90 "GPP_C8", "UART0_RXD", "n/a",
91 "GPP_C9", "UART0_TXD", "n/a",
92 "GPP_C10", "UART0_RTS#", "n/a",
93 "GPP_C11", "UART0_CTS#", "n/a",
94 "GPP_C12", "UART1_RXD", "ISH_UART1_RXD",
95 "GPP_C13", "UART1_TXD", "ISH_UART1_TXD",
96 "GPP_C14", "UART1_RTS#", "ISH_UART1_RTS#",
97 "GPP_C15", "UART1_CTS#", "ISH_UART1_CTS#",
98 "GPP_C16", "I2C0_SDA", "n/a",
99 "GPP_C17", "I2C0_SCL", "n/a",
100 "GPP_C18", "I2C1_SDA", "n/a",
101 "GPP_C19", "I2C1_SCL", "n/a",
102 "GPP_C20", "UART2_RXD", "n/a",
103 "GPP_C21", "UART2_TXD", "n/a",
104 "GPP_C22", "UART2_RTS#", "n/a",
105 "GPP_C23", "UART2_CTS#", "n/a",
106};
107
108const struct gpio_group tigerlake_pch_lp_group_c = {
109 .display = "------- GPIO Group GPP_C -------",
110 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_c_names) / 3,
111 .func_count = 3,
112 .pad_names = tigerlake_pch_lp_group_c_names,
113};
114
115const char *const tigerlake_pch_lp_group_d_names[] = {
116 "GPP_D0", "ISH_GP0", "BK0", "n/a", "n/a", "SBK0", "n/a", "n/a",
117 "GPP_D1", "ISH_GP1", "BK1", "n/a", "n/a", "SBK1", "n/a", "n/a",
118 "GPP_D2", "ISH_GP2", "BK2", "n/a", "n/a", "SBK2", "n/a", "n/a",
119 "GPP_D3", "ISH_GP3", "BK3", "n/a", "n/a", "SBK3", "n/a", "n/a",
120 "GPP_D4", "IMGCLKOUT0", "BK4", "n/a", "n/a", "SBK4", "n/a", "n/a",
121 "GPP_D5", "SRCCLKREQ0#", "n/a", "n/a", "n/a", "n/a", "n/a", "n/a",
122 "GPP_D6", "SRCCLKREQ1#", "n/a", "n/a", "n/a", "n/a", "n/a", "n/a",
123 "GPP_D7", "SRCCLKREQ2#", "n/a", "n/a", "n/a", "n/a", "n/a", "n/a",
124 "GPP_D8", "SRCCLKREQ3#", "n/a", "n/a", "n/a", "n/a", "n/a", "n/a",
125 "GPP_D9", "ISH_SPI_CS#", "DDP3_CTRLCLK", "n/a", "TBT_LSX2_TXD", "BSSB_LS2_RX", "n/a", "GSPI2_CS0#",
126 "GPP_D10", "ISH_SPI_CLK", "DDP3_CTRLDATA", "n/a", "TBT_LSX2_RXD", "BSSB_LS2_TX", "n/a", "GSPI2_CLK",
127 "GPP_D11", "ISH_SPI_MISO", "DDP4_CTRLCLK", "n/a", "TBT_LSX3_TXD", "BSSB_LS3_RX", "n/a", "GSPI2_MISO",
128 "GPP_D12", "ISH_SPI_MOSI", "DDP4_CTRLDATA", "n/a", "TBT_LSX3_RXD", "BSSB_LS3_TX", "n/a", "GSPI2_MOSI",
129 "GPP_D13", "ISH_UART0_RXD", "n/a", "I2C4_SDA", "n/a", "n/a", "n/a", "n/a",
130 "GPP_D14", "ISH_UART0_TXD", "n/a", "I2C4_SCL", "n/a", "n/a", "n/a", "n/a",
131 "GPP_D15", "ISH_UART0_RTS#", "GSPI2_CS1#", "IMGCLKOUT5", "n/a", "n/a", "n/a", "n/a",
132 "GPP_D16", "ISH_UART0_CTS#", "n/a", "n/a", "n/a", "n/a", "n/a", "n/a",
133 "GPP_D17", "ISH_GP4", "n/a", "n/a", "n/a", "n/a", "n/a", "n/a",
134 "GPP_D18", "ISH_GP5", "n/a", "n/a", "n/a", "n/a", "n/a", "n/a",
135 "GPP_D19", "I2S_MCLK1", "n/a", "n/a", "n/a", "n/a", "n/a", "n/a",
136 "GSPI2_CLK_LOOPBK", "GSPI2_CLK_LOOPBK", "n/a", "n/a", "n/a", "n/a", "n/a", "n/a",
137};
138
139const struct gpio_group tigerlake_pch_lp_group_d = {
140 .display = "------- GPIO Group GPP_D -------",
141 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_d_names) / 8,
142 .func_count = 8,
143 .pad_names = tigerlake_pch_lp_group_d_names,
144};
145
146const char *const tigerlake_pch_lp_group_e_names[] = {
147 "GPP_E0", "SATAXPCIE0", "SATAGP0", "n/a", "n/a", "n/a",
148 "GPP_E1", "n/a", "THC0_SPI1_IO2", "n/a", "n/a", "n/a",
149 "GPP_E2", "n/a", "THC0_SPI1_IO3", "n/a", "n/a", "n/a",
150 "GPP_E3", "CPU_GP0", "n/a", "n/a", "n/a", "n/a",
151 "GPP_E4", "SATA_DEVSLP0", "n/a", "n/a", "n/a", "n/a",
152 "GPP_E5", "SATA_DEVSLP1", "n/a", "n/a", "n/a", "n/a",
153 "GPP_E6", "n/a", "THC0_SPI1_RST#", "n/a", "n/a", "n/a",
154 "GPP_E7", "CPU_GP1", "n/a", "n/a", "n/a", "n/a",
155 "GPP_E8", "n/a", "SATA_LED#", "n/a", "n/a", "n/a",
156 "GPP_E9", "USB2_OC0#", "n/a", "n/a", "n/a", "n/a",
157 "GPP_E10", "n/a", "THC0_SPI1_CS#", "n/a", "n/a", "n/a",
158 "GPP_E11", "n/a", "THC0_SPI1_CLK", "n/a", "n/a", "n/a",
159 "GPP_E12", "n/a", "THC0_SPI1_IO1", "n/a", "n/a", "n/a",
160 "GPP_E13", "n/a", "THC0_SPI1_IO0", "n/a", "n/a", "n/a",
161 "GPP_E14", "DDSP_HPDA", "DISP_MISCA", "n/a", "n/a", "n/a",
162 "GPP_E15", "ISH_GP6", "Reserved", "n/a", "n/a", "n/a",
163 "GPP_E16", "ISH_GP7", "Reserved", "n/a", "n/a", "n/a",
164 "GPP_E17", "n/a", "THC0_SPI1_INT#", "n/a", "n/a", "n/a",
165 "GPP_E18", "DDP1_CTRLCLK", "n/a", "n/a", "TBT_LSX0_TXD", "BSSB_LS0_RX",
166 "GPP_E19", "DPP1_CTRLDATA", "n/a", "n/a", "TBT_LSX0_RXD", "BSSB_LS0_TX",
167 "GPP_E20", "DPP2_CTRLCLK", "n/a", "n/a", "TBT_LSX1_TXD", "BSSB_LS1_RX",
168 "GPP_E21", "DPP2_CTRLDATA", "n/a", "n/a", "TBT_LSX1_RXD", "BSSB_LS1_TX",
169 "GPP_E22", "DPAA_CTRLCLK", "DNX_FORCE_RELOAD", "n/a", "n/a", "n/a",
170 "GPP_E23", "DPPA_CTRLDATA", "n/a", "n/a", "n/a", "n/a",
171 "GPPE_CLK_LOOPBK", "n/a", "THC0_CLK_LOOPBACK", "n/a", "n/a", "n/a",
172};
173
174const struct gpio_group tigerlake_pch_lp_group_e = {
175 .display = "------- GPIO Group GPP_E -------",
176 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_e_names) / 6,
177 .func_count = 6,
178 .pad_names = tigerlake_pch_lp_group_e_names,
179};
180
181const char *const tigerlake_pch_lp_group_hvmos_names[] = {
182 "L_BKLTEN", "L_BKLTEN",
183 "L_BKLTCTL", "L_BKLTCTL",
184 "L_VDDEN", "L_VDDEN",
185 "SYS_PWROK", "SYS_PWROK",
186 "SYS_RESET#", "SYS_RESET#",
187 "MLK_RST#", "MLK_RST#",
188};
189
190const struct gpio_group tigerlake_pch_lp_group_hvmos = {
191 .display = "------- GPIO Group HVMOS -------",
Michał Żygowskide917802022-05-18 14:08:08 +0200192 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_hvmos_names) / 2,
Michał Żygowski8ac40f32021-07-09 16:00:16 +0200193 .func_count = 2,
194 .pad_names = tigerlake_pch_lp_group_hvmos_names,
195};
196
197const char *const tigerlake_pch_lp_group_f_names[] = {
198 "GPP_F0", "CNV_BRI_DT", "UART0_RTS#", "n/a",
199 "GPP_F1", "CNV_BRI_RSP", "UART0_RXD", "n/a",
200 "GPP_F2", "CNV_RGI_DT", "UART0_TXD", "n/a",
201 "GPP_F3", "CNV_RGI_RSP", "UART0_CTS#", "n/a",
202 "GPP_F4", "CNV_RF_RESET#", "n/a", "n/a",
203 "GPP_F5", "n/a", "MODEM_CLKREQ", "CRF_XTAL_CLKREQ",
204 "GPP_F6", "CNV_PA_BLANKING", "n/a", "n/a",
205 "GPP_F7", "n/a", "n/a", "n/a",
206 "GPP_F8", "I2S_MCLK2_INOUT", "n/a", "n/a",
207 "GPP_F9", "Reserved", "n/a", "n/a",
208 "GPP_F10", "n/a", "n/a", "n/a",
209 "GPP_F11", "n/a", "n/a", "THC1_SPI2_CLK",
210 "GPP_F12", "GSXDOUT", "n/a", "THC1_SPI2_IO0",
211 "GPP_F13", "GSXSLOAD", "n/a", "THC1_SPI2_IO1",
212 "GPP_F14", "GSXDIN", "n/a", "THC1_SPI2_IO2",
213 "GPP_F15", "GSXSRESET#", "n/a", "THC1_SPI2_IO3",
214 "GPP_F16", "GSXCLK", "n/a", "THC1_SPI2_CS#",
215 "GPP_F17", "n/a", "n/a", "THC1_SPI2_RST#",
216 "GPP_F18", "n/a", "n/a", "THC1_SPI2_INT#",
217 "GPP_F19", "SRCCLKREQ6#", "n/a", "n/a",
218 "GPP_F20", "EXT_PWR_GATE#", "n/a", "n/a",
219 "GPP_F21", "EXT_PWR_GATE2#", "n/a", "n/a",
220 "GPP_F22", "VNN_CTRL", "n/a", "n/a",
221 "GPP_F23", "V1P05_CTRL", "n/a", "n/a",
222 "GPPF_CLK_LOOPBK", "n/a", "THC1_CLK_LOOPBACK", "n/a",
223};
224
225const struct gpio_group tigerlake_pch_lp_group_f = {
226 .display = "------- GPIO Group GPP_F -------",
227 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_f_names) / 4,
228 .func_count = 4,
229 .pad_names = tigerlake_pch_lp_group_f_names,
230};
231
232const char *const tigerlake_pch_lp_group_h_names[] = {
233 "GPP_H0", "n/a", "n/a", "n/a",
234 "GPP_H1", "n/a", "n/a", "n/a",
235 "GPP_H2", "n/a", "n/a", "n/a",
236 "GPP_H3", "SX_EXIT_HOLDOFF", "n/a", "n/a",
237 "GPP_H4", "I2C2_SDA", "n/a", "n/a",
238 "GPP_H5", "I2C2_SCL", "n/a", "n/a",
239 "GPP_H6", "I2C3_SDA", "n/a", "n/a",
240 "GPP_H7", "I2C3_SCL", "n/a", "n/a",
241 "GPP_H8", "I2C4_SDA", "CNV_MFUART2_RXD", "n/a",
242 "GPP_H9", "I2C4_SCL", "CNV_MFUART2_TXD", "n/a",
243 "GPP_H10", "SRCCLKREQ4#", "n/a", "n/a",
244 "GPP_H11", "SRCCLKREQ5#", "n/a", "n/a",
245 "GPP_H12", "M2_SKT2_CFG0", "n/a", "n/a",
246 "GPP_H13", "M2_SKT2_CFG1", "n/a", "n/a",
247 "GPP_H14", "M2_SKT2_CFG2", "n/a", "n/a",
248 "GPP_H15", "M2_SKT2_CFG3", "n/a", "n/a",
249 "GPP_H16", "DDPB_CTRLCLK", "n/a", "PCIE_LNK_DOWN",
250 "GPP_H17", "DDPB_CTRLDATA", "n/a", "n/a",
251 "GPP_H18", "CPU_C10_GATE#", "n/a", "n/a",
252 "GPP_H19", "TIME_SYNC0", "n/a", "n/a",
253 "GPP_H20", "IMGCLKOUT1", "n/a", "n/a",
254 "GPP_H21", "IMGCLKOUT2", "n/a", "n/a",
255 "GPP_H22", "IMGCLKOUT3", "n/a", "n/a",
256 "GPP_H23", "IMGCLKOUT4", "n/a", "n/a",
257};
258
259const struct gpio_group tigerlake_pch_lp_group_h = {
260 .display = "------- GPIO Group GPP_H -------",
261 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_h_names) / 4,
262 .func_count = 4,
263 .pad_names = tigerlake_pch_lp_group_h_names,
264};
265
266const char *const tigerlake_pch_lp_group_r_names[] = {
267 "GPP_R0", "HDA_BCLK", "I2S0_SCLK",
268 "GPP_R1", "HDA_SYNC", "I2S0_SFRM",
269 "GPP_R2", "HDA_SDO", "I2S0_TXD",
270 "GPP_R3", "HDA_SDI0", "I2S0_RXD",
271 "GPP_R4", "HDA_RST#", "n/a",
272 "GPP_R5", "HDA_SDI1", "I2S1_RXD",
273 "GPP_R6", "n/a", "I2S1_TXD",
274 "GPP_R7", "n/a", "I2S1_SFRM",
275};
276
277const struct gpio_group tigerlake_pch_lp_group_r = {
278 .display = "------- GPIO Group GPP_R -------",
279 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_r_names) / 3,
280 .func_count = 3,
281 .pad_names = tigerlake_pch_lp_group_r_names,
282};
283
284const char *const tigerlake_pch_lp_group_s_names[] = {
285 "GPP_S0", "SNDW0_CLK", "N/A",
286 "GPP_S1", "SNDW0_DATA", "N/A",
287 "GPP_S2", "SNDW1_CLK", "DMIC_CLK_B0",
288 "GPP_S3", "SNDW1_DATA", "DMIC_CLK_B1",
289 "GPP_S4", "SNDW2_CLK#", "DMIC_CLK_A1",
290 "GPP_S5", "SNDW2_DATA", "DMIC_DATA1",
291 "GPP_S6", "SNDW3_CLK", "DMIC_CLK_A0",
292 "GPP_S7", "SNDW3_DATA", "DMIC_DATA0",
293};
294
295const struct gpio_group tigerlake_pch_lp_group_s = {
296 .display = "------- GPIO Group GPP_S -------",
297 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_s_names) / 3,
298 .func_count = 3,
299 .pad_names = tigerlake_pch_lp_group_s_names,
300};
301
302const char *const tigerlake_pch_lp_group_gpp_t_names[] = {
303 "GPP_T0",
304 "GPP_T1",
305 "GPP_T2",
306 "GPP_T3",
307 "GPP_T4",
308 "GPP_T5",
309 "GPP_T6",
310 "GPP_T7",
311 "GPP_T8",
312 "GPP_T9",
313 "GPP_T10",
314 "GPP_T11",
315 "GPP_T12",
316 "GPP_T13",
317 "GPP_T14",
318 "GPP_T15",
319};
320
321const struct gpio_group tigerlake_pch_lp_group_t = {
322 .display = "------- GPIO Group GPP_T (TGL UP3 only) -------",
323 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_gpp_t_names),
324 .func_count = 1,
325 .pad_names = tigerlake_pch_lp_group_gpp_t_names,
326};
327
328const char *const tigerlake_pch_lp_group_u_names[] = {
329 "GPP_U0",
330 "GPP_U1",
331 "GPP_U2",
332 "GPP_U3",
333 "GPP_U4",
334 "GPP_U5",
335 "GPP_U6",
336 "GPP_U7",
337 "GPP_U8",
338 "GPP_U9",
339 "GPP_U10",
340 "GPP_U11",
341 "GPP_U12",
342 "GPP_U13",
343 "GPP_U14",
344 "GPP_U15",
345 "GPP_U16",
346 "GPP_U17",
347 "GPP_U18",
348 "GPP_U19",
349 "GSPI3_CLK_LOOPBK",
350 "GSPI4_CLK_LOOPBK",
351 "GSPI5_CLK_LOOPBK",
352 "GSPI6_CLK_LOOPBK",
353};
354
355const struct gpio_group tigerlake_pch_lp_group_u = {
356 .display = "------- GPIO Group GPP_U (TGL UP3 only) -------",
357 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_u_names),
358 .func_count = 1,
359 .pad_names = tigerlake_pch_lp_group_u_names,
360};
361
362const char *const tigerlake_pch_lp_group_vgpio_names[] = {
363 "VGPIO0", "VGPIO0",
364 "VGPIO4", "VGPIO4",
365 "VGPIO5", "VGPIO5",
366 "VGPIO6", "VGPIO6",
367 "VGPIO7", "VGPIO7",
368 "VGPIO8", "VGPIO8",
369 "VGPIO9", "VGPIO9",
370 "VGPIO10", "VGPIO10",
371 "VGPIO11", "VGPIO11",
372 "VGPIO12", "VGPIO12",
373 "VGPIO13", "VGPIO13",
374 "VGPIO18", "VGPIO18",
375 "VGPIO19", "VGPIO19",
376 "VGPIO20", "VGPIO20",
377 "VGPIO21", "VGPIO21",
378 "VGPIO22", "VGPIO22",
379 "VGPIO23", "VGPIO23",
380 "VGPIO24", "VGPIO24",
381 "VGPIO25", "VGPIO25",
382 "VGPIO30", "VGPIO30",
383 "VGPIO31", "VGPIO31",
384 "VGPIO32", "VGPIO32",
385 "VGPIO33", "VGPIO33",
386 "VGPIO34", "VGPIO34",
387 "VGPIO35", "VGPIO35",
388 "VGPIO36", "VGPIO36",
389 "VGPIO37", "VGPIO37",
390};
391
392const struct gpio_group tigerlake_pch_lp_group_vgpio = {
393 .display = "------- GPIO Group VGPIO -------",
394 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_vgpio_names) / 2,
395 .func_count = 2,
396 .pad_names = tigerlake_pch_lp_group_vgpio_names,
397};
398
399const char *const tigerlake_pch_lp_group_gpd_names[] = {
400 "GPD0", "BATLOW#",
401 "GPD1", "ACPRESENT",
402 "GPD2", "LAN_WAKE#",
403 "GPD3", "PRWBTN#",
404 "GPD4", "SLP_S3#",
405 "GPD5", "SLP_S4#",
406 "GPD6", "SLP_A#",
407 "GPD7", "n/a",
408 "GPD8", "SUSCLK",
409 "GPD9", "SLP_WLAN#",
410 "GPD10", "SLP_S5#",
411 "GPD11", "LANPHYPC",
412 "INPUT3VSEL", "INPUT3VSEL",
413 "SLP_LAN#", "SLP_LAN#",
414 "SLP_SUS#", "SLP_SUS#",
415 "WAKE#", "WAKE#",
416 "DRAM_RESET#", "DRAM_RESET#",
417};
418
419const struct gpio_group tigerlake_pch_lp_group_gpd = {
420 .display = "------- GPIO Group GPD -------",
421 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_gpd_names) / 2,
422 .func_count = 2,
423 .pad_names = tigerlake_pch_lp_group_gpd_names,
424};
425
426const char *const tigerlake_pch_lp_group_cpu_names[] = {
427 "HDACPU_SDI", "HDACPU_SDI",
428 "HDACPU_SDO", "HDACPU_SDO",
429 "HDACPU_SCLK", "HDACPU_SCLK",
430 "PM_SYNC", "PM_SYNC",
431 "PECI", "PECI",
432 "CPUPWRGD", "CPUPWRGD",
433 "THRMTRIP#", "THRMTRIP#",
434 "PLTRST_CPU#", "PLTRST_CPU#",
435 "PM_DOWN", "PM_DOWN",
436 "TRIGGER_IN", "TRIGGER_IN",
437 "TRIGGER_OUT", "TRIGGER_OUT",
438 "UFS_RESET#", "UFS_RESET#",
439 "CLKOUT_CPURTC", "CLKOUT_CPURTC",
440 "VCCST_OVERRIDE", "VCCST_OVERRIDE",
441 "C10_WAKE", "C10_WAKE",
442};
443
444const struct gpio_group tigerlake_pch_lp_group_cpu = {
445 .display = "------- GPIO Group CPU -------",
446 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_cpu_names) / 2,
447 .func_count = 2,
448 .pad_names = tigerlake_pch_lp_group_cpu_names,
449};
450
451const char *const tigerlake_pch_lp_group_vgpio3_names[] = {
452 "VGPIO_PCIE_0", "VGPIO_PCIE_0",
453 "VGPIO_PCIE_1", "VGPIO_PCIE_1",
454 "VGPIO_PCIE_2", "VGPIO_PCIE_2",
455 "VGPIO_PCIE_3", "VGPIO_PCIE_3",
456 "VGPIO_PCIE_4", "VGPIO_PCIE_4",
457 "VGPIO_PCIE_5", "VGPIO_PCIE_5",
458 "VGPIO_PCIE_6", "VGPIO_PCIE_6",
459 "VGPIO_PCIE_7", "VGPIO_PCIE_7",
460 "VGPIO_PCIE_8", "VGPIO_PCIE_8",
461 "VGPIO_PCIE_9", "VGPIO_PCIE_9",
462 "VGPIO_PCIE_10", "VGPIO_PCIE_10",
463 "VGPIO_PCIE_11", "VGPIO_PCIE_11",
464 "VGPIO_PCIE_12", "VGPIO_PCIE_12",
465 "VGPIO_PCIE_13", "VGPIO_PCIE_13",
466 "VGPIO_PCIE_14", "VGPIO_PCIE_14",
467 "VGPIO_PCIE_15", "VGPIO_PCIE_15",
468 "VGPIO_PCIE_16", "VGPIO_PCIE_16",
469 "VGPIO_PCIE_17", "VGPIO_PCIE_17",
470 "VGPIO_PCIE_18", "VGPIO_PCIE_18",
471 "VGPIO_PCIE_19", "VGPIO_PCIE_19",
472 "VGPIO_PCIE_20", "VGPIO_PCIE_20",
473 "VGPIO_PCIE_21", "VGPIO_PCIE_21",
474 "VGPIO_PCIE_22", "VGPIO_PCIE_22",
475 "VGPIO_PCIE_23", "VGPIO_PCIE_23",
476 "VGPIO_PCIE_24", "VGPIO_PCIE_24",
477 "VGPIO_PCIE_25", "VGPIO_PCIE_25",
478 "VGPIO_PCIE_26", "VGPIO_PCIE_26",
479 "VGPIO_PCIE_27", "VGPIO_PCIE_27",
480 "VGPIO_PCIE_28", "VGPIO_PCIE_28",
481 "VGPIO_PCIE_29", "VGPIO_PCIE_29",
482 "VGPIO_PCIE_30", "VGPIO_PCIE_30",
483 "VGPIO_PCIE_31", "VGPIO_PCIE_31",
484 "VGPIO_PCIE_32", "VGPIO_PCIE_32",
485 "VGPIO_PCIE_33", "VGPIO_PCIE_33",
486 "VGPIO_PCIE_34", "VGPIO_PCIE_34",
487 "VGPIO_PCIE_35", "VGPIO_PCIE_35",
488 "VGPIO_PCIE_36", "VGPIO_PCIE_36",
489 "VGPIO_PCIE_37", "VGPIO_PCIE_37",
490 "VGPIO_PCIE_38", "VGPIO_PCIE_38",
491 "VGPIO_PCIE_39", "VGPIO_PCIE_39",
492 "VGPIO_PCIE_40", "VGPIO_PCIE_40",
493 "VGPIO_PCIE_41", "VGPIO_PCIE_41",
494 "VGPIO_PCIE_42", "VGPIO_PCIE_42",
495 "VGPIO_PCIE_43", "VGPIO_PCIE_43",
496 "VGPIO_PCIE_44", "VGPIO_PCIE_44",
497 "VGPIO_PCIE_45", "VGPIO_PCIE_45",
498 "VGPIO_PCIE_46", "VGPIO_PCIE_46",
499 "VGPIO_PCIE_47", "VGPIO_PCIE_47",
500 "VGPIO_PCIE_48", "VGPIO_PCIE_48",
501 "VGPIO_PCIE_49", "VGPIO_PCIE_49",
502 "VGPIO_PCIE_50", "VGPIO_PCIE_50",
503 "VGPIO_PCIE_51", "VGPIO_PCIE_51",
504 "VGPIO_PCIE_52", "VGPIO_PCIE_52",
505 "VGPIO_PCIE_53", "VGPIO_PCIE_53",
506 "VGPIO_PCIE_54", "VGPIO_PCIE_54",
507 "VGPIO_PCIE_55", "VGPIO_PCIE_55",
508 "VGPIO_PCIE_56", "VGPIO_PCIE_56",
509 "VGPIO_PCIE_57", "VGPIO_PCIE_57",
510 "VGPIO_PCIE_58", "VGPIO_PCIE_58",
511 "VGPIO_PCIE_59", "VGPIO_PCIE_59",
512 "VGPIO_PCIE_60", "VGPIO_PCIE_60",
513 "VGPIO_PCIE_61", "VGPIO_PCIE_61",
514 "VGPIO_PCIE_62", "VGPIO_PCIE_62",
515 "VGPIO_PCIE_63", "VGPIO_PCIE_63",
516 "VGPIO_PCIE_64", "VGPIO_PCIE_64",
517 "VGPIO_PCIE_65", "VGPIO_PCIE_65",
518 "VGPIO_PCIE_66", "VGPIO_PCIE_66",
519 "VGPIO_PCIE_67", "VGPIO_PCIE_67",
520 "VGPIO_PCIE_68", "VGPIO_PCIE_68",
521 "VGPIO_PCIE_69", "VGPIO_PCIE_69",
522 "VGPIO_PCIE_70", "VGPIO_PCIE_70",
523 "VGPIO_PCIE_71", "VGPIO_PCIE_71",
524 "VGPIO_PCIE_72", "VGPIO_PCIE_72",
525 "VGPIO_PCIE_73", "VGPIO_PCIE_73",
526 "VGPIO_PCIE_74", "VGPIO_PCIE_74",
527 "VGPIO_PCIE_75", "VGPIO_PCIE_75",
528 "VGPIO_PCIE_76", "VGPIO_PCIE_76",
529 "VGPIO_PCIE_77", "VGPIO_PCIE_77",
530 "VGPIO_PCIE_78", "VGPIO_PCIE_78",
531 "VGPIO_PCIE_79", "VGPIO_PCIE_79",
532 "VGPIO_USB_0", "VGPIO_USB_0",
533 "VGPIO_USB_1", "VGPIO_USB_1",
534 "VGPIO_USB_2", "VGPIO_USB_2",
535 "VGPIO_USB_3", "VGPIO_USB_3",
536 "VGPIO_USB_4", "VGPIO_USB_4",
537 "VGPIO_USB_5", "VGPIO_USB_5",
538 "VGPIO_USB_6", "VGPIO_USB_6",
539 "VGPIO_USB_7", "VGPIO_USB_7",
540 "VGPIO_PCIE_80", "VGPIO_PCIE_80",
541 "VGPIO_PCIE_81", "VGPIO_PCIE_81",
542 "VGPIO_PCIE_82", "VGPIO_PCIE_82",
543 "VGPIO_PCIE_83", "VGPIO_PCIE_83",
544};
545
546const struct gpio_group tigerlake_pch_lp_group_vgpio3 = {
547 .display = "------- GPIO Group VGPIO3 -------",
548 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_vgpio3_names) / 2,
549 .func_count = 2,
550 .pad_names = tigerlake_pch_lp_group_vgpio3_names,
551};
552
553const char *const tigerlake_pch_lp_group_jtag_names[] = {
554 "JTAG_TDO", "JTAG_TDO",
555 "JTAGX", "JTAGX",
556 "PRDY#", "PRDY#",
557 "PREQ#", "PREQ#",
558 "CPU_TRST#", "CPU_TRST#",
559 "JTAG_TDI", "JTAG_TDI",
560 "JTAG_TMS", "JTAG_TMS",
561 "JTAG_TCK", "JTAG_TCK",
562 "DBG_PMODE", "DBG_PMODE",
563 "MLK", "MLK",
564};
565
566const struct gpio_group tigerlake_pch_lp_group_jtag = {
567 .display = "------- GPIO Group JTAG -------",
568 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_jtag_names) / 2,
569 .func_count = 2,
570 .pad_names = tigerlake_pch_lp_group_jtag_names,
571};
572
573const char *const tigerlake_pch_lp_group_spi_names[] = {
574 "SPI0_IO_2", "SPI0_IO_2",
575 "SPI0_IO_3", "SPI0_IO_3",
576 "SPI0_MOSI_IO_0", "SPI0_MOSI_IO_0",
577 "SPI0_MISO_IO_1", "SPI0_MISO_IO_1",
578 "SPI0_TPM_CS2#", "SPI0_TPM_CS2#",
579 "SPI0_FLASH_CS0#", "SPI0_FLASH_CS0#",
580 "SPI0_FLASH_CS1#", "SPI0_FLASH_CS1#",
581 "SPI0_CLK", "SPI0_CLK",
582 "SPI0_CLK_LOOPBK", "SPI0_CLK_LOOPBK",
583};
584
585const struct gpio_group tigerlake_pch_lp_group_spi = {
586 .display = "------- GPIO Group SPI -------",
587 .pad_count = ARRAY_SIZE(tigerlake_pch_lp_group_spi_names) / 2,
588 .func_count = 2,
589 .pad_names = tigerlake_pch_lp_group_spi_names,
590};
591
592const struct gpio_group *const tigerlake_pch_lp_community_0_groups[] = {
593 &tigerlake_pch_lp_group_b,
594 &tigerlake_pch_lp_group_t,
595 &tigerlake_pch_lp_group_a,
596};
597
598const struct gpio_community tigerlake_pch_lp_community_0 = {
599 .name = "------- GPIO Community 0 -------",
600 .pcr_port_id = 0x6e,
601 .group_count = ARRAY_SIZE(tigerlake_pch_lp_community_0_groups),
602 .groups = tigerlake_pch_lp_community_0_groups,
603};
604
605const struct gpio_group *const tigerlake_pch_lp_community_1_groups[] = {
606 &tigerlake_pch_lp_group_s,
607 &tigerlake_pch_lp_group_h,
608 &tigerlake_pch_lp_group_d,
609 &tigerlake_pch_lp_group_u,
610 &tigerlake_pch_lp_group_vgpio,
611};
612const struct gpio_community tigerlake_pch_lp_community_1 = {
613 .name = "------- GPIO Community 1 -------",
614 .pcr_port_id = 0x6d,
615 .group_count = ARRAY_SIZE(tigerlake_pch_lp_community_1_groups),
616 .groups = tigerlake_pch_lp_community_1_groups,
617};
618
619const struct gpio_group *const tigerlake_pch_lp_community_2_groups[] = {
620 &tigerlake_pch_lp_group_gpd,
621};
622
623const struct gpio_community tigerlake_pch_lp_community_2 = {
624 .name = "------- GPIO Community 2 -------",
625 .pcr_port_id = 0x6c,
626 .group_count = ARRAY_SIZE(tigerlake_pch_lp_community_2_groups),
627 .groups = tigerlake_pch_lp_community_2_groups,
628};
629
630const struct gpio_group *const tigerlake_pch_lp_community_3_groups[] = {
631 &tigerlake_pch_lp_group_cpu,
632 &tigerlake_pch_lp_group_vgpio3,
633};
634
635const struct gpio_community tigerlake_pch_lp_community_3 = {
636 .name = "------- GPIO Community 3 -------",
637 .pcr_port_id = 0x6b,
638 .group_count = ARRAY_SIZE(tigerlake_pch_lp_community_3_groups),
639 .groups = tigerlake_pch_lp_community_3_groups,
640};
641
642const struct gpio_group *const tigerlake_pch_lp_community_4_groups[] = {
643 &tigerlake_pch_lp_group_c,
644 &tigerlake_pch_lp_group_f,
645 &tigerlake_pch_lp_group_hvmos,
646 &tigerlake_pch_lp_group_e,
647 &tigerlake_pch_lp_group_jtag,
648};
649
650const struct gpio_community tigerlake_pch_lp_community_4 = {
651 .name = "------- GPIO Community 4 -------",
652 .pcr_port_id = 0x6a,
653 .group_count = ARRAY_SIZE(tigerlake_pch_lp_community_4_groups),
654 .groups = tigerlake_pch_lp_community_4_groups,
655};
656
657const struct gpio_group *const tigerlake_pch_lp_community_5_groups[] = {
658 &tigerlake_pch_lp_group_r,
659 &tigerlake_pch_lp_group_spi,
660};
661
662const struct gpio_community tigerlake_pch_lp_community_5 = {
663 .name = "------- GPIO Community 5 -------",
664 .pcr_port_id = 0x69,
665 .group_count = ARRAY_SIZE(tigerlake_pch_lp_community_5_groups),
666 .groups = tigerlake_pch_lp_community_5_groups,
667};
668
669const struct gpio_community *const tigerlake_pch_lp_communities[] = {
670 &tigerlake_pch_lp_community_0,
671 &tigerlake_pch_lp_community_1,
672 &tigerlake_pch_lp_community_2,
673 &tigerlake_pch_lp_community_3,
674 &tigerlake_pch_lp_community_4,
675 &tigerlake_pch_lp_community_5,
676};
677
678/* ----------------------------- Tiger Lake H ----------------------------- */
679
680const char *const tigerlake_pch_h_group_a_names[] = {
681/*
682 * These pads start at offset 0x680, but according to EDS the PADBAR is 0x700.
683 * This would cause the tool to parse the GPIOs incorrectly.
684 * For informational purposes only.
685 */
686/*
687 "SPI0_IO_2", "SPI0_IO_2", "n/a",
688 "SPI0_IO_3", "SPI0_IO_3", "n/a",
689 "SPI0_MOSI_IO_0", "SPI0_MOSI_IO_0", "n/a",
690 "SPI0_MISO_IO_1", "SPI0_MISO_IO_1", "n/a",
691 "SPI0_TPM_CS2#", "SPI0_TPM_CS2#", "n/a",
692 "SPI0_FLASH_CS0#", "SPI0_FLASH_CS0#", "n/a",
693 "SPI0_FLASH_CS1#", "SPI0_FLASH_CS1#", "n/a",
694 "SPI0_CLK", "SPI0_CLK", "n/a",
695*/
696 "GPP_A0", "ESPI_IO0", "n/a",
697 "GPP_A1", "ESPI_IO1", "n/a",
698 "GPP_A2", "ESPI_IO2", "SUSWARN#/SUSPWRDNACK",
699 "GPP_A3", "ESPI_IO3", "SUSACK#",
700 "GPP_A4", "ESPI_CS0#", "n/a",
701 "GPP_A5", "ESPI_CLK", "n/a",
702 "GPP_A6", "ESPI_RESET#", "n/a",
703 "GPP_A7", "ESPI_CS1#", "n/a",
704 "GPP_A8", "ESPI_CS2#", "n/a",
705 "GPP_A9", "ESPI_CS3#", "n/a",
706 "GPP_A10", "ESPI_ALERT0#", "n/a",
707 "GPP_A11", "ESPI_ALERT1#", "n/a",
708 "GPP_A12", "ESPI_ALERT2#", "n/a",
709 "GPP_A13", "ESPI_ALERT3#", "n/a",
710 "GPP_A14", "n/a", "IMGCLKOUT0",
711 "SPI0_CLK_LOOPBK", "SPI0_CLK_LOOPBK", "n/a",
712 "ESPI_CLK_LOOPBK", "ESPI_CLK_LOOPBK", "n/a",
713};
714
715const struct gpio_group tigerlake_pch_h_group_a = {
716 .display = "------- GPIO Group GPP_A -------",
717 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_a_names) / 3,
718 .func_count = 3,
719 .pad_names = tigerlake_pch_h_group_a_names,
720};
721
722const char *const tigerlake_pch_h_group_b_names[] = {
723 "GPP_B0", "GSPI0_CS1#", "IMGCLKOUT1",
724 "GPP_B1", "GSPI1_CS1#", "TIME_SYNC1",
725 "GPP_B2", "VRALERT#", "n/a",
726 "GPP_B3", "CPU_GP2", "n/a",
727 "GPP_B4", "CPU_GP3", "n/a",
728 "GPP_B5", "SRCCLKREQ0#", "n/a",
729 "GPP_B6", "SRCCLKREQ1#", "n/a",
730 "GPP_B7", "SRCCLKREQ2#", "n/a",
731 "GPP_B8", "SRCCLKREQ3#", "n/a",
732 "GPP_B9", "SRCCLKREQ4#", "n/a",
733 "GPP_B10", "SRCCLKREQ5#", "n/a",
734 "GPP_B11", "I2S_MCLK", "n/a",
735 "GPP_B12", "SLP_S0#", "n/a",
736 "GPP_B13", "PLTRST#", "n/a",
737 "GPP_B14", "SPKR", "n/a",
738 "GPP_B15", "GSPI0_CS0#", "n/a",
739 "GPP_B16", "GSPI0_CLK", "n/a",
740 "GPP_B17", "GSPI0_MISO", "n/a",
741 "GPP_B18", "GSPI0_MOSI", "n/a",
742 "GPP_B19", "GSPI1_CS0#", "n/a",
743 "GPP_B20", "GSPI1_CLK", "n/a",
744 "GPP_B21", "GSPI1_MISO", "n/a",
745 "GPP_B22", "GSPI1_MOSI", "n/a",
746 "GPP_B23", "SML1ALERT#", "PCHHOT#",
747 "GSPI0_CLK_LOOPBK", "GSPI0_CLK_LOOPBK", "n/a",
748 "GSPI1_CLK_LOOPBK", "GSPI1_CLK_LOOPBK", "n/a",
749};
750
751const struct gpio_group tigerlake_pch_h_group_b = {
752 .display = "------- GPIO Group GPP_B -------",
753 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_b_names) / 3,
754 .func_count = 3,
755 .pad_names = tigerlake_pch_h_group_b_names,
756};
757
758const char *const tigerlake_pch_h_group_c_names[] = {
759 "GPP_C0", "SMBCLK", "n/a", "n/a", "n/a",
760 "GPP_C1", "SMBDATA", "n/a", "n/a", "n/a",
761 "GPP_C2", "SMBALERT#", "n/a", "n/a", "n/a",
762 "GPP_C3", "ISH_UART0_RXD", "n/a", "I2C2_SDA", "n/a",
763 "GPP_C4", "ISH_UART0_TXD", "n/a", "I2C2_SCL", "n/a",
764 "GPP_C5", "SML0ALERT#", "n/a", "n/a", "n/a",
765 "GPP_C6", "ISH_I2C2_SDA", "I2C3_SDA", "SBK4", "BK4",
766 "GPP_C7", "ISH_I2C2_SCL", "I2C3_SCL", "n/a", "n/a",
767 "GPP_C8", "UART0_RXD", "n/a", "n/a", "n/a",
768 "GPP_C9", "UART0_TXD", "n/a", "n/a", "n/a",
769 "GPP_C10", "UART0_RTS#", "n/a", "n/a", "n/a",
770 "GPP_C11", "UART0_CTS#", "n/a", "n/a", "n/a",
771 "GPP_C12", "UART1_RXD", "ISH_UART1_RXD", "n/a", "n/a",
772 "GPP_C13", "UART1_TXD", "ISH_UART1_TXD", "n/a", "n/a",
773 "GPP_C14", "UART1_RTS#", "ISH_UART1_RTS#", "n/a", "n/a",
774 "GPP_C15", "UART1_CTS#", "ISH_UART1_CTS#", "n/a", "n/a",
775 "GPP_C16", "I2C0_SDA", "n/a", "n/a", "n/a",
776 "GPP_C17", "I2C0_SCL", "n/a", "n/a", "n/a",
777 "GPP_C18", "I2C1_SDA", "n/a", "n/a", "n/a",
778 "GPP_C19", "I2C1_SCL", "n/a", "n/a", "n/a",
779 "GPP_C20", "UART2_RXD", "n/a", "n/a", "n/a",
780 "GPP_C21", "UART2_TXD", "n/a", "n/a", "n/a",
781 "GPP_C22", "UART2_RTS#", "n/a", "n/a", "n/a",
782 "GPP_C23", "UART2_CTS#", "n/a", "n/a", "n/a",
783};
784
785const struct gpio_group tigerlake_pch_h_group_c = {
786 .display = "------- GPIO Group GPP_C -------",
787 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_c_names) / 5,
788 .func_count = 5,
789 .pad_names = tigerlake_pch_h_group_c_names,
790};
791
792const char *const tigerlake_pch_h_group_d_names[] = {
793 "GPP_D0", "n/a", "THC0_SPI1_CS#", "SBK0", "BK0",
794 "GPP_D1", "n/a", "THC0_SPI1_CLK", "SBK1", "BK1",
795 "GPP_D2", "n/a", "THC0_SPI1_IO1", "SBK2", "BK2",
796 "GPP_D3", "n/a", "THC0_SPI1_IO0", "SBK3", "BK3",
797 "GPP_D4", "SML1CLK", "n/a", "n/a", "n/a",
798 "GPP_D5", "I2S2_SFRM", "CNV_RF_RESET#", "n/a", "n/a",
799 "GPP_D6", "I2S2_TXD", "MODEM_CLKREQ", "CRF_XTAL_CLKREQ", "n/a",
800 "GPP_D7", "I2S2_RXD", "THC0_SPI1_RST#", "n/a", "n/a",
801 "GPP_D8", "I2S2_SCLK", "THC0_SPI1_INT#", "n/a", "n/a",
802 "GPP_D9", "SML0CLK", "n/a", "n/a", "n/a",
803 "GPP_D10", "SML0DATA", "n/a", "n/a", "n/a",
804 "GPP_D11", "n/a", "n/a", "n/a", "n/a",
805 "GPP_D12", "ISH_UART0_CTS#", "n/a", "n/a", "n/a",
806 "GPP_D13", "n/a", "THC0_SPI1_IO2", "n/a", "n/a",
807 "GPP_D14", "n/a", "THC0_SPI1_IO3", "n/a", "n/a",
808 "GPP_D15", "SML1DATA", "n/a", "n/a", "n/a",
809 "GPP_D16", "GSPI3_CS0#", "THC1_SPI2_CS#", "n/a", "n/a",
810 "GPP_D17", "GSPI3_CLK", "THC1_SPI2_CLK", "n/a", "n/a",
811 "GPP_D18", "GSPI3_MISO", "THC1_SPI2_IO0", "n/a", "n/a",
812 "GPP_D19", "GSPI3_MOSI", "THC1_SPI2_IO1", "n/a", "n/a",
813 "GPP_D20", "UART3_RXD", "THC1_SPI2_IO2", "n/a", "n/a",
814 "GPP_D21", "UART3_TXD", "THC1_SPI2_IO3", "n/a", "n/a",
815 "GPP_D22", "UART3_RTS#", "THC1_SPI2_RST#", "n/a", "n/a",
816 "GPP_D23", "UART3_CTS#", "THC1_SPI2_INT#", "n/a", "n/a",
817 /* Below are just guesses */
818 "SPI1_CLK_LOOPBK", "n/a", "THC0_CLK_LOOPBK", "n/a", "n/a",
819 "GPI3_CLK_LOOPBK", "n/a", "THC1_CLK_LOOPBK", "n/a", "n/a",
820};
821
822const struct gpio_group tigerlake_pch_h_group_d = {
823 .display = "------- GPIO Group GPP_D -------",
824 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_d_names) / 5,
825 .func_count = 5,
826 .pad_names = tigerlake_pch_h_group_d_names,
827};
828
829const char *const tigerlake_pch_h_group_e_names[] = {
830 "GPP_E0", "SATAXPCIE0", "SATAGP0",
831 "GPP_E1", "SATAXPCIE1", "SATAGP1",
832 "GPP_E2", "SATAXPCIE2", "SATAGP2",
833 "GPP_E3", "CPU_GP0", "n/a",
834 "GPP_E4", "SATA_DEVSLP0", "n/a",
835 "GPP_E5", "SATA_DEVSLP1", "n/a",
836 "GPP_E6", "SATA_DEVSLP2", "n/a",
837 "GPP_E7", "CPU_GP1", "n/a",
838 "GPP_E8", "SATALED#", "n/a",
839 "GPP_E9", "USB_OC0#", "n/a",
840 "GPP_E10", "USB_OC1#", "n/a",
841 "GPP_E11", "USB_OC2#", "n/a",
842 "GPP_E12", "USB_OC3#", "n/a",
843};
844
845const struct gpio_group tigerlake_pch_h_group_e = {
846 .display = "------- GPIO Group GPP_E -------",
847 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_e_names) / 3,
848 .func_count = 3,
849 .pad_names = tigerlake_pch_h_group_e_names,
850};
851
852const char *const tigerlake_pch_h_group_f_names[] = {
853 "GPP_F0", "SATAXPCIE3", "SATAGP3",
854 "GPP_F1", "SATAXPCIE4", "SATAGP4",
855 "GPP_F2", "SATAXPCIE5", "SATAGP5",
856 "GPP_F3", "SATAXPCIE6", "SATAGP6",
857 "GPP_F4", "SATAXPCIE7", "SATAGP7",
858 "GPP_F5", "SATA_DEVSLP3", "n/a",
859 "GPP_F6", "SATA_DEVSLP4", "n/a",
860 "GPP_F7", "SATA_DEVSLP5", "n/a",
861 "GPP_F8", "SATA_DEVSLP6", "n/a",
862 "GPP_F9", "SATA_DEVSLP7", "n/a",
863 "GPP_F10", "SATA_SCLOCK", "n/a",
864 "GPP_F11", "SATA_SLOAD", "n/a",
865 "GPP_F12", "SATA_SDATAOUT1", "n/a",
866 "GPP_F13", "SATA_SDATAOUT0", "n/a",
867 "GPP_F14", "PS_ON#", "n/a",
868 "GPP_F15", "M2_SKT2_CFG0", "n/a",
869 "GPP_F16", "M2_SKT2_CFG1", "n/a",
870 "GPP_F17", "M2_SKT2_CFG2", "n/a",
871 "GPP_F18", "M2_SKT2_CFG3", "n/a",
872 "GPP_F19", "eDP_VDDEN", "n/a",
873 "GPP_F20", "eDP_BKLTEN", "n/a",
874 "GPP_F21", "eDP_BKLTCTL", "n/a",
875 "GPP_F22", "VNN_CTRL", "n/a",
876 "GPP_F23", "n/a", "n/a",
877};
878
879const struct gpio_group tigerlake_pch_h_group_f = {
880 .display = "------- GPIO Group GPP_F -------",
881 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_f_names) / 3,
882 .func_count = 3,
883 .pad_names = tigerlake_pch_h_group_f_names,
884};
885
886const char *const tigerlake_pch_h_group_g_names[] = {
887 "GPP_G0", "DDPA_CTRLCLK", "n/a", "n/a", "n/a", "n/a",
888 "GPP_G1", "DDPA_CTRLDATA", "n/a", "n/a", "n/a", "n/a",
889 "GPP_G2", "DNX_FORCE_RELOAD", "n/a", "n/a", "n/a", "n/a",
890 "GPP_G3", "n/a", "n/a", "n/a", "n/a", "n/a",
891 "GPP_G4", "n/a", "n/a", "n/a", "n/a", "n/a",
892 "GPP_G5", "SLP_DRAM#", "n/a", "n/a", "n/a", "n/a",
893 "GPP_G6", "n/a", "Reserved", "n/a", "n/a", "n/a",
894 "GPP_G7", "n/a", "Reserved", "n/a", "n/a", "n/a",
895 "GPP_G8", "ISH_SPI_CS#", "DDP3_CTRLCLK", "GSPI2_CS0#", "TBT_LSX2_TXD", "BSSB_LS2_RX",
896 "GPP_G9", "ISH_SPI_CLK", "DDP3_CTRLDATA", "GSPI2_CLK", "TBT_LSX2_RXD", "BSSB_LS2_TX",
897 "GPP_G10", "ISH_SPI_MISO", "DDP4_CTRLCLK", "GSPI2_MISO", "TBT_LSX3_TXD", "BSSB_LS3_RX",
898 "GPP_G11", "ISH_SPI_MOSI", "DDP4_CTRLDATA", "GSPI2_MOSI", "TBT_LSX3_RXD", "BSSB_LS3_TX",
899 "GPP_G12", "DDP1_CTRLCLK", "n/a", "TBT_LSX0_TXD", "BSSB_LS0_RX", "n/a",
900 "GPP_G13", "DDP1_CTRLDATA", "n/a", "TBT_LSX0_RXD", "BSSB_LS0_TX", "n/a",
901 "GPP_G14", "DDP2_CTRLCLK", "n/a", "TBT_LSX1_TXD", "BSSB_LS1_RX", "n/a",
902 "GPP_G15", "DDP2_CTRLDATA", "n/a", "TBT_LSX1_RXD", "BSSB_LS1_TX", "n/a",
903};
904
905const struct gpio_group tigerlake_pch_h_group_g = {
906 .display = "------- GPIO Group GPP_G -------",
907 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_g_names) / 6,
908 .func_count = 6,
909 .pad_names = tigerlake_pch_h_group_g_names,
910};
911
912const char *const tigerlake_pch_h_group_h_names[] = {
913 "GPP_H0", "SRCCLKREQ6#", "n/a",
914 "GPP_H1", "SRCCLKREQ7#", "n/a",
915 "GPP_H2", "SRCCLKREQ8#", "n/a",
916 "GPP_H3", "SRCCLKREQ9#", "n/a",
917 "GPP_H4", "SRCCLKREQ10#", "n/a",
918 "GPP_H5", "SRCCLKREQ11#", "n/a",
919 "GPP_H6", "SRCCLKREQ12#", "n/a",
920 "GPP_H7", "SRCCLKREQ13#", "n/a",
921 "GPP_H8", "SRCCLKREQ14#", "n/a",
922 "GPP_H9", "SRCCLKREQ15#", "n/a",
923 "GPP_H10", "SML2CLK", "n/a",
924 "GPP_H11", "SML2DATA", "n/a",
925 "GPP_H12", "SML2ALERT#", "n/a",
926 "GPP_H13", "SML3CLK", "n/a",
927 "GPP_H14", "SML3DATA", "n/a",
928 "GPP_H15", "SML3ALERT#", "n/a",
929 "GPP_H16", "SML4CLK", "n/a",
930 "GPP_H17", "SML4DATA", "n/a",
931 "GPP_H18", "SML4ALERT#", "n/a",
932 "GPP_H19", "ISH_I2C0_SDA", "n/a",
933 "GPP_H20", "ISH_I2C0_SCL", "n/a",
934 "GPP_H21", "ISH_I2C1_SDA", "SMI#",
935 "GPP_H22", "ISH_I2C1_SCL", "NMI#",
936 "GPP_H23", "TIME_SYNC0", "n/a",
937};
938
939const struct gpio_group tigerlake_pch_h_group_h = {
940 .display = "------- GPIO Group GPP_H -------",
941 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_h_names) / 3,
942 .func_count = 3,
943 .pad_names = tigerlake_pch_h_group_h_names,
944};
945
946const char *const tigerlake_pch_h_group_i_names[] = {
947 "GPP_I0", "PMCALERT#", "n/a",
948 "GPP_I1", "DDSP_HPD1", "DISP_MISC1",
949 "GPP_I2", "DDSP_HPD2", "DISP_MISC2",
950 "GPP_I3", "DDSP_HPD3", "DISP_MISC3",
951 "GPP_I4", "DDSP_HPD4", "DISP_MISC4",
952 "GPP_I5", "DDPB_CTRLCLK", "n/a",
953 "GPP_I6", "DDPB_CTRLDATA", "n/a",
954 "GPP_I7", "DDPC_CTRLCLK", "n/a",
955 "GPP_I8", "DDPC_CTRLDATA", "n/a",
956 "GPP_I9", "Reserved", "n/a",
957 "GPP_I10", "Reserved", "n/a",
958 "GPP_I11", "USB_OC4#", "I2C4_SDA",
959 "GPP_I12", "USB_OC5#", "I2C4_SCL",
960 "GPP_I13", "USB_OC6#", "I2C5_SDA",
961 "GPP_I14", "USB_OC7#", "I2C5_SCL",
962};
963
964const struct gpio_group tigerlake_pch_h_group_i = {
965 .display = "------- GPIO Group GPP_I -------",
966 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_i_names) / 3,
967 .func_count = 3,
968 .pad_names = tigerlake_pch_h_group_i_names,
969};
970
971const char *const tigerlake_pch_h_group_j_names[] = {
972 "GPP_J0", "CNV_PA_BLANKING", "n/a",
973 "GPP_J1", "CPU_C10_GATE#", "n/a",
974 "GPP_J2", "CNV_BRI_DT", "UART0_RTS#",
975 "GPP_J3", "CNV_BRI_RSP", "UART0_RXD",
976 "GPP_J4", "CNV_RGI_DT", "UART0_TXD",
977 "GPP_J5", "CNV_RGI_RSP", "UART0_CTS#",
978 "GPP_J6", "CNV_MFUART2_RXD", "n/a",
979 "GPP_J7", "CNV_MFUART2_TXD", "n/a",
980 "GPP_J8", "n/a", "n/a",
981 "GPP_J9", "n/a", "n/a",
982};
983
984const struct gpio_group tigerlake_pch_h_group_j = {
985 .display = "------- GPIO Group GPP_J -------",
986 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_j_names) / 3,
987 .func_count = 3,
988 .pad_names = tigerlake_pch_h_group_j_names,
989};
990
991
992const char *const tigerlake_pch_h_group_k_names[] = {
993 "GPP_K0", "GSXDOUT", "n/a",
994 "GPP_K1", "GSXSLOAD", "n/a",
995 "GPP_K2", "GSXDIN", "n/a",
996 "GPP_K3", "GSXSRESET#", "n/a",
997 "GPP_K4", "GSXCLK", "n/a",
998 "GPP_K5", "ADR_COMPLETE", "n/a",
999 "GPP_K6", "DDSP_HPDA", "DISP_MISCA",
1000 "GPP_K7", "DDSP_HPDB", "DISP_MISCB",
1001 "GPP_K8", "CORE_VID0", "n/a",
1002 "GPP_K9", "CORE_VID1", "n/a",
1003 "GPP_K10", "DDSP_HPDC", "DISP_MISCC",
1004 "GPP_K11", "n/a", "n/a",
1005 "SYS_PWROK", "SYS_PWROK", "n/a",
1006 "SYS_RESET#", "SYS_RESET#", "n/a",
1007 "MLK_RST#", "MLK_RST#", "n/a",
1008};
1009
1010const struct gpio_group tigerlake_pch_h_group_k = {
1011 .display = "------- GPIO Group GPP_K -------",
1012 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_k_names) / 3,
1013 .func_count = 3,
1014 .pad_names = tigerlake_pch_h_group_k_names,
1015};
1016
1017const char *const tigerlake_pch_h_group_r_names[] = {
1018 "GPP_R0", "HDA_BCLK", "I2S0_SCLK", "n/a", "HDACPU_BCLK",
1019 "GPP_R1", "HDA_SYNC", "I2S0_SFRM", "n/a", "n/a",
1020 "GPP_R2", "HDA_SDO", "I2S0_TXD", "n/a", "HDACPU_SDO",
1021 "GPP_R3", "HDA_SDI0", "I2S0_RXD", "n/a", "HDACPU_SDI",
1022 "GPP_R4", "HDA_RST#", "n/a", "n/a", "n/a",
1023 "GPP_R5", "HDA_SDI1", "I2S1_RXD", "n/a", "n/a",
1024 "GPP_R6", "n/a", "I2S1_TXD", "n/a", "n/a",
1025 "GPP_R7", "n/a", "I2S1_SFRM", "n/a", "n/a",
1026 "GPP_R8", "n/a", "I2S1_SCLK", "n/a", "n/a",
1027 "GPP_R9", "PCIE_LNK_DOWN", "n/a", "n/a", "n/a",
1028 "GPP_R10", "ISH_UART0_RTS#", "GSPI2_CS1#", "n/a", "n/a",
1029 "GPP_R11", "SX_EXIT_HOLDOFF#", "ISH_GP6", "n/a", "n/a",
1030 "GPP_R12", "CLKOUT_48", "n/a", "n/a", "n/a",
1031 "GPP_R13", "ISH_GP7", "n/a", "n/a", "n/a",
1032 "GPP_R14", "ISH_GP0", "n/a", "n/a", "n/a",
1033 "GPP_R15", "ISH_GP1", "n/a", "n/a", "n/a",
1034 "GPP_R16", "ISH_GP2", "n/a", "n/a", "n/a",
1035 "GPP_R17", "ISH_GP3", "n/a", "n/a", "n/a",
1036 "GPP_R18", "ISH_GP4", "n/a", "n/a", "n/a",
1037 "GPP_R19", "ISH_GP5", "n/a", "n/a", "n/a",
1038};
1039
1040const struct gpio_group tigerlake_pch_h_group_r = {
1041 .display = "------- GPIO Group GPP_R -------",
1042 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_r_names) / 5,
1043 .func_count = 5,
1044 .pad_names = tigerlake_pch_h_group_r_names,
1045};
1046
1047const char *const tigerlake_pch_h_group_s_names[] = {
1048 "GPP_S0", "SNDW1_CLK", "n/a",
1049 "GPP_S1", "SNDW1_DATA", "n/a",
1050 "GPP_S2", "SNDW2_CLK", "DMIC_CKLB0",
1051 "GPP_S3", "SNDW2_DATA", "DMIC_CLKB1",
1052 "GPP_S4", "SNDW3_CLK", "DMIC_CLKA1",
1053 "GPP_S5", "SNDW3_DATA", "DMIC_DATA1",
1054 "GPP_S6", "SNDW4_CLK", "DMIC_CLKA0",
1055 "GPP_S7", "SNDW4_DATA", "DMIC_DATA0",
1056};
1057
1058const struct gpio_group tigerlake_pch_h_group_s = {
1059 .display = "------- GPIO Group GPP_S -------",
1060 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_s_names) / 3,
1061 .func_count = 3,
1062 .pad_names = tigerlake_pch_h_group_s_names,
1063};
1064
1065const char *const tigerlake_pch_h_group_gpd_names[] = {
1066 "GPD0", "BATLOW#",
1067 "GPD1", "ACPRESENT",
1068 "GPD2", "LAN_WAKE#",
1069 "GPD3", "PWRBTN#",
1070 "GPD4", "SLP_S3#",
1071 "GPD5", "SLP_S4#",
1072 "GPD6", "SLP_A#",
1073 "GPD7", "n/a",
1074 "GPD8", "SUSCLK",
1075 "GPD9", "SLP_WLAN#",
1076 "GPD10", "SLP_S5#",
1077 "GPD11", "LANPHYPC",
1078 "GPD12", "n/a",
1079 "SLP_LAN#", "SLP_LAN#",
1080 "SLP_SUS#", "SLP_SUS#",
1081 "WAKE#", "WAKE#",
1082 "DRAM_RESET#", "DRAM_RESET#",
1083};
1084
1085const struct gpio_group tigerlake_pch_h_group_gpd = {
1086 .display = "------- GPIO Group GPD -------",
1087 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_gpd_names) / 2,
1088 .func_count = 2,
1089 .pad_names = tigerlake_pch_h_group_gpd_names,
1090};
1091
1092const char *const tigerlake_pch_h_group_vgpio0_names[] = {
1093 "VGPIO_USB_0", "VGPIO_USB_0",
1094 "VGPIO_USB_1", "VGPIO_USB_1",
1095 "VGPIO_USB_2", "VGPIO_USB_2",
1096 "VGPIO_USB_3", "VGPIO_USB_3",
1097 "VGPIO_USB_8", "VGPIO_USB_8",
1098 "VGPIO_USB_9", "VGPIO_USB_9",
1099 "VGPIO_USB_10", "VGPIO_USB_10",
1100 "VGPIO_USB_11", "VGPIO_USB_11",
1101};
1102
1103const struct gpio_group tigerlake_pch_h_group_vgpio0 = {
1104 .display = "------- GPIO Group VGPIO0 -------",
1105 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_vgpio0_names) / 2,
1106 .func_count = 2,
1107 .pad_names = tigerlake_pch_h_group_vgpio0_names,
1108};
1109
1110const char *const tigerlake_pch_h_group_vgpio_names[] = {
1111 "VGPIO0", "VGPIO0",
1112 "VGPIO4", "VGPIO4",
1113 "VGPIO5", "VGPIO5",
1114 "VGPIO6", "VGPIO6",
1115 "VGPIO7", "VGPIO7",
1116 "VGPIO8", "VGPIO8",
1117 "VGPIO9", "VGPIO9",
1118 "VGPIO10", "VGPIO10",
1119 "VGPIO11", "VGPIO11",
1120 "VGPIO12", "VGPIO12",
1121 "VGPIO13", "VGPIO13",
1122 "VGPIO18", "VGPIO18",
1123 "VGPIO19", "VGPIO19",
1124 "VGPIO20", "VGPIO20",
1125 "VGPIO21", "VGPIO21",
1126 "VGPIO22", "VGPIO22",
1127 "VGPIO23", "VGPIO23",
1128 "VGPIO24", "VGPIO24",
1129 "VGPIO25", "VGPIO25",
1130 "VGPIO30", "VGPIO30",
1131 "VGPIO31", "VGPIO31",
1132 "VGPIO32", "VGPIO32",
1133 "VGPIO33", "VGPIO33",
1134 "VGPIO34", "VGPIO34",
1135 "VGPIO35", "VGPIO35",
1136 "VGPIO36", "VGPIO36",
1137 "VGPIO37", "VGPIO37",
1138};
1139
1140const struct gpio_group tigerlake_pch_h_group_vgpio = {
1141 .display = "------- GPIO Group VGPIO -------",
1142 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_vgpio_names) / 2,
1143 .func_count = 2,
1144 .pad_names = tigerlake_pch_h_group_vgpio_names,
1145};
1146
1147const char *const tigerlake_pch_h_group_cpu_names[] = {
1148 "HDACPU_SDI", "HDACPU_SDI",
1149 "HDACPU_SDO", "HDACPU_SDO",
1150 "HDACPU_BCLK", "HDACPU_BCLK",
1151 "PM_SYNC", "PM_SYNC",
1152 "PECI", "PECI",
1153 "CPUPWRGD", "CPUPWRGD",
1154 "THRMTRIP#", "THRMTRIP#",
1155 "PLTRST_CPU#", "PLTRST_CPU#",
1156 "PM_DOWN", "PM_DOWN",
1157 "TRIGGER_IN", "TRIGGER_IN",
1158 "TRIGGER_OUT", "TRIGGER_OUT",
1159 "CLKOUT_CPURTC", "CLKOUT_CPURTC",
1160 "VCCST_OVERRIDE", "VCCST_OVERRIDE",
1161 "C10_WAKE", "C10_WAKE",
1162};
1163
1164const struct gpio_group tigerlake_pch_h_group_cpu = {
1165 .display = "------- GPIO Group CPU -------",
1166 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_cpu_names) / 2,
1167 .func_count = 2,
1168 .pad_names = tigerlake_pch_h_group_cpu_names,
1169};
1170
1171const char *const tigerlake_pch_h_group_vgpio3_names[] = {
1172 "VGPIO_PCIE_0", "VGPIO_PCIE_0",
1173 "VGPIO_PCIE_1", "VGPIO_PCIE_1",
1174 "VGPIO_PCIE_2", "VGPIO_PCIE_2",
1175 "VGPIO_PCIE_3", "VGPIO_PCIE_3",
1176 "VGPIO_PCIE_4", "VGPIO_PCIE_4",
1177 "VGPIO_PCIE_5", "VGPIO_PCIE_5",
1178 "VGPIO_PCIE_6", "VGPIO_PCIE_6",
1179 "VGPIO_PCIE_7", "VGPIO_PCIE_7",
1180 "VGPIO_PCIE_8", "VGPIO_PCIE_8",
1181 "VGPIO_PCIE_9", "VGPIO_PCIE_9",
1182 "VGPIO_PCIE_10", "VGPIO_PCIE_10",
1183 "VGPIO_PCIE_11", "VGPIO_PCIE_11",
1184 "VGPIO_PCIE_12", "VGPIO_PCIE_12",
1185 "VGPIO_PCIE_13", "VGPIO_PCIE_13",
1186 "VGPIO_PCIE_14", "VGPIO_PCIE_14",
1187 "VGPIO_PCIE_15", "VGPIO_PCIE_15",
1188 "VGPIO_PCIE_16", "VGPIO_PCIE_16",
1189 "VGPIO_PCIE_17", "VGPIO_PCIE_17",
1190 "VGPIO_PCIE_18", "VGPIO_PCIE_18",
1191 "VGPIO_PCIE_19", "VGPIO_PCIE_19",
1192 "VGPIO_PCIE_20", "VGPIO_PCIE_20",
1193 "VGPIO_PCIE_21", "VGPIO_PCIE_21",
1194 "VGPIO_PCIE_22", "VGPIO_PCIE_22",
1195 "VGPIO_PCIE_23", "VGPIO_PCIE_23",
1196 "VGPIO_PCIE_24", "VGPIO_PCIE_24",
1197 "VGPIO_PCIE_25", "VGPIO_PCIE_25",
1198 "VGPIO_PCIE_26", "VGPIO_PCIE_26",
1199 "VGPIO_PCIE_27", "VGPIO_PCIE_27",
1200 "VGPIO_PCIE_28", "VGPIO_PCIE_28",
1201 "VGPIO_PCIE_29", "VGPIO_PCIE_29",
1202 "VGPIO_PCIE_30", "VGPIO_PCIE_30",
1203 "VGPIO_PCIE_31", "VGPIO_PCIE_31",
1204 "VGPIO_PCIE_32", "VGPIO_PCIE_32",
1205 "VGPIO_PCIE_33", "VGPIO_PCIE_33",
1206 "VGPIO_PCIE_34", "VGPIO_PCIE_34",
1207 "VGPIO_PCIE_35", "VGPIO_PCIE_35",
1208 "VGPIO_PCIE_36", "VGPIO_PCIE_36",
1209 "VGPIO_PCIE_37", "VGPIO_PCIE_37",
1210 "VGPIO_PCIE_38", "VGPIO_PCIE_38",
1211 "VGPIO_PCIE_39", "VGPIO_PCIE_39",
1212 "VGPIO_PCIE_40", "VGPIO_PCIE_40",
1213 "VGPIO_PCIE_41", "VGPIO_PCIE_41",
1214 "VGPIO_PCIE_42", "VGPIO_PCIE_42",
1215 "VGPIO_PCIE_43", "VGPIO_PCIE_43",
1216 "VGPIO_PCIE_44", "VGPIO_PCIE_44",
1217 "VGPIO_PCIE_45", "VGPIO_PCIE_45",
1218 "VGPIO_PCIE_46", "VGPIO_PCIE_46",
1219 "VGPIO_PCIE_47", "VGPIO_PCIE_47",
1220 "VGPIO_PCIE_48", "VGPIO_PCIE_48",
1221 "VGPIO_PCIE_49", "VGPIO_PCIE_49",
1222 "VGPIO_PCIE_50", "VGPIO_PCIE_50",
1223 "VGPIO_PCIE_51", "VGPIO_PCIE_51",
1224 "VGPIO_PCIE_52", "VGPIO_PCIE_52",
1225 "VGPIO_PCIE_53", "VGPIO_PCIE_53",
1226 "VGPIO_PCIE_54", "VGPIO_PCIE_54",
1227 "VGPIO_PCIE_55", "VGPIO_PCIE_55",
1228 "VGPIO_PCIE_56", "VGPIO_PCIE_56",
1229 "VGPIO_PCIE_57", "VGPIO_PCIE_57",
1230 "VGPIO_PCIE_58", "VGPIO_PCIE_58",
1231 "VGPIO_PCIE_59", "VGPIO_PCIE_59",
1232 "VGPIO_PCIE_60", "VGPIO_PCIE_60",
1233 "VGPIO_PCIE_61", "VGPIO_PCIE_61",
1234 "VGPIO_PCIE_62", "VGPIO_PCIE_62",
1235 "VGPIO_PCIE_63", "VGPIO_PCIE_63",
1236 "VGPIO_PCIE_64", "VGPIO_PCIE_64",
1237 "VGPIO_PCIE_65", "VGPIO_PCIE_65",
1238 "VGPIO_PCIE_66", "VGPIO_PCIE_66",
1239 "VGPIO_PCIE_67", "VGPIO_PCIE_67",
1240 "VGPIO_PCIE_68", "VGPIO_PCIE_68",
1241 "VGPIO_PCIE_69", "VGPIO_PCIE_69",
1242 "VGPIO_PCIE_70", "VGPIO_PCIE_70",
1243 "VGPIO_PCIE_71", "VGPIO_PCIE_71",
1244 "VGPIO_PCIE_72", "VGPIO_PCIE_72",
1245 "VGPIO_PCIE_73", "VGPIO_PCIE_73",
1246 "VGPIO_PCIE_74", "VGPIO_PCIE_74",
1247 "VGPIO_PCIE_75", "VGPIO_PCIE_75",
1248 "VGPIO_PCIE_76", "VGPIO_PCIE_76",
1249 "VGPIO_PCIE_77", "VGPIO_PCIE_77",
1250 "VGPIO_PCIE_78", "VGPIO_PCIE_78",
1251 "VGPIO_PCIE_79", "VGPIO_PCIE_79",
1252 "VGPIO_PCIE_80", "VGPIO_PCIE_80",
1253 "VGPIO_PCIE_81", "VGPIO_PCIE_81",
1254 "VGPIO_PCIE_82", "VGPIO_PCIE_82",
1255 "VGPIO_PCIE_83", "VGPIO_PCIE_83",
1256};
1257
1258const struct gpio_group tigerlake_pch_h_group_vgpio3 = {
1259 .display = "------- GPIO Group VGPIO3 -------",
1260 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_vgpio3_names) / 2,
1261 .func_count = 2,
1262 .pad_names = tigerlake_pch_h_group_vgpio3_names,
1263};
1264
1265const char *const tigerlake_pch_h_group_jtag_names[] = {
1266 "JTAG_TDO", "JTAG_TDO",
1267 "JTAGX", "JTAGX",
1268 "PRDY#", "PRDY#",
1269 "PREQ#", "PREQ#",
1270 "CPU_TRST#", "CPU_TRST#",
1271 "JTAG_TDI", "JTAG_TDI",
1272 "JTAG_TMS", "JTAG_TMS",
1273 "JTAG_TCK", "JTAG_TCK",
1274 "DBG_PMODE", "DBG_PMODE",
1275 "MLK", "MLK",
1276};
1277
1278const struct gpio_group tigerlake_pch_h_group_jtag = {
1279 .display = "------- GPIO Group JTAG -------",
1280 .pad_count = ARRAY_SIZE(tigerlake_pch_h_group_jtag_names) / 2,
1281 .func_count = 2,
1282 .pad_names = tigerlake_pch_h_group_jtag_names,
1283};
1284
1285
1286const struct gpio_group *const tigerlake_pch_h_community_0_groups[] = {
1287 &tigerlake_pch_h_group_a,
1288 &tigerlake_pch_h_group_r,
1289 &tigerlake_pch_h_group_b,
1290 &tigerlake_pch_h_group_vgpio0,
1291};
1292
1293const struct gpio_community tigerlake_pch_h_community_0 = {
1294 .name = "------- GPIO Community 0 -------",
1295 .pcr_port_id = 0x6e,
1296 .group_count = ARRAY_SIZE(tigerlake_pch_h_community_0_groups),
1297 .groups = tigerlake_pch_h_community_0_groups,
1298};
1299
1300const struct gpio_group *const tigerlake_pch_h_community_1_groups[] = {
1301 &tigerlake_pch_h_group_d,
1302 &tigerlake_pch_h_group_c,
1303 &tigerlake_pch_h_group_s,
1304 &tigerlake_pch_h_group_g,
1305 &tigerlake_pch_h_group_vgpio,
1306};
1307const struct gpio_community tigerlake_pch_h_community_1 = {
1308 .name = "------- GPIO Community 1 -------",
1309 .pcr_port_id = 0x6d,
1310 .group_count = ARRAY_SIZE(tigerlake_pch_h_community_1_groups),
1311 .groups = tigerlake_pch_h_community_1_groups,
1312};
1313
1314const struct gpio_group *const tigerlake_pch_h_community_2_groups[] = {
1315 &tigerlake_pch_h_group_gpd,
1316};
1317
1318const struct gpio_community tigerlake_pch_h_community_2 = {
1319 .name = "------- GPIO Community 2 -------",
1320 .pcr_port_id = 0x6c,
1321 .group_count = ARRAY_SIZE(tigerlake_pch_h_community_2_groups),
1322 .groups = tigerlake_pch_h_community_2_groups,
1323};
1324
1325const struct gpio_group *const tigerlake_pch_h_community_3_groups[] = {
1326 &tigerlake_pch_h_group_e,
1327 &tigerlake_pch_h_group_f,
1328 &tigerlake_pch_h_group_vgpio3,
1329};
1330
1331const struct gpio_community tigerlake_pch_h_community_3 = {
1332 .name = "------- GPIO Community 3 -------",
1333 .pcr_port_id = 0x6b,
1334 .group_count = ARRAY_SIZE(tigerlake_pch_h_community_3_groups),
1335 .groups = tigerlake_pch_h_community_3_groups,
1336};
1337
1338const struct gpio_group *const tigerlake_pch_h_community_4_groups[] = {
1339 &tigerlake_pch_h_group_h,
1340 &tigerlake_pch_h_group_j,
1341 &tigerlake_pch_h_group_k,
1342};
1343
1344const struct gpio_community tigerlake_pch_h_community_4 = {
1345 .name = "------- GPIO Community 4 -------",
1346 .pcr_port_id = 0x6a,
1347 .group_count = ARRAY_SIZE(tigerlake_pch_h_community_4_groups),
1348 .groups = tigerlake_pch_h_community_4_groups,
1349};
1350
1351const struct gpio_group *const tigerlake_pch_h_community_5_groups[] = {
1352 &tigerlake_pch_h_group_i,
1353 &tigerlake_pch_h_group_jtag,
1354 &tigerlake_pch_h_group_cpu,
1355};
1356
1357const struct gpio_community tigerlake_pch_h_community_5 = {
1358 .name = "------- GPIO Community 5 -------",
1359 .pcr_port_id = 0x69,
1360 .group_count = ARRAY_SIZE(tigerlake_pch_h_community_5_groups),
1361 .groups = tigerlake_pch_h_community_5_groups,
1362};
1363
1364const struct gpio_community *const tigerlake_pch_h_communities[] = {
1365 &tigerlake_pch_h_community_0,
1366 &tigerlake_pch_h_community_1,
1367 &tigerlake_pch_h_community_2,
1368 &tigerlake_pch_h_community_3,
1369 &tigerlake_pch_h_community_4,
1370 &tigerlake_pch_h_community_5,
1371};
1372
1373#endif