xref: /aosp_15_r20/external/coreboot/util/inteltool/gpio_names/tigerlake.h (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef GPIO_NAMES_TIGERLAKE_LP
4 #define GPIO_NAMES_TIGERLAKE_LP
5 
6 #include "gpio_groups.h"
7 
8 /* ----------------------------- Tiger Lake LP ----------------------------- */
9 
10 const 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 
38 const 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 
45 const 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 
74 const 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 
81 const 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 
108 const 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 
115 const 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 
139 const 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 
146 const 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 
174 const 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 
181 const 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 
190 const struct gpio_group tigerlake_pch_lp_group_hvmos = {
191 	.display	= "------- GPIO Group HVMOS -------",
192 	.pad_count	= ARRAY_SIZE(tigerlake_pch_lp_group_hvmos_names) / 2,
193 	.func_count	= 2,
194 	.pad_names	= tigerlake_pch_lp_group_hvmos_names,
195 };
196 
197 const 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 
225 const 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 
232 const 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 
259 const 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 
266 const 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 
277 const 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 
284 const 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 
295 const 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 
302 const 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 
321 const 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 
328 const 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 
355 const 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 
362 const 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 
392 const 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 
399 const 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 
419 const 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 
426 const 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 
444 const 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 
451 const 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 
546 const 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 
553 const 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 
566 const 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 
573 const 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 
585 const 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 
592 const 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 
598 const 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 
605 const 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 };
612 const 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 
619 const struct gpio_group *const tigerlake_pch_lp_community_2_groups[] = {
620 	&tigerlake_pch_lp_group_gpd,
621 };
622 
623 const 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 
630 const struct gpio_group *const tigerlake_pch_lp_community_3_groups[] = {
631 	&tigerlake_pch_lp_group_cpu,
632 	&tigerlake_pch_lp_group_vgpio3,
633 };
634 
635 const 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 
642 const 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 
650 const 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 
657 const struct gpio_group *const tigerlake_pch_lp_community_5_groups[] = {
658 	&tigerlake_pch_lp_group_r,
659 	&tigerlake_pch_lp_group_spi,
660 };
661 
662 const 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 
669 const 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 
680 const 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 
715 const 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 
722 const 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 
751 const 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 
758 const 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 
785 const 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 
792 const 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 
822 const 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 
829 const 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 
845 const 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 
852 const 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 
879 const 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 
886 const 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 
905 const 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 
912 const 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 
939 const 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 
946 const 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 
964 const 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 
971 const 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 
984 const 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 
992 const 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 
1010 const 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 
1017 const 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 
1040 const 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 
1047 const 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 
1058 const 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 
1065 const 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 
1085 const 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 
1092 const 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 
1103 const 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 
1110 const 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 
1140 const 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 
1147 const 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 
1164 const 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 
1171 const 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 
1258 const 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 
1265 const 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 
1278 const 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 
1286 const 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 
1293 const 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 
1300 const 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 };
1307 const 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 
1314 const struct gpio_group *const tigerlake_pch_h_community_2_groups[] = {
1315 	&tigerlake_pch_h_group_gpd,
1316 };
1317 
1318 const 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 
1325 const 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 
1331 const 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 
1338 const 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 
1344 const 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 
1351 const 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 
1357 const 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 
1364 const 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
1374