// SPDX-License-Identifier: GPL-2.0
/*
 * Intel Cannon Lake PCH pinctrl/GPIO driver
 *
 * Copyright (C) 2017, Intel Corporation
 * Authors: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
 *          Mika Westerberg <mika.westerberg@linux.intel.com>
 */

#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pm.h>

#include <linux/pinctrl/pinctrl.h>

#include "pinctrl-intel.h"

#define CNL_LP_PAD_OWN		0x020
#define CNL_LP_PADCFGLOCK	0x080
#define CNL_LP_HOSTSW_OWN	0x0b0
#define CNL_LP_GPI_IS		0x100
#define CNL_LP_GPI_IE		0x120

#define CNL_H_PAD_OWN		0x020
#define CNL_H_PADCFGLOCK	0x080
#define CNL_H_HOSTSW_OWN	0x0c0
#define CNL_H_GPI_IS		0x100
#define CNL_H_GPI_IE		0x120

#define CNL_GPP(r, s, e, g)				\
	{						\
		.reg_num = (r),				\
		.base = (s),				\
		.size = ((e) - (s) + 1),		\
		.gpio_base = (g),			\
	}

#define CNL_LP_COMMUNITY(b, s, e, g)			\
	INTEL_COMMUNITY_GPPS(b, s, e, g, CNL_LP)

#define CNL_H_COMMUNITY(b, s, e, g)			\
	INTEL_COMMUNITY_GPPS(b, s, e, g, CNL_H)

/* Cannon Lake-H */
static const struct pinctrl_pin_desc cnlh_pins[] = {
	/* GPP_A */
	PINCTRL_PIN(0, "RCINB"),
	PINCTRL_PIN(1, "LAD_0"),
	PINCTRL_PIN(2, "LAD_1"),
	PINCTRL_PIN(3, "LAD_2"),
	PINCTRL_PIN(4, "LAD_3"),
	PINCTRL_PIN(5, "LFRAMEB"),
	PINCTRL_PIN(6, "SERIRQ"),
	PINCTRL_PIN(7, "PIRQAB"),
	PINCTRL_PIN(8, "CLKRUNB"),
	PINCTRL_PIN(9, "CLKOUT_LPC_0"),
	PINCTRL_PIN(10, "CLKOUT_LPC_1"),
	PINCTRL_PIN(11, "PMEB"),
	PINCTRL_PIN(12, "BM_BUSYB"),
	PINCTRL_PIN(13, "SUSWARNB_SUSPWRDNACK"),
	PINCTRL_PIN(14, "SUS_STATB"),
	PINCTRL_PIN(15, "SUSACKB"),
	PINCTRL_PIN(16, "CLKOUT_48"),
	PINCTRL_PIN(17, "SD_VDD1_PWR_EN_B"),
	PINCTRL_PIN(18, "ISH_GP_0"),
	PINCTRL_PIN(19, "ISH_GP_1"),
	PINCTRL_PIN(20, "ISH_GP_2"),
	PINCTRL_PIN(21, "ISH_GP_3"),
	PINCTRL_PIN(22, "ISH_GP_4"),
	PINCTRL_PIN(23, "ISH_GP_5"),
	PINCTRL_PIN(24, "ESPI_CLK_LOOPBK"),
	/* GPP_B */
	PINCTRL_PIN(25, "GSPI0_CS1B"),
	PINCTRL_PIN(26, "GSPI1_CS1B"),
	PINCTRL_PIN(27, "VRALERTB"),
	PINCTRL_PIN(28, "CPU_GP_2"),
	PINCTRL_PIN(29, "CPU_GP_3"),
	PINCTRL_PIN(30, "SRCCLKREQB_0"),
	PINCTRL_PIN(31, "SRCCLKREQB_1"),
	PINCTRL_PIN(32, "SRCCLKREQB_2"),
	PINCTRL_PIN(33, "SRCCLKREQB_3"),
	PINCTRL_PIN(34, "SRCCLKREQB_4"),
	PINCTRL_PIN(35, "SRCCLKREQB_5"),
	PINCTRL_PIN(36, "SSP_MCLK"),
	PINCTRL_PIN(37, "SLP_S0B"),
	PINCTRL_PIN(38, "PLTRSTB"),
	PINCTRL_PIN(39, "SPKR"),
	PINCTRL_PIN(40, "GSPI0_CS0B"),
	PINCTRL_PIN(41, "GSPI0_CLK"),
	PINCTRL_PIN(42, "GSPI0_MISO"),
	PINCTRL_PIN(43, "GSPI0_MOSI"),
	PINCTRL_PIN(44, "GSPI1_CS0B"),
	PINCTRL_PIN(45, "GSPI1_CLK"),
	PINCTRL_PIN(46, "GSPI1_MISO"),
	PINCTRL_PIN(47, "GSPI1_MOSI"),
	PINCTRL_PIN(48, "SML1ALERTB"),
	PINCTRL_PIN(49, "GSPI0_CLK_LOOPBK"),
	PINCTRL_PIN(50, "GSPI1_CLK_LOOPBK"),
	/* GPP_C */
	PINCTRL_PIN(51, "SMBCLK"),
	PINCTRL_PIN(52, "SMBDATA"),
	PINCTRL_PIN(53, "SMBALERTB"),
	PINCTRL_PIN(54, "SML0CLK"),
	PINCTRL_PIN(55, "SML0DATA"),
	PINCTRL_PIN(56, "SML0ALERTB"),
	PINCTRL_PIN(57, "SML1CLK"),
	PINCTRL_PIN(58, "SML1DATA"),
	PINCTRL_PIN(59, "UART0_RXD"),
	PINCTRL_PIN(60, "UART0_TXD"),
	PINCTRL_PIN(61, "UART0_RTSB"),
	PINCTRL_PIN(62, "UART0_CTSB"),
	PINCTRL_PIN(63, "UART1_RXD"),
	PINCTRL_PIN(64, "UART1_TXD"),
	PINCTRL_PIN(65, "UART1_RTSB"),
	PINCTRL_PIN(66, "UART1_CTSB"),
	PINCTRL_PIN(67, "I2C0_SDA"),
	PINCTRL_PIN(68, "I2C0_SCL"),
	PINCTRL_PIN(69, "I2C1_SDA"),
	PINCTRL_PIN(70, "I2C1_SCL"),
	PINCTRL_PIN(71, "UART2_RXD"),
	PINCTRL_PIN(72, "UART2_TXD"),
	PINCTRL_PIN(73, "UART2_RTSB"),
	PINCTRL_PIN(74, "UART2_CTSB"),
	/* GPP_D */
	PINCTRL_PIN(75, "SPI1_CSB"),
	PINCTRL_PIN(76, "SPI1_CLK"),
	PINCTRL_PIN(77, "SPI1_MISO_IO_1"),
	PINCTRL_PIN(78, "SPI1_MOSI_IO_0"),
	PINCTRL_PIN(79, "ISH_I2C2_SDA"),
	PINCTRL_PIN(80, "SSP2_SFRM"),
	PINCTRL_PIN(81, "SSP2_TXD"),
	PINCTRL_PIN(82, "SSP2_RXD"),
	PINCTRL_PIN(83, "SSP2_SCLK"),
	PINCTRL_PIN(84, "ISH_SPI_CSB"),
	PINCTRL_PIN(85, "ISH_SPI_CLK"),
	PINCTRL_PIN(86, "ISH_SPI_MISO"),
	PINCTRL_PIN(87, "ISH_SPI_MOSI"),
	PINCTRL_PIN(88, "ISH_UART0_RXD"),
	PINCTRL_PIN(89, "ISH_UART0_TXD"),
	PINCTRL_PIN(90, "ISH_UART0_RTSB"),
	PINCTRL_PIN(91, "ISH_UART0_CTSB"),
	PINCTRL_PIN(92, "DMIC_CLK_1"),
	PINCTRL_PIN(93, "DMIC_DATA_1"),
	PINCTRL_PIN(94, "DMIC_CLK_0"),
	PINCTRL_PIN(95, "DMIC_DATA_0"),
	PINCTRL_PIN(96, "SPI1_IO_2"),
	PINCTRL_PIN(97, "SPI1_IO_3"),
	PINCTRL_PIN(98, "ISH_I2C2_SCL"),
	/* GPP_G */
	PINCTRL_PIN(99, "SD3_CMD"),
	PINCTRL_PIN(100, "SD3_D0"),
	PINCTRL_PIN(101, "SD3_D1"),
	PINCTRL_PIN(102, "SD3_D2"),
	PINCTRL_PIN(103, "SD3_D3"),
	PINCTRL_PIN(104, "SD3_CDB"),
	PINCTRL_PIN(105, "SD3_CLK"),
	PINCTRL_PIN(106, "SD3_WP"),
	/* AZA */
	PINCTRL_PIN(107, "HDA_BCLK"),
	PINCTRL_PIN(108, "HDA_RSTB"),
	PINCTRL_PIN(109, "HDA_SYNC"),
	PINCTRL_PIN(110, "HDA_SDO"),
	PINCTRL_PIN(111, "HDA_SDI_0"),
	PINCTRL_PIN(112, "HDA_SDI_1"),
	PINCTRL_PIN(113, "SSP1_SFRM"),
	PINCTRL_PIN(114, "SSP1_TXD"),
	/* vGPIO */
	PINCTRL_PIN(115, "CNV_BTEN"),
	PINCTRL_PIN(116, "CNV_GNEN"),
	PINCTRL_PIN(117, "CNV_WFEN"),
	PINCTRL_PIN(118, "CNV_WCEN"),
	PINCTRL_PIN(119, "CNV_BT_HOST_WAKEB"),
	PINCTRL_PIN(120, "vCNV_GNSS_HOST_WAKEB"),
	PINCTRL_PIN(121, "vSD3_CD_B"),
	PINCTRL_PIN(122, "CNV_BT_IF_SELECT"),
	PINCTRL_PIN(123, "vCNV_BT_UART_TXD"),
	PINCTRL_PIN(124, "vCNV_BT_UART_RXD"),
	PINCTRL_PIN(125, "vCNV_BT_UART_CTS_B"),
	PINCTRL_PIN(126, "vCNV_BT_UART_RTS_B"),
	PINCTRL_PIN(127, "vCNV_MFUART1_TXD"),
	PINCTRL_PIN(128, "vCNV_MFUART1_RXD"),
	PINCTRL_PIN(129, "vCNV_MFUART1_CTS_B"),
	PINCTRL_PIN(130, "vCNV_MFUART1_RTS_B"),
	PINCTRL_PIN(131, "vCNV_GNSS_UART_TXD"),
	PINCTRL_PIN(132, "vCNV_GNSS_UART_RXD"),
	PINCTRL_PIN(133, "vCNV_GNSS_UART_CTS_B"),
	PINCTRL_PIN(134, "vCNV_GNSS_UART_RTS_B"),
	PINCTRL_PIN(135, "vUART0_TXD"),
	PINCTRL_PIN(136, "vUART0_RXD"),
	PINCTRL_PIN(137, "vUART0_CTS_B"),
	PINCTRL_PIN(138, "vUART0_RTSB"),
	PINCTRL_PIN(139, "vISH_UART0_TXD"),
	PINCTRL_PIN(140, "vISH_UART0_RXD"),
	PINCTRL_PIN(141, "vISH_UART0_CTS_B"),
	PINCTRL_PIN(142, "vISH_UART0_RTSB"),
	PINCTRL_PIN(143, "vISH_UART1_TXD"),
	PINCTRL_PIN(144, "vISH_UART1_RXD"),
	PINCTRL_PIN(145, "vISH_UART1_CTS_B"),
	PINCTRL_PIN(146, "vISH_UART1_RTS_B"),
	PINCTRL_PIN(147, "vCNV_BT_I2S_BCLK"),
	PINCTRL_PIN(148, "vCNV_BT_I2S_WS_SYNC"),
	PINCTRL_PIN(149, "vCNV_BT_I2S_SDO"),
	PINCTRL_PIN(150, "vCNV_BT_I2S_SDI"),
	PINCTRL_PIN(151, "vSSP2_SCLK"),
	PINCTRL_PIN(152, "vSSP2_SFRM"),
	PINCTRL_PIN(153, "vSSP2_TXD"),
	PINCTRL_PIN(154, "vSSP2_RXD"),
	/* GPP_K */
	PINCTRL_PIN(155, "FAN_TACH_0"),
	PINCTRL_PIN(156, "FAN_TACH_1"),
	PINCTRL_PIN(157, "FAN_TACH_2"),
	PINCTRL_PIN(158, "FAN_TACH_3"),
	PINCTRL_PIN(159, "FAN_TACH_4"),
	PINCTRL_PIN(160, "FAN_TACH_5"),
	PINCTRL_PIN(161, "FAN_TACH_6"),
	PINCTRL_PIN(162, "FAN_TACH_7"),
	PINCTRL_PIN(163, "FAN_PWM_0"),
	PINCTRL_PIN(164, "FAN_PWM_1"),
	PINCTRL_PIN(165, "FAN_PWM_2"),
	PINCTRL_PIN(166, "FAN_PWM_3"),
	PINCTRL_PIN(167, "GSXDOUT"),
	PINCTRL_PIN(168, "GSXSLOAD"),
	PINCTRL_PIN(169, "GSXDIN"),
	PINCTRL_PIN(170, "GSXSRESETB"),
	PINCTRL_PIN(171, "GSXCLK"),
	PINCTRL_PIN(172, "ADR_COMPLETE"),
	PINCTRL_PIN(173, "NMIB"),
	PINCTRL_PIN(174, "SMIB"),
	PINCTRL_PIN(175, "CORE_VID_0"),
	PINCTRL_PIN(176, "CORE_VID_1"),
	PINCTRL_PIN(177, "IMGCLKOUT_0"),
	PINCTRL_PIN(178, "IMGCLKOUT_1"),
	/* GPP_H */
	PINCTRL_PIN(179, "SRCCLKREQB_6"),
	PINCTRL_PIN(180, "SRCCLKREQB_7"),
	PINCTRL_PIN(181, "SRCCLKREQB_8"),
	PINCTRL_PIN(182, "SRCCLKREQB_9"),
	PINCTRL_PIN(183, "SRCCLKREQB_10"),
	PINCTRL_PIN(184, "SRCCLKREQB_11"),
	PINCTRL_PIN(185, "SRCCLKREQB_12"),
	PINCTRL_PIN(186, "SRCCLKREQB_13"),
	PINCTRL_PIN(187, "SRCCLKREQB_14"),
	PINCTRL_PIN(188, "SRCCLKREQB_15"),
	PINCTRL_PIN(189, "SML2CLK"),
	PINCTRL_PIN(190, "SML2DATA"),
	PINCTRL_PIN(191, "SML2ALERTB"),
	PINCTRL_PIN(192, "SML3CLK"),
	PINCTRL_PIN(193, "SML3DATA"),
	PINCTRL_PIN(194, "SML3ALERTB"),
	PINCTRL_PIN(195, "SML4CLK"),
	PINCTRL_PIN(196, "SML4DATA"),
	PINCTRL_PIN(197, "SML4ALERTB"),
	PINCTRL_PIN(198, "ISH_I2C0_SDA"),
	PINCTRL_PIN(199, "ISH_I2C0_SCL"),
	PINCTRL_PIN(200, "ISH_I2C1_SDA"),
	PINCTRL_PIN(201, "ISH_I2C1_SCL"),
	PINCTRL_PIN(202, "TIME_SYNC_0"),
	/* GPP_E */
	PINCTRL_PIN(203, "SATAXPCIE_0"),
	PINCTRL_PIN(204, "SATAXPCIE_1"),
	PINCTRL_PIN(205, "SATAXPCIE_2"),
	PINCTRL_PIN(206, "CPU_GP_0"),
	PINCTRL_PIN(207, "SATA_DEVSLP_0"),
	PINCTRL_PIN(208, "SATA_DEVSLP_1"),
	PINCTRL_PIN(209, "SATA_DEVSLP_2"),
	PINCTRL_PIN(210, "CPU_GP_1"),
	PINCTRL_PIN(211, "SATA_LEDB"),
	PINCTRL_PIN(212, "USB2_OCB_0"),
	PINCTRL_PIN(213, "USB2_OCB_1"),
	PINCTRL_PIN(214, "USB2_OCB_2"),
	PINCTRL_PIN(215, "USB2_OCB_3"),
	/* GPP_F */
	PINCTRL_PIN(216, "SATAXPCIE_3"),
	PINCTRL_PIN(217, "SATAXPCIE_4"),
	PINCTRL_PIN(218, "SATAXPCIE_5"),
	PINCTRL_PIN(219, "SATAXPCIE_6"),
	PINCTRL_PIN(220, "SATAXPCIE_7"),
	PINCTRL_PIN(221, "SATA_DEVSLP_3"),
	PINCTRL_PIN(222, "SATA_DEVSLP_4"),
	PINCTRL_PIN(223, "SATA_DEVSLP_5"),
	PINCTRL_PIN(224, "SATA_DEVSLP_6"),
	PINCTRL_PIN(225, "SATA_DEVSLP_7"),
	PINCTRL_PIN(226, "SATA_SCLOCK"),
	PINCTRL_PIN(227, "SATA_SLOAD"),
	PINCTRL_PIN(228, "SATA_SDATAOUT1"),
	PINCTRL_PIN(229, "SATA_SDATAOUT0"),
	PINCTRL_PIN(230, "EXT_PWR_GATEB"),
	PINCTRL_PIN(231, "USB2_OCB_4"),
	PINCTRL_PIN(232, "USB2_OCB_5"),
	PINCTRL_PIN(233, "USB2_OCB_6"),
	PINCTRL_PIN(234, "USB2_OCB_7"),
	PINCTRL_PIN(235, "L_VDDEN"),
	PINCTRL_PIN(236, "L_BKLTEN"),
	PINCTRL_PIN(237, "L_BKLTCTL"),
	PINCTRL_PIN(238, "DDPF_CTRLCLK"),
	PINCTRL_PIN(239, "DDPF_CTRLDATA"),
	/* SPI */
	PINCTRL_PIN(240, "SPI0_IO_2"),
	PINCTRL_PIN(241, "SPI0_IO_3"),
	PINCTRL_PIN(242, "SPI0_MOSI_IO_0"),
	PINCTRL_PIN(243, "SPI0_MISO_IO_1"),
	PINCTRL_PIN(244, "SPI0_TPM_CSB"),
	PINCTRL_PIN(245, "SPI0_FLASH_0_CSB"),
	PINCTRL_PIN(246, "SPI0_FLASH_1_CSB"),
	PINCTRL_PIN(247, "SPI0_CLK"),
	PINCTRL_PIN(248, "SPI0_CLK_LOOPBK"),
	/* CPU */
	PINCTRL_PIN(249, "HDACPU_SDI"),
	PINCTRL_PIN(250, "HDACPU_SDO"),
	PINCTRL_PIN(251, "HDACPU_SCLK"),
	PINCTRL_PIN(252, "PM_SYNC"),
	PINCTRL_PIN(253, "PECI"),
	PINCTRL_PIN(254, "CPUPWRGD"),
	PINCTRL_PIN(255, "THRMTRIPB"),
	PINCTRL_PIN(256, "PLTRST_CPUB"),
	PINCTRL_PIN(257, "PM_DOWN"),
	PINCTRL_PIN(258, "TRIGGER_IN"),
	PINCTRL_PIN(259, "TRIGGER_OUT"),
	/* JTAG */
	PINCTRL_PIN(260, "JTAG_TDO"),
	PINCTRL_PIN(261, "JTAGX"),
	PINCTRL_PIN(262, "PRDYB"),
	PINCTRL_PIN(263, "PREQB"),
	PINCTRL_PIN(264, "CPU_TRSTB"),
	PINCTRL_PIN(265, "JTAG_TDI"),
	PINCTRL_PIN(266, "JTAG_TMS"),
	PINCTRL_PIN(267, "JTAG_TCK"),
	PINCTRL_PIN(268, "ITP_PMODE"),
	/* GPP_I */
	PINCTRL_PIN(269, "DDSP_HPD_0"),
	PINCTRL_PIN(270, "DDSP_HPD_1"),
	PINCTRL_PIN(271, "DDSP_HPD_2"),
	PINCTRL_PIN(272, "DDSP_HPD_3"),
	PINCTRL_PIN(273, "EDP_HPD"),
	PINCTRL_PIN(274, "DDPB_CTRLCLK"),
	PINCTRL_PIN(275, "DDPB_CTRLDATA"),
	PINCTRL_PIN(276, "DDPC_CTRLCLK"),
	PINCTRL_PIN(277, "DDPC_CTRLDATA"),
	PINCTRL_PIN(278, "DDPD_CTRLCLK"),
	PINCTRL_PIN(279, "DDPD_CTRLDATA"),
	PINCTRL_PIN(280, "M2_SKT2_CFG_0"),
	PINCTRL_PIN(281, "M2_SKT2_CFG_1"),
	PINCTRL_PIN(282, "M2_SKT2_CFG_2"),
	PINCTRL_PIN(283, "M2_SKT2_CFG_3"),
	PINCTRL_PIN(284, "SYS_PWROK"),
	PINCTRL_PIN(285, "SYS_RESETB"),
	PINCTRL_PIN(286, "MLK_RSTB"),
	/* GPP_J */
	PINCTRL_PIN(287, "CNV_PA_BLANKING"),
	PINCTRL_PIN(288, "CNV_GNSS_FTA"),
	PINCTRL_PIN(289, "CNV_GNSS_SYSCK"),
	PINCTRL_PIN(290, "CNV_RF_RESET_B"),
	PINCTRL_PIN(291, "CNV_BRI_DT"),
	PINCTRL_PIN(292, "CNV_BRI_RSP"),
	PINCTRL_PIN(293, "CNV_RGI_DT"),
	PINCTRL_PIN(294, "CNV_RGI_RSP"),
	PINCTRL_PIN(295, "CNV_MFUART2_RXD"),
	PINCTRL_PIN(296, "CNV_MFUART2_TXD"),
	PINCTRL_PIN(297, "CNV_MODEM_CLKREQ"),
	PINCTRL_PIN(298, "A4WP_PRESENT"),
};

static const struct intel_padgroup cnlh_community0_gpps[] = {
	CNL_GPP(0, 0, 24, 0),			/* GPP_A */
	CNL_GPP(1, 25, 50, 32),			/* GPP_B */
};

static const struct intel_padgroup cnlh_community1_gpps[] = {
	CNL_GPP(0, 51, 74, 64),				/* GPP_C */
	CNL_GPP(1, 75, 98, 96),				/* GPP_D */
	CNL_GPP(2, 99, 106, 128),			/* GPP_G */
	CNL_GPP(3, 107, 114, INTEL_GPIO_BASE_NOMAP),	/* AZA */
	CNL_GPP(4, 115, 146, 160),			/* vGPIO_0 */
	CNL_GPP(5, 147, 154, INTEL_GPIO_BASE_NOMAP),	/* vGPIO_1 */
};

static const struct intel_padgroup cnlh_community3_gpps[] = {
	CNL_GPP(0, 155, 178, 192),			/* GPP_K */
	CNL_GPP(1, 179, 202, 224),			/* GPP_H */
	CNL_GPP(2, 203, 215, 256),			/* GPP_E */
	CNL_GPP(3, 216, 239, 288),			/* GPP_F */
	CNL_GPP(4, 240, 248, INTEL_GPIO_BASE_NOMAP),	/* SPI */
};

static const struct intel_padgroup cnlh_community4_gpps[] = {
	CNL_GPP(0, 249, 259, INTEL_GPIO_BASE_NOMAP),	/* CPU */
	CNL_GPP(1, 260, 268, INTEL_GPIO_BASE_NOMAP),	/* JTAG */
	CNL_GPP(2, 269, 286, 320),			/* GPP_I */
	CNL_GPP(3, 287, 298, 352),			/* GPP_J */
};

static const unsigned int cnlh_spi0_pins[] = { 40, 41, 42, 43 };
static const unsigned int cnlh_spi1_pins[] = { 44, 45, 46, 47 };
static const unsigned int cnlh_spi2_pins[] = { 84, 85, 86, 87 };

static const unsigned int cnlh_uart0_pins[] = { 59, 60, 61, 62 };
static const unsigned int cnlh_uart1_pins[] = { 63, 64, 65, 66 };
static const unsigned int cnlh_uart2_pins[] = { 71, 72, 73, 74 };

static const unsigned int cnlh_i2c0_pins[] = { 67, 68 };
static const unsigned int cnlh_i2c1_pins[] = { 69, 70 };
static const unsigned int cnlh_i2c2_pins[] = { 88, 89 };
static const unsigned int cnlh_i2c3_pins[] = { 79, 98 };

static const struct intel_pingroup cnlh_groups[] = {
	PIN_GROUP("spi0_grp", cnlh_spi0_pins, 1),
	PIN_GROUP("spi1_grp", cnlh_spi1_pins, 1),
	PIN_GROUP("spi2_grp", cnlh_spi2_pins, 3),
	PIN_GROUP("uart0_grp", cnlh_uart0_pins, 1),
	PIN_GROUP("uart1_grp", cnlh_uart1_pins, 1),
	PIN_GROUP("uart2_grp", cnlh_uart2_pins, 1),
	PIN_GROUP("i2c0_grp", cnlh_i2c0_pins, 1),
	PIN_GROUP("i2c1_grp", cnlh_i2c1_pins, 1),
	PIN_GROUP("i2c2_grp", cnlh_i2c2_pins, 3),
	PIN_GROUP("i2c3_grp", cnlh_i2c3_pins, 2),
};

static const char * const cnlh_spi0_groups[] = { "spi0_grp" };
static const char * const cnlh_spi1_groups[] = { "spi1_grp" };
static const char * const cnlh_spi2_groups[] = { "spi2_grp" };
static const char * const cnlh_uart0_groups[] = { "uart0_grp" };
static const char * const cnlh_uart1_groups[] = { "uart1_grp" };
static const char * const cnlh_uart2_groups[] = { "uart2_grp" };
static const char * const cnlh_i2c0_groups[] = { "i2c0_grp" };
static const char * const cnlh_i2c1_groups[] = { "i2c1_grp" };
static const char * const cnlh_i2c2_groups[] = { "i2c2_grp" };
static const char * const cnlh_i2c3_groups[] = { "i2c3_grp" };

static const struct intel_function cnlh_functions[] = {
	FUNCTION("spi0", cnlh_spi0_groups),
	FUNCTION("spi1", cnlh_spi1_groups),
	FUNCTION("spi2", cnlh_spi2_groups),
	FUNCTION("uart0", cnlh_uart0_groups),
	FUNCTION("uart1", cnlh_uart1_groups),
	FUNCTION("uart2", cnlh_uart2_groups),
	FUNCTION("i2c0", cnlh_i2c0_groups),
	FUNCTION("i2c1", cnlh_i2c1_groups),
	FUNCTION("i2c2", cnlh_i2c2_groups),
	FUNCTION("i2c3", cnlh_i2c3_groups),
};

static const struct intel_community cnlh_communities[] = {
	CNL_H_COMMUNITY(0, 0, 50, cnlh_community0_gpps),
	CNL_H_COMMUNITY(1, 51, 154, cnlh_community1_gpps),
	CNL_H_COMMUNITY(2, 155, 248, cnlh_community3_gpps),
	CNL_H_COMMUNITY(3, 249, 298, cnlh_community4_gpps),
};

static const struct intel_pinctrl_soc_data cnlh_soc_data = {
	.pins = cnlh_pins,
	.npins = ARRAY_SIZE(cnlh_pins),
	.groups = cnlh_groups,
	.ngroups = ARRAY_SIZE(cnlh_groups),
	.functions = cnlh_functions,
	.nfunctions = ARRAY_SIZE(cnlh_functions),
	.communities = cnlh_communities,
	.ncommunities = ARRAY_SIZE(cnlh_communities),
};

/* Cannon Lake-LP */
static const struct pinctrl_pin_desc cnllp_pins[] = {
	/* GPP_A */
	PINCTRL_PIN(0, "RCINB"),
	PINCTRL_PIN(1, "LAD_0"),
	PINCTRL_PIN(2, "LAD_1"),
	PINCTRL_PIN(3, "LAD_2"),
	PINCTRL_PIN(4, "LAD_3"),
	PINCTRL_PIN(5, "LFRAMEB"),
	PINCTRL_PIN(6, "SERIRQ"),
	PINCTRL_PIN(7, "PIRQAB"),
	PINCTRL_PIN(8, "CLKRUNB"),
	PINCTRL_PIN(9, "CLKOUT_LPC_0"),
	PINCTRL_PIN(10, "CLKOUT_LPC_1"),
	PINCTRL_PIN(11, "PMEB"),
	PINCTRL_PIN(12, "BM_BUSYB"),
	PINCTRL_PIN(13, "SUSWARNB_SUSPWRDNACK"),
	PINCTRL_PIN(14, "SUS_STATB"),
	PINCTRL_PIN(15, "SUSACKB"),
	PINCTRL_PIN(16, "SD_1P8_SEL"),
	PINCTRL_PIN(17, "SD_PWR_EN_B"),
	PINCTRL_PIN(18, "ISH_GP_0"),
	PINCTRL_PIN(19, "ISH_GP_1"),
	PINCTRL_PIN(20, "ISH_GP_2"),
	PINCTRL_PIN(21, "ISH_GP_3"),
	PINCTRL_PIN(22, "ISH_GP_4"),
	PINCTRL_PIN(23, "ISH_GP_5"),
	PINCTRL_PIN(24, "ESPI_CLK_LOOPBK"),
	/* GPP_B */
	PINCTRL_PIN(25, "CORE_VID_0"),
	PINCTRL_PIN(26, "CORE_VID_1"),
	PINCTRL_PIN(27, "VRALERTB"),
	PINCTRL_PIN(28, "CPU_GP_2"),
	PINCTRL_PIN(29, "CPU_GP_3"),
	PINCTRL_PIN(30, "SRCCLKREQB_0"),
	PINCTRL_PIN(31, "SRCCLKREQB_1"),
	PINCTRL_PIN(32, "SRCCLKREQB_2"),
	PINCTRL_PIN(33, "SRCCLKREQB_3"),
	PINCTRL_PIN(34, "SRCCLKREQB_4"),
	PINCTRL_PIN(35, "SRCCLKREQB_5"),
	PINCTRL_PIN(36, "EXT_PWR_GATEB"),
	PINCTRL_PIN(37, "SLP_S0B"),
	PINCTRL_PIN(38, "PLTRSTB"),
	PINCTRL_PIN(39, "SPKR"),
	PINCTRL_PIN(40, "GSPI0_CS0B"),
	PINCTRL_PIN(41, "GSPI0_CLK"),
	PINCTRL_PIN(42, "GSPI0_MISO"),
	PINCTRL_PIN(43, "GSPI0_MOSI"),
	PINCTRL_PIN(44, "GSPI1_CS0B"),
	PINCTRL_PIN(45, "GSPI1_CLK"),
	PINCTRL_PIN(46, "GSPI1_MISO"),
	PINCTRL_PIN(47, "GSPI1_MOSI"),
	PINCTRL_PIN(48, "SML1ALERTB"),
	PINCTRL_PIN(49, "GSPI0_CLK_LOOPBK"),
	PINCTRL_PIN(50, "GSPI1_CLK_LOOPBK"),
	/* GPP_G */
	PINCTRL_PIN(51, "SD3_CMD"),
	PINCTRL_PIN(52, "SD3_D0_SD4_RCLK_P"),
	PINCTRL_PIN(53, "SD3_D1_SD4_RCLK_N"),
	PINCTRL_PIN(54, "SD3_D2"),
	PINCTRL_PIN(55, "SD3_D3"),
	PINCTRL_PIN(56, "SD3_CDB"),
	PINCTRL_PIN(57, "SD3_CLK"),
	PINCTRL_PIN(58, "SD3_WP"),
	/* SPI */
	PINCTRL_PIN(59, "SPI0_IO_2"),
	PINCTRL_PIN(60, "SPI0_IO_3"),
	PINCTRL_PIN(61, "SPI0_MOSI_IO_0"),
	PINCTRL_PIN(62, "SPI0_MISO_IO_1"),
	PINCTRL_PIN(63, "SPI0_TPM_CSB"),
	PINCTRL_PIN(64, "SPI0_FLASH_0_CSB"),
	PINCTRL_PIN(65, "SPI0_FLASH_1_CSB"),
	PINCTRL_PIN(66, "SPI0_CLK"),
	PINCTRL_PIN(67, "SPI0_CLK_LOOPBK"),
	/* GPP_D */
	PINCTRL_PIN(68, "SPI1_CSB"),
	PINCTRL_PIN(69, "SPI1_CLK"),
	PINCTRL_PIN(70, "SPI1_MISO_IO_1"),
	PINCTRL_PIN(71, "SPI1_MOSI_IO_0"),
	PINCTRL_PIN(72, "IMGCLKOUT_0"),
	PINCTRL_PIN(73, "ISH_I2C0_SDA"),
	PINCTRL_PIN(74, "ISH_I2C0_SCL"),
	PINCTRL_PIN(75, "ISH_I2C1_SDA"),
	PINCTRL_PIN(76, "ISH_I2C1_SCL"),
	PINCTRL_PIN(77, "ISH_SPI_CSB"),
	PINCTRL_PIN(78, "ISH_SPI_CLK"),
	PINCTRL_PIN(79, "ISH_SPI_MISO"),
	PINCTRL_PIN(80, "ISH_SPI_MOSI"),
	PINCTRL_PIN(81, "ISH_UART0_RXD"),
	PINCTRL_PIN(82, "ISH_UART0_TXD"),
	PINCTRL_PIN(83, "ISH_UART0_RTSB"),
	PINCTRL_PIN(84, "ISH_UART0_CTSB"),
	PINCTRL_PIN(85, "DMIC_CLK_1"),
	PINCTRL_PIN(86, "DMIC_DATA_1"),
	PINCTRL_PIN(87, "DMIC_CLK_0"),
	PINCTRL_PIN(88, "DMIC_DATA_0"),
	PINCTRL_PIN(89, "SPI1_IO_2"),
	PINCTRL_PIN(90, "SPI1_IO_3"),
	PINCTRL_PIN(91, "SSP_MCLK"),
	PINCTRL_PIN(92, "GSPI2_CLK_LOOPBK"),
	/* GPP_F */
	PINCTRL_PIN(93, "CNV_GNSS_PA_BLANKING"),
	PINCTRL_PIN(94, "CNV_GNSS_FTA"),
	PINCTRL_PIN(95, "CNV_GNSS_SYSCK"),
	PINCTRL_PIN(96, "EMMC_HIP_MON"),
	PINCTRL_PIN(97, "CNV_BRI_DT"),
	PINCTRL_PIN(98, "CNV_BRI_RSP"),
	PINCTRL_PIN(99, "CNV_RGI_DT"),
	PINCTRL_PIN(100, "CNV_RGI_RSP"),
	PINCTRL_PIN(101, "CNV_MFUART2_RXD"),
	PINCTRL_PIN(102, "CNV_MFUART2_TXD"),
	PINCTRL_PIN(103, "GPP_F_10"),
	PINCTRL_PIN(104, "EMMC_CMD"),
	PINCTRL_PIN(105, "EMMC_DATA_0"),
	PINCTRL_PIN(106, "EMMC_DATA_1"),
	PINCTRL_PIN(107, "EMMC_DATA_2"),
	PINCTRL_PIN(108, "EMMC_DATA_3"),
	PINCTRL_PIN(109, "EMMC_DATA_4"),
	PINCTRL_PIN(110, "EMMC_DATA_5"),
	PINCTRL_PIN(111, "EMMC_DATA_6"),
	PINCTRL_PIN(112, "EMMC_DATA_7"),
	PINCTRL_PIN(113, "EMMC_RCLK"),
	PINCTRL_PIN(114, "EMMC_CLK"),
	PINCTRL_PIN(115, "EMMC_RESETB"),
	PINCTRL_PIN(116, "A4WP_PRESENT"),
	/* GPP_H */
	PINCTRL_PIN(117, "SSP2_SCLK"),
	PINCTRL_PIN(118, "SSP2_SFRM"),
	PINCTRL_PIN(119, "SSP2_TXD"),
	PINCTRL_PIN(120, "SSP2_RXD"),
	PINCTRL_PIN(121, "I2C2_SDA"),
	PINCTRL_PIN(122, "I2C2_SCL"),
	PINCTRL_PIN(123, "I2C3_SDA"),
	PINCTRL_PIN(124, "I2C3_SCL"),
	PINCTRL_PIN(125, "I2C4_SDA"),
	PINCTRL_PIN(126, "I2C4_SCL"),
	PINCTRL_PIN(127, "I2C5_SDA"),
	PINCTRL_PIN(128, "I2C5_SCL"),
	PINCTRL_PIN(129, "M2_SKT2_CFG_0"),
	PINCTRL_PIN(130, "M2_SKT2_CFG_1"),
	PINCTRL_PIN(131, "M2_SKT2_CFG_2"),
	PINCTRL_PIN(132, "M2_SKT2_CFG_3"),
	PINCTRL_PIN(133, "DDPF_CTRLCLK"),
	PINCTRL_PIN(134, "DDPF_CTRLDATA"),
	PINCTRL_PIN(135, "CPU_VCCIO_PWR_GATEB"),
	PINCTRL_PIN(136, "TIMESYNC_0"),
	PINCTRL_PIN(137, "IMGCLKOUT_1"),
	PINCTRL_PIN(138, "GPPC_H_21"),
	PINCTRL_PIN(139, "GPPC_H_22"),
	PINCTRL_PIN(140, "GPPC_H_23"),
	/* vGPIO */
	PINCTRL_PIN(141, "CNV_BTEN"),
	PINCTRL_PIN(142, "CNV_GNEN"),
	PINCTRL_PIN(143, "CNV_WFEN"),
	PINCTRL_PIN(144, "CNV_WCEN"),
	PINCTRL_PIN(145, "CNV_BT_HOST_WAKEB"),
	PINCTRL_PIN(146, "CNV_BT_IF_SELECT"),
	PINCTRL_PIN(147, "vCNV_BT_UART_TXD"),
	PINCTRL_PIN(148, "vCNV_BT_UART_RXD"),
	PINCTRL_PIN(149, "vCNV_BT_UART_CTS_B"),
	PINCTRL_PIN(150, "vCNV_BT_UART_RTS_B"),
	PINCTRL_PIN(151, "vCNV_MFUART1_TXD"),
	PINCTRL_PIN(152, "vCNV_MFUART1_RXD"),
	PINCTRL_PIN(153, "vCNV_MFUART1_CTS_B"),
	PINCTRL_PIN(154, "vCNV_MFUART1_RTS_B"),
	PINCTRL_PIN(155, "vCNV_GNSS_UART_TXD"),
	PINCTRL_PIN(156, "vCNV_GNSS_UART_RXD"),
	PINCTRL_PIN(157, "vCNV_GNSS_UART_CTS_B"),
	PINCTRL_PIN(158, "vCNV_GNSS_UART_RTS_B"),
	PINCTRL_PIN(159, "vUART0_TXD"),
	PINCTRL_PIN(160, "vUART0_RXD"),
	PINCTRL_PIN(161, "vUART0_CTS_B"),
	PINCTRL_PIN(162, "vUART0_RTS_B"),
	PINCTRL_PIN(163, "vISH_UART0_TXD"),
	PINCTRL_PIN(164, "vISH_UART0_RXD"),
	PINCTRL_PIN(165, "vISH_UART0_CTS_B"),
	PINCTRL_PIN(166, "vISH_UART0_RTS_B"),
	PINCTRL_PIN(167, "vISH_UART1_TXD"),
	PINCTRL_PIN(168, "vISH_UART1_RXD"),
	PINCTRL_PIN(169, "vISH_UART1_CTS_B"),
	PINCTRL_PIN(170, "vISH_UART1_RTS_B"),
	PINCTRL_PIN(171, "vCNV_BT_I2S_BCLK"),
	PINCTRL_PIN(172, "vCNV_BT_I2S_WS_SYNC"),
	PINCTRL_PIN(173, "vCNV_BT_I2S_SDO"),
	PINCTRL_PIN(174, "vCNV_BT_I2S_SDI"),
	PINCTRL_PIN(175, "vSSP2_SCLK"),
	PINCTRL_PIN(176, "vSSP2_SFRM"),
	PINCTRL_PIN(177, "vSSP2_TXD"),
	PINCTRL_PIN(178, "vSSP2_RXD"),
	PINCTRL_PIN(179, "vCNV_GNSS_HOST_WAKEB"),
	PINCTRL_PIN(180, "vSD3_CD_B"),
	/* GPP_C */
	PINCTRL_PIN(181, "SMBCLK"),
	PINCTRL_PIN(182, "SMBDATA"),
	PINCTRL_PIN(183, "SMBALERTB"),
	PINCTRL_PIN(184, "SML0CLK"),
	PINCTRL_PIN(185, "SML0DATA"),
	PINCTRL_PIN(186, "SML0ALERTB"),
	PINCTRL_PIN(187, "SML1CLK"),
	PINCTRL_PIN(188, "SML1DATA"),
	PINCTRL_PIN(189, "UART0_RXD"),
	PINCTRL_PIN(190, "UART0_TXD"),
	PINCTRL_PIN(191, "UART0_RTSB"),
	PINCTRL_PIN(192, "UART0_CTSB"),
	PINCTRL_PIN(193, "UART1_RXD"),
	PINCTRL_PIN(194, "UART1_TXD"),
	PINCTRL_PIN(195, "UART1_RTSB"),
	PINCTRL_PIN(196, "UART1_CTSB"),
	PINCTRL_PIN(197, "I2C0_SDA"),
	PINCTRL_PIN(198, "I2C0_SCL"),
	PINCTRL_PIN(199, "I2C1_SDA"),
	PINCTRL_PIN(200, "I2C1_SCL"),
	PINCTRL_PIN(201, "UART2_RXD"),
	PINCTRL_PIN(202, "UART2_TXD"),
	PINCTRL_PIN(203, "UART2_RTSB"),
	PINCTRL_PIN(204, "UART2_CTSB"),
	/* GPP_E */
	PINCTRL_PIN(205, "SATAXPCIE_0"),
	PINCTRL_PIN(206, "SATAXPCIE_1"),
	PINCTRL_PIN(207, "SATAXPCIE_2"),
	PINCTRL_PIN(208, "CPU_GP_0"),
	PINCTRL_PIN(209, "SATA_DEVSLP_0"),
	PINCTRL_PIN(210, "SATA_DEVSLP_1"),
	PINCTRL_PIN(211, "SATA_DEVSLP_2"),
	PINCTRL_PIN(212, "CPU_GP_1"),
	PINCTRL_PIN(213, "SATA_LEDB"),
	PINCTRL_PIN(214, "USB2_OCB_0"),
	PINCTRL_PIN(215, "USB2_OCB_1"),
	PINCTRL_PIN(216, "USB2_OCB_2"),
	PINCTRL_PIN(217, "USB2_OCB_3"),
	PINCTRL_PIN(218, "DDSP_HPD_0"),
	PINCTRL_PIN(219, "DDSP_HPD_1"),
	PINCTRL_PIN(220, "DDSP_HPD_2"),
	PINCTRL_PIN(221, "DDSP_HPD_3"),
	PINCTRL_PIN(222, "EDP_HPD"),
	PINCTRL_PIN(223, "DDPB_CTRLCLK"),
	PINCTRL_PIN(224, "DDPB_CTRLDATA"),
	PINCTRL_PIN(225, "DDPC_CTRLCLK"),
	PINCTRL_PIN(226, "DDPC_CTRLDATA"),
	PINCTRL_PIN(227, "DDPD_CTRLCLK"),
	PINCTRL_PIN(228, "DDPD_CTRLDATA"),
	/* JTAG */
	PINCTRL_PIN(229, "JTAG_TDO"),
	PINCTRL_PIN(230, "JTAGX"),
	PINCTRL_PIN(231, "PRDYB"),
	PINCTRL_PIN(232, "PREQB"),
	PINCTRL_PIN(233, "CPU_TRSTB"),
	PINCTRL_PIN(234, "JTAG_TDI"),
	PINCTRL_PIN(235, "JTAG_TMS"),
	PINCTRL_PIN(236, "JTAG_TCK"),
	PINCTRL_PIN(237, "ITP_PMODE"),
	/* HVCMOS */
	PINCTRL_PIN(238, "L_BKLTEN"),
	PINCTRL_PIN(239, "L_BKLTCTL"),
	PINCTRL_PIN(240, "L_VDDEN"),
	PINCTRL_PIN(241, "SYS_PWROK"),
	PINCTRL_PIN(242, "SYS_RESETB"),
	PINCTRL_PIN(243, "MLK_RSTB"),
};

static const unsigned int cnllp_spi0_pins[] = { 40, 41, 42, 43, 7 };
static const unsigned int cnllp_spi0_modes[] = { 1, 1, 1, 1, 2 };
static const unsigned int cnllp_spi1_pins[] = { 44, 45, 46, 47, 11 };
static const unsigned int cnllp_spi1_modes[] = { 1, 1, 1, 1, 2 };
static const unsigned int cnllp_spi2_pins[] = { 77, 78, 79, 80, 83 };
static const unsigned int cnllp_spi2_modes[] = { 3, 3, 3, 3, 2 };

static const unsigned int cnllp_i2c0_pins[] = { 197, 198 };
static const unsigned int cnllp_i2c1_pins[] = { 199, 200 };
static const unsigned int cnllp_i2c2_pins[] = { 121, 122 };
static const unsigned int cnllp_i2c3_pins[] = { 123, 124 };
static const unsigned int cnllp_i2c4_pins[] = { 125, 126 };
static const unsigned int cnllp_i2c5_pins[] = { 127, 128 };

static const unsigned int cnllp_uart0_pins[] = { 189, 190, 191, 192 };
static const unsigned int cnllp_uart1_pins[] = { 193, 194, 195, 196 };
static const unsigned int cnllp_uart2_pins[] = { 201, 202, 203, 204 };

static const struct intel_pingroup cnllp_groups[] = {
	PIN_GROUP("spi0_grp", cnllp_spi0_pins, cnllp_spi0_modes),
	PIN_GROUP("spi1_grp", cnllp_spi1_pins, cnllp_spi1_modes),
	PIN_GROUP("spi2_grp", cnllp_spi2_pins, cnllp_spi2_modes),
	PIN_GROUP("i2c0_grp", cnllp_i2c0_pins, 1),
	PIN_GROUP("i2c1_grp", cnllp_i2c1_pins, 1),
	PIN_GROUP("i2c2_grp", cnllp_i2c2_pins, 1),
	PIN_GROUP("i2c3_grp", cnllp_i2c3_pins, 1),
	PIN_GROUP("i2c4_grp", cnllp_i2c4_pins, 1),
	PIN_GROUP("i2c5_grp", cnllp_i2c5_pins, 1),
	PIN_GROUP("uart0_grp", cnllp_uart0_pins, 1),
	PIN_GROUP("uart1_grp", cnllp_uart1_pins, 1),
	PIN_GROUP("uart2_grp", cnllp_uart2_pins, 1),
};

static const char * const cnllp_spi0_groups[] = { "spi0_grp" };
static const char * const cnllp_spi1_groups[] = { "spi1_grp" };
static const char * const cnllp_spi2_groups[] = { "spi2_grp" };
static const char * const cnllp_i2c0_groups[] = { "i2c0_grp" };
static const char * const cnllp_i2c1_groups[] = { "i2c1_grp" };
static const char * const cnllp_i2c2_groups[] = { "i2c2_grp" };
static const char * const cnllp_i2c3_groups[] = { "i2c3_grp" };
static const char * const cnllp_i2c4_groups[] = { "i2c4_grp" };
static const char * const cnllp_i2c5_groups[] = { "i2c5_grp" };
static const char * const cnllp_uart0_groups[] = { "uart0_grp" };
static const char * const cnllp_uart1_groups[] = { "uart1_grp" };
static const char * const cnllp_uart2_groups[] = { "uart2_grp" };

static const struct intel_function cnllp_functions[] = {
	FUNCTION("spi0", cnllp_spi0_groups),
	FUNCTION("spi1", cnllp_spi1_groups),
	FUNCTION("spi2", cnllp_spi2_groups),
	FUNCTION("i2c0", cnllp_i2c0_groups),
	FUNCTION("i2c1", cnllp_i2c1_groups),
	FUNCTION("i2c2", cnllp_i2c2_groups),
	FUNCTION("i2c3", cnllp_i2c3_groups),
	FUNCTION("i2c4", cnllp_i2c4_groups),
	FUNCTION("i2c5", cnllp_i2c5_groups),
	FUNCTION("uart0", cnllp_uart0_groups),
	FUNCTION("uart1", cnllp_uart1_groups),
	FUNCTION("uart2", cnllp_uart2_groups),
};

static const struct intel_padgroup cnllp_community0_gpps[] = {
	CNL_GPP(0, 0, 24, 0),				/* GPP_A */
	CNL_GPP(1, 25, 50, 32),				/* GPP_B */
	CNL_GPP(2, 51, 58, 64),				/* GPP_G */
	CNL_GPP(3, 59, 67, INTEL_GPIO_BASE_NOMAP),	/* SPI */
};

static const struct intel_padgroup cnllp_community1_gpps[] = {
	CNL_GPP(0, 68, 92, 96),				/* GPP_D */
	CNL_GPP(1, 93, 116, 128),			/* GPP_F */
	CNL_GPP(2, 117, 140, 160),			/* GPP_H */
	CNL_GPP(3, 141, 172, 192),			/* vGPIO */
	CNL_GPP(4, 173, 180, 224),			/* vGPIO */
};

static const struct intel_padgroup cnllp_community4_gpps[] = {
	CNL_GPP(0, 181, 204, 256),			/* GPP_C */
	CNL_GPP(1, 205, 228, 288),			/* GPP_E */
	CNL_GPP(2, 229, 237, INTEL_GPIO_BASE_NOMAP),	/* JTAG */
	CNL_GPP(3, 238, 243, INTEL_GPIO_BASE_NOMAP),	/* HVCMOS */
};

static const struct intel_community cnllp_communities[] = {
	CNL_LP_COMMUNITY(0, 0, 67, cnllp_community0_gpps),
	CNL_LP_COMMUNITY(1, 68, 180, cnllp_community1_gpps),
	CNL_LP_COMMUNITY(2, 181, 243, cnllp_community4_gpps),
};

static const struct intel_pinctrl_soc_data cnllp_soc_data = {
	.pins = cnllp_pins,
	.npins = ARRAY_SIZE(cnllp_pins),
	.groups = cnllp_groups,
	.ngroups = ARRAY_SIZE(cnllp_groups),
	.functions = cnllp_functions,
	.nfunctions = ARRAY_SIZE(cnllp_functions),
	.communities = cnllp_communities,
	.ncommunities = ARRAY_SIZE(cnllp_communities),
};

static const struct acpi_device_id cnl_pinctrl_acpi_match[] = {
	{ "INT3450", (kernel_ulong_t)&cnlh_soc_data },
	{ "INT34BB", (kernel_ulong_t)&cnllp_soc_data },
	{ }
};
MODULE_DEVICE_TABLE(acpi, cnl_pinctrl_acpi_match);

static struct platform_driver cnl_pinctrl_driver = {
	.probe = intel_pinctrl_probe_by_hid,
	.driver = {
		.name = "cannonlake-pinctrl",
		.acpi_match_table = cnl_pinctrl_acpi_match,
		.pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
	},
};
module_platform_driver(cnl_pinctrl_driver);

MODULE_AUTHOR("Mika Westerberg <mika.westerberg@linux.intel.com>");
MODULE_DESCRIPTION("Intel Cannon Lake PCH pinctrl/GPIO driver");
MODULE_LICENSE("GPL v2");
MODULE_IMPORT_NS(PINCTRL_INTEL);
