162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Intel Cannon Lake PCH pinctrl/GPIO driver
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (C) 2017, Intel Corporation
662306a36Sopenharmony_ci * Authors: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
762306a36Sopenharmony_ci *          Mika Westerberg <mika.westerberg@linux.intel.com>
862306a36Sopenharmony_ci */
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#include <linux/mod_devicetable.h>
1162306a36Sopenharmony_ci#include <linux/module.h>
1262306a36Sopenharmony_ci#include <linux/platform_device.h>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#include <linux/pinctrl/pinctrl.h>
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci#include "pinctrl-intel.h"
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci#define CNL_LP_PAD_OWN		0x020
1962306a36Sopenharmony_ci#define CNL_LP_PADCFGLOCK	0x080
2062306a36Sopenharmony_ci#define CNL_LP_HOSTSW_OWN	0x0b0
2162306a36Sopenharmony_ci#define CNL_LP_GPI_IS		0x100
2262306a36Sopenharmony_ci#define CNL_LP_GPI_IE		0x120
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci#define CNL_H_PAD_OWN		0x020
2562306a36Sopenharmony_ci#define CNL_H_PADCFGLOCK	0x080
2662306a36Sopenharmony_ci#define CNL_H_HOSTSW_OWN	0x0c0
2762306a36Sopenharmony_ci#define CNL_H_GPI_IS		0x100
2862306a36Sopenharmony_ci#define CNL_H_GPI_IE		0x120
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci#define CNL_GPP(r, s, e, g)				\
3162306a36Sopenharmony_ci	{						\
3262306a36Sopenharmony_ci		.reg_num = (r),				\
3362306a36Sopenharmony_ci		.base = (s),				\
3462306a36Sopenharmony_ci		.size = ((e) - (s) + 1),		\
3562306a36Sopenharmony_ci		.gpio_base = (g),			\
3662306a36Sopenharmony_ci	}
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci#define CNL_LP_COMMUNITY(b, s, e, g)			\
3962306a36Sopenharmony_ci	INTEL_COMMUNITY_GPPS(b, s, e, g, CNL_LP)
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci#define CNL_H_COMMUNITY(b, s, e, g)			\
4262306a36Sopenharmony_ci	INTEL_COMMUNITY_GPPS(b, s, e, g, CNL_H)
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci/* Cannon Lake-H */
4562306a36Sopenharmony_cistatic const struct pinctrl_pin_desc cnlh_pins[] = {
4662306a36Sopenharmony_ci	/* GPP_A */
4762306a36Sopenharmony_ci	PINCTRL_PIN(0, "RCINB"),
4862306a36Sopenharmony_ci	PINCTRL_PIN(1, "LAD_0"),
4962306a36Sopenharmony_ci	PINCTRL_PIN(2, "LAD_1"),
5062306a36Sopenharmony_ci	PINCTRL_PIN(3, "LAD_2"),
5162306a36Sopenharmony_ci	PINCTRL_PIN(4, "LAD_3"),
5262306a36Sopenharmony_ci	PINCTRL_PIN(5, "LFRAMEB"),
5362306a36Sopenharmony_ci	PINCTRL_PIN(6, "SERIRQ"),
5462306a36Sopenharmony_ci	PINCTRL_PIN(7, "PIRQAB"),
5562306a36Sopenharmony_ci	PINCTRL_PIN(8, "CLKRUNB"),
5662306a36Sopenharmony_ci	PINCTRL_PIN(9, "CLKOUT_LPC_0"),
5762306a36Sopenharmony_ci	PINCTRL_PIN(10, "CLKOUT_LPC_1"),
5862306a36Sopenharmony_ci	PINCTRL_PIN(11, "PMEB"),
5962306a36Sopenharmony_ci	PINCTRL_PIN(12, "BM_BUSYB"),
6062306a36Sopenharmony_ci	PINCTRL_PIN(13, "SUSWARNB_SUSPWRDNACK"),
6162306a36Sopenharmony_ci	PINCTRL_PIN(14, "SUS_STATB"),
6262306a36Sopenharmony_ci	PINCTRL_PIN(15, "SUSACKB"),
6362306a36Sopenharmony_ci	PINCTRL_PIN(16, "CLKOUT_48"),
6462306a36Sopenharmony_ci	PINCTRL_PIN(17, "SD_VDD1_PWR_EN_B"),
6562306a36Sopenharmony_ci	PINCTRL_PIN(18, "ISH_GP_0"),
6662306a36Sopenharmony_ci	PINCTRL_PIN(19, "ISH_GP_1"),
6762306a36Sopenharmony_ci	PINCTRL_PIN(20, "ISH_GP_2"),
6862306a36Sopenharmony_ci	PINCTRL_PIN(21, "ISH_GP_3"),
6962306a36Sopenharmony_ci	PINCTRL_PIN(22, "ISH_GP_4"),
7062306a36Sopenharmony_ci	PINCTRL_PIN(23, "ISH_GP_5"),
7162306a36Sopenharmony_ci	PINCTRL_PIN(24, "ESPI_CLK_LOOPBK"),
7262306a36Sopenharmony_ci	/* GPP_B */
7362306a36Sopenharmony_ci	PINCTRL_PIN(25, "GSPI0_CS1B"),
7462306a36Sopenharmony_ci	PINCTRL_PIN(26, "GSPI1_CS1B"),
7562306a36Sopenharmony_ci	PINCTRL_PIN(27, "VRALERTB"),
7662306a36Sopenharmony_ci	PINCTRL_PIN(28, "CPU_GP_2"),
7762306a36Sopenharmony_ci	PINCTRL_PIN(29, "CPU_GP_3"),
7862306a36Sopenharmony_ci	PINCTRL_PIN(30, "SRCCLKREQB_0"),
7962306a36Sopenharmony_ci	PINCTRL_PIN(31, "SRCCLKREQB_1"),
8062306a36Sopenharmony_ci	PINCTRL_PIN(32, "SRCCLKREQB_2"),
8162306a36Sopenharmony_ci	PINCTRL_PIN(33, "SRCCLKREQB_3"),
8262306a36Sopenharmony_ci	PINCTRL_PIN(34, "SRCCLKREQB_4"),
8362306a36Sopenharmony_ci	PINCTRL_PIN(35, "SRCCLKREQB_5"),
8462306a36Sopenharmony_ci	PINCTRL_PIN(36, "SSP_MCLK"),
8562306a36Sopenharmony_ci	PINCTRL_PIN(37, "SLP_S0B"),
8662306a36Sopenharmony_ci	PINCTRL_PIN(38, "PLTRSTB"),
8762306a36Sopenharmony_ci	PINCTRL_PIN(39, "SPKR"),
8862306a36Sopenharmony_ci	PINCTRL_PIN(40, "GSPI0_CS0B"),
8962306a36Sopenharmony_ci	PINCTRL_PIN(41, "GSPI0_CLK"),
9062306a36Sopenharmony_ci	PINCTRL_PIN(42, "GSPI0_MISO"),
9162306a36Sopenharmony_ci	PINCTRL_PIN(43, "GSPI0_MOSI"),
9262306a36Sopenharmony_ci	PINCTRL_PIN(44, "GSPI1_CS0B"),
9362306a36Sopenharmony_ci	PINCTRL_PIN(45, "GSPI1_CLK"),
9462306a36Sopenharmony_ci	PINCTRL_PIN(46, "GSPI1_MISO"),
9562306a36Sopenharmony_ci	PINCTRL_PIN(47, "GSPI1_MOSI"),
9662306a36Sopenharmony_ci	PINCTRL_PIN(48, "SML1ALERTB"),
9762306a36Sopenharmony_ci	PINCTRL_PIN(49, "GSPI0_CLK_LOOPBK"),
9862306a36Sopenharmony_ci	PINCTRL_PIN(50, "GSPI1_CLK_LOOPBK"),
9962306a36Sopenharmony_ci	/* GPP_C */
10062306a36Sopenharmony_ci	PINCTRL_PIN(51, "SMBCLK"),
10162306a36Sopenharmony_ci	PINCTRL_PIN(52, "SMBDATA"),
10262306a36Sopenharmony_ci	PINCTRL_PIN(53, "SMBALERTB"),
10362306a36Sopenharmony_ci	PINCTRL_PIN(54, "SML0CLK"),
10462306a36Sopenharmony_ci	PINCTRL_PIN(55, "SML0DATA"),
10562306a36Sopenharmony_ci	PINCTRL_PIN(56, "SML0ALERTB"),
10662306a36Sopenharmony_ci	PINCTRL_PIN(57, "SML1CLK"),
10762306a36Sopenharmony_ci	PINCTRL_PIN(58, "SML1DATA"),
10862306a36Sopenharmony_ci	PINCTRL_PIN(59, "UART0_RXD"),
10962306a36Sopenharmony_ci	PINCTRL_PIN(60, "UART0_TXD"),
11062306a36Sopenharmony_ci	PINCTRL_PIN(61, "UART0_RTSB"),
11162306a36Sopenharmony_ci	PINCTRL_PIN(62, "UART0_CTSB"),
11262306a36Sopenharmony_ci	PINCTRL_PIN(63, "UART1_RXD"),
11362306a36Sopenharmony_ci	PINCTRL_PIN(64, "UART1_TXD"),
11462306a36Sopenharmony_ci	PINCTRL_PIN(65, "UART1_RTSB"),
11562306a36Sopenharmony_ci	PINCTRL_PIN(66, "UART1_CTSB"),
11662306a36Sopenharmony_ci	PINCTRL_PIN(67, "I2C0_SDA"),
11762306a36Sopenharmony_ci	PINCTRL_PIN(68, "I2C0_SCL"),
11862306a36Sopenharmony_ci	PINCTRL_PIN(69, "I2C1_SDA"),
11962306a36Sopenharmony_ci	PINCTRL_PIN(70, "I2C1_SCL"),
12062306a36Sopenharmony_ci	PINCTRL_PIN(71, "UART2_RXD"),
12162306a36Sopenharmony_ci	PINCTRL_PIN(72, "UART2_TXD"),
12262306a36Sopenharmony_ci	PINCTRL_PIN(73, "UART2_RTSB"),
12362306a36Sopenharmony_ci	PINCTRL_PIN(74, "UART2_CTSB"),
12462306a36Sopenharmony_ci	/* GPP_D */
12562306a36Sopenharmony_ci	PINCTRL_PIN(75, "SPI1_CSB"),
12662306a36Sopenharmony_ci	PINCTRL_PIN(76, "SPI1_CLK"),
12762306a36Sopenharmony_ci	PINCTRL_PIN(77, "SPI1_MISO_IO_1"),
12862306a36Sopenharmony_ci	PINCTRL_PIN(78, "SPI1_MOSI_IO_0"),
12962306a36Sopenharmony_ci	PINCTRL_PIN(79, "ISH_I2C2_SDA"),
13062306a36Sopenharmony_ci	PINCTRL_PIN(80, "SSP2_SFRM"),
13162306a36Sopenharmony_ci	PINCTRL_PIN(81, "SSP2_TXD"),
13262306a36Sopenharmony_ci	PINCTRL_PIN(82, "SSP2_RXD"),
13362306a36Sopenharmony_ci	PINCTRL_PIN(83, "SSP2_SCLK"),
13462306a36Sopenharmony_ci	PINCTRL_PIN(84, "ISH_SPI_CSB"),
13562306a36Sopenharmony_ci	PINCTRL_PIN(85, "ISH_SPI_CLK"),
13662306a36Sopenharmony_ci	PINCTRL_PIN(86, "ISH_SPI_MISO"),
13762306a36Sopenharmony_ci	PINCTRL_PIN(87, "ISH_SPI_MOSI"),
13862306a36Sopenharmony_ci	PINCTRL_PIN(88, "ISH_UART0_RXD"),
13962306a36Sopenharmony_ci	PINCTRL_PIN(89, "ISH_UART0_TXD"),
14062306a36Sopenharmony_ci	PINCTRL_PIN(90, "ISH_UART0_RTSB"),
14162306a36Sopenharmony_ci	PINCTRL_PIN(91, "ISH_UART0_CTSB"),
14262306a36Sopenharmony_ci	PINCTRL_PIN(92, "DMIC_CLK_1"),
14362306a36Sopenharmony_ci	PINCTRL_PIN(93, "DMIC_DATA_1"),
14462306a36Sopenharmony_ci	PINCTRL_PIN(94, "DMIC_CLK_0"),
14562306a36Sopenharmony_ci	PINCTRL_PIN(95, "DMIC_DATA_0"),
14662306a36Sopenharmony_ci	PINCTRL_PIN(96, "SPI1_IO_2"),
14762306a36Sopenharmony_ci	PINCTRL_PIN(97, "SPI1_IO_3"),
14862306a36Sopenharmony_ci	PINCTRL_PIN(98, "ISH_I2C2_SCL"),
14962306a36Sopenharmony_ci	/* GPP_G */
15062306a36Sopenharmony_ci	PINCTRL_PIN(99, "SD3_CMD"),
15162306a36Sopenharmony_ci	PINCTRL_PIN(100, "SD3_D0"),
15262306a36Sopenharmony_ci	PINCTRL_PIN(101, "SD3_D1"),
15362306a36Sopenharmony_ci	PINCTRL_PIN(102, "SD3_D2"),
15462306a36Sopenharmony_ci	PINCTRL_PIN(103, "SD3_D3"),
15562306a36Sopenharmony_ci	PINCTRL_PIN(104, "SD3_CDB"),
15662306a36Sopenharmony_ci	PINCTRL_PIN(105, "SD3_CLK"),
15762306a36Sopenharmony_ci	PINCTRL_PIN(106, "SD3_WP"),
15862306a36Sopenharmony_ci	/* AZA */
15962306a36Sopenharmony_ci	PINCTRL_PIN(107, "HDA_BCLK"),
16062306a36Sopenharmony_ci	PINCTRL_PIN(108, "HDA_RSTB"),
16162306a36Sopenharmony_ci	PINCTRL_PIN(109, "HDA_SYNC"),
16262306a36Sopenharmony_ci	PINCTRL_PIN(110, "HDA_SDO"),
16362306a36Sopenharmony_ci	PINCTRL_PIN(111, "HDA_SDI_0"),
16462306a36Sopenharmony_ci	PINCTRL_PIN(112, "HDA_SDI_1"),
16562306a36Sopenharmony_ci	PINCTRL_PIN(113, "SSP1_SFRM"),
16662306a36Sopenharmony_ci	PINCTRL_PIN(114, "SSP1_TXD"),
16762306a36Sopenharmony_ci	/* vGPIO */
16862306a36Sopenharmony_ci	PINCTRL_PIN(115, "CNV_BTEN"),
16962306a36Sopenharmony_ci	PINCTRL_PIN(116, "CNV_GNEN"),
17062306a36Sopenharmony_ci	PINCTRL_PIN(117, "CNV_WFEN"),
17162306a36Sopenharmony_ci	PINCTRL_PIN(118, "CNV_WCEN"),
17262306a36Sopenharmony_ci	PINCTRL_PIN(119, "CNV_BT_HOST_WAKEB"),
17362306a36Sopenharmony_ci	PINCTRL_PIN(120, "vCNV_GNSS_HOST_WAKEB"),
17462306a36Sopenharmony_ci	PINCTRL_PIN(121, "vSD3_CD_B"),
17562306a36Sopenharmony_ci	PINCTRL_PIN(122, "CNV_BT_IF_SELECT"),
17662306a36Sopenharmony_ci	PINCTRL_PIN(123, "vCNV_BT_UART_TXD"),
17762306a36Sopenharmony_ci	PINCTRL_PIN(124, "vCNV_BT_UART_RXD"),
17862306a36Sopenharmony_ci	PINCTRL_PIN(125, "vCNV_BT_UART_CTS_B"),
17962306a36Sopenharmony_ci	PINCTRL_PIN(126, "vCNV_BT_UART_RTS_B"),
18062306a36Sopenharmony_ci	PINCTRL_PIN(127, "vCNV_MFUART1_TXD"),
18162306a36Sopenharmony_ci	PINCTRL_PIN(128, "vCNV_MFUART1_RXD"),
18262306a36Sopenharmony_ci	PINCTRL_PIN(129, "vCNV_MFUART1_CTS_B"),
18362306a36Sopenharmony_ci	PINCTRL_PIN(130, "vCNV_MFUART1_RTS_B"),
18462306a36Sopenharmony_ci	PINCTRL_PIN(131, "vCNV_GNSS_UART_TXD"),
18562306a36Sopenharmony_ci	PINCTRL_PIN(132, "vCNV_GNSS_UART_RXD"),
18662306a36Sopenharmony_ci	PINCTRL_PIN(133, "vCNV_GNSS_UART_CTS_B"),
18762306a36Sopenharmony_ci	PINCTRL_PIN(134, "vCNV_GNSS_UART_RTS_B"),
18862306a36Sopenharmony_ci	PINCTRL_PIN(135, "vUART0_TXD"),
18962306a36Sopenharmony_ci	PINCTRL_PIN(136, "vUART0_RXD"),
19062306a36Sopenharmony_ci	PINCTRL_PIN(137, "vUART0_CTS_B"),
19162306a36Sopenharmony_ci	PINCTRL_PIN(138, "vUART0_RTSB"),
19262306a36Sopenharmony_ci	PINCTRL_PIN(139, "vISH_UART0_TXD"),
19362306a36Sopenharmony_ci	PINCTRL_PIN(140, "vISH_UART0_RXD"),
19462306a36Sopenharmony_ci	PINCTRL_PIN(141, "vISH_UART0_CTS_B"),
19562306a36Sopenharmony_ci	PINCTRL_PIN(142, "vISH_UART0_RTSB"),
19662306a36Sopenharmony_ci	PINCTRL_PIN(143, "vISH_UART1_TXD"),
19762306a36Sopenharmony_ci	PINCTRL_PIN(144, "vISH_UART1_RXD"),
19862306a36Sopenharmony_ci	PINCTRL_PIN(145, "vISH_UART1_CTS_B"),
19962306a36Sopenharmony_ci	PINCTRL_PIN(146, "vISH_UART1_RTS_B"),
20062306a36Sopenharmony_ci	PINCTRL_PIN(147, "vCNV_BT_I2S_BCLK"),
20162306a36Sopenharmony_ci	PINCTRL_PIN(148, "vCNV_BT_I2S_WS_SYNC"),
20262306a36Sopenharmony_ci	PINCTRL_PIN(149, "vCNV_BT_I2S_SDO"),
20362306a36Sopenharmony_ci	PINCTRL_PIN(150, "vCNV_BT_I2S_SDI"),
20462306a36Sopenharmony_ci	PINCTRL_PIN(151, "vSSP2_SCLK"),
20562306a36Sopenharmony_ci	PINCTRL_PIN(152, "vSSP2_SFRM"),
20662306a36Sopenharmony_ci	PINCTRL_PIN(153, "vSSP2_TXD"),
20762306a36Sopenharmony_ci	PINCTRL_PIN(154, "vSSP2_RXD"),
20862306a36Sopenharmony_ci	/* GPP_K */
20962306a36Sopenharmony_ci	PINCTRL_PIN(155, "FAN_TACH_0"),
21062306a36Sopenharmony_ci	PINCTRL_PIN(156, "FAN_TACH_1"),
21162306a36Sopenharmony_ci	PINCTRL_PIN(157, "FAN_TACH_2"),
21262306a36Sopenharmony_ci	PINCTRL_PIN(158, "FAN_TACH_3"),
21362306a36Sopenharmony_ci	PINCTRL_PIN(159, "FAN_TACH_4"),
21462306a36Sopenharmony_ci	PINCTRL_PIN(160, "FAN_TACH_5"),
21562306a36Sopenharmony_ci	PINCTRL_PIN(161, "FAN_TACH_6"),
21662306a36Sopenharmony_ci	PINCTRL_PIN(162, "FAN_TACH_7"),
21762306a36Sopenharmony_ci	PINCTRL_PIN(163, "FAN_PWM_0"),
21862306a36Sopenharmony_ci	PINCTRL_PIN(164, "FAN_PWM_1"),
21962306a36Sopenharmony_ci	PINCTRL_PIN(165, "FAN_PWM_2"),
22062306a36Sopenharmony_ci	PINCTRL_PIN(166, "FAN_PWM_3"),
22162306a36Sopenharmony_ci	PINCTRL_PIN(167, "GSXDOUT"),
22262306a36Sopenharmony_ci	PINCTRL_PIN(168, "GSXSLOAD"),
22362306a36Sopenharmony_ci	PINCTRL_PIN(169, "GSXDIN"),
22462306a36Sopenharmony_ci	PINCTRL_PIN(170, "GSXSRESETB"),
22562306a36Sopenharmony_ci	PINCTRL_PIN(171, "GSXCLK"),
22662306a36Sopenharmony_ci	PINCTRL_PIN(172, "ADR_COMPLETE"),
22762306a36Sopenharmony_ci	PINCTRL_PIN(173, "NMIB"),
22862306a36Sopenharmony_ci	PINCTRL_PIN(174, "SMIB"),
22962306a36Sopenharmony_ci	PINCTRL_PIN(175, "CORE_VID_0"),
23062306a36Sopenharmony_ci	PINCTRL_PIN(176, "CORE_VID_1"),
23162306a36Sopenharmony_ci	PINCTRL_PIN(177, "IMGCLKOUT_0"),
23262306a36Sopenharmony_ci	PINCTRL_PIN(178, "IMGCLKOUT_1"),
23362306a36Sopenharmony_ci	/* GPP_H */
23462306a36Sopenharmony_ci	PINCTRL_PIN(179, "SRCCLKREQB_6"),
23562306a36Sopenharmony_ci	PINCTRL_PIN(180, "SRCCLKREQB_7"),
23662306a36Sopenharmony_ci	PINCTRL_PIN(181, "SRCCLKREQB_8"),
23762306a36Sopenharmony_ci	PINCTRL_PIN(182, "SRCCLKREQB_9"),
23862306a36Sopenharmony_ci	PINCTRL_PIN(183, "SRCCLKREQB_10"),
23962306a36Sopenharmony_ci	PINCTRL_PIN(184, "SRCCLKREQB_11"),
24062306a36Sopenharmony_ci	PINCTRL_PIN(185, "SRCCLKREQB_12"),
24162306a36Sopenharmony_ci	PINCTRL_PIN(186, "SRCCLKREQB_13"),
24262306a36Sopenharmony_ci	PINCTRL_PIN(187, "SRCCLKREQB_14"),
24362306a36Sopenharmony_ci	PINCTRL_PIN(188, "SRCCLKREQB_15"),
24462306a36Sopenharmony_ci	PINCTRL_PIN(189, "SML2CLK"),
24562306a36Sopenharmony_ci	PINCTRL_PIN(190, "SML2DATA"),
24662306a36Sopenharmony_ci	PINCTRL_PIN(191, "SML2ALERTB"),
24762306a36Sopenharmony_ci	PINCTRL_PIN(192, "SML3CLK"),
24862306a36Sopenharmony_ci	PINCTRL_PIN(193, "SML3DATA"),
24962306a36Sopenharmony_ci	PINCTRL_PIN(194, "SML3ALERTB"),
25062306a36Sopenharmony_ci	PINCTRL_PIN(195, "SML4CLK"),
25162306a36Sopenharmony_ci	PINCTRL_PIN(196, "SML4DATA"),
25262306a36Sopenharmony_ci	PINCTRL_PIN(197, "SML4ALERTB"),
25362306a36Sopenharmony_ci	PINCTRL_PIN(198, "ISH_I2C0_SDA"),
25462306a36Sopenharmony_ci	PINCTRL_PIN(199, "ISH_I2C0_SCL"),
25562306a36Sopenharmony_ci	PINCTRL_PIN(200, "ISH_I2C1_SDA"),
25662306a36Sopenharmony_ci	PINCTRL_PIN(201, "ISH_I2C1_SCL"),
25762306a36Sopenharmony_ci	PINCTRL_PIN(202, "TIME_SYNC_0"),
25862306a36Sopenharmony_ci	/* GPP_E */
25962306a36Sopenharmony_ci	PINCTRL_PIN(203, "SATAXPCIE_0"),
26062306a36Sopenharmony_ci	PINCTRL_PIN(204, "SATAXPCIE_1"),
26162306a36Sopenharmony_ci	PINCTRL_PIN(205, "SATAXPCIE_2"),
26262306a36Sopenharmony_ci	PINCTRL_PIN(206, "CPU_GP_0"),
26362306a36Sopenharmony_ci	PINCTRL_PIN(207, "SATA_DEVSLP_0"),
26462306a36Sopenharmony_ci	PINCTRL_PIN(208, "SATA_DEVSLP_1"),
26562306a36Sopenharmony_ci	PINCTRL_PIN(209, "SATA_DEVSLP_2"),
26662306a36Sopenharmony_ci	PINCTRL_PIN(210, "CPU_GP_1"),
26762306a36Sopenharmony_ci	PINCTRL_PIN(211, "SATA_LEDB"),
26862306a36Sopenharmony_ci	PINCTRL_PIN(212, "USB2_OCB_0"),
26962306a36Sopenharmony_ci	PINCTRL_PIN(213, "USB2_OCB_1"),
27062306a36Sopenharmony_ci	PINCTRL_PIN(214, "USB2_OCB_2"),
27162306a36Sopenharmony_ci	PINCTRL_PIN(215, "USB2_OCB_3"),
27262306a36Sopenharmony_ci	/* GPP_F */
27362306a36Sopenharmony_ci	PINCTRL_PIN(216, "SATAXPCIE_3"),
27462306a36Sopenharmony_ci	PINCTRL_PIN(217, "SATAXPCIE_4"),
27562306a36Sopenharmony_ci	PINCTRL_PIN(218, "SATAXPCIE_5"),
27662306a36Sopenharmony_ci	PINCTRL_PIN(219, "SATAXPCIE_6"),
27762306a36Sopenharmony_ci	PINCTRL_PIN(220, "SATAXPCIE_7"),
27862306a36Sopenharmony_ci	PINCTRL_PIN(221, "SATA_DEVSLP_3"),
27962306a36Sopenharmony_ci	PINCTRL_PIN(222, "SATA_DEVSLP_4"),
28062306a36Sopenharmony_ci	PINCTRL_PIN(223, "SATA_DEVSLP_5"),
28162306a36Sopenharmony_ci	PINCTRL_PIN(224, "SATA_DEVSLP_6"),
28262306a36Sopenharmony_ci	PINCTRL_PIN(225, "SATA_DEVSLP_7"),
28362306a36Sopenharmony_ci	PINCTRL_PIN(226, "SATA_SCLOCK"),
28462306a36Sopenharmony_ci	PINCTRL_PIN(227, "SATA_SLOAD"),
28562306a36Sopenharmony_ci	PINCTRL_PIN(228, "SATA_SDATAOUT1"),
28662306a36Sopenharmony_ci	PINCTRL_PIN(229, "SATA_SDATAOUT0"),
28762306a36Sopenharmony_ci	PINCTRL_PIN(230, "EXT_PWR_GATEB"),
28862306a36Sopenharmony_ci	PINCTRL_PIN(231, "USB2_OCB_4"),
28962306a36Sopenharmony_ci	PINCTRL_PIN(232, "USB2_OCB_5"),
29062306a36Sopenharmony_ci	PINCTRL_PIN(233, "USB2_OCB_6"),
29162306a36Sopenharmony_ci	PINCTRL_PIN(234, "USB2_OCB_7"),
29262306a36Sopenharmony_ci	PINCTRL_PIN(235, "L_VDDEN"),
29362306a36Sopenharmony_ci	PINCTRL_PIN(236, "L_BKLTEN"),
29462306a36Sopenharmony_ci	PINCTRL_PIN(237, "L_BKLTCTL"),
29562306a36Sopenharmony_ci	PINCTRL_PIN(238, "DDPF_CTRLCLK"),
29662306a36Sopenharmony_ci	PINCTRL_PIN(239, "DDPF_CTRLDATA"),
29762306a36Sopenharmony_ci	/* SPI */
29862306a36Sopenharmony_ci	PINCTRL_PIN(240, "SPI0_IO_2"),
29962306a36Sopenharmony_ci	PINCTRL_PIN(241, "SPI0_IO_3"),
30062306a36Sopenharmony_ci	PINCTRL_PIN(242, "SPI0_MOSI_IO_0"),
30162306a36Sopenharmony_ci	PINCTRL_PIN(243, "SPI0_MISO_IO_1"),
30262306a36Sopenharmony_ci	PINCTRL_PIN(244, "SPI0_TPM_CSB"),
30362306a36Sopenharmony_ci	PINCTRL_PIN(245, "SPI0_FLASH_0_CSB"),
30462306a36Sopenharmony_ci	PINCTRL_PIN(246, "SPI0_FLASH_1_CSB"),
30562306a36Sopenharmony_ci	PINCTRL_PIN(247, "SPI0_CLK"),
30662306a36Sopenharmony_ci	PINCTRL_PIN(248, "SPI0_CLK_LOOPBK"),
30762306a36Sopenharmony_ci	/* CPU */
30862306a36Sopenharmony_ci	PINCTRL_PIN(249, "HDACPU_SDI"),
30962306a36Sopenharmony_ci	PINCTRL_PIN(250, "HDACPU_SDO"),
31062306a36Sopenharmony_ci	PINCTRL_PIN(251, "HDACPU_SCLK"),
31162306a36Sopenharmony_ci	PINCTRL_PIN(252, "PM_SYNC"),
31262306a36Sopenharmony_ci	PINCTRL_PIN(253, "PECI"),
31362306a36Sopenharmony_ci	PINCTRL_PIN(254, "CPUPWRGD"),
31462306a36Sopenharmony_ci	PINCTRL_PIN(255, "THRMTRIPB"),
31562306a36Sopenharmony_ci	PINCTRL_PIN(256, "PLTRST_CPUB"),
31662306a36Sopenharmony_ci	PINCTRL_PIN(257, "PM_DOWN"),
31762306a36Sopenharmony_ci	PINCTRL_PIN(258, "TRIGGER_IN"),
31862306a36Sopenharmony_ci	PINCTRL_PIN(259, "TRIGGER_OUT"),
31962306a36Sopenharmony_ci	/* JTAG */
32062306a36Sopenharmony_ci	PINCTRL_PIN(260, "JTAG_TDO"),
32162306a36Sopenharmony_ci	PINCTRL_PIN(261, "JTAGX"),
32262306a36Sopenharmony_ci	PINCTRL_PIN(262, "PRDYB"),
32362306a36Sopenharmony_ci	PINCTRL_PIN(263, "PREQB"),
32462306a36Sopenharmony_ci	PINCTRL_PIN(264, "CPU_TRSTB"),
32562306a36Sopenharmony_ci	PINCTRL_PIN(265, "JTAG_TDI"),
32662306a36Sopenharmony_ci	PINCTRL_PIN(266, "JTAG_TMS"),
32762306a36Sopenharmony_ci	PINCTRL_PIN(267, "JTAG_TCK"),
32862306a36Sopenharmony_ci	PINCTRL_PIN(268, "ITP_PMODE"),
32962306a36Sopenharmony_ci	/* GPP_I */
33062306a36Sopenharmony_ci	PINCTRL_PIN(269, "DDSP_HPD_0"),
33162306a36Sopenharmony_ci	PINCTRL_PIN(270, "DDSP_HPD_1"),
33262306a36Sopenharmony_ci	PINCTRL_PIN(271, "DDSP_HPD_2"),
33362306a36Sopenharmony_ci	PINCTRL_PIN(272, "DDSP_HPD_3"),
33462306a36Sopenharmony_ci	PINCTRL_PIN(273, "EDP_HPD"),
33562306a36Sopenharmony_ci	PINCTRL_PIN(274, "DDPB_CTRLCLK"),
33662306a36Sopenharmony_ci	PINCTRL_PIN(275, "DDPB_CTRLDATA"),
33762306a36Sopenharmony_ci	PINCTRL_PIN(276, "DDPC_CTRLCLK"),
33862306a36Sopenharmony_ci	PINCTRL_PIN(277, "DDPC_CTRLDATA"),
33962306a36Sopenharmony_ci	PINCTRL_PIN(278, "DDPD_CTRLCLK"),
34062306a36Sopenharmony_ci	PINCTRL_PIN(279, "DDPD_CTRLDATA"),
34162306a36Sopenharmony_ci	PINCTRL_PIN(280, "M2_SKT2_CFG_0"),
34262306a36Sopenharmony_ci	PINCTRL_PIN(281, "M2_SKT2_CFG_1"),
34362306a36Sopenharmony_ci	PINCTRL_PIN(282, "M2_SKT2_CFG_2"),
34462306a36Sopenharmony_ci	PINCTRL_PIN(283, "M2_SKT2_CFG_3"),
34562306a36Sopenharmony_ci	PINCTRL_PIN(284, "SYS_PWROK"),
34662306a36Sopenharmony_ci	PINCTRL_PIN(285, "SYS_RESETB"),
34762306a36Sopenharmony_ci	PINCTRL_PIN(286, "MLK_RSTB"),
34862306a36Sopenharmony_ci	/* GPP_J */
34962306a36Sopenharmony_ci	PINCTRL_PIN(287, "CNV_PA_BLANKING"),
35062306a36Sopenharmony_ci	PINCTRL_PIN(288, "CNV_GNSS_FTA"),
35162306a36Sopenharmony_ci	PINCTRL_PIN(289, "CNV_GNSS_SYSCK"),
35262306a36Sopenharmony_ci	PINCTRL_PIN(290, "CNV_RF_RESET_B"),
35362306a36Sopenharmony_ci	PINCTRL_PIN(291, "CNV_BRI_DT"),
35462306a36Sopenharmony_ci	PINCTRL_PIN(292, "CNV_BRI_RSP"),
35562306a36Sopenharmony_ci	PINCTRL_PIN(293, "CNV_RGI_DT"),
35662306a36Sopenharmony_ci	PINCTRL_PIN(294, "CNV_RGI_RSP"),
35762306a36Sopenharmony_ci	PINCTRL_PIN(295, "CNV_MFUART2_RXD"),
35862306a36Sopenharmony_ci	PINCTRL_PIN(296, "CNV_MFUART2_TXD"),
35962306a36Sopenharmony_ci	PINCTRL_PIN(297, "CNV_MODEM_CLKREQ"),
36062306a36Sopenharmony_ci	PINCTRL_PIN(298, "A4WP_PRESENT"),
36162306a36Sopenharmony_ci};
36262306a36Sopenharmony_ci
36362306a36Sopenharmony_cistatic const struct intel_padgroup cnlh_community0_gpps[] = {
36462306a36Sopenharmony_ci	CNL_GPP(0, 0, 24, 0),			/* GPP_A */
36562306a36Sopenharmony_ci	CNL_GPP(1, 25, 50, 32),			/* GPP_B */
36662306a36Sopenharmony_ci};
36762306a36Sopenharmony_ci
36862306a36Sopenharmony_cistatic const struct intel_padgroup cnlh_community1_gpps[] = {
36962306a36Sopenharmony_ci	CNL_GPP(0, 51, 74, 64),				/* GPP_C */
37062306a36Sopenharmony_ci	CNL_GPP(1, 75, 98, 96),				/* GPP_D */
37162306a36Sopenharmony_ci	CNL_GPP(2, 99, 106, 128),			/* GPP_G */
37262306a36Sopenharmony_ci	CNL_GPP(3, 107, 114, INTEL_GPIO_BASE_NOMAP),	/* AZA */
37362306a36Sopenharmony_ci	CNL_GPP(4, 115, 146, 160),			/* vGPIO_0 */
37462306a36Sopenharmony_ci	CNL_GPP(5, 147, 154, INTEL_GPIO_BASE_NOMAP),	/* vGPIO_1 */
37562306a36Sopenharmony_ci};
37662306a36Sopenharmony_ci
37762306a36Sopenharmony_cistatic const struct intel_padgroup cnlh_community3_gpps[] = {
37862306a36Sopenharmony_ci	CNL_GPP(0, 155, 178, 192),			/* GPP_K */
37962306a36Sopenharmony_ci	CNL_GPP(1, 179, 202, 224),			/* GPP_H */
38062306a36Sopenharmony_ci	CNL_GPP(2, 203, 215, 256),			/* GPP_E */
38162306a36Sopenharmony_ci	CNL_GPP(3, 216, 239, 288),			/* GPP_F */
38262306a36Sopenharmony_ci	CNL_GPP(4, 240, 248, INTEL_GPIO_BASE_NOMAP),	/* SPI */
38362306a36Sopenharmony_ci};
38462306a36Sopenharmony_ci
38562306a36Sopenharmony_cistatic const struct intel_padgroup cnlh_community4_gpps[] = {
38662306a36Sopenharmony_ci	CNL_GPP(0, 249, 259, INTEL_GPIO_BASE_NOMAP),	/* CPU */
38762306a36Sopenharmony_ci	CNL_GPP(1, 260, 268, INTEL_GPIO_BASE_NOMAP),	/* JTAG */
38862306a36Sopenharmony_ci	CNL_GPP(2, 269, 286, 320),			/* GPP_I */
38962306a36Sopenharmony_ci	CNL_GPP(3, 287, 298, 352),			/* GPP_J */
39062306a36Sopenharmony_ci};
39162306a36Sopenharmony_ci
39262306a36Sopenharmony_cistatic const unsigned int cnlh_spi0_pins[] = { 40, 41, 42, 43 };
39362306a36Sopenharmony_cistatic const unsigned int cnlh_spi1_pins[] = { 44, 45, 46, 47 };
39462306a36Sopenharmony_cistatic const unsigned int cnlh_spi2_pins[] = { 84, 85, 86, 87 };
39562306a36Sopenharmony_ci
39662306a36Sopenharmony_cistatic const unsigned int cnlh_uart0_pins[] = { 59, 60, 61, 62 };
39762306a36Sopenharmony_cistatic const unsigned int cnlh_uart1_pins[] = { 63, 64, 65, 66 };
39862306a36Sopenharmony_cistatic const unsigned int cnlh_uart2_pins[] = { 71, 72, 73, 74 };
39962306a36Sopenharmony_ci
40062306a36Sopenharmony_cistatic const unsigned int cnlh_i2c0_pins[] = { 67, 68 };
40162306a36Sopenharmony_cistatic const unsigned int cnlh_i2c1_pins[] = { 69, 70 };
40262306a36Sopenharmony_cistatic const unsigned int cnlh_i2c2_pins[] = { 88, 89 };
40362306a36Sopenharmony_cistatic const unsigned int cnlh_i2c3_pins[] = { 79, 98 };
40462306a36Sopenharmony_ci
40562306a36Sopenharmony_cistatic const struct intel_pingroup cnlh_groups[] = {
40662306a36Sopenharmony_ci	PIN_GROUP("spi0_grp", cnlh_spi0_pins, 1),
40762306a36Sopenharmony_ci	PIN_GROUP("spi1_grp", cnlh_spi1_pins, 1),
40862306a36Sopenharmony_ci	PIN_GROUP("spi2_grp", cnlh_spi2_pins, 3),
40962306a36Sopenharmony_ci	PIN_GROUP("uart0_grp", cnlh_uart0_pins, 1),
41062306a36Sopenharmony_ci	PIN_GROUP("uart1_grp", cnlh_uart1_pins, 1),
41162306a36Sopenharmony_ci	PIN_GROUP("uart2_grp", cnlh_uart2_pins, 1),
41262306a36Sopenharmony_ci	PIN_GROUP("i2c0_grp", cnlh_i2c0_pins, 1),
41362306a36Sopenharmony_ci	PIN_GROUP("i2c1_grp", cnlh_i2c1_pins, 1),
41462306a36Sopenharmony_ci	PIN_GROUP("i2c2_grp", cnlh_i2c2_pins, 3),
41562306a36Sopenharmony_ci	PIN_GROUP("i2c3_grp", cnlh_i2c3_pins, 2),
41662306a36Sopenharmony_ci};
41762306a36Sopenharmony_ci
41862306a36Sopenharmony_cistatic const char * const cnlh_spi0_groups[] = { "spi0_grp" };
41962306a36Sopenharmony_cistatic const char * const cnlh_spi1_groups[] = { "spi1_grp" };
42062306a36Sopenharmony_cistatic const char * const cnlh_spi2_groups[] = { "spi2_grp" };
42162306a36Sopenharmony_cistatic const char * const cnlh_uart0_groups[] = { "uart0_grp" };
42262306a36Sopenharmony_cistatic const char * const cnlh_uart1_groups[] = { "uart1_grp" };
42362306a36Sopenharmony_cistatic const char * const cnlh_uart2_groups[] = { "uart2_grp" };
42462306a36Sopenharmony_cistatic const char * const cnlh_i2c0_groups[] = { "i2c0_grp" };
42562306a36Sopenharmony_cistatic const char * const cnlh_i2c1_groups[] = { "i2c1_grp" };
42662306a36Sopenharmony_cistatic const char * const cnlh_i2c2_groups[] = { "i2c2_grp" };
42762306a36Sopenharmony_cistatic const char * const cnlh_i2c3_groups[] = { "i2c3_grp" };
42862306a36Sopenharmony_ci
42962306a36Sopenharmony_cistatic const struct intel_function cnlh_functions[] = {
43062306a36Sopenharmony_ci	FUNCTION("spi0", cnlh_spi0_groups),
43162306a36Sopenharmony_ci	FUNCTION("spi1", cnlh_spi1_groups),
43262306a36Sopenharmony_ci	FUNCTION("spi2", cnlh_spi2_groups),
43362306a36Sopenharmony_ci	FUNCTION("uart0", cnlh_uart0_groups),
43462306a36Sopenharmony_ci	FUNCTION("uart1", cnlh_uart1_groups),
43562306a36Sopenharmony_ci	FUNCTION("uart2", cnlh_uart2_groups),
43662306a36Sopenharmony_ci	FUNCTION("i2c0", cnlh_i2c0_groups),
43762306a36Sopenharmony_ci	FUNCTION("i2c1", cnlh_i2c1_groups),
43862306a36Sopenharmony_ci	FUNCTION("i2c2", cnlh_i2c2_groups),
43962306a36Sopenharmony_ci	FUNCTION("i2c3", cnlh_i2c3_groups),
44062306a36Sopenharmony_ci};
44162306a36Sopenharmony_ci
44262306a36Sopenharmony_cistatic const struct intel_community cnlh_communities[] = {
44362306a36Sopenharmony_ci	CNL_H_COMMUNITY(0, 0, 50, cnlh_community0_gpps),
44462306a36Sopenharmony_ci	CNL_H_COMMUNITY(1, 51, 154, cnlh_community1_gpps),
44562306a36Sopenharmony_ci	CNL_H_COMMUNITY(2, 155, 248, cnlh_community3_gpps),
44662306a36Sopenharmony_ci	CNL_H_COMMUNITY(3, 249, 298, cnlh_community4_gpps),
44762306a36Sopenharmony_ci};
44862306a36Sopenharmony_ci
44962306a36Sopenharmony_cistatic const struct intel_pinctrl_soc_data cnlh_soc_data = {
45062306a36Sopenharmony_ci	.pins = cnlh_pins,
45162306a36Sopenharmony_ci	.npins = ARRAY_SIZE(cnlh_pins),
45262306a36Sopenharmony_ci	.groups = cnlh_groups,
45362306a36Sopenharmony_ci	.ngroups = ARRAY_SIZE(cnlh_groups),
45462306a36Sopenharmony_ci	.functions = cnlh_functions,
45562306a36Sopenharmony_ci	.nfunctions = ARRAY_SIZE(cnlh_functions),
45662306a36Sopenharmony_ci	.communities = cnlh_communities,
45762306a36Sopenharmony_ci	.ncommunities = ARRAY_SIZE(cnlh_communities),
45862306a36Sopenharmony_ci};
45962306a36Sopenharmony_ci
46062306a36Sopenharmony_ci/* Cannon Lake-LP */
46162306a36Sopenharmony_cistatic const struct pinctrl_pin_desc cnllp_pins[] = {
46262306a36Sopenharmony_ci	/* GPP_A */
46362306a36Sopenharmony_ci	PINCTRL_PIN(0, "RCINB"),
46462306a36Sopenharmony_ci	PINCTRL_PIN(1, "LAD_0"),
46562306a36Sopenharmony_ci	PINCTRL_PIN(2, "LAD_1"),
46662306a36Sopenharmony_ci	PINCTRL_PIN(3, "LAD_2"),
46762306a36Sopenharmony_ci	PINCTRL_PIN(4, "LAD_3"),
46862306a36Sopenharmony_ci	PINCTRL_PIN(5, "LFRAMEB"),
46962306a36Sopenharmony_ci	PINCTRL_PIN(6, "SERIRQ"),
47062306a36Sopenharmony_ci	PINCTRL_PIN(7, "PIRQAB"),
47162306a36Sopenharmony_ci	PINCTRL_PIN(8, "CLKRUNB"),
47262306a36Sopenharmony_ci	PINCTRL_PIN(9, "CLKOUT_LPC_0"),
47362306a36Sopenharmony_ci	PINCTRL_PIN(10, "CLKOUT_LPC_1"),
47462306a36Sopenharmony_ci	PINCTRL_PIN(11, "PMEB"),
47562306a36Sopenharmony_ci	PINCTRL_PIN(12, "BM_BUSYB"),
47662306a36Sopenharmony_ci	PINCTRL_PIN(13, "SUSWARNB_SUSPWRDNACK"),
47762306a36Sopenharmony_ci	PINCTRL_PIN(14, "SUS_STATB"),
47862306a36Sopenharmony_ci	PINCTRL_PIN(15, "SUSACKB"),
47962306a36Sopenharmony_ci	PINCTRL_PIN(16, "SD_1P8_SEL"),
48062306a36Sopenharmony_ci	PINCTRL_PIN(17, "SD_PWR_EN_B"),
48162306a36Sopenharmony_ci	PINCTRL_PIN(18, "ISH_GP_0"),
48262306a36Sopenharmony_ci	PINCTRL_PIN(19, "ISH_GP_1"),
48362306a36Sopenharmony_ci	PINCTRL_PIN(20, "ISH_GP_2"),
48462306a36Sopenharmony_ci	PINCTRL_PIN(21, "ISH_GP_3"),
48562306a36Sopenharmony_ci	PINCTRL_PIN(22, "ISH_GP_4"),
48662306a36Sopenharmony_ci	PINCTRL_PIN(23, "ISH_GP_5"),
48762306a36Sopenharmony_ci	PINCTRL_PIN(24, "ESPI_CLK_LOOPBK"),
48862306a36Sopenharmony_ci	/* GPP_B */
48962306a36Sopenharmony_ci	PINCTRL_PIN(25, "CORE_VID_0"),
49062306a36Sopenharmony_ci	PINCTRL_PIN(26, "CORE_VID_1"),
49162306a36Sopenharmony_ci	PINCTRL_PIN(27, "VRALERTB"),
49262306a36Sopenharmony_ci	PINCTRL_PIN(28, "CPU_GP_2"),
49362306a36Sopenharmony_ci	PINCTRL_PIN(29, "CPU_GP_3"),
49462306a36Sopenharmony_ci	PINCTRL_PIN(30, "SRCCLKREQB_0"),
49562306a36Sopenharmony_ci	PINCTRL_PIN(31, "SRCCLKREQB_1"),
49662306a36Sopenharmony_ci	PINCTRL_PIN(32, "SRCCLKREQB_2"),
49762306a36Sopenharmony_ci	PINCTRL_PIN(33, "SRCCLKREQB_3"),
49862306a36Sopenharmony_ci	PINCTRL_PIN(34, "SRCCLKREQB_4"),
49962306a36Sopenharmony_ci	PINCTRL_PIN(35, "SRCCLKREQB_5"),
50062306a36Sopenharmony_ci	PINCTRL_PIN(36, "EXT_PWR_GATEB"),
50162306a36Sopenharmony_ci	PINCTRL_PIN(37, "SLP_S0B"),
50262306a36Sopenharmony_ci	PINCTRL_PIN(38, "PLTRSTB"),
50362306a36Sopenharmony_ci	PINCTRL_PIN(39, "SPKR"),
50462306a36Sopenharmony_ci	PINCTRL_PIN(40, "GSPI0_CS0B"),
50562306a36Sopenharmony_ci	PINCTRL_PIN(41, "GSPI0_CLK"),
50662306a36Sopenharmony_ci	PINCTRL_PIN(42, "GSPI0_MISO"),
50762306a36Sopenharmony_ci	PINCTRL_PIN(43, "GSPI0_MOSI"),
50862306a36Sopenharmony_ci	PINCTRL_PIN(44, "GSPI1_CS0B"),
50962306a36Sopenharmony_ci	PINCTRL_PIN(45, "GSPI1_CLK"),
51062306a36Sopenharmony_ci	PINCTRL_PIN(46, "GSPI1_MISO"),
51162306a36Sopenharmony_ci	PINCTRL_PIN(47, "GSPI1_MOSI"),
51262306a36Sopenharmony_ci	PINCTRL_PIN(48, "SML1ALERTB"),
51362306a36Sopenharmony_ci	PINCTRL_PIN(49, "GSPI0_CLK_LOOPBK"),
51462306a36Sopenharmony_ci	PINCTRL_PIN(50, "GSPI1_CLK_LOOPBK"),
51562306a36Sopenharmony_ci	/* GPP_G */
51662306a36Sopenharmony_ci	PINCTRL_PIN(51, "SD3_CMD"),
51762306a36Sopenharmony_ci	PINCTRL_PIN(52, "SD3_D0_SD4_RCLK_P"),
51862306a36Sopenharmony_ci	PINCTRL_PIN(53, "SD3_D1_SD4_RCLK_N"),
51962306a36Sopenharmony_ci	PINCTRL_PIN(54, "SD3_D2"),
52062306a36Sopenharmony_ci	PINCTRL_PIN(55, "SD3_D3"),
52162306a36Sopenharmony_ci	PINCTRL_PIN(56, "SD3_CDB"),
52262306a36Sopenharmony_ci	PINCTRL_PIN(57, "SD3_CLK"),
52362306a36Sopenharmony_ci	PINCTRL_PIN(58, "SD3_WP"),
52462306a36Sopenharmony_ci	/* SPI */
52562306a36Sopenharmony_ci	PINCTRL_PIN(59, "SPI0_IO_2"),
52662306a36Sopenharmony_ci	PINCTRL_PIN(60, "SPI0_IO_3"),
52762306a36Sopenharmony_ci	PINCTRL_PIN(61, "SPI0_MOSI_IO_0"),
52862306a36Sopenharmony_ci	PINCTRL_PIN(62, "SPI0_MISO_IO_1"),
52962306a36Sopenharmony_ci	PINCTRL_PIN(63, "SPI0_TPM_CSB"),
53062306a36Sopenharmony_ci	PINCTRL_PIN(64, "SPI0_FLASH_0_CSB"),
53162306a36Sopenharmony_ci	PINCTRL_PIN(65, "SPI0_FLASH_1_CSB"),
53262306a36Sopenharmony_ci	PINCTRL_PIN(66, "SPI0_CLK"),
53362306a36Sopenharmony_ci	PINCTRL_PIN(67, "SPI0_CLK_LOOPBK"),
53462306a36Sopenharmony_ci	/* GPP_D */
53562306a36Sopenharmony_ci	PINCTRL_PIN(68, "SPI1_CSB"),
53662306a36Sopenharmony_ci	PINCTRL_PIN(69, "SPI1_CLK"),
53762306a36Sopenharmony_ci	PINCTRL_PIN(70, "SPI1_MISO_IO_1"),
53862306a36Sopenharmony_ci	PINCTRL_PIN(71, "SPI1_MOSI_IO_0"),
53962306a36Sopenharmony_ci	PINCTRL_PIN(72, "IMGCLKOUT_0"),
54062306a36Sopenharmony_ci	PINCTRL_PIN(73, "ISH_I2C0_SDA"),
54162306a36Sopenharmony_ci	PINCTRL_PIN(74, "ISH_I2C0_SCL"),
54262306a36Sopenharmony_ci	PINCTRL_PIN(75, "ISH_I2C1_SDA"),
54362306a36Sopenharmony_ci	PINCTRL_PIN(76, "ISH_I2C1_SCL"),
54462306a36Sopenharmony_ci	PINCTRL_PIN(77, "ISH_SPI_CSB"),
54562306a36Sopenharmony_ci	PINCTRL_PIN(78, "ISH_SPI_CLK"),
54662306a36Sopenharmony_ci	PINCTRL_PIN(79, "ISH_SPI_MISO"),
54762306a36Sopenharmony_ci	PINCTRL_PIN(80, "ISH_SPI_MOSI"),
54862306a36Sopenharmony_ci	PINCTRL_PIN(81, "ISH_UART0_RXD"),
54962306a36Sopenharmony_ci	PINCTRL_PIN(82, "ISH_UART0_TXD"),
55062306a36Sopenharmony_ci	PINCTRL_PIN(83, "ISH_UART0_RTSB"),
55162306a36Sopenharmony_ci	PINCTRL_PIN(84, "ISH_UART0_CTSB"),
55262306a36Sopenharmony_ci	PINCTRL_PIN(85, "DMIC_CLK_1"),
55362306a36Sopenharmony_ci	PINCTRL_PIN(86, "DMIC_DATA_1"),
55462306a36Sopenharmony_ci	PINCTRL_PIN(87, "DMIC_CLK_0"),
55562306a36Sopenharmony_ci	PINCTRL_PIN(88, "DMIC_DATA_0"),
55662306a36Sopenharmony_ci	PINCTRL_PIN(89, "SPI1_IO_2"),
55762306a36Sopenharmony_ci	PINCTRL_PIN(90, "SPI1_IO_3"),
55862306a36Sopenharmony_ci	PINCTRL_PIN(91, "SSP_MCLK"),
55962306a36Sopenharmony_ci	PINCTRL_PIN(92, "GSPI2_CLK_LOOPBK"),
56062306a36Sopenharmony_ci	/* GPP_F */
56162306a36Sopenharmony_ci	PINCTRL_PIN(93, "CNV_GNSS_PA_BLANKING"),
56262306a36Sopenharmony_ci	PINCTRL_PIN(94, "CNV_GNSS_FTA"),
56362306a36Sopenharmony_ci	PINCTRL_PIN(95, "CNV_GNSS_SYSCK"),
56462306a36Sopenharmony_ci	PINCTRL_PIN(96, "EMMC_HIP_MON"),
56562306a36Sopenharmony_ci	PINCTRL_PIN(97, "CNV_BRI_DT"),
56662306a36Sopenharmony_ci	PINCTRL_PIN(98, "CNV_BRI_RSP"),
56762306a36Sopenharmony_ci	PINCTRL_PIN(99, "CNV_RGI_DT"),
56862306a36Sopenharmony_ci	PINCTRL_PIN(100, "CNV_RGI_RSP"),
56962306a36Sopenharmony_ci	PINCTRL_PIN(101, "CNV_MFUART2_RXD"),
57062306a36Sopenharmony_ci	PINCTRL_PIN(102, "CNV_MFUART2_TXD"),
57162306a36Sopenharmony_ci	PINCTRL_PIN(103, "GPP_F_10"),
57262306a36Sopenharmony_ci	PINCTRL_PIN(104, "EMMC_CMD"),
57362306a36Sopenharmony_ci	PINCTRL_PIN(105, "EMMC_DATA_0"),
57462306a36Sopenharmony_ci	PINCTRL_PIN(106, "EMMC_DATA_1"),
57562306a36Sopenharmony_ci	PINCTRL_PIN(107, "EMMC_DATA_2"),
57662306a36Sopenharmony_ci	PINCTRL_PIN(108, "EMMC_DATA_3"),
57762306a36Sopenharmony_ci	PINCTRL_PIN(109, "EMMC_DATA_4"),
57862306a36Sopenharmony_ci	PINCTRL_PIN(110, "EMMC_DATA_5"),
57962306a36Sopenharmony_ci	PINCTRL_PIN(111, "EMMC_DATA_6"),
58062306a36Sopenharmony_ci	PINCTRL_PIN(112, "EMMC_DATA_7"),
58162306a36Sopenharmony_ci	PINCTRL_PIN(113, "EMMC_RCLK"),
58262306a36Sopenharmony_ci	PINCTRL_PIN(114, "EMMC_CLK"),
58362306a36Sopenharmony_ci	PINCTRL_PIN(115, "EMMC_RESETB"),
58462306a36Sopenharmony_ci	PINCTRL_PIN(116, "A4WP_PRESENT"),
58562306a36Sopenharmony_ci	/* GPP_H */
58662306a36Sopenharmony_ci	PINCTRL_PIN(117, "SSP2_SCLK"),
58762306a36Sopenharmony_ci	PINCTRL_PIN(118, "SSP2_SFRM"),
58862306a36Sopenharmony_ci	PINCTRL_PIN(119, "SSP2_TXD"),
58962306a36Sopenharmony_ci	PINCTRL_PIN(120, "SSP2_RXD"),
59062306a36Sopenharmony_ci	PINCTRL_PIN(121, "I2C2_SDA"),
59162306a36Sopenharmony_ci	PINCTRL_PIN(122, "I2C2_SCL"),
59262306a36Sopenharmony_ci	PINCTRL_PIN(123, "I2C3_SDA"),
59362306a36Sopenharmony_ci	PINCTRL_PIN(124, "I2C3_SCL"),
59462306a36Sopenharmony_ci	PINCTRL_PIN(125, "I2C4_SDA"),
59562306a36Sopenharmony_ci	PINCTRL_PIN(126, "I2C4_SCL"),
59662306a36Sopenharmony_ci	PINCTRL_PIN(127, "I2C5_SDA"),
59762306a36Sopenharmony_ci	PINCTRL_PIN(128, "I2C5_SCL"),
59862306a36Sopenharmony_ci	PINCTRL_PIN(129, "M2_SKT2_CFG_0"),
59962306a36Sopenharmony_ci	PINCTRL_PIN(130, "M2_SKT2_CFG_1"),
60062306a36Sopenharmony_ci	PINCTRL_PIN(131, "M2_SKT2_CFG_2"),
60162306a36Sopenharmony_ci	PINCTRL_PIN(132, "M2_SKT2_CFG_3"),
60262306a36Sopenharmony_ci	PINCTRL_PIN(133, "DDPF_CTRLCLK"),
60362306a36Sopenharmony_ci	PINCTRL_PIN(134, "DDPF_CTRLDATA"),
60462306a36Sopenharmony_ci	PINCTRL_PIN(135, "CPU_VCCIO_PWR_GATEB"),
60562306a36Sopenharmony_ci	PINCTRL_PIN(136, "TIMESYNC_0"),
60662306a36Sopenharmony_ci	PINCTRL_PIN(137, "IMGCLKOUT_1"),
60762306a36Sopenharmony_ci	PINCTRL_PIN(138, "GPPC_H_21"),
60862306a36Sopenharmony_ci	PINCTRL_PIN(139, "GPPC_H_22"),
60962306a36Sopenharmony_ci	PINCTRL_PIN(140, "GPPC_H_23"),
61062306a36Sopenharmony_ci	/* vGPIO */
61162306a36Sopenharmony_ci	PINCTRL_PIN(141, "CNV_BTEN"),
61262306a36Sopenharmony_ci	PINCTRL_PIN(142, "CNV_GNEN"),
61362306a36Sopenharmony_ci	PINCTRL_PIN(143, "CNV_WFEN"),
61462306a36Sopenharmony_ci	PINCTRL_PIN(144, "CNV_WCEN"),
61562306a36Sopenharmony_ci	PINCTRL_PIN(145, "CNV_BT_HOST_WAKEB"),
61662306a36Sopenharmony_ci	PINCTRL_PIN(146, "CNV_BT_IF_SELECT"),
61762306a36Sopenharmony_ci	PINCTRL_PIN(147, "vCNV_BT_UART_TXD"),
61862306a36Sopenharmony_ci	PINCTRL_PIN(148, "vCNV_BT_UART_RXD"),
61962306a36Sopenharmony_ci	PINCTRL_PIN(149, "vCNV_BT_UART_CTS_B"),
62062306a36Sopenharmony_ci	PINCTRL_PIN(150, "vCNV_BT_UART_RTS_B"),
62162306a36Sopenharmony_ci	PINCTRL_PIN(151, "vCNV_MFUART1_TXD"),
62262306a36Sopenharmony_ci	PINCTRL_PIN(152, "vCNV_MFUART1_RXD"),
62362306a36Sopenharmony_ci	PINCTRL_PIN(153, "vCNV_MFUART1_CTS_B"),
62462306a36Sopenharmony_ci	PINCTRL_PIN(154, "vCNV_MFUART1_RTS_B"),
62562306a36Sopenharmony_ci	PINCTRL_PIN(155, "vCNV_GNSS_UART_TXD"),
62662306a36Sopenharmony_ci	PINCTRL_PIN(156, "vCNV_GNSS_UART_RXD"),
62762306a36Sopenharmony_ci	PINCTRL_PIN(157, "vCNV_GNSS_UART_CTS_B"),
62862306a36Sopenharmony_ci	PINCTRL_PIN(158, "vCNV_GNSS_UART_RTS_B"),
62962306a36Sopenharmony_ci	PINCTRL_PIN(159, "vUART0_TXD"),
63062306a36Sopenharmony_ci	PINCTRL_PIN(160, "vUART0_RXD"),
63162306a36Sopenharmony_ci	PINCTRL_PIN(161, "vUART0_CTS_B"),
63262306a36Sopenharmony_ci	PINCTRL_PIN(162, "vUART0_RTS_B"),
63362306a36Sopenharmony_ci	PINCTRL_PIN(163, "vISH_UART0_TXD"),
63462306a36Sopenharmony_ci	PINCTRL_PIN(164, "vISH_UART0_RXD"),
63562306a36Sopenharmony_ci	PINCTRL_PIN(165, "vISH_UART0_CTS_B"),
63662306a36Sopenharmony_ci	PINCTRL_PIN(166, "vISH_UART0_RTS_B"),
63762306a36Sopenharmony_ci	PINCTRL_PIN(167, "vISH_UART1_TXD"),
63862306a36Sopenharmony_ci	PINCTRL_PIN(168, "vISH_UART1_RXD"),
63962306a36Sopenharmony_ci	PINCTRL_PIN(169, "vISH_UART1_CTS_B"),
64062306a36Sopenharmony_ci	PINCTRL_PIN(170, "vISH_UART1_RTS_B"),
64162306a36Sopenharmony_ci	PINCTRL_PIN(171, "vCNV_BT_I2S_BCLK"),
64262306a36Sopenharmony_ci	PINCTRL_PIN(172, "vCNV_BT_I2S_WS_SYNC"),
64362306a36Sopenharmony_ci	PINCTRL_PIN(173, "vCNV_BT_I2S_SDO"),
64462306a36Sopenharmony_ci	PINCTRL_PIN(174, "vCNV_BT_I2S_SDI"),
64562306a36Sopenharmony_ci	PINCTRL_PIN(175, "vSSP2_SCLK"),
64662306a36Sopenharmony_ci	PINCTRL_PIN(176, "vSSP2_SFRM"),
64762306a36Sopenharmony_ci	PINCTRL_PIN(177, "vSSP2_TXD"),
64862306a36Sopenharmony_ci	PINCTRL_PIN(178, "vSSP2_RXD"),
64962306a36Sopenharmony_ci	PINCTRL_PIN(179, "vCNV_GNSS_HOST_WAKEB"),
65062306a36Sopenharmony_ci	PINCTRL_PIN(180, "vSD3_CD_B"),
65162306a36Sopenharmony_ci	/* GPP_C */
65262306a36Sopenharmony_ci	PINCTRL_PIN(181, "SMBCLK"),
65362306a36Sopenharmony_ci	PINCTRL_PIN(182, "SMBDATA"),
65462306a36Sopenharmony_ci	PINCTRL_PIN(183, "SMBALERTB"),
65562306a36Sopenharmony_ci	PINCTRL_PIN(184, "SML0CLK"),
65662306a36Sopenharmony_ci	PINCTRL_PIN(185, "SML0DATA"),
65762306a36Sopenharmony_ci	PINCTRL_PIN(186, "SML0ALERTB"),
65862306a36Sopenharmony_ci	PINCTRL_PIN(187, "SML1CLK"),
65962306a36Sopenharmony_ci	PINCTRL_PIN(188, "SML1DATA"),
66062306a36Sopenharmony_ci	PINCTRL_PIN(189, "UART0_RXD"),
66162306a36Sopenharmony_ci	PINCTRL_PIN(190, "UART0_TXD"),
66262306a36Sopenharmony_ci	PINCTRL_PIN(191, "UART0_RTSB"),
66362306a36Sopenharmony_ci	PINCTRL_PIN(192, "UART0_CTSB"),
66462306a36Sopenharmony_ci	PINCTRL_PIN(193, "UART1_RXD"),
66562306a36Sopenharmony_ci	PINCTRL_PIN(194, "UART1_TXD"),
66662306a36Sopenharmony_ci	PINCTRL_PIN(195, "UART1_RTSB"),
66762306a36Sopenharmony_ci	PINCTRL_PIN(196, "UART1_CTSB"),
66862306a36Sopenharmony_ci	PINCTRL_PIN(197, "I2C0_SDA"),
66962306a36Sopenharmony_ci	PINCTRL_PIN(198, "I2C0_SCL"),
67062306a36Sopenharmony_ci	PINCTRL_PIN(199, "I2C1_SDA"),
67162306a36Sopenharmony_ci	PINCTRL_PIN(200, "I2C1_SCL"),
67262306a36Sopenharmony_ci	PINCTRL_PIN(201, "UART2_RXD"),
67362306a36Sopenharmony_ci	PINCTRL_PIN(202, "UART2_TXD"),
67462306a36Sopenharmony_ci	PINCTRL_PIN(203, "UART2_RTSB"),
67562306a36Sopenharmony_ci	PINCTRL_PIN(204, "UART2_CTSB"),
67662306a36Sopenharmony_ci	/* GPP_E */
67762306a36Sopenharmony_ci	PINCTRL_PIN(205, "SATAXPCIE_0"),
67862306a36Sopenharmony_ci	PINCTRL_PIN(206, "SATAXPCIE_1"),
67962306a36Sopenharmony_ci	PINCTRL_PIN(207, "SATAXPCIE_2"),
68062306a36Sopenharmony_ci	PINCTRL_PIN(208, "CPU_GP_0"),
68162306a36Sopenharmony_ci	PINCTRL_PIN(209, "SATA_DEVSLP_0"),
68262306a36Sopenharmony_ci	PINCTRL_PIN(210, "SATA_DEVSLP_1"),
68362306a36Sopenharmony_ci	PINCTRL_PIN(211, "SATA_DEVSLP_2"),
68462306a36Sopenharmony_ci	PINCTRL_PIN(212, "CPU_GP_1"),
68562306a36Sopenharmony_ci	PINCTRL_PIN(213, "SATA_LEDB"),
68662306a36Sopenharmony_ci	PINCTRL_PIN(214, "USB2_OCB_0"),
68762306a36Sopenharmony_ci	PINCTRL_PIN(215, "USB2_OCB_1"),
68862306a36Sopenharmony_ci	PINCTRL_PIN(216, "USB2_OCB_2"),
68962306a36Sopenharmony_ci	PINCTRL_PIN(217, "USB2_OCB_3"),
69062306a36Sopenharmony_ci	PINCTRL_PIN(218, "DDSP_HPD_0"),
69162306a36Sopenharmony_ci	PINCTRL_PIN(219, "DDSP_HPD_1"),
69262306a36Sopenharmony_ci	PINCTRL_PIN(220, "DDSP_HPD_2"),
69362306a36Sopenharmony_ci	PINCTRL_PIN(221, "DDSP_HPD_3"),
69462306a36Sopenharmony_ci	PINCTRL_PIN(222, "EDP_HPD"),
69562306a36Sopenharmony_ci	PINCTRL_PIN(223, "DDPB_CTRLCLK"),
69662306a36Sopenharmony_ci	PINCTRL_PIN(224, "DDPB_CTRLDATA"),
69762306a36Sopenharmony_ci	PINCTRL_PIN(225, "DDPC_CTRLCLK"),
69862306a36Sopenharmony_ci	PINCTRL_PIN(226, "DDPC_CTRLDATA"),
69962306a36Sopenharmony_ci	PINCTRL_PIN(227, "DDPD_CTRLCLK"),
70062306a36Sopenharmony_ci	PINCTRL_PIN(228, "DDPD_CTRLDATA"),
70162306a36Sopenharmony_ci	/* JTAG */
70262306a36Sopenharmony_ci	PINCTRL_PIN(229, "JTAG_TDO"),
70362306a36Sopenharmony_ci	PINCTRL_PIN(230, "JTAGX"),
70462306a36Sopenharmony_ci	PINCTRL_PIN(231, "PRDYB"),
70562306a36Sopenharmony_ci	PINCTRL_PIN(232, "PREQB"),
70662306a36Sopenharmony_ci	PINCTRL_PIN(233, "CPU_TRSTB"),
70762306a36Sopenharmony_ci	PINCTRL_PIN(234, "JTAG_TDI"),
70862306a36Sopenharmony_ci	PINCTRL_PIN(235, "JTAG_TMS"),
70962306a36Sopenharmony_ci	PINCTRL_PIN(236, "JTAG_TCK"),
71062306a36Sopenharmony_ci	PINCTRL_PIN(237, "ITP_PMODE"),
71162306a36Sopenharmony_ci	/* HVCMOS */
71262306a36Sopenharmony_ci	PINCTRL_PIN(238, "L_BKLTEN"),
71362306a36Sopenharmony_ci	PINCTRL_PIN(239, "L_BKLTCTL"),
71462306a36Sopenharmony_ci	PINCTRL_PIN(240, "L_VDDEN"),
71562306a36Sopenharmony_ci	PINCTRL_PIN(241, "SYS_PWROK"),
71662306a36Sopenharmony_ci	PINCTRL_PIN(242, "SYS_RESETB"),
71762306a36Sopenharmony_ci	PINCTRL_PIN(243, "MLK_RSTB"),
71862306a36Sopenharmony_ci};
71962306a36Sopenharmony_ci
72062306a36Sopenharmony_cistatic const unsigned int cnllp_spi0_pins[] = { 40, 41, 42, 43, 7 };
72162306a36Sopenharmony_cistatic const unsigned int cnllp_spi0_modes[] = { 1, 1, 1, 1, 2 };
72262306a36Sopenharmony_cistatic const unsigned int cnllp_spi1_pins[] = { 44, 45, 46, 47, 11 };
72362306a36Sopenharmony_cistatic const unsigned int cnllp_spi1_modes[] = { 1, 1, 1, 1, 2 };
72462306a36Sopenharmony_cistatic const unsigned int cnllp_spi2_pins[] = { 77, 78, 79, 80, 83 };
72562306a36Sopenharmony_cistatic const unsigned int cnllp_spi2_modes[] = { 3, 3, 3, 3, 2 };
72662306a36Sopenharmony_ci
72762306a36Sopenharmony_cistatic const unsigned int cnllp_i2c0_pins[] = { 197, 198 };
72862306a36Sopenharmony_cistatic const unsigned int cnllp_i2c1_pins[] = { 199, 200 };
72962306a36Sopenharmony_cistatic const unsigned int cnllp_i2c2_pins[] = { 121, 122 };
73062306a36Sopenharmony_cistatic const unsigned int cnllp_i2c3_pins[] = { 123, 124 };
73162306a36Sopenharmony_cistatic const unsigned int cnllp_i2c4_pins[] = { 125, 126 };
73262306a36Sopenharmony_cistatic const unsigned int cnllp_i2c5_pins[] = { 127, 128 };
73362306a36Sopenharmony_ci
73462306a36Sopenharmony_cistatic const unsigned int cnllp_uart0_pins[] = { 189, 190, 191, 192 };
73562306a36Sopenharmony_cistatic const unsigned int cnllp_uart1_pins[] = { 193, 194, 195, 196 };
73662306a36Sopenharmony_cistatic const unsigned int cnllp_uart2_pins[] = { 201, 202, 203, 204 };
73762306a36Sopenharmony_ci
73862306a36Sopenharmony_cistatic const struct intel_pingroup cnllp_groups[] = {
73962306a36Sopenharmony_ci	PIN_GROUP("spi0_grp", cnllp_spi0_pins, cnllp_spi0_modes),
74062306a36Sopenharmony_ci	PIN_GROUP("spi1_grp", cnllp_spi1_pins, cnllp_spi1_modes),
74162306a36Sopenharmony_ci	PIN_GROUP("spi2_grp", cnllp_spi2_pins, cnllp_spi2_modes),
74262306a36Sopenharmony_ci	PIN_GROUP("i2c0_grp", cnllp_i2c0_pins, 1),
74362306a36Sopenharmony_ci	PIN_GROUP("i2c1_grp", cnllp_i2c1_pins, 1),
74462306a36Sopenharmony_ci	PIN_GROUP("i2c2_grp", cnllp_i2c2_pins, 1),
74562306a36Sopenharmony_ci	PIN_GROUP("i2c3_grp", cnllp_i2c3_pins, 1),
74662306a36Sopenharmony_ci	PIN_GROUP("i2c4_grp", cnllp_i2c4_pins, 1),
74762306a36Sopenharmony_ci	PIN_GROUP("i2c5_grp", cnllp_i2c5_pins, 1),
74862306a36Sopenharmony_ci	PIN_GROUP("uart0_grp", cnllp_uart0_pins, 1),
74962306a36Sopenharmony_ci	PIN_GROUP("uart1_grp", cnllp_uart1_pins, 1),
75062306a36Sopenharmony_ci	PIN_GROUP("uart2_grp", cnllp_uart2_pins, 1),
75162306a36Sopenharmony_ci};
75262306a36Sopenharmony_ci
75362306a36Sopenharmony_cistatic const char * const cnllp_spi0_groups[] = { "spi0_grp" };
75462306a36Sopenharmony_cistatic const char * const cnllp_spi1_groups[] = { "spi1_grp" };
75562306a36Sopenharmony_cistatic const char * const cnllp_spi2_groups[] = { "spi2_grp" };
75662306a36Sopenharmony_cistatic const char * const cnllp_i2c0_groups[] = { "i2c0_grp" };
75762306a36Sopenharmony_cistatic const char * const cnllp_i2c1_groups[] = { "i2c1_grp" };
75862306a36Sopenharmony_cistatic const char * const cnllp_i2c2_groups[] = { "i2c2_grp" };
75962306a36Sopenharmony_cistatic const char * const cnllp_i2c3_groups[] = { "i2c3_grp" };
76062306a36Sopenharmony_cistatic const char * const cnllp_i2c4_groups[] = { "i2c4_grp" };
76162306a36Sopenharmony_cistatic const char * const cnllp_i2c5_groups[] = { "i2c5_grp" };
76262306a36Sopenharmony_cistatic const char * const cnllp_uart0_groups[] = { "uart0_grp" };
76362306a36Sopenharmony_cistatic const char * const cnllp_uart1_groups[] = { "uart1_grp" };
76462306a36Sopenharmony_cistatic const char * const cnllp_uart2_groups[] = { "uart2_grp" };
76562306a36Sopenharmony_ci
76662306a36Sopenharmony_cistatic const struct intel_function cnllp_functions[] = {
76762306a36Sopenharmony_ci	FUNCTION("spi0", cnllp_spi0_groups),
76862306a36Sopenharmony_ci	FUNCTION("spi1", cnllp_spi1_groups),
76962306a36Sopenharmony_ci	FUNCTION("spi2", cnllp_spi2_groups),
77062306a36Sopenharmony_ci	FUNCTION("i2c0", cnllp_i2c0_groups),
77162306a36Sopenharmony_ci	FUNCTION("i2c1", cnllp_i2c1_groups),
77262306a36Sopenharmony_ci	FUNCTION("i2c2", cnllp_i2c2_groups),
77362306a36Sopenharmony_ci	FUNCTION("i2c3", cnllp_i2c3_groups),
77462306a36Sopenharmony_ci	FUNCTION("i2c4", cnllp_i2c4_groups),
77562306a36Sopenharmony_ci	FUNCTION("i2c5", cnllp_i2c5_groups),
77662306a36Sopenharmony_ci	FUNCTION("uart0", cnllp_uart0_groups),
77762306a36Sopenharmony_ci	FUNCTION("uart1", cnllp_uart1_groups),
77862306a36Sopenharmony_ci	FUNCTION("uart2", cnllp_uart2_groups),
77962306a36Sopenharmony_ci};
78062306a36Sopenharmony_ci
78162306a36Sopenharmony_cistatic const struct intel_padgroup cnllp_community0_gpps[] = {
78262306a36Sopenharmony_ci	CNL_GPP(0, 0, 24, 0),				/* GPP_A */
78362306a36Sopenharmony_ci	CNL_GPP(1, 25, 50, 32),				/* GPP_B */
78462306a36Sopenharmony_ci	CNL_GPP(2, 51, 58, 64),				/* GPP_G */
78562306a36Sopenharmony_ci	CNL_GPP(3, 59, 67, INTEL_GPIO_BASE_NOMAP),	/* SPI */
78662306a36Sopenharmony_ci};
78762306a36Sopenharmony_ci
78862306a36Sopenharmony_cistatic const struct intel_padgroup cnllp_community1_gpps[] = {
78962306a36Sopenharmony_ci	CNL_GPP(0, 68, 92, 96),				/* GPP_D */
79062306a36Sopenharmony_ci	CNL_GPP(1, 93, 116, 128),			/* GPP_F */
79162306a36Sopenharmony_ci	CNL_GPP(2, 117, 140, 160),			/* GPP_H */
79262306a36Sopenharmony_ci	CNL_GPP(3, 141, 172, 192),			/* vGPIO */
79362306a36Sopenharmony_ci	CNL_GPP(4, 173, 180, 224),			/* vGPIO */
79462306a36Sopenharmony_ci};
79562306a36Sopenharmony_ci
79662306a36Sopenharmony_cistatic const struct intel_padgroup cnllp_community4_gpps[] = {
79762306a36Sopenharmony_ci	CNL_GPP(0, 181, 204, 256),			/* GPP_C */
79862306a36Sopenharmony_ci	CNL_GPP(1, 205, 228, 288),			/* GPP_E */
79962306a36Sopenharmony_ci	CNL_GPP(2, 229, 237, INTEL_GPIO_BASE_NOMAP),	/* JTAG */
80062306a36Sopenharmony_ci	CNL_GPP(3, 238, 243, INTEL_GPIO_BASE_NOMAP),	/* HVCMOS */
80162306a36Sopenharmony_ci};
80262306a36Sopenharmony_ci
80362306a36Sopenharmony_cistatic const struct intel_community cnllp_communities[] = {
80462306a36Sopenharmony_ci	CNL_LP_COMMUNITY(0, 0, 67, cnllp_community0_gpps),
80562306a36Sopenharmony_ci	CNL_LP_COMMUNITY(1, 68, 180, cnllp_community1_gpps),
80662306a36Sopenharmony_ci	CNL_LP_COMMUNITY(2, 181, 243, cnllp_community4_gpps),
80762306a36Sopenharmony_ci};
80862306a36Sopenharmony_ci
80962306a36Sopenharmony_cistatic const struct intel_pinctrl_soc_data cnllp_soc_data = {
81062306a36Sopenharmony_ci	.pins = cnllp_pins,
81162306a36Sopenharmony_ci	.npins = ARRAY_SIZE(cnllp_pins),
81262306a36Sopenharmony_ci	.groups = cnllp_groups,
81362306a36Sopenharmony_ci	.ngroups = ARRAY_SIZE(cnllp_groups),
81462306a36Sopenharmony_ci	.functions = cnllp_functions,
81562306a36Sopenharmony_ci	.nfunctions = ARRAY_SIZE(cnllp_functions),
81662306a36Sopenharmony_ci	.communities = cnllp_communities,
81762306a36Sopenharmony_ci	.ncommunities = ARRAY_SIZE(cnllp_communities),
81862306a36Sopenharmony_ci};
81962306a36Sopenharmony_ci
82062306a36Sopenharmony_cistatic const struct acpi_device_id cnl_pinctrl_acpi_match[] = {
82162306a36Sopenharmony_ci	{ "INT3450", (kernel_ulong_t)&cnlh_soc_data },
82262306a36Sopenharmony_ci	{ "INT34BB", (kernel_ulong_t)&cnllp_soc_data },
82362306a36Sopenharmony_ci	{ }
82462306a36Sopenharmony_ci};
82562306a36Sopenharmony_ciMODULE_DEVICE_TABLE(acpi, cnl_pinctrl_acpi_match);
82662306a36Sopenharmony_ci
82762306a36Sopenharmony_cistatic INTEL_PINCTRL_PM_OPS(cnl_pinctrl_pm_ops);
82862306a36Sopenharmony_ci
82962306a36Sopenharmony_cistatic struct platform_driver cnl_pinctrl_driver = {
83062306a36Sopenharmony_ci	.probe = intel_pinctrl_probe_by_hid,
83162306a36Sopenharmony_ci	.driver = {
83262306a36Sopenharmony_ci		.name = "cannonlake-pinctrl",
83362306a36Sopenharmony_ci		.acpi_match_table = cnl_pinctrl_acpi_match,
83462306a36Sopenharmony_ci		.pm = &cnl_pinctrl_pm_ops,
83562306a36Sopenharmony_ci	},
83662306a36Sopenharmony_ci};
83762306a36Sopenharmony_cimodule_platform_driver(cnl_pinctrl_driver);
83862306a36Sopenharmony_ci
83962306a36Sopenharmony_ciMODULE_AUTHOR("Mika Westerberg <mika.westerberg@linux.intel.com>");
84062306a36Sopenharmony_ciMODULE_DESCRIPTION("Intel Cannon Lake PCH pinctrl/GPIO driver");
84162306a36Sopenharmony_ciMODULE_LICENSE("GPL v2");
84262306a36Sopenharmony_ciMODULE_IMPORT_NS(PINCTRL_INTEL);
843