Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003  * Intel Lakefield PCH pinctrl/GPIO driver
0004  *
0005  * Copyright (C) 2020, Intel Corporation
0006  * Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
0007  */
0008 
0009 #include <linux/mod_devicetable.h>
0010 #include <linux/module.h>
0011 #include <linux/platform_device.h>
0012 
0013 #include <linux/pinctrl/pinctrl.h>
0014 
0015 #include "pinctrl-intel.h"
0016 
0017 #define LKF_PAD_OWN 0x020
0018 #define LKF_PADCFGLOCK  0x070
0019 #define LKF_HOSTSW_OWN  0x090
0020 #define LKF_GPI_IS  0x100
0021 #define LKF_GPI_IE  0x110
0022 
0023 #define LKF_GPP(r, s, e, g)             \
0024     {                       \
0025         .reg_num = (r),             \
0026         .base = (s),                \
0027         .size = ((e) - (s) + 1),        \
0028         .gpio_base = (g),           \
0029     }
0030 
0031 #define LKF_COMMUNITY(b, s, e, g)           \
0032     {                       \
0033         .barno = (b),               \
0034         .padown_offset = LKF_PAD_OWN,       \
0035         .padcfglock_offset = LKF_PADCFGLOCK,    \
0036         .hostown_offset = LKF_HOSTSW_OWN,   \
0037         .is_offset = LKF_GPI_IS,        \
0038         .ie_offset = LKF_GPI_IE,        \
0039         .pin_base = (s),            \
0040         .npins = ((e) - (s) + 1),       \
0041         .gpps = (g),                \
0042         .ngpps = ARRAY_SIZE(g),         \
0043     }
0044 
0045 /* Lakefield */
0046 static const struct pinctrl_pin_desc lkf_pins[] = {
0047     /* EAST */
0048     PINCTRL_PIN(0, "MDSI_A_TE0"),
0049     PINCTRL_PIN(1, "MDSI_A_TE1"),
0050     PINCTRL_PIN(2, "PANEL0_AVDD_EN"),
0051     PINCTRL_PIN(3, "PANEL0_BKLTEN"),
0052     PINCTRL_PIN(4, "PANEL0_BKLTCTL"),
0053     PINCTRL_PIN(5, "PANEL1_AVDD_EN"),
0054     PINCTRL_PIN(6, "PANEL1_BKLTEN"),
0055     PINCTRL_PIN(7, "PANEL1_BKLTCTL"),
0056     PINCTRL_PIN(8, "THC0_SPI1_IO_0"),
0057     PINCTRL_PIN(9, "THC0_SPI1_IO_1"),
0058     PINCTRL_PIN(10, "THC0_SPI1_IO_2"),
0059     PINCTRL_PIN(11, "THC0_SPI1_IO_3"),
0060     PINCTRL_PIN(12, "THC0_SPI1_CSB"),
0061     PINCTRL_PIN(13, "THC0_SPI1_CLK"),
0062     PINCTRL_PIN(14, "THC0_SPI1_RESETB"),
0063     PINCTRL_PIN(15, "THC0_SPI1_CLK_FB"),
0064     PINCTRL_PIN(16, "SPI_TOUCH_CLK_FB"),
0065     PINCTRL_PIN(17, "THC1_SPI2_IO_0"),
0066     PINCTRL_PIN(18, "THC1_SPI2_IO_1"),
0067     PINCTRL_PIN(19, "THC1_SPI2_IO_2"),
0068     PINCTRL_PIN(20, "THC1_SPI2_IO_3"),
0069     PINCTRL_PIN(21, "THC1_SPI2_CSB"),
0070     PINCTRL_PIN(22, "THC1_SPI2_CLK"),
0071     PINCTRL_PIN(23, "THC1_SPI2_RESETB"),
0072     PINCTRL_PIN(24, "THC1_SPI2_CLK_FB"),
0073     PINCTRL_PIN(25, "eSPI_IO_0"),
0074     PINCTRL_PIN(26, "eSPI_IO_1"),
0075     PINCTRL_PIN(27, "eSPI_IO_2"),
0076     PINCTRL_PIN(28, "eSPI_IO_3"),
0077     PINCTRL_PIN(29, "eSPI_CSB"),
0078     PINCTRL_PIN(30, "eSPI_RESETB"),
0079     PINCTRL_PIN(31, "eSPI_CLK"),
0080     PINCTRL_PIN(32, "eSPI_CLK_FB"),
0081     PINCTRL_PIN(33, "FAST_SPI0_IO_0"),
0082     PINCTRL_PIN(34, "FAST_SPI0_IO_1"),
0083     PINCTRL_PIN(35, "FAST_SPI0_IO_2"),
0084     PINCTRL_PIN(36, "FAST_SPI0_IO_3"),
0085     PINCTRL_PIN(37, "FAST_SPI0_CSB_0"),
0086     PINCTRL_PIN(38, "FAST_SPI0_CSB_2"),
0087     PINCTRL_PIN(39, "FAST_SPI0_CLK"),
0088     PINCTRL_PIN(40, "FAST_SPI_CLK_FB"),
0089     PINCTRL_PIN(41, "FAST_SPI0_CSB_1"),
0090     PINCTRL_PIN(42, "ISH_GP_12"),
0091     PINCTRL_PIN(43, "THC0_SPI1_INTB"),
0092     PINCTRL_PIN(44, "THC1_SPI2_INTB"),
0093     PINCTRL_PIN(45, "PANEL0_AVEE_EN"),
0094     PINCTRL_PIN(46, "PANEL0_VIO_EN"),
0095     PINCTRL_PIN(47, "PANEL1_AVEE_EN"),
0096     PINCTRL_PIN(48, "PANEL1_VIO_EN"),
0097     PINCTRL_PIN(49, "PANEL0_RESET"),
0098     PINCTRL_PIN(50, "PANEL1_RESET"),
0099     PINCTRL_PIN(51, "ISH_GP_15"),
0100     PINCTRL_PIN(52, "ISH_GP_16"),
0101     PINCTRL_PIN(53, "ISH_GP_17"),
0102     PINCTRL_PIN(54, "ISH_GP_18"),
0103     PINCTRL_PIN(55, "ISH_GP_19"),
0104     PINCTRL_PIN(56, "ISH_GP_20"),
0105     PINCTRL_PIN(57, "ISH_GP_21"),
0106     PINCTRL_PIN(58, "ISH_GP_22"),
0107     PINCTRL_PIN(59, "ISH_GP_23"),
0108     /* NORTHWEST */
0109     PINCTRL_PIN(60, "MCSI_GPIO_0"),
0110     PINCTRL_PIN(61, "MCSI_GPIO_1"),
0111     PINCTRL_PIN(62, "MCSI_GPIO_2"),
0112     PINCTRL_PIN(63, "MCSI_GPIO_3"),
0113     PINCTRL_PIN(64, "LPSS_I2C0_SDA"),
0114     PINCTRL_PIN(65, "LPSS_I2C0_SCL"),
0115     PINCTRL_PIN(66, "LPSS_I2C1_SDA"),
0116     PINCTRL_PIN(67, "LPSS_I2C1_SCL"),
0117     PINCTRL_PIN(68, "LPSS_I2C2_SDA"),
0118     PINCTRL_PIN(69, "LPSS_I2C2_SCL"),
0119     PINCTRL_PIN(70, "LPSS_I2C3_SDA"),
0120     PINCTRL_PIN(71, "LPSS_I2C3_SCL"),
0121     PINCTRL_PIN(72, "LPSS_I2C4_SDA"),
0122     PINCTRL_PIN(73, "LPSS_I2C4_SCL"),
0123     PINCTRL_PIN(74, "LPSS_I2C5_SDA"),
0124     PINCTRL_PIN(75, "LPSS_I2C5_SCL"),
0125     PINCTRL_PIN(76, "LPSS_I3C0_SDA"),
0126     PINCTRL_PIN(77, "LPSS_I3C0_SCL"),
0127     PINCTRL_PIN(78, "LPSS_I3C0_SCL_FB"),
0128     PINCTRL_PIN(79, "LPSS_I3C1_SDA"),
0129     PINCTRL_PIN(80, "LPSS_I3C1_SCL"),
0130     PINCTRL_PIN(81, "LPSS_I3C1_SCL_FB"),
0131     PINCTRL_PIN(82, "ISH_I2C0_SDA"),
0132     PINCTRL_PIN(83, "ISH_I2C0_SCL"),
0133     PINCTRL_PIN(84, "ISH_I2C1_SCL"),
0134     PINCTRL_PIN(85, "ISH_I2C1_SDA"),
0135     PINCTRL_PIN(86, "DBG_PMODE"),
0136     PINCTRL_PIN(87, "BJTAG_TCK"),
0137     PINCTRL_PIN(88, "BJTAG_TDI"),
0138     PINCTRL_PIN(89, "BJTAGX"),
0139     PINCTRL_PIN(90, "BPREQ_B"),
0140     PINCTRL_PIN(91, "BJTAG_TMS"),
0141     PINCTRL_PIN(92, "BPRDY_B"),
0142     PINCTRL_PIN(93, "BJTAG_TDO"),
0143     PINCTRL_PIN(94, "BJTAG_TRST_B_0"),
0144     PINCTRL_PIN(95, "ISH_I3C0_SDA"),
0145     PINCTRL_PIN(96, "ISH_I3C0_SCL"),
0146     PINCTRL_PIN(97, "ISH_I3C0_SCL_FB"),
0147     PINCTRL_PIN(98, "AVS_I2S_BCLK_0"),
0148     PINCTRL_PIN(99, "AVS_I2S_MCLK_0"),
0149     PINCTRL_PIN(100, "AVS_I2S_SFRM_0"),
0150     PINCTRL_PIN(101, "AVS_I2S_RXD_0"),
0151     PINCTRL_PIN(102, "AVS_I2S_TXD_0"),
0152     PINCTRL_PIN(103, "AVS_I2S_BCLK_1"),
0153     PINCTRL_PIN(104, "AVS_I2S_SFRM_1"),
0154     PINCTRL_PIN(105, "AVS_I2S_RXD_1"),
0155     PINCTRL_PIN(106, "AVS_I2S_TXD_1"),
0156     PINCTRL_PIN(107, "AVS_I2S_BCLK_2"),
0157     PINCTRL_PIN(108, "AVS_I2S_SFRM_2"),
0158     PINCTRL_PIN(109, "AVS_I2S_RXD_2"),
0159     PINCTRL_PIN(110, "AVS_I2S_TXD_2"),
0160     PINCTRL_PIN(111, "AVS_I2S_BCLK_3"),
0161     PINCTRL_PIN(112, "AVS_I2S_SFRM_3"),
0162     PINCTRL_PIN(113, "AVS_I2S_RXD_3"),
0163     PINCTRL_PIN(114, "AVS_I2S_TXD_3"),
0164     PINCTRL_PIN(115, "AVS_I2S_BCLK_4"),
0165     PINCTRL_PIN(116, "AVS_I2S_SFRM_4"),
0166     PINCTRL_PIN(117, "AVS_I2S_RXD_4"),
0167     PINCTRL_PIN(118, "AVS_I2S_TXD_4"),
0168     PINCTRL_PIN(119, "AVS_I2S_SFRM_5"),
0169     PINCTRL_PIN(120, "AVS_I2S_RXD_5"),
0170     PINCTRL_PIN(121, "AVS_I2S_TXD_5"),
0171     PINCTRL_PIN(122, "AVS_I2S_BCLK_5"),
0172     PINCTRL_PIN(123, "AVS_SNDW_CLK_0"),
0173     PINCTRL_PIN(124, "AVS_SNDW_DATA_0"),
0174     PINCTRL_PIN(125, "AVS_SNDW_CLK_1"),
0175     PINCTRL_PIN(126, "AVS_SNDW_DATA_1"),
0176     PINCTRL_PIN(127, "AVS_SNDW_CLK_2"),
0177     PINCTRL_PIN(128, "AVS_SNDW_DATA_2"),
0178     PINCTRL_PIN(129, "AVS_SNDW_CLK_3"),
0179     PINCTRL_PIN(130, "AVS_SNDW_DATA_3"),
0180     PINCTRL_PIN(131, "VISA_PTI_CH0_D0_internal"),
0181     PINCTRL_PIN(132, "VISA_PTI_CH0_D1_internal"),
0182     PINCTRL_PIN(133, "VISA_PTI_CH0_D2_internal"),
0183     PINCTRL_PIN(134, "VISA_PTI_CH0_D3_internal"),
0184     PINCTRL_PIN(135, "VISA_PTI_CH0_D4_internal"),
0185     PINCTRL_PIN(136, "VISA_PTI_CH0_D5_internal"),
0186     PINCTRL_PIN(137, "VISA_PTI_CH0_D6_internal"),
0187     PINCTRL_PIN(138, "VISA_PTI_CH0_D7_internal"),
0188     PINCTRL_PIN(139, "VISA_PTI_CH0_CLK_internal"),
0189     PINCTRL_PIN(140, "VISA_PTI_CH1_D0_internal"),
0190     PINCTRL_PIN(141, "VISA_PTI_CH1_D1_internal"),
0191     PINCTRL_PIN(142, "VISA_PTI_CH1_D2_internal"),
0192     PINCTRL_PIN(143, "VISA_PTI_CH1_D3_internal"),
0193     PINCTRL_PIN(144, "VISA_PTI_CH1_D4_internal"),
0194     PINCTRL_PIN(145, "VISA_PTI_CH1_D5_internal"),
0195     PINCTRL_PIN(146, "VISA_PTI_CH1_D6_internal"),
0196     PINCTRL_PIN(147, "VISA_PTI_CH1_D7_internal"),
0197     PINCTRL_PIN(148, "VISA_PTI_CH1_CLK_internal"),
0198     /* WEST */
0199     PINCTRL_PIN(149, "LPSS_UART0_TXD"),
0200     PINCTRL_PIN(150, "LPSS_UART0_RXD"),
0201     PINCTRL_PIN(151, "LPSS_UART0_RTS_B"),
0202     PINCTRL_PIN(152, "LPSS_UART0_CTS_B"),
0203     PINCTRL_PIN(153, "LPSS_UART1_RXD"),
0204     PINCTRL_PIN(154, "LPSS_UART1_TXD"),
0205     PINCTRL_PIN(155, "LPSS_UART1_RTS_B"),
0206     PINCTRL_PIN(156, "LPSS_UART1_CTS_B"),
0207     PINCTRL_PIN(157, "ISH_UART0_RXD"),
0208     PINCTRL_PIN(158, "ISH_UART0_TXD"),
0209     PINCTRL_PIN(159, "ISH_UART0_RTSB"),
0210     PINCTRL_PIN(160, "ISH_UART0_CTSB"),
0211     PINCTRL_PIN(161, "LPSS_SSP_0_CLK"),
0212     PINCTRL_PIN(162, "LPSS_SSP_0_CLK_FB"),
0213     PINCTRL_PIN(163, "LPSS_SSP_0_FS0"),
0214     PINCTRL_PIN(164, "LPSS_SSP_0_FS1"),
0215     PINCTRL_PIN(165, "LPSS_SSP_0_RXD"),
0216     PINCTRL_PIN(166, "LPSS_SSP_0_TXD"),
0217     PINCTRL_PIN(167, "ISH_UART1_RXD"),
0218     PINCTRL_PIN(168, "ISH_UART1_TXD"),
0219     PINCTRL_PIN(169, "ISH_UART1_RTSB"),
0220     PINCTRL_PIN(170, "ISH_UART1_CTSB"),
0221     PINCTRL_PIN(171, "LPSS_SSP_1_FS0"),
0222     PINCTRL_PIN(172, "LPSS_SSP_1_FS1"),
0223     PINCTRL_PIN(173, "LPSS_SSP_1_CLK"),
0224     PINCTRL_PIN(174, "LPSS_SSP_1_CLK_FB"),
0225     PINCTRL_PIN(175, "LPSS_SSP_1_RXD"),
0226     PINCTRL_PIN(176, "LPSS_SSP_1_TXD"),
0227     PINCTRL_PIN(177, "LPSS_SSP_2_CLK"),
0228     PINCTRL_PIN(178, "LPSS_SSP_2_CLK_FB"),
0229     PINCTRL_PIN(179, "LPSS_SSP_2_FS0"),
0230     PINCTRL_PIN(180, "LPSS_SSP_2_FS1"),
0231     PINCTRL_PIN(181, "LPSS_SSP_2_RXD"),
0232     PINCTRL_PIN(182, "LPSS_SSP_2_TXD"),
0233     PINCTRL_PIN(183, "ISH_SPI0_CSB0"),
0234     PINCTRL_PIN(184, "ISH_SPI0_CSB1"),
0235     PINCTRL_PIN(185, "ISH_SPI0_CLK"),
0236     PINCTRL_PIN(186, "ISH_SPI0_MISO"),
0237     PINCTRL_PIN(187, "ISH_SPI0_MOSI"),
0238     PINCTRL_PIN(188, "ISH_GP_0"),
0239     PINCTRL_PIN(189, "ISH_GP_1"),
0240     PINCTRL_PIN(190, "ISH_GP_2"),
0241     PINCTRL_PIN(191, "ISH_GP_13"),
0242     PINCTRL_PIN(192, "ISH_GP_3"),
0243     PINCTRL_PIN(193, "ISH_GP_4"),
0244     PINCTRL_PIN(194, "ISH_GP_5"),
0245     PINCTRL_PIN(195, "ISH_GP_6"),
0246     PINCTRL_PIN(196, "ISH_GP_7"),
0247     PINCTRL_PIN(197, "ISH_GP_8"),
0248     PINCTRL_PIN(198, "ISH_GP_9"),
0249     PINCTRL_PIN(199, "ISH_GP_10"),
0250     PINCTRL_PIN(200, "ISH_GP_11"),
0251     PINCTRL_PIN(201, "ISH_GP_14"),
0252     PINCTRL_PIN(202, "ISH_GP_15"),
0253     PINCTRL_PIN(203, "ISH_GP_22"),
0254     PINCTRL_PIN(204, "ISH_GP_12"),
0255     PINCTRL_PIN(205, "ISH_GP_30_USB_OC"),
0256     PINCTRL_PIN(206, "LPDDRx_RESET0_n"),
0257     PINCTRL_PIN(207, "UFS_RESET_B"),
0258     PINCTRL_PIN(208, "UFS_REFCLK0"),
0259     PINCTRL_PIN(209, "EMMC_SD_CLK"),
0260     PINCTRL_PIN(210, "EMMC_SD_D0"),
0261     PINCTRL_PIN(211, "EMMC_SD_D1"),
0262     PINCTRL_PIN(212, "EMMC_SD_D2"),
0263     PINCTRL_PIN(213, "EMMC_SD_D3"),
0264     PINCTRL_PIN(214, "EMMC_D4"),
0265     PINCTRL_PIN(215, "EMMC_D5"),
0266     PINCTRL_PIN(216, "EMMC_D6"),
0267     PINCTRL_PIN(217, "EMMC_D7"),
0268     PINCTRL_PIN(218, "EMMC_SD_CMD"),
0269     PINCTRL_PIN(219, "EMMC_RCLK"),
0270     PINCTRL_PIN(220, "SDCARD_CLK_FB"),
0271     PINCTRL_PIN(221, "SD_Virtual_GPIO"),
0272     PINCTRL_PIN(222, "OSC_CLK_OUT_NFC"),
0273     PINCTRL_PIN(223, "OSC_CLK_OUT_CAM_0"),
0274     PINCTRL_PIN(224, "OSC_CLK_OUT_CAM_1"),
0275     PINCTRL_PIN(225, "OSC_CLK_OUT_CAM_2"),
0276     PINCTRL_PIN(226, "OSC_CLK_OUT_CAM_3"),
0277     PINCTRL_PIN(227, "PCIe_LINKDOWN"),
0278     PINCTRL_PIN(228, "NFC_CLK_REQ"),
0279     PINCTRL_PIN(229, "PCIE_CLKREQ_N_DEV2"),
0280     PINCTRL_PIN(230, "PCIE_CLKREQ_N_DEV3"),
0281     PINCTRL_PIN(231, "PCIE_CLKREQ_N_DEV4"),
0282     PINCTRL_PIN(232, "PCIE_CLKREQ_N_DEV1"),
0283     PINCTRL_PIN(233, "PCIE_CLKREQ_N_DEV0"),
0284     PINCTRL_PIN(234, "GMBUS_1_SCL"),
0285     PINCTRL_PIN(235, "GMBUS_1_SDA"),
0286     PINCTRL_PIN(236, "GMBUS_0_SCL"),
0287     PINCTRL_PIN(237, "GMBUS_0_SDA"),
0288     /* SOUTHEAST */
0289     PINCTRL_PIN(238, "COMPUTE_PMIC_SVID_DATA"),
0290     PINCTRL_PIN(239, "COMPUTE_PMIC_SVID_CLK"),
0291     PINCTRL_PIN(240, "COMPUTE_PMIC_SVID_ALERT_B"),
0292     PINCTRL_PIN(241, "ROP_PMIC_I2C_SCL"),
0293     PINCTRL_PIN(242, "ROP_PMIC_I2C_SDA"),
0294     PINCTRL_PIN(243, "ISH_TYPEC_I2C2_SDA"),
0295     PINCTRL_PIN(244, "ISH_TYPEC_I2C2_SCL"),
0296     PINCTRL_PIN(245, "COMPUTE_PMU_PROCHOT_B"),
0297     PINCTRL_PIN(246, "PMU_CATERR_B"),
0298     PINCTRL_PIN(247, "COMPUTE_PMIC_VR_READY"),
0299     PINCTRL_PIN(248, "FORCE_FW_RELOAD"),
0300     PINCTRL_PIN(249, "ROP_PMIC_IRQ_ISH_GPIO31_TPC_ALERT_B"),
0301     PINCTRL_PIN(250, "ROP_PMIC_RESET_B"),
0302     PINCTRL_PIN(251, "ROP_PMIC_STNBY_SLP_S0_B"),
0303     PINCTRL_PIN(252, "ROP_PMIC_THERMTRIP_B"),
0304     PINCTRL_PIN(253, "MODEM_CLKREQ"),
0305     PINCTRL_PIN(254, "TPC0_BSSB_SBU1"),
0306     PINCTRL_PIN(255, "TPC0_BSSB_SBU2"),
0307     PINCTRL_PIN(256, "OSC_CLK_OUT_CAM_4"),
0308     PINCTRL_PIN(257, "HPD1"),
0309     PINCTRL_PIN(258, "HPD0"),
0310     PINCTRL_PIN(259, "PMC_TIME_SYNC_0"),
0311     PINCTRL_PIN(260, "PMC_TIME_SYNC_1"),
0312     PINCTRL_PIN(261, "OSC_CLK_OUT_CAM_5"),
0313     PINCTRL_PIN(262, "ISH_GP_20"),
0314     PINCTRL_PIN(263, "ISH_GP_16"),
0315     PINCTRL_PIN(264, "ISH_GP_17"),
0316     PINCTRL_PIN(265, "ISH_GP_18"),
0317     PINCTRL_PIN(266, "ISH_GP_19"),
0318 };
0319 
0320 static const struct intel_padgroup lkf_community0_gpps[] = {
0321     LKF_GPP(0, 0, 31, 0),       /* EAST_0 */
0322     LKF_GPP(1, 32, 59, 32),     /* EAST_1 */
0323 };
0324 
0325 static const struct intel_padgroup lkf_community1_gpps[] = {
0326     LKF_GPP(0, 60, 91, 64),     /* NORTHWEST_0 */
0327     LKF_GPP(1, 92, 123, 96),    /* NORTHWEST_1 */
0328     LKF_GPP(2, 124, 148, 128),  /* NORTHWEST_2 */
0329 };
0330 
0331 static const struct intel_padgroup lkf_community2_gpps[] = {
0332     LKF_GPP(0, 149, 180, 160),  /* WEST_0 */
0333     LKF_GPP(1, 181, 212, 192),  /* WEST_1 */
0334     LKF_GPP(2, 213, 237, 224),  /* WEST_2 */
0335 };
0336 
0337 static const struct intel_padgroup lkf_community3_gpps[] = {
0338     LKF_GPP(0, 238, 266, 256),  /* SOUTHEAST */
0339 };
0340 
0341 static const struct intel_community lkf_communities[] = {
0342     LKF_COMMUNITY(0, 0, 59, lkf_community0_gpps),       /* EAST */
0343     LKF_COMMUNITY(1, 60, 148, lkf_community1_gpps),     /* NORTHWEST */
0344     LKF_COMMUNITY(2, 149, 237, lkf_community2_gpps),    /* WEST */
0345     LKF_COMMUNITY(3, 238, 266, lkf_community3_gpps),    /* SOUTHEAST */
0346 };
0347 
0348 static const struct intel_pinctrl_soc_data lkf_soc_data = {
0349     .pins = lkf_pins,
0350     .npins = ARRAY_SIZE(lkf_pins),
0351     .communities = lkf_communities,
0352     .ncommunities = ARRAY_SIZE(lkf_communities),
0353 };
0354 
0355 static const struct acpi_device_id lkf_pinctrl_acpi_match[] = {
0356     { "INT34C4", (kernel_ulong_t)&lkf_soc_data },
0357     { }
0358 };
0359 MODULE_DEVICE_TABLE(acpi, lkf_pinctrl_acpi_match);
0360 
0361 static INTEL_PINCTRL_PM_OPS(lkf_pinctrl_pm_ops);
0362 
0363 static struct platform_driver lkf_pinctrl_driver = {
0364     .probe = intel_pinctrl_probe_by_hid,
0365     .driver = {
0366         .name = "lakefield-pinctrl",
0367         .acpi_match_table = lkf_pinctrl_acpi_match,
0368         .pm = &lkf_pinctrl_pm_ops,
0369     },
0370 };
0371 module_platform_driver(lkf_pinctrl_driver);
0372 
0373 MODULE_AUTHOR("Andy Shevchenko <andriy.shevchenko@linux.intel.com>");
0374 MODULE_DESCRIPTION("Intel Lakefield PCH pinctrl/GPIO driver");
0375 MODULE_LICENSE("GPL v2");