Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/drivers/pinctrl/intel/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 15 kB image not shown  

Quelle  pinctrl-elkhartlake.c   Sprache: C

 
// SPDX-License-Identifier: GPL-2.0
/*
 * Intel Elkhart Lake PCH pinctrl/GPIO driver
 *
 * Copyright (C) 2019, Intel Corporation
 * Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
 */


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

#include <linux/pinctrl/pinctrl.h>

#include "pinctrl-intel.h"

#define EHL_PAD_OWN 0x020
#define EHL_PADCFGLOCK 0x080
#define EHL_HOSTSW_OWN 0x0b0
#define EHL_GPI_IS 0x100
#define EHL_GPI_IE 0x120

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

#define EHL_COMMUNITY(b, s, e, g)   \
 INTEL_COMMUNITY_GPPS(b, s, e, g, EHL)

/* Elkhart Lake */
static const struct pinctrl_pin_desc ehl_community0_pins[] = {
 /* GPP_B */
 PINCTRL_PIN(0, "CORE_VID_0"),
 PINCTRL_PIN(1, "CORE_VID_1"),
 PINCTRL_PIN(2, "VRALERTB"),
 PINCTRL_PIN(3, "CPU_GP_2"),
 PINCTRL_PIN(4, "CPU_GP_3"),
 PINCTRL_PIN(5, "OSE_I2C0_SCLK"),
 PINCTRL_PIN(6, "OSE_I2C0_SDAT"),
 PINCTRL_PIN(7, "OSE_I2C1_SCLK"),
 PINCTRL_PIN(8, "OSE_I2C1_SDAT"),
 PINCTRL_PIN(9, "I2C5_SDA"),
 PINCTRL_PIN(10, "I2C5_SCL"),
 PINCTRL_PIN(11, "PMCALERTB"),
 PINCTRL_PIN(12, "SLP_S0B"),
 PINCTRL_PIN(13, "PLTRSTB"),
 PINCTRL_PIN(14, "SPKR"),
 PINCTRL_PIN(15, "GSPI0_CS0B"),
 PINCTRL_PIN(16, "GSPI0_CLK"),
 PINCTRL_PIN(17, "GSPI0_MISO"),
 PINCTRL_PIN(18, "GSPI0_MOSI"),
 PINCTRL_PIN(19, "GSPI1_CS0B"),
 PINCTRL_PIN(20, "GSPI1_CLK"),
 PINCTRL_PIN(21, "GSPI1_MISO"),
 PINCTRL_PIN(22, "GSPI1_MOSI"),
 PINCTRL_PIN(23, "GPPC_B_23"),
 PINCTRL_PIN(24, "GSPI0_CLK_LOOPBK"),
 PINCTRL_PIN(25, "GSPI1_CLK_LOOPBK"),
 /* GPP_T */
 PINCTRL_PIN(26, "OSE_QEPA_2"),
 PINCTRL_PIN(27, "OSE_QEPB_2"),
 PINCTRL_PIN(28, "OSE_QEPI_2"),
 PINCTRL_PIN(29, "GPPC_T_3"),
 PINCTRL_PIN(30, "RGMII0_INT"),
 PINCTRL_PIN(31, "RGMII0_RESETB"),
 PINCTRL_PIN(32, "RGMII0_AUXTS"),
 PINCTRL_PIN(33, "RGMII0_PPS"),
 PINCTRL_PIN(34, "USB2_OCB_2"),
 PINCTRL_PIN(35, "OSE_HSUART2_EN"),
 PINCTRL_PIN(36, "OSE_HSUART2_RE"),
 PINCTRL_PIN(37, "USB2_OCB_3"),
 PINCTRL_PIN(38, "OSE_UART2_RXD"),
 PINCTRL_PIN(39, "OSE_UART2_TXD"),
 PINCTRL_PIN(40, "OSE_UART2_RTSB"),
 PINCTRL_PIN(41, "OSE_UART2_CTSB"),
 /* GPP_G */
 PINCTRL_PIN(42, "SD3_CMD"),
 PINCTRL_PIN(43, "SD3_D0"),
 PINCTRL_PIN(44, "SD3_D1"),
 PINCTRL_PIN(45, "SD3_D2"),
 PINCTRL_PIN(46, "SD3_D3"),
 PINCTRL_PIN(47, "SD3_CDB"),
 PINCTRL_PIN(48, "SD3_CLK"),
 PINCTRL_PIN(49, "I2S2_SCLK"),
 PINCTRL_PIN(50, "I2S2_SFRM"),
 PINCTRL_PIN(51, "I2S2_TXD"),
 PINCTRL_PIN(52, "I2S2_RXD"),
 PINCTRL_PIN(53, "I2S3_SCLK"),
 PINCTRL_PIN(54, "I2S3_SFRM"),
 PINCTRL_PIN(55, "I2S3_TXD"),
 PINCTRL_PIN(56, "I2S3_RXD"),
 PINCTRL_PIN(57, "ESPI_IO_0"),
 PINCTRL_PIN(58, "ESPI_IO_1"),
 PINCTRL_PIN(59, "ESPI_IO_2"),
 PINCTRL_PIN(60, "ESPI_IO_3"),
 PINCTRL_PIN(61, "I2S1_SCLK"),
 PINCTRL_PIN(62, "ESPI_CSB"),
 PINCTRL_PIN(63, "ESPI_CLK"),
 PINCTRL_PIN(64, "ESPI_RESETB"),
 PINCTRL_PIN(65, "SD3_WP"),
 PINCTRL_PIN(66, "ESPI_CLK_LOOPBK"),
};

static const struct intel_padgroup ehl_community0_gpps[] = {
 EHL_GPP(0, 0, 25), /* GPP_B */
 EHL_GPP(1, 26, 41), /* GPP_T */
 EHL_GPP(2, 42, 66), /* GPP_G */
};

static const struct intel_community ehl_community0[] = {
 EHL_COMMUNITY(0, 0, 66, ehl_community0_gpps),
};

static const struct intel_pinctrl_soc_data ehl_community0_soc_data = {
 .uid = "0",
 .pins = ehl_community0_pins,
 .npins = ARRAY_SIZE(ehl_community0_pins),
 .communities = ehl_community0,
 .ncommunities = ARRAY_SIZE(ehl_community0),
};

static const struct pinctrl_pin_desc ehl_community1_pins[] = {
 /* GPP_V */
 PINCTRL_PIN(0, "EMMC_CMD"),
 PINCTRL_PIN(1, "EMMC_DATA0"),
 PINCTRL_PIN(2, "EMMC_DATA1"),
 PINCTRL_PIN(3, "EMMC_DATA2"),
 PINCTRL_PIN(4, "EMMC_DATA3"),
 PINCTRL_PIN(5, "EMMC_DATA4"),
 PINCTRL_PIN(6, "EMMC_DATA5"),
 PINCTRL_PIN(7, "EMMC_DATA6"),
 PINCTRL_PIN(8, "EMMC_DATA7"),
 PINCTRL_PIN(9, "EMMC_RCLK"),
 PINCTRL_PIN(10, "EMMC_CLK"),
 PINCTRL_PIN(11, "EMMC_RESETB"),
 PINCTRL_PIN(12, "OSE_TGPIO0"),
 PINCTRL_PIN(13, "OSE_TGPIO1"),
 PINCTRL_PIN(14, "OSE_TGPIO2"),
 PINCTRL_PIN(15, "OSE_TGPIO3"),
 /* GPP_H */
 PINCTRL_PIN(16, "RGMII1_INT"),
 PINCTRL_PIN(17, "RGMII1_RESETB"),
 PINCTRL_PIN(18, "RGMII1_AUXTS"),
 PINCTRL_PIN(19, "RGMII1_PPS"),
 PINCTRL_PIN(20, "I2C2_SDA"),
 PINCTRL_PIN(21, "I2C2_SCL"),
 PINCTRL_PIN(22, "I2C3_SDA"),
 PINCTRL_PIN(23, "I2C3_SCL"),
 PINCTRL_PIN(24, "I2C4_SDA"),
 PINCTRL_PIN(25, "I2C4_SCL"),
 PINCTRL_PIN(26, "SRCCLKREQB_4"),
 PINCTRL_PIN(27, "SRCCLKREQB_5"),
 PINCTRL_PIN(28, "OSE_UART1_RXD"),
 PINCTRL_PIN(29, "OSE_UART1_TXD"),
 PINCTRL_PIN(30, "GPPC_H_14"),
 PINCTRL_PIN(31, "OSE_UART1_CTSB"),
 PINCTRL_PIN(32, "PCIE_LNK_DOWN"),
 PINCTRL_PIN(33, "SD_PWR_EN_B"),
 PINCTRL_PIN(34, "CPU_C10_GATEB"),
 PINCTRL_PIN(35, "GPPC_H_19"),
 PINCTRL_PIN(36, "OSE_PWM7"),
 PINCTRL_PIN(37, "OSE_HSUART1_DE"),
 PINCTRL_PIN(38, "OSE_HSUART1_RE"),
 PINCTRL_PIN(39, "OSE_HSUART1_EN"),
 /* GPP_D */
 PINCTRL_PIN(40, "OSE_QEPA_0"),
 PINCTRL_PIN(41, "OSE_QEPB_0"),
 PINCTRL_PIN(42, "OSE_QEPI_0"),
 PINCTRL_PIN(43, "OSE_PWM6"),
 PINCTRL_PIN(44, "OSE_PWM2"),
 PINCTRL_PIN(45, "SRCCLKREQB_0"),
 PINCTRL_PIN(46, "SRCCLKREQB_1"),
 PINCTRL_PIN(47, "SRCCLKREQB_2"),
 PINCTRL_PIN(48, "SRCCLKREQB_3"),
 PINCTRL_PIN(49, "OSE_SPI0_CSB"),
 PINCTRL_PIN(50, "OSE_SPI0_SCLK"),
 PINCTRL_PIN(51, "OSE_SPI0_MISO"),
 PINCTRL_PIN(52, "OSE_SPI0_MOSI"),
 PINCTRL_PIN(53, "OSE_QEPA_1"),
 PINCTRL_PIN(54, "OSE_QEPB_1"),
 PINCTRL_PIN(55, "OSE_PWM3"),
 PINCTRL_PIN(56, "OSE_QEPI_1"),
 PINCTRL_PIN(57, "OSE_PWM4"),
 PINCTRL_PIN(58, "OSE_PWM5"),
 PINCTRL_PIN(59, "I2S_MCLK1_OUT"),
 PINCTRL_PIN(60, "GSPI2_CLK_LOOPBK"),
 /* GPP_U */
 PINCTRL_PIN(61, "RGMII2_INT"),
 PINCTRL_PIN(62, "RGMII2_RESETB"),
 PINCTRL_PIN(63, "RGMII2_PPS"),
 PINCTRL_PIN(64, "RGMII2_AUXTS"),
 PINCTRL_PIN(65, "ISI_SPIM_CS"),
 PINCTRL_PIN(66, "ISI_SPIM_SCLK"),
 PINCTRL_PIN(67, "ISI_SPIM_MISO"),
 PINCTRL_PIN(68, "OSE_QEPA_3"),
 PINCTRL_PIN(69, "ISI_SPIS_CS"),
 PINCTRL_PIN(70, "ISI_SPIS_SCLK"),
 PINCTRL_PIN(71, "ISI_SPIS_MISO"),
 PINCTRL_PIN(72, "OSE_QEPB_3"),
 PINCTRL_PIN(73, "ISI_CHX_OKNOK_0"),
 PINCTRL_PIN(74, "ISI_CHX_OKNOK_1"),
 PINCTRL_PIN(75, "ISI_CHX_RLY_SWTCH"),
 PINCTRL_PIN(76, "ISI_CHX_PMIC_EN"),
 PINCTRL_PIN(77, "ISI_OKNOK_0"),
 PINCTRL_PIN(78, "ISI_OKNOK_1"),
 PINCTRL_PIN(79, "ISI_ALERT"),
 PINCTRL_PIN(80, "OSE_QEPI_3"),
 PINCTRL_PIN(81, "GSPI3_CLK_LOOPBK"),
 PINCTRL_PIN(82, "GSPI4_CLK_LOOPBK"),
 PINCTRL_PIN(83, "GSPI5_CLK_LOOPBK"),
 PINCTRL_PIN(84, "GSPI6_CLK_LOOPBK"),
 /* vGPIO */
 PINCTRL_PIN(85, "CNV_BTEN"),
 PINCTRL_PIN(86, "CNV_BT_HOST_WAKEB"),
 PINCTRL_PIN(87, "CNV_BT_IF_SELECT"),
 PINCTRL_PIN(88, "vCNV_BT_UART_TXD"),
 PINCTRL_PIN(89, "vCNV_BT_UART_RXD"),
 PINCTRL_PIN(90, "vCNV_BT_UART_CTS_B"),
 PINCTRL_PIN(91, "vCNV_BT_UART_RTS_B"),
 PINCTRL_PIN(92, "vCNV_MFUART1_TXD"),
 PINCTRL_PIN(93, "vCNV_MFUART1_RXD"),
 PINCTRL_PIN(94, "vCNV_MFUART1_CTS_B"),
 PINCTRL_PIN(95, "vCNV_MFUART1_RTS_B"),
 PINCTRL_PIN(96, "vUART0_TXD"),
 PINCTRL_PIN(97, "vUART0_RXD"),
 PINCTRL_PIN(98, "vUART0_CTS_B"),
 PINCTRL_PIN(99, "vUART0_RTS_B"),
 PINCTRL_PIN(100, "vOSE_UART0_TXD"),
 PINCTRL_PIN(101, "vOSE_UART0_RXD"),
 PINCTRL_PIN(102, "vOSE_UART0_CTS_B"),
 PINCTRL_PIN(103, "vOSE_UART0_RTS_B"),
 PINCTRL_PIN(104, "vCNV_BT_I2S_BCLK"),
 PINCTRL_PIN(105, "vCNV_BT_I2S_WS_SYNC"),
 PINCTRL_PIN(106, "vCNV_BT_I2S_SDO"),
 PINCTRL_PIN(107, "vCNV_BT_I2S_SDI"),
 PINCTRL_PIN(108, "vI2S2_SCLK"),
 PINCTRL_PIN(109, "vI2S2_SFRM"),
 PINCTRL_PIN(110, "vI2S2_TXD"),
 PINCTRL_PIN(111, "vI2S2_RXD"),
 PINCTRL_PIN(112, "vSD3_CD_B"),
};

static const struct intel_padgroup ehl_community1_gpps[] = {
 EHL_GPP(0, 0, 15), /* GPP_V */
 EHL_GPP(1, 16, 39), /* GPP_H */
 EHL_GPP(2, 40, 60), /* GPP_D */
 EHL_GPP(3, 61, 84), /* GPP_U */
 EHL_GPP(4, 85, 112), /* vGPIO */
};

static const struct intel_community ehl_community1[] = {
 EHL_COMMUNITY(0, 0, 112, ehl_community1_gpps),
};

static const struct intel_pinctrl_soc_data ehl_community1_soc_data = {
 .uid = "1",
 .pins = ehl_community1_pins,
 .npins = ARRAY_SIZE(ehl_community1_pins),
 .communities = ehl_community1,
 .ncommunities = ARRAY_SIZE(ehl_community1),
};

static const struct pinctrl_pin_desc ehl_community2_pins[] = {
 /* DSW */
 PINCTRL_PIN(0, "BATLOWB"),
 PINCTRL_PIN(1, "ACPRESENT"),
 PINCTRL_PIN(2, "LAN_WAKEB"),
 PINCTRL_PIN(3, "PWRBTNB"),
 PINCTRL_PIN(4, "SLP_S3B"),
 PINCTRL_PIN(5, "SLP_S4B"),
 PINCTRL_PIN(6, "SLP_AB"),
 PINCTRL_PIN(7, "GPD_7"),
 PINCTRL_PIN(8, "SUSCLK"),
 PINCTRL_PIN(9, "SLP_WLANB"),
 PINCTRL_PIN(10, "SLP_S5B"),
 PINCTRL_PIN(11, "LANPHYPC"),
 PINCTRL_PIN(12, "INPUT3VSEL"),
 PINCTRL_PIN(13, "SLP_LANB"),
 PINCTRL_PIN(14, "SLP_SUSB"),
 PINCTRL_PIN(15, "WAKEB"),
 PINCTRL_PIN(16, "DRAM_RESETB"),
};

static const struct intel_padgroup ehl_community2_gpps[] = {
 EHL_GPP(0, 0, 16), /* DSW */
};

static const struct intel_community ehl_community2[] = {
 EHL_COMMUNITY(0, 0, 16, ehl_community2_gpps),
};

static const struct intel_pinctrl_soc_data ehl_community2_soc_data = {
 .uid = "2",
 .pins = ehl_community2_pins,
 .npins = ARRAY_SIZE(ehl_community2_pins),
 .communities = ehl_community2,
 .ncommunities = ARRAY_SIZE(ehl_community2),
};

static const struct pinctrl_pin_desc ehl_community3_pins[] = {
 /* CPU */
 PINCTRL_PIN(0, "HDACPU_SDI"),
 PINCTRL_PIN(1, "HDACPU_SDO"),
 PINCTRL_PIN(2, "HDACPU_BCLK"),
 PINCTRL_PIN(3, "PM_SYNC"),
 PINCTRL_PIN(4, "PECI"),
 PINCTRL_PIN(5, "CPUPWRGD"),
 PINCTRL_PIN(6, "THRMTRIPB"),
 PINCTRL_PIN(7, "PLTRST_CPUB"),
 PINCTRL_PIN(8, "PM_DOWN"),
 PINCTRL_PIN(9, "TRIGGER_IN"),
 PINCTRL_PIN(10, "TRIGGER_OUT"),
 PINCTRL_PIN(11, "UFS_RESETB"),
 PINCTRL_PIN(12, "CLKOUT_CPURTC"),
 PINCTRL_PIN(13, "VCCST_OVERRIDE"),
 PINCTRL_PIN(14, "C10_WAKE"),
 PINCTRL_PIN(15, "PROCHOTB"),
 PINCTRL_PIN(16, "CATERRB"),
 /* GPP_S */
 PINCTRL_PIN(17, "UFS_REF_CLK_0"),
 PINCTRL_PIN(18, "UFS_REF_CLK_1"),
 /* GPP_A */
 PINCTRL_PIN(19, "RGMII0_TXDATA_3"),
 PINCTRL_PIN(20, "RGMII0_TXDATA_2"),
 PINCTRL_PIN(21, "RGMII0_TXDATA_1"),
 PINCTRL_PIN(22, "RGMII0_TXDATA_0"),
 PINCTRL_PIN(23, "RGMII0_TXCLK"),
 PINCTRL_PIN(24, "RGMII0_TXCTL"),
 PINCTRL_PIN(25, "RGMII0_RXCLK"),
 PINCTRL_PIN(26, "RGMII0_RXDATA_3"),
 PINCTRL_PIN(27, "RGMII0_RXDATA_2"),
 PINCTRL_PIN(28, "RGMII0_RXDATA_1"),
 PINCTRL_PIN(29, "RGMII0_RXDATA_0"),
 PINCTRL_PIN(30, "RGMII1_TXDATA_3"),
 PINCTRL_PIN(31, "RGMII1_TXDATA_2"),
 PINCTRL_PIN(32, "RGMII1_TXDATA_1"),
 PINCTRL_PIN(33, "RGMII1_TXDATA_0"),
 PINCTRL_PIN(34, "RGMII1_TXCLK"),
 PINCTRL_PIN(35, "RGMII1_TXCTL"),
 PINCTRL_PIN(36, "RGMII1_RXCLK"),
 PINCTRL_PIN(37, "RGMII1_RXCTL"),
 PINCTRL_PIN(38, "RGMII1_RXDATA_3"),
 PINCTRL_PIN(39, "RGMII1_RXDATA_2"),
 PINCTRL_PIN(40, "RGMII1_RXDATA_1"),
 PINCTRL_PIN(41, "RGMII1_RXDATA_0"),
 PINCTRL_PIN(42, "RGMII0_RXCTL"),
 /* vGPIO_3 */
 PINCTRL_PIN(43, "ESPI_USB_OCB_0"),
 PINCTRL_PIN(44, "ESPI_USB_OCB_1"),
 PINCTRL_PIN(45, "ESPI_USB_OCB_2"),
 PINCTRL_PIN(46, "ESPI_USB_OCB_3"),
};

static const struct intel_padgroup ehl_community3_gpps[] = {
 EHL_GPP(0, 0, 16), /* CPU */
 EHL_GPP(1, 17, 18), /* GPP_S */
 EHL_GPP(2, 19, 42), /* GPP_A */
 EHL_GPP(3, 43, 46), /* vGPIO_3 */
};

static const struct intel_community ehl_community3[] = {
 EHL_COMMUNITY(0, 0, 46, ehl_community3_gpps),
};

static const struct intel_pinctrl_soc_data ehl_community3_soc_data = {
 .uid = "3",
 .pins = ehl_community3_pins,
 .npins = ARRAY_SIZE(ehl_community3_pins),
 .communities = ehl_community3,
 .ncommunities = ARRAY_SIZE(ehl_community3),
};

static const struct pinctrl_pin_desc ehl_community4_pins[] = {
 /* GPP_C */
 PINCTRL_PIN(0, "SMBCLK"),
 PINCTRL_PIN(1, "SMBDATA"),
 PINCTRL_PIN(2, "OSE_PWM0"),
 PINCTRL_PIN(3, "RGMII0_MDC"),
 PINCTRL_PIN(4, "RGMII0_MDIO"),
 PINCTRL_PIN(5, "OSE_PWM1"),
 PINCTRL_PIN(6, "RGMII1_MDC"),
 PINCTRL_PIN(7, "RGMII1_MDIO"),
 PINCTRL_PIN(8, "OSE_TGPIO4"),
 PINCTRL_PIN(9, "OSE_HSUART0_EN"),
 PINCTRL_PIN(10, "OSE_TGPIO5"),
 PINCTRL_PIN(11, "OSE_HSUART0_RE"),
 PINCTRL_PIN(12, "OSE_UART0_RXD"),
 PINCTRL_PIN(13, "OSE_UART0_TXD"),
 PINCTRL_PIN(14, "OSE_UART0_RTSB"),
 PINCTRL_PIN(15, "OSE_UART0_CTSB"),
 PINCTRL_PIN(16, "RGMII2_MDIO"),
 PINCTRL_PIN(17, "RGMII2_MDC"),
 PINCTRL_PIN(18, "OSE_I2C4_SDAT"),
 PINCTRL_PIN(19, "OSE_I2C4_SCLK"),
 PINCTRL_PIN(20, "OSE_UART4_RXD"),
 PINCTRL_PIN(21, "OSE_UART4_TXD"),
 PINCTRL_PIN(22, "OSE_UART4_RTSB"),
 PINCTRL_PIN(23, "OSE_UART4_CTSB"),
 /* GPP_F */
 PINCTRL_PIN(24, "CNV_BRI_DT"),
 PINCTRL_PIN(25, "CNV_BRI_RSP"),
 PINCTRL_PIN(26, "CNV_RGI_DT"),
 PINCTRL_PIN(27, "CNV_RGI_RSP"),
 PINCTRL_PIN(28, "CNV_RF_RESET_B"),
 PINCTRL_PIN(29, "EMMC_HIP_MON"),
 PINCTRL_PIN(30, "CNV_PA_BLANKING"),
 PINCTRL_PIN(31, "OSE_I2S1_SCLK"),
 PINCTRL_PIN(32, "I2S_MCLK2_INOUT"),
 PINCTRL_PIN(33, "BOOTMPC"),
 PINCTRL_PIN(34, "OSE_I2S1_SFRM"),
 PINCTRL_PIN(35, "GPPC_F_11"),
 PINCTRL_PIN(36, "GSXDOUT"),
 PINCTRL_PIN(37, "GSXSLOAD"),
 PINCTRL_PIN(38, "GSXDIN"),
 PINCTRL_PIN(39, "GSXSRESETB"),
 PINCTRL_PIN(40, "GSXCLK"),
 PINCTRL_PIN(41, "GPPC_F_17"),
 PINCTRL_PIN(42, "OSE_I2S1_TXD"),
 PINCTRL_PIN(43, "OSE_I2S1_RXD"),
 PINCTRL_PIN(44, "EXT_PWR_GATEB"),
 PINCTRL_PIN(45, "EXT_PWR_GATE2B"),
 PINCTRL_PIN(46, "VNN_CTRL"),
 PINCTRL_PIN(47, "V1P05_CTRL"),
 PINCTRL_PIN(48, "GPPF_CLK_LOOPBACK"),
 /* HVCMOS */
 PINCTRL_PIN(49, "L_BKLTEN"),
 PINCTRL_PIN(50, "L_BKLTCTL"),
 PINCTRL_PIN(51, "L_VDDEN"),
 PINCTRL_PIN(52, "SYS_PWROK"),
 PINCTRL_PIN(53, "SYS_RESETB"),
 PINCTRL_PIN(54, "MLK_RSTB"),
 /* GPP_E */
 PINCTRL_PIN(55, "SATA_LEDB"),
 PINCTRL_PIN(56, "GPPC_E_1"),
 PINCTRL_PIN(57, "GPPC_E_2"),
 PINCTRL_PIN(58, "DDSP_HPD_B"),
 PINCTRL_PIN(59, "SATA_DEVSLP_0"),
 PINCTRL_PIN(60, "DDPB_CTRLDATA"),
 PINCTRL_PIN(61, "GPPC_E_6"),
 PINCTRL_PIN(62, "DDPB_CTRLCLK"),
 PINCTRL_PIN(63, "GPPC_E_8"),
 PINCTRL_PIN(64, "USB2_OCB_0"),
 PINCTRL_PIN(65, "GPPC_E_10"),
 PINCTRL_PIN(66, "GPPC_E_11"),
 PINCTRL_PIN(67, "GPPC_E_12"),
 PINCTRL_PIN(68, "GPPC_E_13"),
 PINCTRL_PIN(69, "DDSP_HPD_A"),
 PINCTRL_PIN(70, "OSE_I2S0_RXD"),
 PINCTRL_PIN(71, "OSE_I2S0_TXD"),
 PINCTRL_PIN(72, "DDSP_HPD_C"),
 PINCTRL_PIN(73, "DDPA_CTRLDATA"),
 PINCTRL_PIN(74, "DDPA_CTRLCLK"),
 PINCTRL_PIN(75, "OSE_I2S0_SCLK"),
 PINCTRL_PIN(76, "OSE_I2S0_SFRM"),
 PINCTRL_PIN(77, "DDPC_CTRLDATA"),
 PINCTRL_PIN(78, "DDPC_CTRLCLK"),
 PINCTRL_PIN(79, "SPI1_CLK_LOOPBK"),
};

static const struct intel_padgroup ehl_community4_gpps[] = {
 EHL_GPP(0, 0, 23), /* GPP_C */
 EHL_GPP(1, 24, 48), /* GPP_F */
 EHL_GPP(2, 49, 54), /* HVCMOS */
 EHL_GPP(3, 55, 79), /* GPP_E */
};

static const struct intel_community ehl_community4[] = {
 EHL_COMMUNITY(0, 0, 79, ehl_community4_gpps),
};

static const struct intel_pinctrl_soc_data ehl_community4_soc_data = {
 .uid = "4",
 .pins = ehl_community4_pins,
 .npins = ARRAY_SIZE(ehl_community4_pins),
 .communities = ehl_community4,
 .ncommunities = ARRAY_SIZE(ehl_community4),
};

static const struct pinctrl_pin_desc ehl_community5_pins[] = {
 /* GPP_R */
 PINCTRL_PIN(0, "HDA_BCLK"),
 PINCTRL_PIN(1, "HDA_SYNC"),
 PINCTRL_PIN(2, "HDA_SDO"),
 PINCTRL_PIN(3, "HDA_SDI_0"),
 PINCTRL_PIN(4, "HDA_RSTB"),
 PINCTRL_PIN(5, "HDA_SDI_1"),
 PINCTRL_PIN(6, "GPP_R_6"),
 PINCTRL_PIN(7, "GPP_R_7"),
};

static const struct intel_padgroup ehl_community5_gpps[] = {
 EHL_GPP(0, 0, 7), /* GPP_R */
};

static const struct intel_community ehl_community5[] = {
 EHL_COMMUNITY(0, 0, 7, ehl_community5_gpps),
};

static const struct intel_pinctrl_soc_data ehl_community5_soc_data = {
 .uid = "5",
 .pins = ehl_community5_pins,
 .npins = ARRAY_SIZE(ehl_community5_pins),
 .communities = ehl_community5,
 .ncommunities = ARRAY_SIZE(ehl_community5),
};

static const struct intel_pinctrl_soc_data *ehl_soc_data_array[] = {
 &ehl_community0_soc_data,
 &ehl_community1_soc_data,
 &ehl_community2_soc_data,
 &ehl_community3_soc_data,
 &ehl_community4_soc_data,
 &ehl_community5_soc_data,
 NULL
};

static const struct acpi_device_id ehl_pinctrl_acpi_match[] = {
 { "INTC1020", (kernel_ulong_t)ehl_soc_data_array },
 { }
};
MODULE_DEVICE_TABLE(acpi, ehl_pinctrl_acpi_match);

static struct platform_driver ehl_pinctrl_driver = {
 .probe = intel_pinctrl_probe_by_uid,
 .driver = {
  .name = "elkhartlake-pinctrl",
  .acpi_match_table = ehl_pinctrl_acpi_match,
  .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
 },
};
module_platform_driver(ehl_pinctrl_driver);

MODULE_AUTHOR("Andy Shevchenko ");
MODULE_DESCRIPTION("Intel Elkhart Lake PCH pinctrl/GPIO driver");
MODULE_LICENSE("GPL v2");
MODULE_IMPORT_NS("PINCTRL_INTEL");

Messung V0.5
C=41 H=97 G=74

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.