162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Intel Broxton SoC pinctrl/GPIO driver
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (C) 2015, 2016 Intel Corporation
662306a36Sopenharmony_ci * Author: Mika Westerberg <mika.westerberg@linux.intel.com>
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <linux/mod_devicetable.h>
1062306a36Sopenharmony_ci#include <linux/module.h>
1162306a36Sopenharmony_ci#include <linux/platform_device.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#include <linux/pinctrl/pinctrl.h>
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#include "pinctrl-intel.h"
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci#define BXT_PAD_OWN	0x020
1862306a36Sopenharmony_ci#define BXT_PADCFGLOCK	0x060
1962306a36Sopenharmony_ci#define BXT_HOSTSW_OWN	0x080
2062306a36Sopenharmony_ci#define BXT_GPI_IS	0x100
2162306a36Sopenharmony_ci#define BXT_GPI_IE	0x110
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci#define BXT_COMMUNITY(b, s, e)				\
2462306a36Sopenharmony_ci	INTEL_COMMUNITY_SIZE(b, s, e, 32, 4, BXT)
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci/* BXT */
2762306a36Sopenharmony_cistatic const struct pinctrl_pin_desc bxt_north_pins[] = {
2862306a36Sopenharmony_ci	PINCTRL_PIN(0, "GPIO_0"),
2962306a36Sopenharmony_ci	PINCTRL_PIN(1, "GPIO_1"),
3062306a36Sopenharmony_ci	PINCTRL_PIN(2, "GPIO_2"),
3162306a36Sopenharmony_ci	PINCTRL_PIN(3, "GPIO_3"),
3262306a36Sopenharmony_ci	PINCTRL_PIN(4, "GPIO_4"),
3362306a36Sopenharmony_ci	PINCTRL_PIN(5, "GPIO_5"),
3462306a36Sopenharmony_ci	PINCTRL_PIN(6, "GPIO_6"),
3562306a36Sopenharmony_ci	PINCTRL_PIN(7, "GPIO_7"),
3662306a36Sopenharmony_ci	PINCTRL_PIN(8, "GPIO_8"),
3762306a36Sopenharmony_ci	PINCTRL_PIN(9, "GPIO_9"),
3862306a36Sopenharmony_ci	PINCTRL_PIN(10, "GPIO_10"),
3962306a36Sopenharmony_ci	PINCTRL_PIN(11, "GPIO_11"),
4062306a36Sopenharmony_ci	PINCTRL_PIN(12, "GPIO_12"),
4162306a36Sopenharmony_ci	PINCTRL_PIN(13, "GPIO_13"),
4262306a36Sopenharmony_ci	PINCTRL_PIN(14, "GPIO_14"),
4362306a36Sopenharmony_ci	PINCTRL_PIN(15, "GPIO_15"),
4462306a36Sopenharmony_ci	PINCTRL_PIN(16, "GPIO_16"),
4562306a36Sopenharmony_ci	PINCTRL_PIN(17, "GPIO_17"),
4662306a36Sopenharmony_ci	PINCTRL_PIN(18, "GPIO_18"),
4762306a36Sopenharmony_ci	PINCTRL_PIN(19, "GPIO_19"),
4862306a36Sopenharmony_ci	PINCTRL_PIN(20, "GPIO_20"),
4962306a36Sopenharmony_ci	PINCTRL_PIN(21, "GPIO_21"),
5062306a36Sopenharmony_ci	PINCTRL_PIN(22, "GPIO_22"),
5162306a36Sopenharmony_ci	PINCTRL_PIN(23, "GPIO_23"),
5262306a36Sopenharmony_ci	PINCTRL_PIN(24, "GPIO_24"),
5362306a36Sopenharmony_ci	PINCTRL_PIN(25, "GPIO_25"),
5462306a36Sopenharmony_ci	PINCTRL_PIN(26, "GPIO_26"),
5562306a36Sopenharmony_ci	PINCTRL_PIN(27, "GPIO_27"),
5662306a36Sopenharmony_ci	PINCTRL_PIN(28, "GPIO_28"),
5762306a36Sopenharmony_ci	PINCTRL_PIN(29, "GPIO_29"),
5862306a36Sopenharmony_ci	PINCTRL_PIN(30, "GPIO_30"),
5962306a36Sopenharmony_ci	PINCTRL_PIN(31, "GPIO_31"),
6062306a36Sopenharmony_ci	PINCTRL_PIN(32, "GPIO_32"),
6162306a36Sopenharmony_ci	PINCTRL_PIN(33, "GPIO_33"),
6262306a36Sopenharmony_ci	PINCTRL_PIN(34, "PWM0"),
6362306a36Sopenharmony_ci	PINCTRL_PIN(35, "PWM1"),
6462306a36Sopenharmony_ci	PINCTRL_PIN(36, "PWM2"),
6562306a36Sopenharmony_ci	PINCTRL_PIN(37, "PWM3"),
6662306a36Sopenharmony_ci	PINCTRL_PIN(38, "LPSS_UART0_RXD"),
6762306a36Sopenharmony_ci	PINCTRL_PIN(39, "LPSS_UART0_TXD"),
6862306a36Sopenharmony_ci	PINCTRL_PIN(40, "LPSS_UART0_RTS_B"),
6962306a36Sopenharmony_ci	PINCTRL_PIN(41, "LPSS_UART0_CTS_B"),
7062306a36Sopenharmony_ci	PINCTRL_PIN(42, "LPSS_UART1_RXD"),
7162306a36Sopenharmony_ci	PINCTRL_PIN(43, "LPSS_UART1_TXD"),
7262306a36Sopenharmony_ci	PINCTRL_PIN(44, "LPSS_UART1_RTS_B"),
7362306a36Sopenharmony_ci	PINCTRL_PIN(45, "LPSS_UART1_CTS_B"),
7462306a36Sopenharmony_ci	PINCTRL_PIN(46, "LPSS_UART2_RXD"),
7562306a36Sopenharmony_ci	PINCTRL_PIN(47, "LPSS_UART2_TXD"),
7662306a36Sopenharmony_ci	PINCTRL_PIN(48, "LPSS_UART2_RTS_B"),
7762306a36Sopenharmony_ci	PINCTRL_PIN(49, "LPSS_UART2_CTS_B"),
7862306a36Sopenharmony_ci	PINCTRL_PIN(50, "ISH_UART0_RXD"),
7962306a36Sopenharmony_ci	PINCTRL_PIN(51, "ISH_UART0_TXT"),
8062306a36Sopenharmony_ci	PINCTRL_PIN(52, "ISH_UART0_RTS_B"),
8162306a36Sopenharmony_ci	PINCTRL_PIN(53, "ISH_UART0_CTS_B"),
8262306a36Sopenharmony_ci	PINCTRL_PIN(54, "ISH_UART1_RXD"),
8362306a36Sopenharmony_ci	PINCTRL_PIN(55, "ISH_UART1_TXT"),
8462306a36Sopenharmony_ci	PINCTRL_PIN(56, "ISH_UART1_RTS_B"),
8562306a36Sopenharmony_ci	PINCTRL_PIN(57, "ISH_UART1_CTS_B"),
8662306a36Sopenharmony_ci	PINCTRL_PIN(58, "ISH_UART2_RXD"),
8762306a36Sopenharmony_ci	PINCTRL_PIN(59, "ISH_UART2_TXD"),
8862306a36Sopenharmony_ci	PINCTRL_PIN(60, "ISH_UART2_RTS_B"),
8962306a36Sopenharmony_ci	PINCTRL_PIN(61, "ISH_UART2_CTS_B"),
9062306a36Sopenharmony_ci	PINCTRL_PIN(62, "GP_CAMERASB00"),
9162306a36Sopenharmony_ci	PINCTRL_PIN(63, "GP_CAMERASB01"),
9262306a36Sopenharmony_ci	PINCTRL_PIN(64, "GP_CAMERASB02"),
9362306a36Sopenharmony_ci	PINCTRL_PIN(65, "GP_CAMERASB03"),
9462306a36Sopenharmony_ci	PINCTRL_PIN(66, "GP_CAMERASB04"),
9562306a36Sopenharmony_ci	PINCTRL_PIN(67, "GP_CAMERASB05"),
9662306a36Sopenharmony_ci	PINCTRL_PIN(68, "GP_CAMERASB06"),
9762306a36Sopenharmony_ci	PINCTRL_PIN(69, "GP_CAMERASB07"),
9862306a36Sopenharmony_ci	PINCTRL_PIN(70, "GP_CAMERASB08"),
9962306a36Sopenharmony_ci	PINCTRL_PIN(71, "GP_CAMERASB09"),
10062306a36Sopenharmony_ci	PINCTRL_PIN(72, "GP_CAMERASB10"),
10162306a36Sopenharmony_ci	PINCTRL_PIN(73, "GP_CAMERASB11"),
10262306a36Sopenharmony_ci	PINCTRL_PIN(74, "TCK"),
10362306a36Sopenharmony_ci	PINCTRL_PIN(75, "TRST_B"),
10462306a36Sopenharmony_ci	PINCTRL_PIN(76, "TMS"),
10562306a36Sopenharmony_ci	PINCTRL_PIN(77, "TDI"),
10662306a36Sopenharmony_ci	PINCTRL_PIN(78, "CX_PMODE"),
10762306a36Sopenharmony_ci	PINCTRL_PIN(79, "CX_PREQ_B"),
10862306a36Sopenharmony_ci	PINCTRL_PIN(80, "JTAGX"),
10962306a36Sopenharmony_ci	PINCTRL_PIN(81, "CX_PRDY_B"),
11062306a36Sopenharmony_ci	PINCTRL_PIN(82, "TDO"),
11162306a36Sopenharmony_ci};
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_cistatic const unsigned int bxt_north_pwm0_pins[] = { 34 };
11462306a36Sopenharmony_cistatic const unsigned int bxt_north_pwm1_pins[] = { 35 };
11562306a36Sopenharmony_cistatic const unsigned int bxt_north_pwm2_pins[] = { 36 };
11662306a36Sopenharmony_cistatic const unsigned int bxt_north_pwm3_pins[] = { 37 };
11762306a36Sopenharmony_cistatic const unsigned int bxt_north_uart0_pins[] = { 38, 39, 40, 41 };
11862306a36Sopenharmony_cistatic const unsigned int bxt_north_uart1_pins[] = { 42, 43, 44, 45 };
11962306a36Sopenharmony_cistatic const unsigned int bxt_north_uart2_pins[] = { 46, 47, 48, 49 };
12062306a36Sopenharmony_cistatic const unsigned int bxt_north_uart0b_pins[] = { 50, 51, 52, 53 };
12162306a36Sopenharmony_cistatic const unsigned int bxt_north_uart1b_pins[] = { 54, 55, 56, 57 };
12262306a36Sopenharmony_cistatic const unsigned int bxt_north_uart2b_pins[] = { 58, 59, 60, 61 };
12362306a36Sopenharmony_cistatic const unsigned int bxt_north_uart3_pins[] = { 58, 59, 60, 61 };
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_cistatic const struct intel_pingroup bxt_north_groups[] = {
12662306a36Sopenharmony_ci	PIN_GROUP("pwm0_grp", bxt_north_pwm0_pins, 1),
12762306a36Sopenharmony_ci	PIN_GROUP("pwm1_grp", bxt_north_pwm1_pins, 1),
12862306a36Sopenharmony_ci	PIN_GROUP("pwm2_grp", bxt_north_pwm2_pins, 1),
12962306a36Sopenharmony_ci	PIN_GROUP("pwm3_grp", bxt_north_pwm3_pins, 1),
13062306a36Sopenharmony_ci	PIN_GROUP("uart0_grp", bxt_north_uart0_pins, 1),
13162306a36Sopenharmony_ci	PIN_GROUP("uart1_grp", bxt_north_uart1_pins, 1),
13262306a36Sopenharmony_ci	PIN_GROUP("uart2_grp", bxt_north_uart2_pins, 1),
13362306a36Sopenharmony_ci	PIN_GROUP("uart0b_grp", bxt_north_uart0b_pins, 2),
13462306a36Sopenharmony_ci	PIN_GROUP("uart1b_grp", bxt_north_uart1b_pins, 2),
13562306a36Sopenharmony_ci	PIN_GROUP("uart2b_grp", bxt_north_uart2b_pins, 2),
13662306a36Sopenharmony_ci	PIN_GROUP("uart3_grp", bxt_north_uart3_pins, 3),
13762306a36Sopenharmony_ci};
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_cistatic const char * const bxt_north_pwm0_groups[] = { "pwm0_grp" };
14062306a36Sopenharmony_cistatic const char * const bxt_north_pwm1_groups[] = { "pwm1_grp" };
14162306a36Sopenharmony_cistatic const char * const bxt_north_pwm2_groups[] = { "pwm2_grp" };
14262306a36Sopenharmony_cistatic const char * const bxt_north_pwm3_groups[] = { "pwm3_grp" };
14362306a36Sopenharmony_cistatic const char * const bxt_north_uart0_groups[] = {
14462306a36Sopenharmony_ci	"uart0_grp", "uart0b_grp",
14562306a36Sopenharmony_ci};
14662306a36Sopenharmony_cistatic const char * const bxt_north_uart1_groups[] = {
14762306a36Sopenharmony_ci	"uart1_grp", "uart1b_grp",
14862306a36Sopenharmony_ci};
14962306a36Sopenharmony_cistatic const char * const bxt_north_uart2_groups[] = {
15062306a36Sopenharmony_ci	"uart2_grp", "uart2b_grp",
15162306a36Sopenharmony_ci};
15262306a36Sopenharmony_cistatic const char * const bxt_north_uart3_groups[] = { "uart3_grp" };
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_cistatic const struct intel_function bxt_north_functions[] = {
15562306a36Sopenharmony_ci	FUNCTION("pwm0", bxt_north_pwm0_groups),
15662306a36Sopenharmony_ci	FUNCTION("pwm1", bxt_north_pwm1_groups),
15762306a36Sopenharmony_ci	FUNCTION("pwm2", bxt_north_pwm2_groups),
15862306a36Sopenharmony_ci	FUNCTION("pwm3", bxt_north_pwm3_groups),
15962306a36Sopenharmony_ci	FUNCTION("uart0", bxt_north_uart0_groups),
16062306a36Sopenharmony_ci	FUNCTION("uart1", bxt_north_uart1_groups),
16162306a36Sopenharmony_ci	FUNCTION("uart2", bxt_north_uart2_groups),
16262306a36Sopenharmony_ci	FUNCTION("uart3", bxt_north_uart3_groups),
16362306a36Sopenharmony_ci};
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_cistatic const struct intel_community bxt_north_communities[] = {
16662306a36Sopenharmony_ci	BXT_COMMUNITY(0, 0, 82),
16762306a36Sopenharmony_ci};
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_cistatic const struct intel_pinctrl_soc_data bxt_north_soc_data = {
17062306a36Sopenharmony_ci	.uid = "1",
17162306a36Sopenharmony_ci	.pins = bxt_north_pins,
17262306a36Sopenharmony_ci	.npins = ARRAY_SIZE(bxt_north_pins),
17362306a36Sopenharmony_ci	.groups = bxt_north_groups,
17462306a36Sopenharmony_ci	.ngroups = ARRAY_SIZE(bxt_north_groups),
17562306a36Sopenharmony_ci	.functions = bxt_north_functions,
17662306a36Sopenharmony_ci	.nfunctions = ARRAY_SIZE(bxt_north_functions),
17762306a36Sopenharmony_ci	.communities = bxt_north_communities,
17862306a36Sopenharmony_ci	.ncommunities = ARRAY_SIZE(bxt_north_communities),
17962306a36Sopenharmony_ci};
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_cistatic const struct pinctrl_pin_desc bxt_northwest_pins[] = {
18262306a36Sopenharmony_ci	PINCTRL_PIN(0, "PMC_SPI_FS0"),
18362306a36Sopenharmony_ci	PINCTRL_PIN(1, "PMC_SPI_FS1"),
18462306a36Sopenharmony_ci	PINCTRL_PIN(2, "PMC_SPI_FS2"),
18562306a36Sopenharmony_ci	PINCTRL_PIN(3, "PMC_SPI_RXD"),
18662306a36Sopenharmony_ci	PINCTRL_PIN(4, "PMC_SPI_TXD"),
18762306a36Sopenharmony_ci	PINCTRL_PIN(5, "PMC_SPI_CLK"),
18862306a36Sopenharmony_ci	PINCTRL_PIN(6, "PMC_UART_RXD"),
18962306a36Sopenharmony_ci	PINCTRL_PIN(7, "PMC_UART_TXD"),
19062306a36Sopenharmony_ci	PINCTRL_PIN(8, "PMIC_PWRGOOD"),
19162306a36Sopenharmony_ci	PINCTRL_PIN(9, "PMIC_RESET_B"),
19262306a36Sopenharmony_ci	PINCTRL_PIN(10, "RTC_CLK"),
19362306a36Sopenharmony_ci	PINCTRL_PIN(11, "PMIC_SDWN_B"),
19462306a36Sopenharmony_ci	PINCTRL_PIN(12, "PMIC_BCUDISW2"),
19562306a36Sopenharmony_ci	PINCTRL_PIN(13, "PMIC_BCUDISCRIT"),
19662306a36Sopenharmony_ci	PINCTRL_PIN(14, "PMIC_THERMTRIP_B"),
19762306a36Sopenharmony_ci	PINCTRL_PIN(15, "PMIC_STDBY"),
19862306a36Sopenharmony_ci	PINCTRL_PIN(16, "SVID0_ALERT_B"),
19962306a36Sopenharmony_ci	PINCTRL_PIN(17, "SVID0_DATA"),
20062306a36Sopenharmony_ci	PINCTRL_PIN(18, "SVID0_CLK"),
20162306a36Sopenharmony_ci	PINCTRL_PIN(19, "PMIC_I2C_SCL"),
20262306a36Sopenharmony_ci	PINCTRL_PIN(20, "PMIC_I2C_SDA"),
20362306a36Sopenharmony_ci	PINCTRL_PIN(21, "AVS_I2S1_MCLK"),
20462306a36Sopenharmony_ci	PINCTRL_PIN(22, "AVS_I2S1_BCLK"),
20562306a36Sopenharmony_ci	PINCTRL_PIN(23, "AVS_I2S1_WS_SYNC"),
20662306a36Sopenharmony_ci	PINCTRL_PIN(24, "AVS_I2S1_SDI"),
20762306a36Sopenharmony_ci	PINCTRL_PIN(25, "AVS_I2S1_SDO"),
20862306a36Sopenharmony_ci	PINCTRL_PIN(26, "AVS_M_CLK_A1"),
20962306a36Sopenharmony_ci	PINCTRL_PIN(27, "AVS_M_CLK_B1"),
21062306a36Sopenharmony_ci	PINCTRL_PIN(28, "AVS_M_DATA_1"),
21162306a36Sopenharmony_ci	PINCTRL_PIN(29, "AVS_M_CLK_AB2"),
21262306a36Sopenharmony_ci	PINCTRL_PIN(30, "AVS_M_DATA_2"),
21362306a36Sopenharmony_ci	PINCTRL_PIN(31, "AVS_I2S2_MCLK"),
21462306a36Sopenharmony_ci	PINCTRL_PIN(32, "AVS_I2S2_BCLK"),
21562306a36Sopenharmony_ci	PINCTRL_PIN(33, "AVS_I2S2_WS_SYNC"),
21662306a36Sopenharmony_ci	PINCTRL_PIN(34, "AVS_I2S2_SDI"),
21762306a36Sopenharmony_ci	PINCTRL_PIN(35, "AVS_I2S2_SDOK"),
21862306a36Sopenharmony_ci	PINCTRL_PIN(36, "AVS_I2S3_BCLK"),
21962306a36Sopenharmony_ci	PINCTRL_PIN(37, "AVS_I2S3_WS_SYNC"),
22062306a36Sopenharmony_ci	PINCTRL_PIN(38, "AVS_I2S3_SDI"),
22162306a36Sopenharmony_ci	PINCTRL_PIN(39, "AVS_I2S3_SDO"),
22262306a36Sopenharmony_ci	PINCTRL_PIN(40, "AVS_I2S4_BCLK"),
22362306a36Sopenharmony_ci	PINCTRL_PIN(41, "AVS_I2S4_WS_SYNC"),
22462306a36Sopenharmony_ci	PINCTRL_PIN(42, "AVS_I2S4_SDI"),
22562306a36Sopenharmony_ci	PINCTRL_PIN(43, "AVS_I2S4_SDO"),
22662306a36Sopenharmony_ci	PINCTRL_PIN(44, "PROCHOT_B"),
22762306a36Sopenharmony_ci	PINCTRL_PIN(45, "FST_SPI_CS0_B"),
22862306a36Sopenharmony_ci	PINCTRL_PIN(46, "FST_SPI_CS1_B"),
22962306a36Sopenharmony_ci	PINCTRL_PIN(47, "FST_SPI_MOSI_IO0"),
23062306a36Sopenharmony_ci	PINCTRL_PIN(48, "FST_SPI_MISO_IO1"),
23162306a36Sopenharmony_ci	PINCTRL_PIN(49, "FST_SPI_IO2"),
23262306a36Sopenharmony_ci	PINCTRL_PIN(50, "FST_SPI_IO3"),
23362306a36Sopenharmony_ci	PINCTRL_PIN(51, "FST_SPI_CLK"),
23462306a36Sopenharmony_ci	PINCTRL_PIN(52, "FST_SPI_CLK_FB"),
23562306a36Sopenharmony_ci	PINCTRL_PIN(53, "GP_SSP_0_CLK"),
23662306a36Sopenharmony_ci	PINCTRL_PIN(54, "GP_SSP_0_FS0"),
23762306a36Sopenharmony_ci	PINCTRL_PIN(55, "GP_SSP_0_FS1"),
23862306a36Sopenharmony_ci	PINCTRL_PIN(56, "GP_SSP_0_FS2"),
23962306a36Sopenharmony_ci	PINCTRL_PIN(57, "GP_SSP_0_RXD"),
24062306a36Sopenharmony_ci	PINCTRL_PIN(58, "GP_SSP_0_TXD"),
24162306a36Sopenharmony_ci	PINCTRL_PIN(59, "GP_SSP_1_CLK"),
24262306a36Sopenharmony_ci	PINCTRL_PIN(60, "GP_SSP_1_FS0"),
24362306a36Sopenharmony_ci	PINCTRL_PIN(61, "GP_SSP_1_FS1"),
24462306a36Sopenharmony_ci	PINCTRL_PIN(62, "GP_SSP_1_FS2"),
24562306a36Sopenharmony_ci	PINCTRL_PIN(63, "GP_SSP_1_FS3"),
24662306a36Sopenharmony_ci	PINCTRL_PIN(64, "GP_SSP_1_RXD"),
24762306a36Sopenharmony_ci	PINCTRL_PIN(65, "GP_SSP_1_TXD"),
24862306a36Sopenharmony_ci	PINCTRL_PIN(66, "GP_SSP_2_CLK"),
24962306a36Sopenharmony_ci	PINCTRL_PIN(67, "GP_SSP_2_FS0"),
25062306a36Sopenharmony_ci	PINCTRL_PIN(68, "GP_SSP_2_FS1"),
25162306a36Sopenharmony_ci	PINCTRL_PIN(69, "GP_SSP_2_FS2"),
25262306a36Sopenharmony_ci	PINCTRL_PIN(70, "GP_SSP_2_RXD"),
25362306a36Sopenharmony_ci	PINCTRL_PIN(71, "GP_SSP_2_TXD"),
25462306a36Sopenharmony_ci};
25562306a36Sopenharmony_ci
25662306a36Sopenharmony_cistatic const unsigned int bxt_northwest_ssp0_pins[] = { 53, 54, 55, 56, 57, 58 };
25762306a36Sopenharmony_cistatic const unsigned int bxt_northwest_ssp1_pins[] = {
25862306a36Sopenharmony_ci	59, 60, 61, 62, 63, 64, 65
25962306a36Sopenharmony_ci};
26062306a36Sopenharmony_cistatic const unsigned int bxt_northwest_ssp2_pins[] = { 66, 67, 68, 69, 70, 71 };
26162306a36Sopenharmony_cistatic const unsigned int bxt_northwest_uart3_pins[] = { 67, 68, 69, 70 };
26262306a36Sopenharmony_ci
26362306a36Sopenharmony_cistatic const struct intel_pingroup bxt_northwest_groups[] = {
26462306a36Sopenharmony_ci	PIN_GROUP("ssp0_grp", bxt_northwest_ssp0_pins, 1),
26562306a36Sopenharmony_ci	PIN_GROUP("ssp1_grp", bxt_northwest_ssp1_pins, 1),
26662306a36Sopenharmony_ci	PIN_GROUP("ssp2_grp", bxt_northwest_ssp2_pins, 1),
26762306a36Sopenharmony_ci	PIN_GROUP("uart3_grp", bxt_northwest_uart3_pins, 2),
26862306a36Sopenharmony_ci};
26962306a36Sopenharmony_ci
27062306a36Sopenharmony_cistatic const char * const bxt_northwest_ssp0_groups[] = { "ssp0_grp" };
27162306a36Sopenharmony_cistatic const char * const bxt_northwest_ssp1_groups[] = { "ssp1_grp" };
27262306a36Sopenharmony_cistatic const char * const bxt_northwest_ssp2_groups[] = { "ssp2_grp" };
27362306a36Sopenharmony_cistatic const char * const bxt_northwest_uart3_groups[] = { "uart3_grp" };
27462306a36Sopenharmony_ci
27562306a36Sopenharmony_cistatic const struct intel_function bxt_northwest_functions[] = {
27662306a36Sopenharmony_ci	FUNCTION("ssp0", bxt_northwest_ssp0_groups),
27762306a36Sopenharmony_ci	FUNCTION("ssp1", bxt_northwest_ssp1_groups),
27862306a36Sopenharmony_ci	FUNCTION("ssp2", bxt_northwest_ssp2_groups),
27962306a36Sopenharmony_ci	FUNCTION("uart3", bxt_northwest_uart3_groups),
28062306a36Sopenharmony_ci};
28162306a36Sopenharmony_ci
28262306a36Sopenharmony_cistatic const struct intel_community bxt_northwest_communities[] = {
28362306a36Sopenharmony_ci	BXT_COMMUNITY(0, 0, 71),
28462306a36Sopenharmony_ci};
28562306a36Sopenharmony_ci
28662306a36Sopenharmony_cistatic const struct intel_pinctrl_soc_data bxt_northwest_soc_data = {
28762306a36Sopenharmony_ci	.uid = "2",
28862306a36Sopenharmony_ci	.pins = bxt_northwest_pins,
28962306a36Sopenharmony_ci	.npins = ARRAY_SIZE(bxt_northwest_pins),
29062306a36Sopenharmony_ci	.groups = bxt_northwest_groups,
29162306a36Sopenharmony_ci	.ngroups = ARRAY_SIZE(bxt_northwest_groups),
29262306a36Sopenharmony_ci	.functions = bxt_northwest_functions,
29362306a36Sopenharmony_ci	.nfunctions = ARRAY_SIZE(bxt_northwest_functions),
29462306a36Sopenharmony_ci	.communities = bxt_northwest_communities,
29562306a36Sopenharmony_ci	.ncommunities = ARRAY_SIZE(bxt_northwest_communities),
29662306a36Sopenharmony_ci};
29762306a36Sopenharmony_ci
29862306a36Sopenharmony_cistatic const struct pinctrl_pin_desc bxt_west_pins[] = {
29962306a36Sopenharmony_ci	PINCTRL_PIN(0, "LPSS_I2C0_SDA"),
30062306a36Sopenharmony_ci	PINCTRL_PIN(1, "LPSS_I2C0_SCL"),
30162306a36Sopenharmony_ci	PINCTRL_PIN(2, "LPSS_I2C1_SDA"),
30262306a36Sopenharmony_ci	PINCTRL_PIN(3, "LPSS_I2C1_SCL"),
30362306a36Sopenharmony_ci	PINCTRL_PIN(4, "LPSS_I2C2_SDA"),
30462306a36Sopenharmony_ci	PINCTRL_PIN(5, "LPSS_I2C2_SCL"),
30562306a36Sopenharmony_ci	PINCTRL_PIN(6, "LPSS_I2C3_SDA"),
30662306a36Sopenharmony_ci	PINCTRL_PIN(7, "LPSS_I2C3_SCL"),
30762306a36Sopenharmony_ci	PINCTRL_PIN(8, "LPSS_I2C4_SDA"),
30862306a36Sopenharmony_ci	PINCTRL_PIN(9, "LPSS_I2C4_SCL"),
30962306a36Sopenharmony_ci	PINCTRL_PIN(10, "LPSS_I2C5_SDA"),
31062306a36Sopenharmony_ci	PINCTRL_PIN(11, "LPSS_I2C5_SCL"),
31162306a36Sopenharmony_ci	PINCTRL_PIN(12, "LPSS_I2C6_SDA"),
31262306a36Sopenharmony_ci	PINCTRL_PIN(13, "LPSS_I2C6_SCL"),
31362306a36Sopenharmony_ci	PINCTRL_PIN(14, "LPSS_I2C7_SDA"),
31462306a36Sopenharmony_ci	PINCTRL_PIN(15, "LPSS_I2C7_SCL"),
31562306a36Sopenharmony_ci	PINCTRL_PIN(16, "ISH_I2C0_SDA"),
31662306a36Sopenharmony_ci	PINCTRL_PIN(17, "ISH_I2C0_SCL"),
31762306a36Sopenharmony_ci	PINCTRL_PIN(18, "ISH_I2C1_SDA"),
31862306a36Sopenharmony_ci	PINCTRL_PIN(19, "ISH_I2C1_SCL"),
31962306a36Sopenharmony_ci	PINCTRL_PIN(20, "ISH_I2C2_SDA"),
32062306a36Sopenharmony_ci	PINCTRL_PIN(21, "ISH_I2C2_SCL"),
32162306a36Sopenharmony_ci	PINCTRL_PIN(22, "ISH_GPIO_0"),
32262306a36Sopenharmony_ci	PINCTRL_PIN(23, "ISH_GPIO_1"),
32362306a36Sopenharmony_ci	PINCTRL_PIN(24, "ISH_GPIO_2"),
32462306a36Sopenharmony_ci	PINCTRL_PIN(25, "ISH_GPIO_3"),
32562306a36Sopenharmony_ci	PINCTRL_PIN(26, "ISH_GPIO_4"),
32662306a36Sopenharmony_ci	PINCTRL_PIN(27, "ISH_GPIO_5"),
32762306a36Sopenharmony_ci	PINCTRL_PIN(28, "ISH_GPIO_6"),
32862306a36Sopenharmony_ci	PINCTRL_PIN(29, "ISH_GPIO_7"),
32962306a36Sopenharmony_ci	PINCTRL_PIN(30, "ISH_GPIO_8"),
33062306a36Sopenharmony_ci	PINCTRL_PIN(31, "ISH_GPIO_9"),
33162306a36Sopenharmony_ci	PINCTRL_PIN(32, "MODEM_CLKREQ"),
33262306a36Sopenharmony_ci	PINCTRL_PIN(33, "DGCLKDBG_PMC_0"),
33362306a36Sopenharmony_ci	PINCTRL_PIN(34, "DGCLKDBG_PMC_1"),
33462306a36Sopenharmony_ci	PINCTRL_PIN(35, "DGCLKDBG_PMC_2"),
33562306a36Sopenharmony_ci	PINCTRL_PIN(36, "DGCLKDBG_ICLK_0"),
33662306a36Sopenharmony_ci	PINCTRL_PIN(37, "DGCLKDBG_ICLK_1"),
33762306a36Sopenharmony_ci	PINCTRL_PIN(38, "OSC_CLK_OUT_0"),
33862306a36Sopenharmony_ci	PINCTRL_PIN(39, "OSC_CLK_OUT_1"),
33962306a36Sopenharmony_ci	PINCTRL_PIN(40, "OSC_CLK_OUT_2"),
34062306a36Sopenharmony_ci	PINCTRL_PIN(41, "OSC_CLK_OUT_3"),
34162306a36Sopenharmony_ci};
34262306a36Sopenharmony_ci
34362306a36Sopenharmony_cistatic const unsigned int bxt_west_i2c0_pins[] = { 0, 1 };
34462306a36Sopenharmony_cistatic const unsigned int bxt_west_i2c1_pins[] = { 2, 3 };
34562306a36Sopenharmony_cistatic const unsigned int bxt_west_i2c2_pins[] = { 4, 5 };
34662306a36Sopenharmony_cistatic const unsigned int bxt_west_i2c3_pins[] = { 6, 7 };
34762306a36Sopenharmony_cistatic const unsigned int bxt_west_i2c4_pins[] = { 8, 9 };
34862306a36Sopenharmony_cistatic const unsigned int bxt_west_i2c5_pins[] = { 10, 11 };
34962306a36Sopenharmony_cistatic const unsigned int bxt_west_i2c6_pins[] = { 12, 13 };
35062306a36Sopenharmony_cistatic const unsigned int bxt_west_i2c7_pins[] = { 14, 15 };
35162306a36Sopenharmony_cistatic const unsigned int bxt_west_i2c5b_pins[] = { 16, 17 };
35262306a36Sopenharmony_cistatic const unsigned int bxt_west_i2c6b_pins[] = { 18, 19 };
35362306a36Sopenharmony_cistatic const unsigned int bxt_west_i2c7b_pins[] = { 20, 21 };
35462306a36Sopenharmony_ci
35562306a36Sopenharmony_cistatic const struct intel_pingroup bxt_west_groups[] = {
35662306a36Sopenharmony_ci	PIN_GROUP("i2c0_grp", bxt_west_i2c0_pins, 1),
35762306a36Sopenharmony_ci	PIN_GROUP("i2c1_grp", bxt_west_i2c1_pins, 1),
35862306a36Sopenharmony_ci	PIN_GROUP("i2c2_grp", bxt_west_i2c2_pins, 1),
35962306a36Sopenharmony_ci	PIN_GROUP("i2c3_grp", bxt_west_i2c3_pins, 1),
36062306a36Sopenharmony_ci	PIN_GROUP("i2c4_grp", bxt_west_i2c4_pins, 1),
36162306a36Sopenharmony_ci	PIN_GROUP("i2c5_grp", bxt_west_i2c5_pins, 1),
36262306a36Sopenharmony_ci	PIN_GROUP("i2c6_grp", bxt_west_i2c6_pins, 1),
36362306a36Sopenharmony_ci	PIN_GROUP("i2c7_grp", bxt_west_i2c7_pins, 1),
36462306a36Sopenharmony_ci	PIN_GROUP("i2c5b_grp", bxt_west_i2c5b_pins, 2),
36562306a36Sopenharmony_ci	PIN_GROUP("i2c6b_grp", bxt_west_i2c6b_pins, 2),
36662306a36Sopenharmony_ci	PIN_GROUP("i2c7b_grp", bxt_west_i2c7b_pins, 2),
36762306a36Sopenharmony_ci};
36862306a36Sopenharmony_ci
36962306a36Sopenharmony_cistatic const char * const bxt_west_i2c0_groups[] = { "i2c0_grp" };
37062306a36Sopenharmony_cistatic const char * const bxt_west_i2c1_groups[] = { "i2c1_grp" };
37162306a36Sopenharmony_cistatic const char * const bxt_west_i2c2_groups[] = { "i2c2_grp" };
37262306a36Sopenharmony_cistatic const char * const bxt_west_i2c3_groups[] = { "i2c3_grp" };
37362306a36Sopenharmony_cistatic const char * const bxt_west_i2c4_groups[] = { "i2c4_grp" };
37462306a36Sopenharmony_cistatic const char * const bxt_west_i2c5_groups[] = { "i2c5_grp", "i2c5b_grp" };
37562306a36Sopenharmony_cistatic const char * const bxt_west_i2c6_groups[] = { "i2c6_grp", "i2c6b_grp" };
37662306a36Sopenharmony_cistatic const char * const bxt_west_i2c7_groups[] = { "i2c7_grp", "i2c7b_grp" };
37762306a36Sopenharmony_ci
37862306a36Sopenharmony_cistatic const struct intel_function bxt_west_functions[] = {
37962306a36Sopenharmony_ci	FUNCTION("i2c0", bxt_west_i2c0_groups),
38062306a36Sopenharmony_ci	FUNCTION("i2c1", bxt_west_i2c1_groups),
38162306a36Sopenharmony_ci	FUNCTION("i2c2", bxt_west_i2c2_groups),
38262306a36Sopenharmony_ci	FUNCTION("i2c3", bxt_west_i2c3_groups),
38362306a36Sopenharmony_ci	FUNCTION("i2c4", bxt_west_i2c4_groups),
38462306a36Sopenharmony_ci	FUNCTION("i2c5", bxt_west_i2c5_groups),
38562306a36Sopenharmony_ci	FUNCTION("i2c6", bxt_west_i2c6_groups),
38662306a36Sopenharmony_ci	FUNCTION("i2c7", bxt_west_i2c7_groups),
38762306a36Sopenharmony_ci};
38862306a36Sopenharmony_ci
38962306a36Sopenharmony_cistatic const struct intel_community bxt_west_communities[] = {
39062306a36Sopenharmony_ci	BXT_COMMUNITY(0, 0, 41),
39162306a36Sopenharmony_ci};
39262306a36Sopenharmony_ci
39362306a36Sopenharmony_cistatic const struct intel_pinctrl_soc_data bxt_west_soc_data = {
39462306a36Sopenharmony_ci	.uid = "3",
39562306a36Sopenharmony_ci	.pins = bxt_west_pins,
39662306a36Sopenharmony_ci	.npins = ARRAY_SIZE(bxt_west_pins),
39762306a36Sopenharmony_ci	.groups = bxt_west_groups,
39862306a36Sopenharmony_ci	.ngroups = ARRAY_SIZE(bxt_west_groups),
39962306a36Sopenharmony_ci	.functions = bxt_west_functions,
40062306a36Sopenharmony_ci	.nfunctions = ARRAY_SIZE(bxt_west_functions),
40162306a36Sopenharmony_ci	.communities = bxt_west_communities,
40262306a36Sopenharmony_ci	.ncommunities = ARRAY_SIZE(bxt_west_communities),
40362306a36Sopenharmony_ci};
40462306a36Sopenharmony_ci
40562306a36Sopenharmony_cistatic const struct pinctrl_pin_desc bxt_southwest_pins[] = {
40662306a36Sopenharmony_ci	PINCTRL_PIN(0, "EMMC0_CLK"),
40762306a36Sopenharmony_ci	PINCTRL_PIN(1, "EMMC0_D0"),
40862306a36Sopenharmony_ci	PINCTRL_PIN(2, "EMMC0_D1"),
40962306a36Sopenharmony_ci	PINCTRL_PIN(3, "EMMC0_D2"),
41062306a36Sopenharmony_ci	PINCTRL_PIN(4, "EMMC0_D3"),
41162306a36Sopenharmony_ci	PINCTRL_PIN(5, "EMMC0_D4"),
41262306a36Sopenharmony_ci	PINCTRL_PIN(6, "EMMC0_D5"),
41362306a36Sopenharmony_ci	PINCTRL_PIN(7, "EMMC0_D6"),
41462306a36Sopenharmony_ci	PINCTRL_PIN(8, "EMMC0_D7"),
41562306a36Sopenharmony_ci	PINCTRL_PIN(9, "EMMC0_CMD"),
41662306a36Sopenharmony_ci	PINCTRL_PIN(10, "SDIO_CLK"),
41762306a36Sopenharmony_ci	PINCTRL_PIN(11, "SDIO_D0"),
41862306a36Sopenharmony_ci	PINCTRL_PIN(12, "SDIO_D1"),
41962306a36Sopenharmony_ci	PINCTRL_PIN(13, "SDIO_D2"),
42062306a36Sopenharmony_ci	PINCTRL_PIN(14, "SDIO_D3"),
42162306a36Sopenharmony_ci	PINCTRL_PIN(15, "SDIO_CMD"),
42262306a36Sopenharmony_ci	PINCTRL_PIN(16, "SDCARD_CLK"),
42362306a36Sopenharmony_ci	PINCTRL_PIN(17, "SDCARD_D0"),
42462306a36Sopenharmony_ci	PINCTRL_PIN(18, "SDCARD_D1"),
42562306a36Sopenharmony_ci	PINCTRL_PIN(19, "SDCARD_D2"),
42662306a36Sopenharmony_ci	PINCTRL_PIN(20, "SDCARD_D3"),
42762306a36Sopenharmony_ci	PINCTRL_PIN(21, "SDCARD_CD_B"),
42862306a36Sopenharmony_ci	PINCTRL_PIN(22, "SDCARD_CMD"),
42962306a36Sopenharmony_ci	PINCTRL_PIN(23, "SDCARD_LVL_CLK_FB"),
43062306a36Sopenharmony_ci	PINCTRL_PIN(24, "SDCARD_LVL_CMD_DIR"),
43162306a36Sopenharmony_ci	PINCTRL_PIN(25, "SDCARD_LVL_DAT_DIR"),
43262306a36Sopenharmony_ci	PINCTRL_PIN(26, "EMMC0_STROBE"),
43362306a36Sopenharmony_ci	PINCTRL_PIN(27, "SDIO_PWR_DOWN_B"),
43462306a36Sopenharmony_ci	PINCTRL_PIN(28, "SDCARD_PWR_DOWN_B"),
43562306a36Sopenharmony_ci	PINCTRL_PIN(29, "SDCARD_LVL_SEL"),
43662306a36Sopenharmony_ci	PINCTRL_PIN(30, "SDCARD_LVL_WP"),
43762306a36Sopenharmony_ci};
43862306a36Sopenharmony_ci
43962306a36Sopenharmony_cistatic const unsigned int bxt_southwest_emmc0_pins[] = {
44062306a36Sopenharmony_ci	0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 26,
44162306a36Sopenharmony_ci};
44262306a36Sopenharmony_cistatic const unsigned int bxt_southwest_sdio_pins[] = {
44362306a36Sopenharmony_ci	10, 11, 12, 13, 14, 15, 27,
44462306a36Sopenharmony_ci};
44562306a36Sopenharmony_cistatic const unsigned int bxt_southwest_sdcard_pins[] = {
44662306a36Sopenharmony_ci	16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30,
44762306a36Sopenharmony_ci};
44862306a36Sopenharmony_ci
44962306a36Sopenharmony_cistatic const struct intel_pingroup bxt_southwest_groups[] = {
45062306a36Sopenharmony_ci	PIN_GROUP("emmc0_grp", bxt_southwest_emmc0_pins, 1),
45162306a36Sopenharmony_ci	PIN_GROUP("sdio_grp", bxt_southwest_sdio_pins, 1),
45262306a36Sopenharmony_ci	PIN_GROUP("sdcard_grp", bxt_southwest_sdcard_pins, 1),
45362306a36Sopenharmony_ci};
45462306a36Sopenharmony_ci
45562306a36Sopenharmony_cistatic const char * const bxt_southwest_emmc0_groups[] = { "emmc0_grp" };
45662306a36Sopenharmony_cistatic const char * const bxt_southwest_sdio_groups[] = { "sdio_grp" };
45762306a36Sopenharmony_cistatic const char * const bxt_southwest_sdcard_groups[] = { "sdcard_grp" };
45862306a36Sopenharmony_ci
45962306a36Sopenharmony_cistatic const struct intel_function bxt_southwest_functions[] = {
46062306a36Sopenharmony_ci	FUNCTION("emmc0", bxt_southwest_emmc0_groups),
46162306a36Sopenharmony_ci	FUNCTION("sdio", bxt_southwest_sdio_groups),
46262306a36Sopenharmony_ci	FUNCTION("sdcard", bxt_southwest_sdcard_groups),
46362306a36Sopenharmony_ci};
46462306a36Sopenharmony_ci
46562306a36Sopenharmony_cistatic const struct intel_community bxt_southwest_communities[] = {
46662306a36Sopenharmony_ci	BXT_COMMUNITY(0, 0, 30),
46762306a36Sopenharmony_ci};
46862306a36Sopenharmony_ci
46962306a36Sopenharmony_cistatic const struct intel_pinctrl_soc_data bxt_southwest_soc_data = {
47062306a36Sopenharmony_ci	.uid = "4",
47162306a36Sopenharmony_ci	.pins = bxt_southwest_pins,
47262306a36Sopenharmony_ci	.npins = ARRAY_SIZE(bxt_southwest_pins),
47362306a36Sopenharmony_ci	.groups = bxt_southwest_groups,
47462306a36Sopenharmony_ci	.ngroups = ARRAY_SIZE(bxt_southwest_groups),
47562306a36Sopenharmony_ci	.functions = bxt_southwest_functions,
47662306a36Sopenharmony_ci	.nfunctions = ARRAY_SIZE(bxt_southwest_functions),
47762306a36Sopenharmony_ci	.communities = bxt_southwest_communities,
47862306a36Sopenharmony_ci	.ncommunities = ARRAY_SIZE(bxt_southwest_communities),
47962306a36Sopenharmony_ci};
48062306a36Sopenharmony_ci
48162306a36Sopenharmony_cistatic const struct pinctrl_pin_desc bxt_south_pins[] = {
48262306a36Sopenharmony_ci	PINCTRL_PIN(0, "HV_DDI0_DDC_SDA"),
48362306a36Sopenharmony_ci	PINCTRL_PIN(1, "HV_DDI0_DDC_SCL"),
48462306a36Sopenharmony_ci	PINCTRL_PIN(2, "HV_DDI1_DDC_SDA"),
48562306a36Sopenharmony_ci	PINCTRL_PIN(3, "HV_DDI1_DDC_SCL"),
48662306a36Sopenharmony_ci	PINCTRL_PIN(4, "DBI_SDA"),
48762306a36Sopenharmony_ci	PINCTRL_PIN(5, "DBI_SCL"),
48862306a36Sopenharmony_ci	PINCTRL_PIN(6, "PANEL0_VDDEN"),
48962306a36Sopenharmony_ci	PINCTRL_PIN(7, "PANEL0_BKLTEN"),
49062306a36Sopenharmony_ci	PINCTRL_PIN(8, "PANEL0_BKLTCTL"),
49162306a36Sopenharmony_ci	PINCTRL_PIN(9, "PANEL1_VDDEN"),
49262306a36Sopenharmony_ci	PINCTRL_PIN(10, "PANEL1_BKLTEN"),
49362306a36Sopenharmony_ci	PINCTRL_PIN(11, "PANEL1_BKLTCTL"),
49462306a36Sopenharmony_ci	PINCTRL_PIN(12, "DBI_CSX"),
49562306a36Sopenharmony_ci	PINCTRL_PIN(13, "DBI_RESX"),
49662306a36Sopenharmony_ci	PINCTRL_PIN(14, "GP_INTD_DSI_TE1"),
49762306a36Sopenharmony_ci	PINCTRL_PIN(15, "GP_INTD_DSI_TE2"),
49862306a36Sopenharmony_ci	PINCTRL_PIN(16, "USB_OC0_B"),
49962306a36Sopenharmony_ci	PINCTRL_PIN(17, "USB_OC1_B"),
50062306a36Sopenharmony_ci	PINCTRL_PIN(18, "MEX_WAKE0_B"),
50162306a36Sopenharmony_ci	PINCTRL_PIN(19, "MEX_WAKE1_B"),
50262306a36Sopenharmony_ci};
50362306a36Sopenharmony_ci
50462306a36Sopenharmony_cistatic const struct intel_community bxt_south_communities[] = {
50562306a36Sopenharmony_ci	BXT_COMMUNITY(0, 0, 19),
50662306a36Sopenharmony_ci};
50762306a36Sopenharmony_ci
50862306a36Sopenharmony_cistatic const struct intel_pinctrl_soc_data bxt_south_soc_data = {
50962306a36Sopenharmony_ci	.uid = "5",
51062306a36Sopenharmony_ci	.pins = bxt_south_pins,
51162306a36Sopenharmony_ci	.npins = ARRAY_SIZE(bxt_south_pins),
51262306a36Sopenharmony_ci	.communities = bxt_south_communities,
51362306a36Sopenharmony_ci	.ncommunities = ARRAY_SIZE(bxt_south_communities),
51462306a36Sopenharmony_ci};
51562306a36Sopenharmony_ci
51662306a36Sopenharmony_cistatic const struct intel_pinctrl_soc_data *bxt_pinctrl_soc_data[] = {
51762306a36Sopenharmony_ci	&bxt_north_soc_data,
51862306a36Sopenharmony_ci	&bxt_northwest_soc_data,
51962306a36Sopenharmony_ci	&bxt_west_soc_data,
52062306a36Sopenharmony_ci	&bxt_southwest_soc_data,
52162306a36Sopenharmony_ci	&bxt_south_soc_data,
52262306a36Sopenharmony_ci	NULL
52362306a36Sopenharmony_ci};
52462306a36Sopenharmony_ci
52562306a36Sopenharmony_ci/* APL */
52662306a36Sopenharmony_cistatic const struct pinctrl_pin_desc apl_north_pins[] = {
52762306a36Sopenharmony_ci	PINCTRL_PIN(0, "GPIO_0"),
52862306a36Sopenharmony_ci	PINCTRL_PIN(1, "GPIO_1"),
52962306a36Sopenharmony_ci	PINCTRL_PIN(2, "GPIO_2"),
53062306a36Sopenharmony_ci	PINCTRL_PIN(3, "GPIO_3"),
53162306a36Sopenharmony_ci	PINCTRL_PIN(4, "GPIO_4"),
53262306a36Sopenharmony_ci	PINCTRL_PIN(5, "GPIO_5"),
53362306a36Sopenharmony_ci	PINCTRL_PIN(6, "GPIO_6"),
53462306a36Sopenharmony_ci	PINCTRL_PIN(7, "GPIO_7"),
53562306a36Sopenharmony_ci	PINCTRL_PIN(8, "GPIO_8"),
53662306a36Sopenharmony_ci	PINCTRL_PIN(9, "GPIO_9"),
53762306a36Sopenharmony_ci	PINCTRL_PIN(10, "GPIO_10"),
53862306a36Sopenharmony_ci	PINCTRL_PIN(11, "GPIO_11"),
53962306a36Sopenharmony_ci	PINCTRL_PIN(12, "GPIO_12"),
54062306a36Sopenharmony_ci	PINCTRL_PIN(13, "GPIO_13"),
54162306a36Sopenharmony_ci	PINCTRL_PIN(14, "GPIO_14"),
54262306a36Sopenharmony_ci	PINCTRL_PIN(15, "GPIO_15"),
54362306a36Sopenharmony_ci	PINCTRL_PIN(16, "GPIO_16"),
54462306a36Sopenharmony_ci	PINCTRL_PIN(17, "GPIO_17"),
54562306a36Sopenharmony_ci	PINCTRL_PIN(18, "GPIO_18"),
54662306a36Sopenharmony_ci	PINCTRL_PIN(19, "GPIO_19"),
54762306a36Sopenharmony_ci	PINCTRL_PIN(20, "GPIO_20"),
54862306a36Sopenharmony_ci	PINCTRL_PIN(21, "GPIO_21"),
54962306a36Sopenharmony_ci	PINCTRL_PIN(22, "GPIO_22"),
55062306a36Sopenharmony_ci	PINCTRL_PIN(23, "GPIO_23"),
55162306a36Sopenharmony_ci	PINCTRL_PIN(24, "GPIO_24"),
55262306a36Sopenharmony_ci	PINCTRL_PIN(25, "GPIO_25"),
55362306a36Sopenharmony_ci	PINCTRL_PIN(26, "GPIO_26"),
55462306a36Sopenharmony_ci	PINCTRL_PIN(27, "GPIO_27"),
55562306a36Sopenharmony_ci	PINCTRL_PIN(28, "GPIO_28"),
55662306a36Sopenharmony_ci	PINCTRL_PIN(29, "GPIO_29"),
55762306a36Sopenharmony_ci	PINCTRL_PIN(30, "GPIO_30"),
55862306a36Sopenharmony_ci	PINCTRL_PIN(31, "GPIO_31"),
55962306a36Sopenharmony_ci	PINCTRL_PIN(32, "GPIO_32"),
56062306a36Sopenharmony_ci	PINCTRL_PIN(33, "GPIO_33"),
56162306a36Sopenharmony_ci	PINCTRL_PIN(34, "PWM0"),
56262306a36Sopenharmony_ci	PINCTRL_PIN(35, "PWM1"),
56362306a36Sopenharmony_ci	PINCTRL_PIN(36, "PWM2"),
56462306a36Sopenharmony_ci	PINCTRL_PIN(37, "PWM3"),
56562306a36Sopenharmony_ci	PINCTRL_PIN(38, "LPSS_UART0_RXD"),
56662306a36Sopenharmony_ci	PINCTRL_PIN(39, "LPSS_UART0_TXD"),
56762306a36Sopenharmony_ci	PINCTRL_PIN(40, "LPSS_UART0_RTS_B"),
56862306a36Sopenharmony_ci	PINCTRL_PIN(41, "LPSS_UART0_CTS_B"),
56962306a36Sopenharmony_ci	PINCTRL_PIN(42, "LPSS_UART1_RXD"),
57062306a36Sopenharmony_ci	PINCTRL_PIN(43, "LPSS_UART1_TXD"),
57162306a36Sopenharmony_ci	PINCTRL_PIN(44, "LPSS_UART1_RTS_B"),
57262306a36Sopenharmony_ci	PINCTRL_PIN(45, "LPSS_UART1_CTS_B"),
57362306a36Sopenharmony_ci	PINCTRL_PIN(46, "LPSS_UART2_RXD"),
57462306a36Sopenharmony_ci	PINCTRL_PIN(47, "LPSS_UART2_TXD"),
57562306a36Sopenharmony_ci	PINCTRL_PIN(48, "LPSS_UART2_RTS_B"),
57662306a36Sopenharmony_ci	PINCTRL_PIN(49, "LPSS_UART2_CTS_B"),
57762306a36Sopenharmony_ci	PINCTRL_PIN(50, "GP_CAMERASB00"),
57862306a36Sopenharmony_ci	PINCTRL_PIN(51, "GP_CAMERASB01"),
57962306a36Sopenharmony_ci	PINCTRL_PIN(52, "GP_CAMERASB02"),
58062306a36Sopenharmony_ci	PINCTRL_PIN(53, "GP_CAMERASB03"),
58162306a36Sopenharmony_ci	PINCTRL_PIN(54, "GP_CAMERASB04"),
58262306a36Sopenharmony_ci	PINCTRL_PIN(55, "GP_CAMERASB05"),
58362306a36Sopenharmony_ci	PINCTRL_PIN(56, "GP_CAMERASB06"),
58462306a36Sopenharmony_ci	PINCTRL_PIN(57, "GP_CAMERASB07"),
58562306a36Sopenharmony_ci	PINCTRL_PIN(58, "GP_CAMERASB08"),
58662306a36Sopenharmony_ci	PINCTRL_PIN(59, "GP_CAMERASB09"),
58762306a36Sopenharmony_ci	PINCTRL_PIN(60, "GP_CAMERASB10"),
58862306a36Sopenharmony_ci	PINCTRL_PIN(61, "GP_CAMERASB11"),
58962306a36Sopenharmony_ci	PINCTRL_PIN(62, "TCK"),
59062306a36Sopenharmony_ci	PINCTRL_PIN(63, "TRST_B"),
59162306a36Sopenharmony_ci	PINCTRL_PIN(64, "TMS"),
59262306a36Sopenharmony_ci	PINCTRL_PIN(65, "TDI"),
59362306a36Sopenharmony_ci	PINCTRL_PIN(66, "CX_PMODE"),
59462306a36Sopenharmony_ci	PINCTRL_PIN(67, "CX_PREQ_B"),
59562306a36Sopenharmony_ci	PINCTRL_PIN(68, "JTAGX"),
59662306a36Sopenharmony_ci	PINCTRL_PIN(69, "CX_PRDY_B"),
59762306a36Sopenharmony_ci	PINCTRL_PIN(70, "TDO"),
59862306a36Sopenharmony_ci	PINCTRL_PIN(71, "CNV_BRI_DT"),
59962306a36Sopenharmony_ci	PINCTRL_PIN(72, "CNV_BRI_RSP"),
60062306a36Sopenharmony_ci	PINCTRL_PIN(73, "CNV_RGI_DT"),
60162306a36Sopenharmony_ci	PINCTRL_PIN(74, "CNV_RGI_RSP"),
60262306a36Sopenharmony_ci	PINCTRL_PIN(75, "SVID0_ALERT_B"),
60362306a36Sopenharmony_ci	PINCTRL_PIN(76, "SVID0_DATA"),
60462306a36Sopenharmony_ci	PINCTRL_PIN(77, "SVID0_CLK"),
60562306a36Sopenharmony_ci};
60662306a36Sopenharmony_ci
60762306a36Sopenharmony_cistatic const unsigned int apl_north_pwm0_pins[] = { 34 };
60862306a36Sopenharmony_cistatic const unsigned int apl_north_pwm1_pins[] = { 35 };
60962306a36Sopenharmony_cistatic const unsigned int apl_north_pwm2_pins[] = { 36 };
61062306a36Sopenharmony_cistatic const unsigned int apl_north_pwm3_pins[] = { 37 };
61162306a36Sopenharmony_cistatic const unsigned int apl_north_uart0_pins[] = { 38, 39, 40, 41 };
61262306a36Sopenharmony_cistatic const unsigned int apl_north_uart1_pins[] = { 42, 43, 44, 45 };
61362306a36Sopenharmony_cistatic const unsigned int apl_north_uart2_pins[] = { 46, 47, 48, 49 };
61462306a36Sopenharmony_ci
61562306a36Sopenharmony_cistatic const struct intel_pingroup apl_north_groups[] = {
61662306a36Sopenharmony_ci	PIN_GROUP("pwm0_grp", apl_north_pwm0_pins, 1),
61762306a36Sopenharmony_ci	PIN_GROUP("pwm1_grp", apl_north_pwm1_pins, 1),
61862306a36Sopenharmony_ci	PIN_GROUP("pwm2_grp", apl_north_pwm2_pins, 1),
61962306a36Sopenharmony_ci	PIN_GROUP("pwm3_grp", apl_north_pwm3_pins, 1),
62062306a36Sopenharmony_ci	PIN_GROUP("uart0_grp", apl_north_uart0_pins, 1),
62162306a36Sopenharmony_ci	PIN_GROUP("uart1_grp", apl_north_uart1_pins, 1),
62262306a36Sopenharmony_ci	PIN_GROUP("uart2_grp", apl_north_uart2_pins, 1),
62362306a36Sopenharmony_ci};
62462306a36Sopenharmony_ci
62562306a36Sopenharmony_cistatic const char * const apl_north_pwm0_groups[] = { "pwm0_grp" };
62662306a36Sopenharmony_cistatic const char * const apl_north_pwm1_groups[] = { "pwm1_grp" };
62762306a36Sopenharmony_cistatic const char * const apl_north_pwm2_groups[] = { "pwm2_grp" };
62862306a36Sopenharmony_cistatic const char * const apl_north_pwm3_groups[] = { "pwm3_grp" };
62962306a36Sopenharmony_cistatic const char * const apl_north_uart0_groups[] = { "uart0_grp" };
63062306a36Sopenharmony_cistatic const char * const apl_north_uart1_groups[] = { "uart1_grp" };
63162306a36Sopenharmony_cistatic const char * const apl_north_uart2_groups[] = { "uart2_grp" };
63262306a36Sopenharmony_ci
63362306a36Sopenharmony_cistatic const struct intel_function apl_north_functions[] = {
63462306a36Sopenharmony_ci	FUNCTION("pwm0", apl_north_pwm0_groups),
63562306a36Sopenharmony_ci	FUNCTION("pwm1", apl_north_pwm1_groups),
63662306a36Sopenharmony_ci	FUNCTION("pwm2", apl_north_pwm2_groups),
63762306a36Sopenharmony_ci	FUNCTION("pwm3", apl_north_pwm3_groups),
63862306a36Sopenharmony_ci	FUNCTION("uart0", apl_north_uart0_groups),
63962306a36Sopenharmony_ci	FUNCTION("uart1", apl_north_uart1_groups),
64062306a36Sopenharmony_ci	FUNCTION("uart2", apl_north_uart2_groups),
64162306a36Sopenharmony_ci};
64262306a36Sopenharmony_ci
64362306a36Sopenharmony_cistatic const struct intel_community apl_north_communities[] = {
64462306a36Sopenharmony_ci	BXT_COMMUNITY(0, 0, 77),
64562306a36Sopenharmony_ci};
64662306a36Sopenharmony_ci
64762306a36Sopenharmony_cistatic const struct intel_pinctrl_soc_data apl_north_soc_data = {
64862306a36Sopenharmony_ci	.uid = "1",
64962306a36Sopenharmony_ci	.pins = apl_north_pins,
65062306a36Sopenharmony_ci	.npins = ARRAY_SIZE(apl_north_pins),
65162306a36Sopenharmony_ci	.groups = apl_north_groups,
65262306a36Sopenharmony_ci	.ngroups = ARRAY_SIZE(apl_north_groups),
65362306a36Sopenharmony_ci	.functions = apl_north_functions,
65462306a36Sopenharmony_ci	.nfunctions = ARRAY_SIZE(apl_north_functions),
65562306a36Sopenharmony_ci	.communities = apl_north_communities,
65662306a36Sopenharmony_ci	.ncommunities = ARRAY_SIZE(apl_north_communities),
65762306a36Sopenharmony_ci};
65862306a36Sopenharmony_ci
65962306a36Sopenharmony_cistatic const struct pinctrl_pin_desc apl_northwest_pins[] = {
66062306a36Sopenharmony_ci	PINCTRL_PIN(0, "HV_DDI0_DDC_SDA"),
66162306a36Sopenharmony_ci	PINCTRL_PIN(1, "HV_DDI0_DDC_SCL"),
66262306a36Sopenharmony_ci	PINCTRL_PIN(2, "HV_DDI1_DDC_SDA"),
66362306a36Sopenharmony_ci	PINCTRL_PIN(3, "HV_DDI1_DDC_SCL"),
66462306a36Sopenharmony_ci	PINCTRL_PIN(4, "DBI_SDA"),
66562306a36Sopenharmony_ci	PINCTRL_PIN(5, "DBI_SCL"),
66662306a36Sopenharmony_ci	PINCTRL_PIN(6, "PANEL0_VDDEN"),
66762306a36Sopenharmony_ci	PINCTRL_PIN(7, "PANEL0_BKLTEN"),
66862306a36Sopenharmony_ci	PINCTRL_PIN(8, "PANEL0_BKLTCTL"),
66962306a36Sopenharmony_ci	PINCTRL_PIN(9, "PANEL1_VDDEN"),
67062306a36Sopenharmony_ci	PINCTRL_PIN(10, "PANEL1_BKLTEN"),
67162306a36Sopenharmony_ci	PINCTRL_PIN(11, "PANEL1_BKLTCTL"),
67262306a36Sopenharmony_ci	PINCTRL_PIN(12, "DBI_CSX"),
67362306a36Sopenharmony_ci	PINCTRL_PIN(13, "DBI_RESX"),
67462306a36Sopenharmony_ci	PINCTRL_PIN(14, "GP_INTD_DSI_TE1"),
67562306a36Sopenharmony_ci	PINCTRL_PIN(15, "GP_INTD_DSI_TE2"),
67662306a36Sopenharmony_ci	PINCTRL_PIN(16, "USB_OC0_B"),
67762306a36Sopenharmony_ci	PINCTRL_PIN(17, "USB_OC1_B"),
67862306a36Sopenharmony_ci	PINCTRL_PIN(18, "PMC_SPI_FS0"),
67962306a36Sopenharmony_ci	PINCTRL_PIN(19, "PMC_SPI_FS1"),
68062306a36Sopenharmony_ci	PINCTRL_PIN(20, "PMC_SPI_FS2"),
68162306a36Sopenharmony_ci	PINCTRL_PIN(21, "PMC_SPI_RXD"),
68262306a36Sopenharmony_ci	PINCTRL_PIN(22, "PMC_SPI_TXD"),
68362306a36Sopenharmony_ci	PINCTRL_PIN(23, "PMC_SPI_CLK"),
68462306a36Sopenharmony_ci	PINCTRL_PIN(24, "PMIC_PWRGOOD"),
68562306a36Sopenharmony_ci	PINCTRL_PIN(25, "PMIC_RESET_B"),
68662306a36Sopenharmony_ci	PINCTRL_PIN(26, "PMIC_SDWN_B"),
68762306a36Sopenharmony_ci	PINCTRL_PIN(27, "PMIC_BCUDISW2"),
68862306a36Sopenharmony_ci	PINCTRL_PIN(28, "PMIC_BCUDISCRIT"),
68962306a36Sopenharmony_ci	PINCTRL_PIN(29, "PMIC_THERMTRIP_B"),
69062306a36Sopenharmony_ci	PINCTRL_PIN(30, "PMIC_STDBY"),
69162306a36Sopenharmony_ci	PINCTRL_PIN(31, "PROCHOT_B"),
69262306a36Sopenharmony_ci	PINCTRL_PIN(32, "PMIC_I2C_SCL"),
69362306a36Sopenharmony_ci	PINCTRL_PIN(33, "PMIC_I2C_SDA"),
69462306a36Sopenharmony_ci	PINCTRL_PIN(34, "AVS_I2S1_MCLK"),
69562306a36Sopenharmony_ci	PINCTRL_PIN(35, "AVS_I2S1_BCLK"),
69662306a36Sopenharmony_ci	PINCTRL_PIN(36, "AVS_I2S1_WS_SYNC"),
69762306a36Sopenharmony_ci	PINCTRL_PIN(37, "AVS_I2S1_SDI"),
69862306a36Sopenharmony_ci	PINCTRL_PIN(38, "AVS_I2S1_SDO"),
69962306a36Sopenharmony_ci	PINCTRL_PIN(39, "AVS_M_CLK_A1"),
70062306a36Sopenharmony_ci	PINCTRL_PIN(40, "AVS_M_CLK_B1"),
70162306a36Sopenharmony_ci	PINCTRL_PIN(41, "AVS_M_DATA_1"),
70262306a36Sopenharmony_ci	PINCTRL_PIN(42, "AVS_M_CLK_AB2"),
70362306a36Sopenharmony_ci	PINCTRL_PIN(43, "AVS_M_DATA_2"),
70462306a36Sopenharmony_ci	PINCTRL_PIN(44, "AVS_I2S2_MCLK"),
70562306a36Sopenharmony_ci	PINCTRL_PIN(45, "AVS_I2S2_BCLK"),
70662306a36Sopenharmony_ci	PINCTRL_PIN(46, "AVS_I2S2_WS_SYNC"),
70762306a36Sopenharmony_ci	PINCTRL_PIN(47, "AVS_I2S2_SDI"),
70862306a36Sopenharmony_ci	PINCTRL_PIN(48, "AVS_I2S2_SDO"),
70962306a36Sopenharmony_ci	PINCTRL_PIN(49, "AVS_I2S3_BCLK"),
71062306a36Sopenharmony_ci	PINCTRL_PIN(50, "AVS_I2S3_WS_SYNC"),
71162306a36Sopenharmony_ci	PINCTRL_PIN(51, "AVS_I2S3_SDI"),
71262306a36Sopenharmony_ci	PINCTRL_PIN(52, "AVS_I2S3_SDO"),
71362306a36Sopenharmony_ci	PINCTRL_PIN(53, "FST_SPI_CS0_B"),
71462306a36Sopenharmony_ci	PINCTRL_PIN(54, "FST_SPI_CS1_B"),
71562306a36Sopenharmony_ci	PINCTRL_PIN(55, "FST_SPI_MOSI_IO0"),
71662306a36Sopenharmony_ci	PINCTRL_PIN(56, "FST_SPI_MISO_IO1"),
71762306a36Sopenharmony_ci	PINCTRL_PIN(57, "FST_SPI_IO2"),
71862306a36Sopenharmony_ci	PINCTRL_PIN(58, "FST_SPI_IO3"),
71962306a36Sopenharmony_ci	PINCTRL_PIN(59, "FST_SPI_CLK"),
72062306a36Sopenharmony_ci	PINCTRL_PIN(60, "FST_SPI_CLK_FB"),
72162306a36Sopenharmony_ci	PINCTRL_PIN(61, "GP_SSP_0_CLK"),
72262306a36Sopenharmony_ci	PINCTRL_PIN(62, "GP_SSP_0_FS0"),
72362306a36Sopenharmony_ci	PINCTRL_PIN(63, "GP_SSP_0_FS1"),
72462306a36Sopenharmony_ci	PINCTRL_PIN(64, "GP_SSP_0_RXD"),
72562306a36Sopenharmony_ci	PINCTRL_PIN(65, "GP_SSP_0_TXD"),
72662306a36Sopenharmony_ci	PINCTRL_PIN(66, "GP_SSP_1_CLK"),
72762306a36Sopenharmony_ci	PINCTRL_PIN(67, "GP_SSP_1_FS0"),
72862306a36Sopenharmony_ci	PINCTRL_PIN(68, "GP_SSP_1_FS1"),
72962306a36Sopenharmony_ci	PINCTRL_PIN(69, "GP_SSP_1_RXD"),
73062306a36Sopenharmony_ci	PINCTRL_PIN(70, "GP_SSP_1_TXD"),
73162306a36Sopenharmony_ci	PINCTRL_PIN(71, "GP_SSP_2_CLK"),
73262306a36Sopenharmony_ci	PINCTRL_PIN(72, "GP_SSP_2_FS0"),
73362306a36Sopenharmony_ci	PINCTRL_PIN(73, "GP_SSP_2_FS1"),
73462306a36Sopenharmony_ci	PINCTRL_PIN(74, "GP_SSP_2_FS2"),
73562306a36Sopenharmony_ci	PINCTRL_PIN(75, "GP_SSP_2_RXD"),
73662306a36Sopenharmony_ci	PINCTRL_PIN(76, "GP_SSP_2_TXD"),
73762306a36Sopenharmony_ci};
73862306a36Sopenharmony_ci
73962306a36Sopenharmony_cistatic const unsigned int apl_northwest_ssp0_pins[] = { 61, 62, 63, 64, 65 };
74062306a36Sopenharmony_cistatic const unsigned int apl_northwest_ssp1_pins[] = { 66, 67, 68, 69, 70 };
74162306a36Sopenharmony_cistatic const unsigned int apl_northwest_ssp2_pins[] = { 71, 72, 73, 74, 75, 76 };
74262306a36Sopenharmony_cistatic const unsigned int apl_northwest_uart3_pins[] = { 67, 68, 69, 70 };
74362306a36Sopenharmony_ci
74462306a36Sopenharmony_cistatic const struct intel_pingroup apl_northwest_groups[] = {
74562306a36Sopenharmony_ci	PIN_GROUP("ssp0_grp", apl_northwest_ssp0_pins, 1),
74662306a36Sopenharmony_ci	PIN_GROUP("ssp1_grp", apl_northwest_ssp1_pins, 1),
74762306a36Sopenharmony_ci	PIN_GROUP("ssp2_grp", apl_northwest_ssp2_pins, 1),
74862306a36Sopenharmony_ci	PIN_GROUP("uart3_grp", apl_northwest_uart3_pins, 2),
74962306a36Sopenharmony_ci};
75062306a36Sopenharmony_ci
75162306a36Sopenharmony_cistatic const char * const apl_northwest_ssp0_groups[] = { "ssp0_grp" };
75262306a36Sopenharmony_cistatic const char * const apl_northwest_ssp1_groups[] = { "ssp1_grp" };
75362306a36Sopenharmony_cistatic const char * const apl_northwest_ssp2_groups[] = { "ssp2_grp" };
75462306a36Sopenharmony_cistatic const char * const apl_northwest_uart3_groups[] = { "uart3_grp" };
75562306a36Sopenharmony_ci
75662306a36Sopenharmony_cistatic const struct intel_function apl_northwest_functions[] = {
75762306a36Sopenharmony_ci	FUNCTION("ssp0", apl_northwest_ssp0_groups),
75862306a36Sopenharmony_ci	FUNCTION("ssp1", apl_northwest_ssp1_groups),
75962306a36Sopenharmony_ci	FUNCTION("ssp2", apl_northwest_ssp2_groups),
76062306a36Sopenharmony_ci	FUNCTION("uart3", apl_northwest_uart3_groups),
76162306a36Sopenharmony_ci};
76262306a36Sopenharmony_ci
76362306a36Sopenharmony_cistatic const struct intel_community apl_northwest_communities[] = {
76462306a36Sopenharmony_ci	BXT_COMMUNITY(0, 0, 76),
76562306a36Sopenharmony_ci};
76662306a36Sopenharmony_ci
76762306a36Sopenharmony_cistatic const struct intel_pinctrl_soc_data apl_northwest_soc_data = {
76862306a36Sopenharmony_ci	.uid = "2",
76962306a36Sopenharmony_ci	.pins = apl_northwest_pins,
77062306a36Sopenharmony_ci	.npins = ARRAY_SIZE(apl_northwest_pins),
77162306a36Sopenharmony_ci	.groups = apl_northwest_groups,
77262306a36Sopenharmony_ci	.ngroups = ARRAY_SIZE(apl_northwest_groups),
77362306a36Sopenharmony_ci	.functions = apl_northwest_functions,
77462306a36Sopenharmony_ci	.nfunctions = ARRAY_SIZE(apl_northwest_functions),
77562306a36Sopenharmony_ci	.communities = apl_northwest_communities,
77662306a36Sopenharmony_ci	.ncommunities = ARRAY_SIZE(apl_northwest_communities),
77762306a36Sopenharmony_ci};
77862306a36Sopenharmony_ci
77962306a36Sopenharmony_cistatic const struct pinctrl_pin_desc apl_west_pins[] = {
78062306a36Sopenharmony_ci	PINCTRL_PIN(0, "LPSS_I2C0_SDA"),
78162306a36Sopenharmony_ci	PINCTRL_PIN(1, "LPSS_I2C0_SCL"),
78262306a36Sopenharmony_ci	PINCTRL_PIN(2, "LPSS_I2C1_SDA"),
78362306a36Sopenharmony_ci	PINCTRL_PIN(3, "LPSS_I2C1_SCL"),
78462306a36Sopenharmony_ci	PINCTRL_PIN(4, "LPSS_I2C2_SDA"),
78562306a36Sopenharmony_ci	PINCTRL_PIN(5, "LPSS_I2C2_SCL"),
78662306a36Sopenharmony_ci	PINCTRL_PIN(6, "LPSS_I2C3_SDA"),
78762306a36Sopenharmony_ci	PINCTRL_PIN(7, "LPSS_I2C3_SCL"),
78862306a36Sopenharmony_ci	PINCTRL_PIN(8, "LPSS_I2C4_SDA"),
78962306a36Sopenharmony_ci	PINCTRL_PIN(9, "LPSS_I2C4_SCL"),
79062306a36Sopenharmony_ci	PINCTRL_PIN(10, "LPSS_I2C5_SDA"),
79162306a36Sopenharmony_ci	PINCTRL_PIN(11, "LPSS_I2C5_SCL"),
79262306a36Sopenharmony_ci	PINCTRL_PIN(12, "LPSS_I2C6_SDA"),
79362306a36Sopenharmony_ci	PINCTRL_PIN(13, "LPSS_I2C6_SCL"),
79462306a36Sopenharmony_ci	PINCTRL_PIN(14, "LPSS_I2C7_SDA"),
79562306a36Sopenharmony_ci	PINCTRL_PIN(15, "LPSS_I2C7_SCL"),
79662306a36Sopenharmony_ci	PINCTRL_PIN(16, "ISH_GPIO_0"),
79762306a36Sopenharmony_ci	PINCTRL_PIN(17, "ISH_GPIO_1"),
79862306a36Sopenharmony_ci	PINCTRL_PIN(18, "ISH_GPIO_2"),
79962306a36Sopenharmony_ci	PINCTRL_PIN(19, "ISH_GPIO_3"),
80062306a36Sopenharmony_ci	PINCTRL_PIN(20, "ISH_GPIO_4"),
80162306a36Sopenharmony_ci	PINCTRL_PIN(21, "ISH_GPIO_5"),
80262306a36Sopenharmony_ci	PINCTRL_PIN(22, "ISH_GPIO_6"),
80362306a36Sopenharmony_ci	PINCTRL_PIN(23, "ISH_GPIO_7"),
80462306a36Sopenharmony_ci	PINCTRL_PIN(24, "ISH_GPIO_8"),
80562306a36Sopenharmony_ci	PINCTRL_PIN(25, "ISH_GPIO_9"),
80662306a36Sopenharmony_ci	PINCTRL_PIN(26, "PCIE_CLKREQ0_B"),
80762306a36Sopenharmony_ci	PINCTRL_PIN(27, "PCIE_CLKREQ1_B"),
80862306a36Sopenharmony_ci	PINCTRL_PIN(28, "PCIE_CLKREQ2_B"),
80962306a36Sopenharmony_ci	PINCTRL_PIN(29, "PCIE_CLKREQ3_B"),
81062306a36Sopenharmony_ci	PINCTRL_PIN(30, "OSC_CLK_OUT_0"),
81162306a36Sopenharmony_ci	PINCTRL_PIN(31, "OSC_CLK_OUT_1"),
81262306a36Sopenharmony_ci	PINCTRL_PIN(32, "OSC_CLK_OUT_2"),
81362306a36Sopenharmony_ci	PINCTRL_PIN(33, "OSC_CLK_OUT_3"),
81462306a36Sopenharmony_ci	PINCTRL_PIN(34, "OSC_CLK_OUT_4"),
81562306a36Sopenharmony_ci	PINCTRL_PIN(35, "PMU_AC_PRESENT"),
81662306a36Sopenharmony_ci	PINCTRL_PIN(36, "PMU_BATLOW_B"),
81762306a36Sopenharmony_ci	PINCTRL_PIN(37, "PMU_PLTRST_B"),
81862306a36Sopenharmony_ci	PINCTRL_PIN(38, "PMU_PWRBTN_B"),
81962306a36Sopenharmony_ci	PINCTRL_PIN(39, "PMU_RESETBUTTON_B"),
82062306a36Sopenharmony_ci	PINCTRL_PIN(40, "PMU_SLP_S0_B"),
82162306a36Sopenharmony_ci	PINCTRL_PIN(41, "PMU_SLP_S3_B"),
82262306a36Sopenharmony_ci	PINCTRL_PIN(42, "PMU_SLP_S4_B"),
82362306a36Sopenharmony_ci	PINCTRL_PIN(43, "PMU_SUSCLK"),
82462306a36Sopenharmony_ci	PINCTRL_PIN(44, "PMU_WAKE_B"),
82562306a36Sopenharmony_ci	PINCTRL_PIN(45, "SUS_STAT_B"),
82662306a36Sopenharmony_ci	PINCTRL_PIN(46, "SUSPWRDNACK"),
82762306a36Sopenharmony_ci};
82862306a36Sopenharmony_ci
82962306a36Sopenharmony_cistatic const unsigned int apl_west_i2c0_pins[] = { 0, 1 };
83062306a36Sopenharmony_cistatic const unsigned int apl_west_i2c1_pins[] = { 2, 3 };
83162306a36Sopenharmony_cistatic const unsigned int apl_west_i2c2_pins[] = { 4, 5 };
83262306a36Sopenharmony_cistatic const unsigned int apl_west_i2c3_pins[] = { 6, 7 };
83362306a36Sopenharmony_cistatic const unsigned int apl_west_i2c4_pins[] = { 8, 9 };
83462306a36Sopenharmony_cistatic const unsigned int apl_west_i2c5_pins[] = { 10, 11 };
83562306a36Sopenharmony_cistatic const unsigned int apl_west_i2c6_pins[] = { 12, 13 };
83662306a36Sopenharmony_cistatic const unsigned int apl_west_i2c7_pins[] = { 14, 15 };
83762306a36Sopenharmony_cistatic const unsigned int apl_west_uart2_pins[] = { 20, 21, 22, 34 };
83862306a36Sopenharmony_ci
83962306a36Sopenharmony_cistatic const struct intel_pingroup apl_west_groups[] = {
84062306a36Sopenharmony_ci	PIN_GROUP("i2c0_grp", apl_west_i2c0_pins, 1),
84162306a36Sopenharmony_ci	PIN_GROUP("i2c1_grp", apl_west_i2c1_pins, 1),
84262306a36Sopenharmony_ci	PIN_GROUP("i2c2_grp", apl_west_i2c2_pins, 1),
84362306a36Sopenharmony_ci	PIN_GROUP("i2c3_grp", apl_west_i2c3_pins, 1),
84462306a36Sopenharmony_ci	PIN_GROUP("i2c4_grp", apl_west_i2c4_pins, 1),
84562306a36Sopenharmony_ci	PIN_GROUP("i2c5_grp", apl_west_i2c5_pins, 1),
84662306a36Sopenharmony_ci	PIN_GROUP("i2c6_grp", apl_west_i2c6_pins, 1),
84762306a36Sopenharmony_ci	PIN_GROUP("i2c7_grp", apl_west_i2c7_pins, 1),
84862306a36Sopenharmony_ci	PIN_GROUP("uart2_grp", apl_west_uart2_pins, 3),
84962306a36Sopenharmony_ci};
85062306a36Sopenharmony_ci
85162306a36Sopenharmony_cistatic const char * const apl_west_i2c0_groups[] = { "i2c0_grp" };
85262306a36Sopenharmony_cistatic const char * const apl_west_i2c1_groups[] = { "i2c1_grp" };
85362306a36Sopenharmony_cistatic const char * const apl_west_i2c2_groups[] = { "i2c2_grp" };
85462306a36Sopenharmony_cistatic const char * const apl_west_i2c3_groups[] = { "i2c3_grp" };
85562306a36Sopenharmony_cistatic const char * const apl_west_i2c4_groups[] = { "i2c4_grp" };
85662306a36Sopenharmony_cistatic const char * const apl_west_i2c5_groups[] = { "i2c5_grp" };
85762306a36Sopenharmony_cistatic const char * const apl_west_i2c6_groups[] = { "i2c6_grp" };
85862306a36Sopenharmony_cistatic const char * const apl_west_i2c7_groups[] = { "i2c7_grp" };
85962306a36Sopenharmony_cistatic const char * const apl_west_uart2_groups[] = { "uart2_grp" };
86062306a36Sopenharmony_ci
86162306a36Sopenharmony_cistatic const struct intel_function apl_west_functions[] = {
86262306a36Sopenharmony_ci	FUNCTION("i2c0", apl_west_i2c0_groups),
86362306a36Sopenharmony_ci	FUNCTION("i2c1", apl_west_i2c1_groups),
86462306a36Sopenharmony_ci	FUNCTION("i2c2", apl_west_i2c2_groups),
86562306a36Sopenharmony_ci	FUNCTION("i2c3", apl_west_i2c3_groups),
86662306a36Sopenharmony_ci	FUNCTION("i2c4", apl_west_i2c4_groups),
86762306a36Sopenharmony_ci	FUNCTION("i2c5", apl_west_i2c5_groups),
86862306a36Sopenharmony_ci	FUNCTION("i2c6", apl_west_i2c6_groups),
86962306a36Sopenharmony_ci	FUNCTION("i2c7", apl_west_i2c7_groups),
87062306a36Sopenharmony_ci	FUNCTION("uart2", apl_west_uart2_groups),
87162306a36Sopenharmony_ci};
87262306a36Sopenharmony_ci
87362306a36Sopenharmony_cistatic const struct intel_community apl_west_communities[] = {
87462306a36Sopenharmony_ci	BXT_COMMUNITY(0, 0, 46),
87562306a36Sopenharmony_ci};
87662306a36Sopenharmony_ci
87762306a36Sopenharmony_cistatic const struct intel_pinctrl_soc_data apl_west_soc_data = {
87862306a36Sopenharmony_ci	.uid = "3",
87962306a36Sopenharmony_ci	.pins = apl_west_pins,
88062306a36Sopenharmony_ci	.npins = ARRAY_SIZE(apl_west_pins),
88162306a36Sopenharmony_ci	.groups = apl_west_groups,
88262306a36Sopenharmony_ci	.ngroups = ARRAY_SIZE(apl_west_groups),
88362306a36Sopenharmony_ci	.functions = apl_west_functions,
88462306a36Sopenharmony_ci	.nfunctions = ARRAY_SIZE(apl_west_functions),
88562306a36Sopenharmony_ci	.communities = apl_west_communities,
88662306a36Sopenharmony_ci	.ncommunities = ARRAY_SIZE(apl_west_communities),
88762306a36Sopenharmony_ci};
88862306a36Sopenharmony_ci
88962306a36Sopenharmony_cistatic const struct pinctrl_pin_desc apl_southwest_pins[] = {
89062306a36Sopenharmony_ci	PINCTRL_PIN(0, "PCIE_WAKE0_B"),
89162306a36Sopenharmony_ci	PINCTRL_PIN(1, "PCIE_WAKE1_B"),
89262306a36Sopenharmony_ci	PINCTRL_PIN(2, "PCIE_WAKE2_B"),
89362306a36Sopenharmony_ci	PINCTRL_PIN(3, "PCIE_WAKE3_B"),
89462306a36Sopenharmony_ci	PINCTRL_PIN(4, "EMMC0_CLK"),
89562306a36Sopenharmony_ci	PINCTRL_PIN(5, "EMMC0_D0"),
89662306a36Sopenharmony_ci	PINCTRL_PIN(6, "EMMC0_D1"),
89762306a36Sopenharmony_ci	PINCTRL_PIN(7, "EMMC0_D2"),
89862306a36Sopenharmony_ci	PINCTRL_PIN(8, "EMMC0_D3"),
89962306a36Sopenharmony_ci	PINCTRL_PIN(9, "EMMC0_D4"),
90062306a36Sopenharmony_ci	PINCTRL_PIN(10, "EMMC0_D5"),
90162306a36Sopenharmony_ci	PINCTRL_PIN(11, "EMMC0_D6"),
90262306a36Sopenharmony_ci	PINCTRL_PIN(12, "EMMC0_D7"),
90362306a36Sopenharmony_ci	PINCTRL_PIN(13, "EMMC0_CMD"),
90462306a36Sopenharmony_ci	PINCTRL_PIN(14, "SDIO_CLK"),
90562306a36Sopenharmony_ci	PINCTRL_PIN(15, "SDIO_D0"),
90662306a36Sopenharmony_ci	PINCTRL_PIN(16, "SDIO_D1"),
90762306a36Sopenharmony_ci	PINCTRL_PIN(17, "SDIO_D2"),
90862306a36Sopenharmony_ci	PINCTRL_PIN(18, "SDIO_D3"),
90962306a36Sopenharmony_ci	PINCTRL_PIN(19, "SDIO_CMD"),
91062306a36Sopenharmony_ci	PINCTRL_PIN(20, "SDCARD_CLK"),
91162306a36Sopenharmony_ci	PINCTRL_PIN(21, "SDCARD_CLK_FB"),
91262306a36Sopenharmony_ci	PINCTRL_PIN(22, "SDCARD_D0"),
91362306a36Sopenharmony_ci	PINCTRL_PIN(23, "SDCARD_D1"),
91462306a36Sopenharmony_ci	PINCTRL_PIN(24, "SDCARD_D2"),
91562306a36Sopenharmony_ci	PINCTRL_PIN(25, "SDCARD_D3"),
91662306a36Sopenharmony_ci	PINCTRL_PIN(26, "SDCARD_CD_B"),
91762306a36Sopenharmony_ci	PINCTRL_PIN(27, "SDCARD_CMD"),
91862306a36Sopenharmony_ci	PINCTRL_PIN(28, "SDCARD_LVL_WP"),
91962306a36Sopenharmony_ci	PINCTRL_PIN(29, "EMMC0_STROBE"),
92062306a36Sopenharmony_ci	PINCTRL_PIN(30, "SDIO_PWR_DOWN_B"),
92162306a36Sopenharmony_ci	PINCTRL_PIN(31, "SMB_ALERTB"),
92262306a36Sopenharmony_ci	PINCTRL_PIN(32, "SMB_CLK"),
92362306a36Sopenharmony_ci	PINCTRL_PIN(33, "SMB_DATA"),
92462306a36Sopenharmony_ci	PINCTRL_PIN(34, "LPC_ILB_SERIRQ"),
92562306a36Sopenharmony_ci	PINCTRL_PIN(35, "LPC_CLKOUT0"),
92662306a36Sopenharmony_ci	PINCTRL_PIN(36, "LPC_CLKOUT1"),
92762306a36Sopenharmony_ci	PINCTRL_PIN(37, "LPC_AD0"),
92862306a36Sopenharmony_ci	PINCTRL_PIN(38, "LPC_AD1"),
92962306a36Sopenharmony_ci	PINCTRL_PIN(39, "LPC_AD2"),
93062306a36Sopenharmony_ci	PINCTRL_PIN(40, "LPC_AD3"),
93162306a36Sopenharmony_ci	PINCTRL_PIN(41, "LPC_CLKRUNB"),
93262306a36Sopenharmony_ci	PINCTRL_PIN(42, "LPC_FRAMEB"),
93362306a36Sopenharmony_ci};
93462306a36Sopenharmony_ci
93562306a36Sopenharmony_cistatic const unsigned int apl_southwest_emmc0_pins[] = {
93662306a36Sopenharmony_ci	4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 29,
93762306a36Sopenharmony_ci};
93862306a36Sopenharmony_cistatic const unsigned int apl_southwest_sdio_pins[] = {
93962306a36Sopenharmony_ci	14, 15, 16, 17, 18, 19, 30,
94062306a36Sopenharmony_ci};
94162306a36Sopenharmony_cistatic const unsigned int apl_southwest_sdcard_pins[] = {
94262306a36Sopenharmony_ci	20, 21, 22, 23, 24, 25, 26, 27, 28,
94362306a36Sopenharmony_ci};
94462306a36Sopenharmony_cistatic const unsigned int apl_southwest_i2c7_pins[] = { 32, 33 };
94562306a36Sopenharmony_ci
94662306a36Sopenharmony_cistatic const struct intel_pingroup apl_southwest_groups[] = {
94762306a36Sopenharmony_ci	PIN_GROUP("emmc0_grp", apl_southwest_emmc0_pins, 1),
94862306a36Sopenharmony_ci	PIN_GROUP("sdio_grp", apl_southwest_sdio_pins, 1),
94962306a36Sopenharmony_ci	PIN_GROUP("sdcard_grp", apl_southwest_sdcard_pins, 1),
95062306a36Sopenharmony_ci	PIN_GROUP("i2c7_grp", apl_southwest_i2c7_pins, 2),
95162306a36Sopenharmony_ci};
95262306a36Sopenharmony_ci
95362306a36Sopenharmony_cistatic const char * const apl_southwest_emmc0_groups[] = { "emmc0_grp" };
95462306a36Sopenharmony_cistatic const char * const apl_southwest_sdio_groups[] = { "sdio_grp" };
95562306a36Sopenharmony_cistatic const char * const apl_southwest_sdcard_groups[] = { "sdcard_grp" };
95662306a36Sopenharmony_cistatic const char * const apl_southwest_i2c7_groups[] = { "i2c7_grp" };
95762306a36Sopenharmony_ci
95862306a36Sopenharmony_cistatic const struct intel_function apl_southwest_functions[] = {
95962306a36Sopenharmony_ci	FUNCTION("emmc0", apl_southwest_emmc0_groups),
96062306a36Sopenharmony_ci	FUNCTION("sdio", apl_southwest_sdio_groups),
96162306a36Sopenharmony_ci	FUNCTION("sdcard", apl_southwest_sdcard_groups),
96262306a36Sopenharmony_ci	FUNCTION("i2c7", apl_southwest_i2c7_groups),
96362306a36Sopenharmony_ci};
96462306a36Sopenharmony_ci
96562306a36Sopenharmony_cistatic const struct intel_community apl_southwest_communities[] = {
96662306a36Sopenharmony_ci	BXT_COMMUNITY(0, 0, 42),
96762306a36Sopenharmony_ci};
96862306a36Sopenharmony_ci
96962306a36Sopenharmony_cistatic const struct intel_pinctrl_soc_data apl_southwest_soc_data = {
97062306a36Sopenharmony_ci	.uid = "4",
97162306a36Sopenharmony_ci	.pins = apl_southwest_pins,
97262306a36Sopenharmony_ci	.npins = ARRAY_SIZE(apl_southwest_pins),
97362306a36Sopenharmony_ci	.groups = apl_southwest_groups,
97462306a36Sopenharmony_ci	.ngroups = ARRAY_SIZE(apl_southwest_groups),
97562306a36Sopenharmony_ci	.functions = apl_southwest_functions,
97662306a36Sopenharmony_ci	.nfunctions = ARRAY_SIZE(apl_southwest_functions),
97762306a36Sopenharmony_ci	.communities = apl_southwest_communities,
97862306a36Sopenharmony_ci	.ncommunities = ARRAY_SIZE(apl_southwest_communities),
97962306a36Sopenharmony_ci};
98062306a36Sopenharmony_ci
98162306a36Sopenharmony_cistatic const struct intel_pinctrl_soc_data *apl_pinctrl_soc_data[] = {
98262306a36Sopenharmony_ci	&apl_north_soc_data,
98362306a36Sopenharmony_ci	&apl_northwest_soc_data,
98462306a36Sopenharmony_ci	&apl_west_soc_data,
98562306a36Sopenharmony_ci	&apl_southwest_soc_data,
98662306a36Sopenharmony_ci	NULL
98762306a36Sopenharmony_ci};
98862306a36Sopenharmony_ci
98962306a36Sopenharmony_cistatic const struct acpi_device_id bxt_pinctrl_acpi_match[] = {
99062306a36Sopenharmony_ci	{ "INT3452", (kernel_ulong_t)apl_pinctrl_soc_data },
99162306a36Sopenharmony_ci	{ "INT34D1", (kernel_ulong_t)bxt_pinctrl_soc_data },
99262306a36Sopenharmony_ci	{ }
99362306a36Sopenharmony_ci};
99462306a36Sopenharmony_ciMODULE_DEVICE_TABLE(acpi, bxt_pinctrl_acpi_match);
99562306a36Sopenharmony_ci
99662306a36Sopenharmony_cistatic const struct platform_device_id bxt_pinctrl_platform_ids[] = {
99762306a36Sopenharmony_ci	{ "apollolake-pinctrl", (kernel_ulong_t)apl_pinctrl_soc_data },
99862306a36Sopenharmony_ci	{ "broxton-pinctrl", (kernel_ulong_t)bxt_pinctrl_soc_data },
99962306a36Sopenharmony_ci	{ }
100062306a36Sopenharmony_ci};
100162306a36Sopenharmony_ci
100262306a36Sopenharmony_cistatic INTEL_PINCTRL_PM_OPS(bxt_pinctrl_pm_ops);
100362306a36Sopenharmony_ci
100462306a36Sopenharmony_cistatic struct platform_driver bxt_pinctrl_driver = {
100562306a36Sopenharmony_ci	.probe = intel_pinctrl_probe_by_uid,
100662306a36Sopenharmony_ci	.driver = {
100762306a36Sopenharmony_ci		.name = "broxton-pinctrl",
100862306a36Sopenharmony_ci		.acpi_match_table = bxt_pinctrl_acpi_match,
100962306a36Sopenharmony_ci		.pm = &bxt_pinctrl_pm_ops,
101062306a36Sopenharmony_ci	},
101162306a36Sopenharmony_ci	.id_table = bxt_pinctrl_platform_ids,
101262306a36Sopenharmony_ci};
101362306a36Sopenharmony_ci
101462306a36Sopenharmony_cistatic int __init bxt_pinctrl_init(void)
101562306a36Sopenharmony_ci{
101662306a36Sopenharmony_ci	return platform_driver_register(&bxt_pinctrl_driver);
101762306a36Sopenharmony_ci}
101862306a36Sopenharmony_cisubsys_initcall(bxt_pinctrl_init);
101962306a36Sopenharmony_ci
102062306a36Sopenharmony_cistatic void __exit bxt_pinctrl_exit(void)
102162306a36Sopenharmony_ci{
102262306a36Sopenharmony_ci	platform_driver_unregister(&bxt_pinctrl_driver);
102362306a36Sopenharmony_ci}
102462306a36Sopenharmony_cimodule_exit(bxt_pinctrl_exit);
102562306a36Sopenharmony_ci
102662306a36Sopenharmony_ciMODULE_AUTHOR("Mika Westerberg <mika.westerberg@linux.intel.com>");
102762306a36Sopenharmony_ciMODULE_DESCRIPTION("Intel Broxton SoC pinctrl/GPIO driver");
102862306a36Sopenharmony_ciMODULE_LICENSE("GPL v2");
102962306a36Sopenharmony_ciMODULE_ALIAS("platform:apollolake-pinctrl");
103062306a36Sopenharmony_ciMODULE_ALIAS("platform:broxton-pinctrl");
103162306a36Sopenharmony_ciMODULE_IMPORT_NS(PINCTRL_INTEL);
1032