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