0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #include <linux/mod_devicetable.h>
0011 #include <linux/module.h>
0012 #include <linux/platform_device.h>
0013
0014 #include <linux/pinctrl/pinctrl.h>
0015
0016 #include "pinctrl-intel.h"
0017
0018 #define TGL_PAD_OWN 0x020
0019 #define TGL_LP_PADCFGLOCK 0x080
0020 #define TGL_H_PADCFGLOCK 0x090
0021 #define TGL_LP_HOSTSW_OWN 0x0b0
0022 #define TGL_H_HOSTSW_OWN 0x0c0
0023 #define TGL_GPI_IS 0x100
0024 #define TGL_GPI_IE 0x120
0025
0026 #define TGL_GPP(r, s, e, g) \
0027 { \
0028 .reg_num = (r), \
0029 .base = (s), \
0030 .size = ((e) - (s) + 1), \
0031 .gpio_base = (g), \
0032 }
0033
0034 #define TGL_COMMUNITY(b, s, e, pl, ho, g) \
0035 { \
0036 .barno = (b), \
0037 .padown_offset = TGL_PAD_OWN, \
0038 .padcfglock_offset = (pl), \
0039 .hostown_offset = (ho), \
0040 .is_offset = TGL_GPI_IS, \
0041 .ie_offset = TGL_GPI_IE, \
0042 .pin_base = (s), \
0043 .npins = ((e) - (s) + 1), \
0044 .gpps = (g), \
0045 .ngpps = ARRAY_SIZE(g), \
0046 }
0047
0048 #define TGL_LP_COMMUNITY(b, s, e, g) \
0049 TGL_COMMUNITY(b, s, e, TGL_LP_PADCFGLOCK, TGL_LP_HOSTSW_OWN, g)
0050
0051 #define TGL_H_COMMUNITY(b, s, e, g) \
0052 TGL_COMMUNITY(b, s, e, TGL_H_PADCFGLOCK, TGL_H_HOSTSW_OWN, g)
0053
0054
0055 static const struct pinctrl_pin_desc tgllp_pins[] = {
0056
0057 PINCTRL_PIN(0, "CORE_VID_0"),
0058 PINCTRL_PIN(1, "CORE_VID_1"),
0059 PINCTRL_PIN(2, "VRALERTB"),
0060 PINCTRL_PIN(3, "CPU_GP_2"),
0061 PINCTRL_PIN(4, "CPU_GP_3"),
0062 PINCTRL_PIN(5, "ISH_I2C0_SDA"),
0063 PINCTRL_PIN(6, "ISH_I2C0_SCL"),
0064 PINCTRL_PIN(7, "ISH_I2C1_SDA"),
0065 PINCTRL_PIN(8, "ISH_I2C1_SCL"),
0066 PINCTRL_PIN(9, "I2C5_SDA"),
0067 PINCTRL_PIN(10, "I2C5_SCL"),
0068 PINCTRL_PIN(11, "PMCALERTB"),
0069 PINCTRL_PIN(12, "SLP_S0B"),
0070 PINCTRL_PIN(13, "PLTRSTB"),
0071 PINCTRL_PIN(14, "SPKR"),
0072 PINCTRL_PIN(15, "GSPI0_CS0B"),
0073 PINCTRL_PIN(16, "GSPI0_CLK"),
0074 PINCTRL_PIN(17, "GSPI0_MISO"),
0075 PINCTRL_PIN(18, "GSPI0_MOSI"),
0076 PINCTRL_PIN(19, "GSPI1_CS0B"),
0077 PINCTRL_PIN(20, "GSPI1_CLK"),
0078 PINCTRL_PIN(21, "GSPI1_MISO"),
0079 PINCTRL_PIN(22, "GSPI1_MOSI"),
0080 PINCTRL_PIN(23, "SML1ALERTB"),
0081 PINCTRL_PIN(24, "GSPI0_CLK_LOOPBK"),
0082 PINCTRL_PIN(25, "GSPI1_CLK_LOOPBK"),
0083
0084 PINCTRL_PIN(26, "I2C6_SDA"),
0085 PINCTRL_PIN(27, "I2C6_SCL"),
0086 PINCTRL_PIN(28, "I2C7_SDA"),
0087 PINCTRL_PIN(29, "I2C7_SCL"),
0088 PINCTRL_PIN(30, "UART4_RXD"),
0089 PINCTRL_PIN(31, "UART4_TXD"),
0090 PINCTRL_PIN(32, "UART4_RTSB"),
0091 PINCTRL_PIN(33, "UART4_CTSB"),
0092 PINCTRL_PIN(34, "UART5_RXD"),
0093 PINCTRL_PIN(35, "UART5_TXD"),
0094 PINCTRL_PIN(36, "UART5_RTSB"),
0095 PINCTRL_PIN(37, "UART5_CTSB"),
0096 PINCTRL_PIN(38, "UART6_RXD"),
0097 PINCTRL_PIN(39, "UART6_TXD"),
0098 PINCTRL_PIN(40, "UART6_RTSB"),
0099 PINCTRL_PIN(41, "UART6_CTSB"),
0100
0101 PINCTRL_PIN(42, "ESPI_IO_0"),
0102 PINCTRL_PIN(43, "ESPI_IO_1"),
0103 PINCTRL_PIN(44, "ESPI_IO_2"),
0104 PINCTRL_PIN(45, "ESPI_IO_3"),
0105 PINCTRL_PIN(46, "ESPI_CSB"),
0106 PINCTRL_PIN(47, "ESPI_CLK"),
0107 PINCTRL_PIN(48, "ESPI_RESETB"),
0108 PINCTRL_PIN(49, "I2S2_SCLK"),
0109 PINCTRL_PIN(50, "I2S2_SFRM"),
0110 PINCTRL_PIN(51, "I2S2_TXD"),
0111 PINCTRL_PIN(52, "I2S2_RXD"),
0112 PINCTRL_PIN(53, "PMC_I2C_SDA"),
0113 PINCTRL_PIN(54, "SATAXPCIE_1"),
0114 PINCTRL_PIN(55, "PMC_I2C_SCL"),
0115 PINCTRL_PIN(56, "USB2_OCB_1"),
0116 PINCTRL_PIN(57, "USB2_OCB_2"),
0117 PINCTRL_PIN(58, "USB2_OCB_3"),
0118 PINCTRL_PIN(59, "DDSP_HPD_C"),
0119 PINCTRL_PIN(60, "DDSP_HPD_B"),
0120 PINCTRL_PIN(61, "DDSP_HPD_1"),
0121 PINCTRL_PIN(62, "DDSP_HPD_2"),
0122 PINCTRL_PIN(63, "GPPC_A_21"),
0123 PINCTRL_PIN(64, "GPPC_A_22"),
0124 PINCTRL_PIN(65, "I2S1_SCLK"),
0125 PINCTRL_PIN(66, "ESPI_CLK_LOOPBK"),
0126
0127 PINCTRL_PIN(67, "SNDW0_CLK"),
0128 PINCTRL_PIN(68, "SNDW0_DATA"),
0129 PINCTRL_PIN(69, "SNDW1_CLK"),
0130 PINCTRL_PIN(70, "SNDW1_DATA"),
0131 PINCTRL_PIN(71, "SNDW2_CLK"),
0132 PINCTRL_PIN(72, "SNDW2_DATA"),
0133 PINCTRL_PIN(73, "SNDW3_CLK"),
0134 PINCTRL_PIN(74, "SNDW3_DATA"),
0135
0136 PINCTRL_PIN(75, "GPPC_H_0"),
0137 PINCTRL_PIN(76, "GPPC_H_1"),
0138 PINCTRL_PIN(77, "GPPC_H_2"),
0139 PINCTRL_PIN(78, "SX_EXIT_HOLDOFFB"),
0140 PINCTRL_PIN(79, "I2C2_SDA"),
0141 PINCTRL_PIN(80, "I2C2_SCL"),
0142 PINCTRL_PIN(81, "I2C3_SDA"),
0143 PINCTRL_PIN(82, "I2C3_SCL"),
0144 PINCTRL_PIN(83, "I2C4_SDA"),
0145 PINCTRL_PIN(84, "I2C4_SCL"),
0146 PINCTRL_PIN(85, "SRCCLKREQB_4"),
0147 PINCTRL_PIN(86, "SRCCLKREQB_5"),
0148 PINCTRL_PIN(87, "M2_SKT2_CFG_0"),
0149 PINCTRL_PIN(88, "M2_SKT2_CFG_1"),
0150 PINCTRL_PIN(89, "M2_SKT2_CFG_2"),
0151 PINCTRL_PIN(90, "M2_SKT2_CFG_3"),
0152 PINCTRL_PIN(91, "DDPB_CTRLCLK"),
0153 PINCTRL_PIN(92, "DDPB_CTRLDATA"),
0154 PINCTRL_PIN(93, "CPU_C10_GATEB"),
0155 PINCTRL_PIN(94, "TIME_SYNC_0"),
0156 PINCTRL_PIN(95, "IMGCLKOUT_1"),
0157 PINCTRL_PIN(96, "IMGCLKOUT_2"),
0158 PINCTRL_PIN(97, "IMGCLKOUT_3"),
0159 PINCTRL_PIN(98, "IMGCLKOUT_4"),
0160
0161 PINCTRL_PIN(99, "ISH_GP_0"),
0162 PINCTRL_PIN(100, "ISH_GP_1"),
0163 PINCTRL_PIN(101, "ISH_GP_2"),
0164 PINCTRL_PIN(102, "ISH_GP_3"),
0165 PINCTRL_PIN(103, "IMGCLKOUT_0"),
0166 PINCTRL_PIN(104, "SRCCLKREQB_0"),
0167 PINCTRL_PIN(105, "SRCCLKREQB_1"),
0168 PINCTRL_PIN(106, "SRCCLKREQB_2"),
0169 PINCTRL_PIN(107, "SRCCLKREQB_3"),
0170 PINCTRL_PIN(108, "ISH_SPI_CSB"),
0171 PINCTRL_PIN(109, "ISH_SPI_CLK"),
0172 PINCTRL_PIN(110, "ISH_SPI_MISO"),
0173 PINCTRL_PIN(111, "ISH_SPI_MOSI"),
0174 PINCTRL_PIN(112, "ISH_UART0_RXD"),
0175 PINCTRL_PIN(113, "ISH_UART0_TXD"),
0176 PINCTRL_PIN(114, "ISH_UART0_RTSB"),
0177 PINCTRL_PIN(115, "ISH_UART0_CTSB"),
0178 PINCTRL_PIN(116, "ISH_GP_4"),
0179 PINCTRL_PIN(117, "ISH_GP_5"),
0180 PINCTRL_PIN(118, "I2S_MCLK1_OUT"),
0181 PINCTRL_PIN(119, "GSPI2_CLK_LOOPBK"),
0182
0183 PINCTRL_PIN(120, "UART3_RXD"),
0184 PINCTRL_PIN(121, "UART3_TXD"),
0185 PINCTRL_PIN(122, "UART3_RTSB"),
0186 PINCTRL_PIN(123, "UART3_CTSB"),
0187 PINCTRL_PIN(124, "GSPI3_CS0B"),
0188 PINCTRL_PIN(125, "GSPI3_CLK"),
0189 PINCTRL_PIN(126, "GSPI3_MISO"),
0190 PINCTRL_PIN(127, "GSPI3_MOSI"),
0191 PINCTRL_PIN(128, "GSPI4_CS0B"),
0192 PINCTRL_PIN(129, "GSPI4_CLK"),
0193 PINCTRL_PIN(130, "GSPI4_MISO"),
0194 PINCTRL_PIN(131, "GSPI4_MOSI"),
0195 PINCTRL_PIN(132, "GSPI5_CS0B"),
0196 PINCTRL_PIN(133, "GSPI5_CLK"),
0197 PINCTRL_PIN(134, "GSPI5_MISO"),
0198 PINCTRL_PIN(135, "GSPI5_MOSI"),
0199 PINCTRL_PIN(136, "GSPI6_CS0B"),
0200 PINCTRL_PIN(137, "GSPI6_CLK"),
0201 PINCTRL_PIN(138, "GSPI6_MISO"),
0202 PINCTRL_PIN(139, "GSPI6_MOSI"),
0203 PINCTRL_PIN(140, "GSPI3_CLK_LOOPBK"),
0204 PINCTRL_PIN(141, "GSPI4_CLK_LOOPBK"),
0205 PINCTRL_PIN(142, "GSPI5_CLK_LOOPBK"),
0206 PINCTRL_PIN(143, "GSPI6_CLK_LOOPBK"),
0207
0208 PINCTRL_PIN(144, "CNV_BTEN"),
0209 PINCTRL_PIN(145, "CNV_BT_HOST_WAKEB"),
0210 PINCTRL_PIN(146, "CNV_BT_IF_SELECT"),
0211 PINCTRL_PIN(147, "vCNV_BT_UART_TXD"),
0212 PINCTRL_PIN(148, "vCNV_BT_UART_RXD"),
0213 PINCTRL_PIN(149, "vCNV_BT_UART_CTS_B"),
0214 PINCTRL_PIN(150, "vCNV_BT_UART_RTS_B"),
0215 PINCTRL_PIN(151, "vCNV_MFUART1_TXD"),
0216 PINCTRL_PIN(152, "vCNV_MFUART1_RXD"),
0217 PINCTRL_PIN(153, "vCNV_MFUART1_CTS_B"),
0218 PINCTRL_PIN(154, "vCNV_MFUART1_RTS_B"),
0219 PINCTRL_PIN(155, "vUART0_TXD"),
0220 PINCTRL_PIN(156, "vUART0_RXD"),
0221 PINCTRL_PIN(157, "vUART0_CTS_B"),
0222 PINCTRL_PIN(158, "vUART0_RTS_B"),
0223 PINCTRL_PIN(159, "vISH_UART0_TXD"),
0224 PINCTRL_PIN(160, "vISH_UART0_RXD"),
0225 PINCTRL_PIN(161, "vISH_UART0_CTS_B"),
0226 PINCTRL_PIN(162, "vISH_UART0_RTS_B"),
0227 PINCTRL_PIN(163, "vCNV_BT_I2S_BCLK"),
0228 PINCTRL_PIN(164, "vCNV_BT_I2S_WS_SYNC"),
0229 PINCTRL_PIN(165, "vCNV_BT_I2S_SDO"),
0230 PINCTRL_PIN(166, "vCNV_BT_I2S_SDI"),
0231 PINCTRL_PIN(167, "vI2S2_SCLK"),
0232 PINCTRL_PIN(168, "vI2S2_SFRM"),
0233 PINCTRL_PIN(169, "vI2S2_TXD"),
0234 PINCTRL_PIN(170, "vI2S2_RXD"),
0235
0236 PINCTRL_PIN(171, "SMBCLK"),
0237 PINCTRL_PIN(172, "SMBDATA"),
0238 PINCTRL_PIN(173, "SMBALERTB"),
0239 PINCTRL_PIN(174, "SML0CLK"),
0240 PINCTRL_PIN(175, "SML0DATA"),
0241 PINCTRL_PIN(176, "SML0ALERTB"),
0242 PINCTRL_PIN(177, "SML1CLK"),
0243 PINCTRL_PIN(178, "SML1DATA"),
0244 PINCTRL_PIN(179, "UART0_RXD"),
0245 PINCTRL_PIN(180, "UART0_TXD"),
0246 PINCTRL_PIN(181, "UART0_RTSB"),
0247 PINCTRL_PIN(182, "UART0_CTSB"),
0248 PINCTRL_PIN(183, "UART1_RXD"),
0249 PINCTRL_PIN(184, "UART1_TXD"),
0250 PINCTRL_PIN(185, "UART1_RTSB"),
0251 PINCTRL_PIN(186, "UART1_CTSB"),
0252 PINCTRL_PIN(187, "I2C0_SDA"),
0253 PINCTRL_PIN(188, "I2C0_SCL"),
0254 PINCTRL_PIN(189, "I2C1_SDA"),
0255 PINCTRL_PIN(190, "I2C1_SCL"),
0256 PINCTRL_PIN(191, "UART2_RXD"),
0257 PINCTRL_PIN(192, "UART2_TXD"),
0258 PINCTRL_PIN(193, "UART2_RTSB"),
0259 PINCTRL_PIN(194, "UART2_CTSB"),
0260
0261 PINCTRL_PIN(195, "CNV_BRI_DT"),
0262 PINCTRL_PIN(196, "CNV_BRI_RSP"),
0263 PINCTRL_PIN(197, "CNV_RGI_DT"),
0264 PINCTRL_PIN(198, "CNV_RGI_RSP"),
0265 PINCTRL_PIN(199, "CNV_RF_RESET_B"),
0266 PINCTRL_PIN(200, "GPPC_F_5"),
0267 PINCTRL_PIN(201, "CNV_PA_BLANKING"),
0268 PINCTRL_PIN(202, "GPPC_F_7"),
0269 PINCTRL_PIN(203, "I2S_MCLK2_INOUT"),
0270 PINCTRL_PIN(204, "BOOTMPC"),
0271 PINCTRL_PIN(205, "GPPC_F_10"),
0272 PINCTRL_PIN(206, "GPPC_F_11"),
0273 PINCTRL_PIN(207, "GSXDOUT"),
0274 PINCTRL_PIN(208, "GSXSLOAD"),
0275 PINCTRL_PIN(209, "GSXDIN"),
0276 PINCTRL_PIN(210, "GSXSRESETB"),
0277 PINCTRL_PIN(211, "GSXCLK"),
0278 PINCTRL_PIN(212, "GMII_MDC"),
0279 PINCTRL_PIN(213, "GMII_MDIO"),
0280 PINCTRL_PIN(214, "SRCCLKREQB_6"),
0281 PINCTRL_PIN(215, "EXT_PWR_GATEB"),
0282 PINCTRL_PIN(216, "EXT_PWR_GATE2B"),
0283 PINCTRL_PIN(217, "VNN_CTRL"),
0284 PINCTRL_PIN(218, "V1P05_CTRL"),
0285 PINCTRL_PIN(219, "GPPF_CLK_LOOPBACK"),
0286
0287 PINCTRL_PIN(220, "L_BKLTEN"),
0288 PINCTRL_PIN(221, "L_BKLTCTL"),
0289 PINCTRL_PIN(222, "L_VDDEN"),
0290 PINCTRL_PIN(223, "SYS_PWROK"),
0291 PINCTRL_PIN(224, "SYS_RESETB"),
0292 PINCTRL_PIN(225, "MLK_RSTB"),
0293
0294 PINCTRL_PIN(226, "SATAXPCIE_0"),
0295 PINCTRL_PIN(227, "SPI1_IO_2"),
0296 PINCTRL_PIN(228, "SPI1_IO_3"),
0297 PINCTRL_PIN(229, "CPU_GP_0"),
0298 PINCTRL_PIN(230, "SATA_DEVSLP_0"),
0299 PINCTRL_PIN(231, "SATA_DEVSLP_1"),
0300 PINCTRL_PIN(232, "GPPC_E_6"),
0301 PINCTRL_PIN(233, "CPU_GP_1"),
0302 PINCTRL_PIN(234, "SPI1_CS1B"),
0303 PINCTRL_PIN(235, "USB2_OCB_0"),
0304 PINCTRL_PIN(236, "SPI1_CSB"),
0305 PINCTRL_PIN(237, "SPI1_CLK"),
0306 PINCTRL_PIN(238, "SPI1_MISO_IO_1"),
0307 PINCTRL_PIN(239, "SPI1_MOSI_IO_0"),
0308 PINCTRL_PIN(240, "DDSP_HPD_A"),
0309 PINCTRL_PIN(241, "ISH_GP_6"),
0310 PINCTRL_PIN(242, "ISH_GP_7"),
0311 PINCTRL_PIN(243, "GPPC_E_17"),
0312 PINCTRL_PIN(244, "DDP1_CTRLCLK"),
0313 PINCTRL_PIN(245, "DDP1_CTRLDATA"),
0314 PINCTRL_PIN(246, "DDP2_CTRLCLK"),
0315 PINCTRL_PIN(247, "DDP2_CTRLDATA"),
0316 PINCTRL_PIN(248, "DDPA_CTRLCLK"),
0317 PINCTRL_PIN(249, "DDPA_CTRLDATA"),
0318 PINCTRL_PIN(250, "SPI1_CLK_LOOPBK"),
0319
0320 PINCTRL_PIN(251, "JTAG_TDO"),
0321 PINCTRL_PIN(252, "JTAGX"),
0322 PINCTRL_PIN(253, "PRDYB"),
0323 PINCTRL_PIN(254, "PREQB"),
0324 PINCTRL_PIN(255, "CPU_TRSTB"),
0325 PINCTRL_PIN(256, "JTAG_TDI"),
0326 PINCTRL_PIN(257, "JTAG_TMS"),
0327 PINCTRL_PIN(258, "JTAG_TCK"),
0328 PINCTRL_PIN(259, "DBG_PMODE"),
0329
0330 PINCTRL_PIN(260, "HDA_BCLK"),
0331 PINCTRL_PIN(261, "HDA_SYNC"),
0332 PINCTRL_PIN(262, "HDA_SDO"),
0333 PINCTRL_PIN(263, "HDA_SDI_0"),
0334 PINCTRL_PIN(264, "HDA_RSTB"),
0335 PINCTRL_PIN(265, "HDA_SDI_1"),
0336 PINCTRL_PIN(266, "GPP_R_6"),
0337 PINCTRL_PIN(267, "GPP_R_7"),
0338
0339 PINCTRL_PIN(268, "SPI0_IO_2"),
0340 PINCTRL_PIN(269, "SPI0_IO_3"),
0341 PINCTRL_PIN(270, "SPI0_MOSI_IO_0"),
0342 PINCTRL_PIN(271, "SPI0_MISO_IO_1"),
0343 PINCTRL_PIN(272, "SPI0_TPM_CSB"),
0344 PINCTRL_PIN(273, "SPI0_FLASH_0_CSB"),
0345 PINCTRL_PIN(274, "SPI0_FLASH_1_CSB"),
0346 PINCTRL_PIN(275, "SPI0_CLK"),
0347 PINCTRL_PIN(276, "SPI0_CLK_LOOPBK"),
0348 };
0349
0350 static const struct intel_padgroup tgllp_community0_gpps[] = {
0351 TGL_GPP(0, 0, 25, 0),
0352 TGL_GPP(1, 26, 41, 32),
0353 TGL_GPP(2, 42, 66, 64),
0354 };
0355
0356 static const struct intel_padgroup tgllp_community1_gpps[] = {
0357 TGL_GPP(0, 67, 74, 96),
0358 TGL_GPP(1, 75, 98, 128),
0359 TGL_GPP(2, 99, 119, 160),
0360 TGL_GPP(3, 120, 143, 192),
0361 TGL_GPP(4, 144, 170, 224),
0362 };
0363
0364 static const struct intel_padgroup tgllp_community4_gpps[] = {
0365 TGL_GPP(0, 171, 194, 256),
0366 TGL_GPP(1, 195, 219, 288),
0367 TGL_GPP(2, 220, 225, INTEL_GPIO_BASE_NOMAP),
0368 TGL_GPP(3, 226, 250, 320),
0369 TGL_GPP(4, 251, 259, INTEL_GPIO_BASE_NOMAP),
0370 };
0371
0372 static const struct intel_padgroup tgllp_community5_gpps[] = {
0373 TGL_GPP(0, 260, 267, 352),
0374 TGL_GPP(1, 268, 276, INTEL_GPIO_BASE_NOMAP),
0375 };
0376
0377 static const struct intel_community tgllp_communities[] = {
0378 TGL_LP_COMMUNITY(0, 0, 66, tgllp_community0_gpps),
0379 TGL_LP_COMMUNITY(1, 67, 170, tgllp_community1_gpps),
0380 TGL_LP_COMMUNITY(2, 171, 259, tgllp_community4_gpps),
0381 TGL_LP_COMMUNITY(3, 260, 276, tgllp_community5_gpps),
0382 };
0383
0384 static const struct intel_pinctrl_soc_data tgllp_soc_data = {
0385 .pins = tgllp_pins,
0386 .npins = ARRAY_SIZE(tgllp_pins),
0387 .communities = tgllp_communities,
0388 .ncommunities = ARRAY_SIZE(tgllp_communities),
0389 };
0390
0391
0392 static const struct pinctrl_pin_desc tglh_pins[] = {
0393
0394 PINCTRL_PIN(0, "SPI0_IO_2"),
0395 PINCTRL_PIN(1, "SPI0_IO_3"),
0396 PINCTRL_PIN(2, "SPI0_MOSI_IO_0"),
0397 PINCTRL_PIN(3, "SPI0_MISO_IO_1"),
0398 PINCTRL_PIN(4, "SPI0_TPM_CSB"),
0399 PINCTRL_PIN(5, "SPI0_FLASH_0_CSB"),
0400 PINCTRL_PIN(6, "SPI0_FLASH_1_CSB"),
0401 PINCTRL_PIN(7, "SPI0_CLK"),
0402 PINCTRL_PIN(8, "ESPI_IO_0"),
0403 PINCTRL_PIN(9, "ESPI_IO_1"),
0404 PINCTRL_PIN(10, "ESPI_IO_2"),
0405 PINCTRL_PIN(11, "ESPI_IO_3"),
0406 PINCTRL_PIN(12, "ESPI_CS0B"),
0407 PINCTRL_PIN(13, "ESPI_CLK"),
0408 PINCTRL_PIN(14, "ESPI_RESETB"),
0409 PINCTRL_PIN(15, "ESPI_CS1B"),
0410 PINCTRL_PIN(16, "ESPI_CS2B"),
0411 PINCTRL_PIN(17, "ESPI_CS3B"),
0412 PINCTRL_PIN(18, "ESPI_ALERT0B"),
0413 PINCTRL_PIN(19, "ESPI_ALERT1B"),
0414 PINCTRL_PIN(20, "ESPI_ALERT2B"),
0415 PINCTRL_PIN(21, "ESPI_ALERT3B"),
0416 PINCTRL_PIN(22, "GPPC_A_14"),
0417 PINCTRL_PIN(23, "SPI0_CLK_LOOPBK"),
0418 PINCTRL_PIN(24, "ESPI_CLK_LOOPBK"),
0419
0420 PINCTRL_PIN(25, "HDA_BCLK"),
0421 PINCTRL_PIN(26, "HDA_SYNC"),
0422 PINCTRL_PIN(27, "HDA_SDO"),
0423 PINCTRL_PIN(28, "HDA_SDI_0"),
0424 PINCTRL_PIN(29, "HDA_RSTB"),
0425 PINCTRL_PIN(30, "HDA_SDI_1"),
0426 PINCTRL_PIN(31, "GPP_R_6"),
0427 PINCTRL_PIN(32, "GPP_R_7"),
0428 PINCTRL_PIN(33, "GPP_R_8"),
0429 PINCTRL_PIN(34, "PCIE_LNK_DOWN"),
0430 PINCTRL_PIN(35, "ISH_UART0_RTSB"),
0431 PINCTRL_PIN(36, "SX_EXIT_HOLDOFFB"),
0432 PINCTRL_PIN(37, "CLKOUT_48"),
0433 PINCTRL_PIN(38, "ISH_GP_7"),
0434 PINCTRL_PIN(39, "ISH_GP_0"),
0435 PINCTRL_PIN(40, "ISH_GP_1"),
0436 PINCTRL_PIN(41, "ISH_GP_2"),
0437 PINCTRL_PIN(42, "ISH_GP_3"),
0438 PINCTRL_PIN(43, "ISH_GP_4"),
0439 PINCTRL_PIN(44, "ISH_GP_5"),
0440
0441 PINCTRL_PIN(45, "GSPI0_CS1B"),
0442 PINCTRL_PIN(46, "GSPI1_CS1B"),
0443 PINCTRL_PIN(47, "VRALERTB"),
0444 PINCTRL_PIN(48, "CPU_GP_2"),
0445 PINCTRL_PIN(49, "CPU_GP_3"),
0446 PINCTRL_PIN(50, "SRCCLKREQB_0"),
0447 PINCTRL_PIN(51, "SRCCLKREQB_1"),
0448 PINCTRL_PIN(52, "SRCCLKREQB_2"),
0449 PINCTRL_PIN(53, "SRCCLKREQB_3"),
0450 PINCTRL_PIN(54, "SRCCLKREQB_4"),
0451 PINCTRL_PIN(55, "SRCCLKREQB_5"),
0452 PINCTRL_PIN(56, "I2S_MCLK"),
0453 PINCTRL_PIN(57, "SLP_S0B"),
0454 PINCTRL_PIN(58, "PLTRSTB"),
0455 PINCTRL_PIN(59, "SPKR"),
0456 PINCTRL_PIN(60, "GSPI0_CS0B"),
0457 PINCTRL_PIN(61, "GSPI0_CLK"),
0458 PINCTRL_PIN(62, "GSPI0_MISO"),
0459 PINCTRL_PIN(63, "GSPI0_MOSI"),
0460 PINCTRL_PIN(64, "GSPI1_CS0B"),
0461 PINCTRL_PIN(65, "GSPI1_CLK"),
0462 PINCTRL_PIN(66, "GSPI1_MISO"),
0463 PINCTRL_PIN(67, "GSPI1_MOSI"),
0464 PINCTRL_PIN(68, "SML1ALERTB"),
0465 PINCTRL_PIN(69, "GSPI0_CLK_LOOPBK"),
0466 PINCTRL_PIN(70, "GSPI1_CLK_LOOPBK"),
0467
0468 PINCTRL_PIN(71, "ESPI_USB_OCB_0"),
0469 PINCTRL_PIN(72, "ESPI_USB_OCB_1"),
0470 PINCTRL_PIN(73, "ESPI_USB_OCB_2"),
0471 PINCTRL_PIN(74, "ESPI_USB_OCB_3"),
0472 PINCTRL_PIN(75, "USB_CPU_OCB_0"),
0473 PINCTRL_PIN(76, "USB_CPU_OCB_1"),
0474 PINCTRL_PIN(77, "USB_CPU_OCB_2"),
0475 PINCTRL_PIN(78, "USB_CPU_OCB_3"),
0476
0477 PINCTRL_PIN(79, "SPI1_CSB"),
0478 PINCTRL_PIN(80, "SPI1_CLK"),
0479 PINCTRL_PIN(81, "SPI1_MISO_IO_1"),
0480 PINCTRL_PIN(82, "SPI1_MOSI_IO_0"),
0481 PINCTRL_PIN(83, "SML1CLK"),
0482 PINCTRL_PIN(84, "I2S2_SFRM"),
0483 PINCTRL_PIN(85, "I2S2_TXD"),
0484 PINCTRL_PIN(86, "I2S2_RXD"),
0485 PINCTRL_PIN(87, "I2S2_SCLK"),
0486 PINCTRL_PIN(88, "SML0CLK"),
0487 PINCTRL_PIN(89, "SML0DATA"),
0488 PINCTRL_PIN(90, "GPP_D_11"),
0489 PINCTRL_PIN(91, "ISH_UART0_CTSB"),
0490 PINCTRL_PIN(92, "SPI1_IO_2"),
0491 PINCTRL_PIN(93, "SPI1_IO_3"),
0492 PINCTRL_PIN(94, "SML1DATA"),
0493 PINCTRL_PIN(95, "GSPI3_CS0B"),
0494 PINCTRL_PIN(96, "GSPI3_CLK"),
0495 PINCTRL_PIN(97, "GSPI3_MISO"),
0496 PINCTRL_PIN(98, "GSPI3_MOSI"),
0497 PINCTRL_PIN(99, "UART3_RXD"),
0498 PINCTRL_PIN(100, "UART3_TXD"),
0499 PINCTRL_PIN(101, "UART3_RTSB"),
0500 PINCTRL_PIN(102, "UART3_CTSB"),
0501 PINCTRL_PIN(103, "SPI1_CLK_LOOPBK"),
0502 PINCTRL_PIN(104, "GSPI3_CLK_LOOPBK"),
0503
0504 PINCTRL_PIN(105, "SMBCLK"),
0505 PINCTRL_PIN(106, "SMBDATA"),
0506 PINCTRL_PIN(107, "SMBALERTB"),
0507 PINCTRL_PIN(108, "ISH_UART0_RXD"),
0508 PINCTRL_PIN(109, "ISH_UART0_TXD"),
0509 PINCTRL_PIN(110, "SML0ALERTB"),
0510 PINCTRL_PIN(111, "ISH_I2C2_SDA"),
0511 PINCTRL_PIN(112, "ISH_I2C2_SCL"),
0512 PINCTRL_PIN(113, "UART0_RXD"),
0513 PINCTRL_PIN(114, "UART0_TXD"),
0514 PINCTRL_PIN(115, "UART0_RTSB"),
0515 PINCTRL_PIN(116, "UART0_CTSB"),
0516 PINCTRL_PIN(117, "UART1_RXD"),
0517 PINCTRL_PIN(118, "UART1_TXD"),
0518 PINCTRL_PIN(119, "UART1_RTSB"),
0519 PINCTRL_PIN(120, "UART1_CTSB"),
0520 PINCTRL_PIN(121, "I2C0_SDA"),
0521 PINCTRL_PIN(122, "I2C0_SCL"),
0522 PINCTRL_PIN(123, "I2C1_SDA"),
0523 PINCTRL_PIN(124, "I2C1_SCL"),
0524 PINCTRL_PIN(125, "UART2_RXD"),
0525 PINCTRL_PIN(126, "UART2_TXD"),
0526 PINCTRL_PIN(127, "UART2_RTSB"),
0527 PINCTRL_PIN(128, "UART2_CTSB"),
0528
0529 PINCTRL_PIN(129, "SNDW1_CLK"),
0530 PINCTRL_PIN(130, "SNDW1_DATA"),
0531 PINCTRL_PIN(131, "SNDW2_CLK"),
0532 PINCTRL_PIN(132, "SNDW2_DATA"),
0533 PINCTRL_PIN(133, "SNDW3_CLK"),
0534 PINCTRL_PIN(134, "SNDW3_DATA"),
0535 PINCTRL_PIN(135, "SNDW4_CLK"),
0536 PINCTRL_PIN(136, "SNDW4_DATA"),
0537
0538 PINCTRL_PIN(137, "DDPA_CTRLCLK"),
0539 PINCTRL_PIN(138, "DDPA_CTRLDATA"),
0540 PINCTRL_PIN(139, "DNX_FORCE_RELOAD"),
0541 PINCTRL_PIN(140, "GMII_MDC_0"),
0542 PINCTRL_PIN(141, "GMII_MDIO_0"),
0543 PINCTRL_PIN(142, "SLP_DRAMB"),
0544 PINCTRL_PIN(143, "GPPC_G_6"),
0545 PINCTRL_PIN(144, "GPPC_G_7"),
0546 PINCTRL_PIN(145, "ISH_SPI_CSB"),
0547 PINCTRL_PIN(146, "ISH_SPI_CLK"),
0548 PINCTRL_PIN(147, "ISH_SPI_MISO"),
0549 PINCTRL_PIN(148, "ISH_SPI_MOSI"),
0550 PINCTRL_PIN(149, "DDP1_CTRLCLK"),
0551 PINCTRL_PIN(150, "DDP1_CTRLDATA"),
0552 PINCTRL_PIN(151, "DDP2_CTRLCLK"),
0553 PINCTRL_PIN(152, "DDP2_CTRLDATA"),
0554 PINCTRL_PIN(153, "GSPI2_CLK_LOOPBK"),
0555
0556 PINCTRL_PIN(154, "CNV_BTEN"),
0557 PINCTRL_PIN(155, "CNV_BT_HOST_WAKEB"),
0558 PINCTRL_PIN(156, "CNV_BT_IF_SELECT"),
0559 PINCTRL_PIN(157, "vCNV_BT_UART_TXD"),
0560 PINCTRL_PIN(158, "vCNV_BT_UART_RXD"),
0561 PINCTRL_PIN(159, "vCNV_BT_UART_CTS_B"),
0562 PINCTRL_PIN(160, "vCNV_BT_UART_RTS_B"),
0563 PINCTRL_PIN(161, "vCNV_MFUART1_TXD"),
0564 PINCTRL_PIN(162, "vCNV_MFUART1_RXD"),
0565 PINCTRL_PIN(163, "vCNV_MFUART1_CTS_B"),
0566 PINCTRL_PIN(164, "vCNV_MFUART1_RTS_B"),
0567 PINCTRL_PIN(165, "vUART0_TXD"),
0568 PINCTRL_PIN(166, "vUART0_RXD"),
0569 PINCTRL_PIN(167, "vUART0_CTS_B"),
0570 PINCTRL_PIN(168, "vUART0_RTS_B"),
0571 PINCTRL_PIN(169, "vISH_UART0_TXD"),
0572 PINCTRL_PIN(170, "vISH_UART0_RXD"),
0573 PINCTRL_PIN(171, "vISH_UART0_CTS_B"),
0574 PINCTRL_PIN(172, "vISH_UART0_RTS_B"),
0575 PINCTRL_PIN(173, "vCNV_BT_I2S_BCLK"),
0576 PINCTRL_PIN(174, "vCNV_BT_I2S_WS_SYNC"),
0577 PINCTRL_PIN(175, "vCNV_BT_I2S_SDO"),
0578 PINCTRL_PIN(176, "vCNV_BT_I2S_SDI"),
0579 PINCTRL_PIN(177, "vI2S2_SCLK"),
0580 PINCTRL_PIN(178, "vI2S2_SFRM"),
0581 PINCTRL_PIN(179, "vI2S2_TXD"),
0582 PINCTRL_PIN(180, "vI2S2_RXD"),
0583
0584 PINCTRL_PIN(181, "SATAXPCIE_0"),
0585 PINCTRL_PIN(182, "SATAXPCIE_1"),
0586 PINCTRL_PIN(183, "SATAXPCIE_2"),
0587 PINCTRL_PIN(184, "CPU_GP_0"),
0588 PINCTRL_PIN(185, "SATA_DEVSLP_0"),
0589 PINCTRL_PIN(186, "SATA_DEVSLP_1"),
0590 PINCTRL_PIN(187, "SATA_DEVSLP_2"),
0591 PINCTRL_PIN(188, "CPU_GP_1"),
0592 PINCTRL_PIN(189, "SATA_LEDB"),
0593 PINCTRL_PIN(190, "USB2_OCB_0"),
0594 PINCTRL_PIN(191, "USB2_OCB_1"),
0595 PINCTRL_PIN(192, "USB2_OCB_2"),
0596 PINCTRL_PIN(193, "USB2_OCB_3"),
0597
0598 PINCTRL_PIN(194, "SATAXPCIE_3"),
0599 PINCTRL_PIN(195, "SATAXPCIE_4"),
0600 PINCTRL_PIN(196, "SATAXPCIE_5"),
0601 PINCTRL_PIN(197, "SATAXPCIE_6"),
0602 PINCTRL_PIN(198, "SATAXPCIE_7"),
0603 PINCTRL_PIN(199, "SATA_DEVSLP_3"),
0604 PINCTRL_PIN(200, "SATA_DEVSLP_4"),
0605 PINCTRL_PIN(201, "SATA_DEVSLP_5"),
0606 PINCTRL_PIN(202, "SATA_DEVSLP_6"),
0607 PINCTRL_PIN(203, "SATA_DEVSLP_7"),
0608 PINCTRL_PIN(204, "SATA_SCLOCK"),
0609 PINCTRL_PIN(205, "SATA_SLOAD"),
0610 PINCTRL_PIN(206, "SATA_SDATAOUT1"),
0611 PINCTRL_PIN(207, "SATA_SDATAOUT0"),
0612 PINCTRL_PIN(208, "PS_ONB"),
0613 PINCTRL_PIN(209, "M2_SKT2_CFG_0"),
0614 PINCTRL_PIN(210, "M2_SKT2_CFG_1"),
0615 PINCTRL_PIN(211, "M2_SKT2_CFG_2"),
0616 PINCTRL_PIN(212, "M2_SKT2_CFG_3"),
0617 PINCTRL_PIN(213, "L_VDDEN"),
0618 PINCTRL_PIN(214, "L_BKLTEN"),
0619 PINCTRL_PIN(215, "L_BKLTCTL"),
0620 PINCTRL_PIN(216, "VNN_CTRL"),
0621 PINCTRL_PIN(217, "GPP_F_23"),
0622
0623 PINCTRL_PIN(218, "SRCCLKREQB_6"),
0624 PINCTRL_PIN(219, "SRCCLKREQB_7"),
0625 PINCTRL_PIN(220, "SRCCLKREQB_8"),
0626 PINCTRL_PIN(221, "SRCCLKREQB_9"),
0627 PINCTRL_PIN(222, "SRCCLKREQB_10"),
0628 PINCTRL_PIN(223, "SRCCLKREQB_11"),
0629 PINCTRL_PIN(224, "SRCCLKREQB_12"),
0630 PINCTRL_PIN(225, "SRCCLKREQB_13"),
0631 PINCTRL_PIN(226, "SRCCLKREQB_14"),
0632 PINCTRL_PIN(227, "SRCCLKREQB_15"),
0633 PINCTRL_PIN(228, "SML2CLK"),
0634 PINCTRL_PIN(229, "SML2DATA"),
0635 PINCTRL_PIN(230, "SML2ALERTB"),
0636 PINCTRL_PIN(231, "SML3CLK"),
0637 PINCTRL_PIN(232, "SML3DATA"),
0638 PINCTRL_PIN(233, "SML3ALERTB"),
0639 PINCTRL_PIN(234, "SML4CLK"),
0640 PINCTRL_PIN(235, "SML4DATA"),
0641 PINCTRL_PIN(236, "SML4ALERTB"),
0642 PINCTRL_PIN(237, "ISH_I2C0_SDA"),
0643 PINCTRL_PIN(238, "ISH_I2C0_SCL"),
0644 PINCTRL_PIN(239, "ISH_I2C1_SDA"),
0645 PINCTRL_PIN(240, "ISH_I2C1_SCL"),
0646 PINCTRL_PIN(241, "TIME_SYNC_0"),
0647
0648 PINCTRL_PIN(242, "CNV_PA_BLANKING"),
0649 PINCTRL_PIN(243, "CPU_C10_GATEB"),
0650 PINCTRL_PIN(244, "CNV_BRI_DT"),
0651 PINCTRL_PIN(245, "CNV_BRI_RSP"),
0652 PINCTRL_PIN(246, "CNV_RGI_DT"),
0653 PINCTRL_PIN(247, "CNV_RGI_RSP"),
0654 PINCTRL_PIN(248, "CNV_MFUART2_RXD"),
0655 PINCTRL_PIN(249, "CNV_MFUART2_TXD"),
0656 PINCTRL_PIN(250, "GPP_J_8"),
0657 PINCTRL_PIN(251, "GPP_J_9"),
0658
0659 PINCTRL_PIN(252, "GSXDOUT"),
0660 PINCTRL_PIN(253, "GSXSLOAD"),
0661 PINCTRL_PIN(254, "GSXDIN"),
0662 PINCTRL_PIN(255, "GSXSRESETB"),
0663 PINCTRL_PIN(256, "GSXCLK"),
0664 PINCTRL_PIN(257, "ADR_COMPLETE"),
0665 PINCTRL_PIN(258, "DDSP_HPD_A"),
0666 PINCTRL_PIN(259, "DDSP_HPD_B"),
0667 PINCTRL_PIN(260, "CORE_VID_0"),
0668 PINCTRL_PIN(261, "CORE_VID_1"),
0669 PINCTRL_PIN(262, "DDSP_HPD_C"),
0670 PINCTRL_PIN(263, "GPP_K_11"),
0671 PINCTRL_PIN(264, "SYS_PWROK"),
0672 PINCTRL_PIN(265, "SYS_RESETB"),
0673 PINCTRL_PIN(266, "MLK_RSTB"),
0674
0675 PINCTRL_PIN(267, "PMCALERTB"),
0676 PINCTRL_PIN(268, "DDSP_HPD_1"),
0677 PINCTRL_PIN(269, "DDSP_HPD_2"),
0678 PINCTRL_PIN(270, "DDSP_HPD_3"),
0679 PINCTRL_PIN(271, "DDSP_HPD_4"),
0680 PINCTRL_PIN(272, "DDPB_CTRLCLK"),
0681 PINCTRL_PIN(273, "DDPB_CTRLDATA"),
0682 PINCTRL_PIN(274, "DDPC_CTRLCLK"),
0683 PINCTRL_PIN(275, "DDPC_CTRLDATA"),
0684 PINCTRL_PIN(276, "FUSA_DIAGTEST_EN"),
0685 PINCTRL_PIN(277, "FUSA_DIAGTEST_MODE"),
0686 PINCTRL_PIN(278, "USB2_OCB_4"),
0687 PINCTRL_PIN(279, "USB2_OCB_5"),
0688 PINCTRL_PIN(280, "USB2_OCB_6"),
0689 PINCTRL_PIN(281, "USB2_OCB_7"),
0690
0691 PINCTRL_PIN(282, "JTAG_TDO"),
0692 PINCTRL_PIN(283, "JTAGX"),
0693 PINCTRL_PIN(284, "PRDYB"),
0694 PINCTRL_PIN(285, "PREQB"),
0695 PINCTRL_PIN(286, "JTAG_TDI"),
0696 PINCTRL_PIN(287, "JTAG_TMS"),
0697 PINCTRL_PIN(288, "JTAG_TCK"),
0698 PINCTRL_PIN(289, "DBG_PMODE"),
0699 PINCTRL_PIN(290, "CPU_TRSTB"),
0700 };
0701
0702 static const struct intel_padgroup tglh_community0_gpps[] = {
0703 TGL_GPP(0, 0, 24, 0),
0704 TGL_GPP(1, 25, 44, 32),
0705 TGL_GPP(2, 45, 70, 64),
0706 TGL_GPP(3, 71, 78, 96),
0707 };
0708
0709 static const struct intel_padgroup tglh_community1_gpps[] = {
0710 TGL_GPP(0, 79, 104, 128),
0711 TGL_GPP(1, 105, 128, 160),
0712 TGL_GPP(2, 129, 136, 192),
0713 TGL_GPP(3, 137, 153, 224),
0714 TGL_GPP(4, 154, 180, 256),
0715 };
0716
0717 static const struct intel_padgroup tglh_community3_gpps[] = {
0718 TGL_GPP(0, 181, 193, 288),
0719 TGL_GPP(1, 194, 217, 320),
0720 };
0721
0722 static const struct intel_padgroup tglh_community4_gpps[] = {
0723 TGL_GPP(0, 218, 241, 352),
0724 TGL_GPP(1, 242, 251, 384),
0725 TGL_GPP(2, 252, 266, 416),
0726 };
0727
0728 static const struct intel_padgroup tglh_community5_gpps[] = {
0729 TGL_GPP(0, 267, 281, 448),
0730 TGL_GPP(1, 282, 290, INTEL_GPIO_BASE_NOMAP),
0731 };
0732
0733 static const struct intel_community tglh_communities[] = {
0734 TGL_H_COMMUNITY(0, 0, 78, tglh_community0_gpps),
0735 TGL_H_COMMUNITY(1, 79, 180, tglh_community1_gpps),
0736 TGL_H_COMMUNITY(2, 181, 217, tglh_community3_gpps),
0737 TGL_H_COMMUNITY(3, 218, 266, tglh_community4_gpps),
0738 TGL_H_COMMUNITY(4, 267, 290, tglh_community5_gpps),
0739 };
0740
0741 static const struct intel_pinctrl_soc_data tglh_soc_data = {
0742 .pins = tglh_pins,
0743 .npins = ARRAY_SIZE(tglh_pins),
0744 .communities = tglh_communities,
0745 .ncommunities = ARRAY_SIZE(tglh_communities),
0746 };
0747
0748 static const struct acpi_device_id tgl_pinctrl_acpi_match[] = {
0749 { "INT34C5", (kernel_ulong_t)&tgllp_soc_data },
0750 { "INT34C6", (kernel_ulong_t)&tglh_soc_data },
0751 { "INTC1055", (kernel_ulong_t)&tgllp_soc_data },
0752 { }
0753 };
0754 MODULE_DEVICE_TABLE(acpi, tgl_pinctrl_acpi_match);
0755
0756 static INTEL_PINCTRL_PM_OPS(tgl_pinctrl_pm_ops);
0757
0758 static struct platform_driver tgl_pinctrl_driver = {
0759 .probe = intel_pinctrl_probe_by_hid,
0760 .driver = {
0761 .name = "tigerlake-pinctrl",
0762 .acpi_match_table = tgl_pinctrl_acpi_match,
0763 .pm = &tgl_pinctrl_pm_ops,
0764 },
0765 };
0766
0767 module_platform_driver(tgl_pinctrl_driver);
0768
0769 MODULE_AUTHOR("Andy Shevchenko <andriy.shevchenko@linux.intel.com>");
0770 MODULE_AUTHOR("Mika Westerberg <mika.westerberg@linux.intel.com>");
0771 MODULE_DESCRIPTION("Intel Tiger Lake PCH pinctrl/GPIO driver");
0772 MODULE_LICENSE("GPL v2");