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