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 10 kB image not shown  

Quelle  pinctrl-cedarfork.c   Sprache: C

 
// SPDX-License-Identifier: GPL-2.0
/*
 * Intel Cedar Fork PCH pinctrl/GPIO driver
 *
 * Copyright (C) 2017, Intel Corporation
 * Author: Mika Westerberg <mika.westerberg@linux.intel.com>
 */


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

#include <linux/pinctrl/pinctrl.h>

#include "pinctrl-intel.h"

#define CDF_PAD_OWN 0x020
#define CDF_PADCFGLOCK 0x0c0
#define CDF_HOSTSW_OWN 0x120
#define CDF_GPI_IS 0x200
#define CDF_GPI_IE 0x230

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

#define CDF_COMMUNITY(b, s, e, g)   \
 INTEL_COMMUNITY_GPPS(b, s, e, g, CDF)

/* Cedar Fork PCH */
static const struct pinctrl_pin_desc cdf_pins[] = {
 /* WEST2 */
 PINCTRL_PIN(0, "GBE_SDP_TIMESYNC0_S2N"),
 PINCTRL_PIN(1, "GBE_SDP_TIMESYNC1_S2N"),
 PINCTRL_PIN(2, "GBE_SDP_TIMESYNC2_S2N"),
 PINCTRL_PIN(3, "GBE_SDP_TIMESYNC3_S2N"),
 PINCTRL_PIN(4, "GBE0_I2C_CLK"),
 PINCTRL_PIN(5, "GBE0_I2C_DATA"),
 PINCTRL_PIN(6, "GBE1_I2C_CLK"),
 PINCTRL_PIN(7, "GBE1_I2C_DATA"),
 PINCTRL_PIN(8, "GBE2_I2C_CLK"),
 PINCTRL_PIN(9, "GBE2_I2C_DATA"),
 PINCTRL_PIN(10, "GBE3_I2C_CLK"),
 PINCTRL_PIN(11, "GBE3_I2C_DATA"),
 PINCTRL_PIN(12, "GBE0_LED0"),
 PINCTRL_PIN(13, "GBE0_LED1"),
 PINCTRL_PIN(14, "GBE0_LED2"),
 PINCTRL_PIN(15, "GBE1_LED0"),
 PINCTRL_PIN(16, "GBE1_LED1"),
 PINCTRL_PIN(17, "GBE1_LED2"),
 PINCTRL_PIN(18, "GBE2_LED0"),
 PINCTRL_PIN(19, "GBE2_LED1"),
 PINCTRL_PIN(20, "GBE2_LED2"),
 PINCTRL_PIN(21, "GBE3_LED0"),
 PINCTRL_PIN(22, "GBE3_LED1"),
 PINCTRL_PIN(23, "GBE3_LED2"),
 /* WEST3 */
 PINCTRL_PIN(24, "NCSI_RXD0"),
 PINCTRL_PIN(25, "NCSI_CLK_IN"),
 PINCTRL_PIN(26, "NCSI_RXD1"),
 PINCTRL_PIN(27, "NCSI_CRS_DV"),
 PINCTRL_PIN(28, "NCSI_ARB_IN"),
 PINCTRL_PIN(29, "NCSI_TX_EN"),
 PINCTRL_PIN(30, "NCSI_TXD0"),
 PINCTRL_PIN(31, "NCSI_TXD1"),
 PINCTRL_PIN(32, "NCSI_ARB_OUT"),
 PINCTRL_PIN(33, "GBE_SMB_CLK"),
 PINCTRL_PIN(34, "GBE_SMB_DATA"),
 PINCTRL_PIN(35, "GBE_SMB_ALRT_N"),
 PINCTRL_PIN(36, "THERMTRIP_N"),
 PINCTRL_PIN(37, "PCHHOT_N"),
 PINCTRL_PIN(38, "ERROR0_N"),
 PINCTRL_PIN(39, "ERROR1_N"),
 PINCTRL_PIN(40, "ERROR2_N"),
 PINCTRL_PIN(41, "MSMI_N"),
 PINCTRL_PIN(42, "CATERR_N"),
 PINCTRL_PIN(43, "MEMTRIP_N"),
 PINCTRL_PIN(44, "UART0_RXD"),
 PINCTRL_PIN(45, "UART0_TXD"),
 PINCTRL_PIN(46, "GBE_UART_RXD"),
 PINCTRL_PIN(47, "GBE_UART_TXD"),
 /* WEST01 */
 PINCTRL_PIN(48, "GBE_GPIO13"),
 PINCTRL_PIN(49, "AUX_PWR"),
 PINCTRL_PIN(50, "UART0_RTS"),
 PINCTRL_PIN(51, "UART0_CTS"),
 PINCTRL_PIN(52, "FAN_PWM_0"),
 PINCTRL_PIN(53, "FAN_PWM_1"),
 PINCTRL_PIN(54, "FAN_PWM_2"),
 PINCTRL_PIN(55, "FAN_PWM_3"),
 PINCTRL_PIN(56, "FAN_TACH_0"),
 PINCTRL_PIN(57, "FAN_TACH_1"),
 PINCTRL_PIN(58, "FAN_TACH_2"),
 PINCTRL_PIN(59, "FAN_TACH_3"),
 PINCTRL_PIN(60, "ME_SMB0_CLK"),
 PINCTRL_PIN(61, "ME_SMB0_DATA"),
 PINCTRL_PIN(62, "ME_SMB0_ALRT_N"),
 PINCTRL_PIN(63, "ME_SMB1_CLK"),
 PINCTRL_PIN(64, "ME_SMB1_DATA"),
 PINCTRL_PIN(65, "ME_SMB1_ALRT_N"),
 PINCTRL_PIN(66, "ME_SMB2_CLK"),
 PINCTRL_PIN(67, "ME_SMB2_DATA"),
 PINCTRL_PIN(68, "ME_SMB2_ALRT_N"),
 PINCTRL_PIN(69, "GBE_MNG_I2C_CLK"),
 PINCTRL_PIN(70, "GBE_MNG_I2C_DATA"),
 /* WEST5 */
 PINCTRL_PIN(71, "IE_UART_RXD"),
 PINCTRL_PIN(72, "IE_UART_TXD"),
 PINCTRL_PIN(73, "VPP_SMB_CLK"),
 PINCTRL_PIN(74, "VPP_SMB_DATA"),
 PINCTRL_PIN(75, "VPP_SMB_ALRT_N"),
 PINCTRL_PIN(76, "PCIE_CLKREQ0_N"),
 PINCTRL_PIN(77, "PCIE_CLKREQ1_N"),
 PINCTRL_PIN(78, "PCIE_CLKREQ2_N"),
 PINCTRL_PIN(79, "PCIE_CLKREQ3_N"),
 PINCTRL_PIN(80, "PCIE_CLKREQ4_N"),
 PINCTRL_PIN(81, "PCIE_CLKREQ5_N"),
 PINCTRL_PIN(82, "PCIE_CLKREQ6_N"),
 PINCTRL_PIN(83, "PCIE_CLKREQ7_N"),
 PINCTRL_PIN(84, "PCIE_CLKREQ8_N"),
 PINCTRL_PIN(85, "PCIE_CLKREQ9_N"),
 PINCTRL_PIN(86, "FLEX_CLK_SE0"),
 PINCTRL_PIN(87, "FLEX_CLK_SE1"),
 PINCTRL_PIN(88, "FLEX_CLK1_50"),
 PINCTRL_PIN(89, "FLEX_CLK2_50"),
 PINCTRL_PIN(90, "FLEX_CLK_125"),
 /* WESTC */
 PINCTRL_PIN(91, "TCK_PCH"),
 PINCTRL_PIN(92, "JTAGX_PCH"),
 PINCTRL_PIN(93, "TRST_N_PCH"),
 PINCTRL_PIN(94, "TMS_PCH"),
 PINCTRL_PIN(95, "TDI_PCH"),
 PINCTRL_PIN(96, "TDO_PCH"),
 /* WESTC_DFX */
 PINCTRL_PIN(97, "CX_PRDY_N"),
 PINCTRL_PIN(98, "CX_PREQ_N"),
 PINCTRL_PIN(99, "CPU_FBREAK_OUT_N"),
 PINCTRL_PIN(100, "TRIGGER0_N"),
 PINCTRL_PIN(101, "TRIGGER1_N"),
 /* WESTA */
 PINCTRL_PIN(102, "DBG_PTI_CLK0"),
 PINCTRL_PIN(103, "DBG_PTI_CLK3"),
 PINCTRL_PIN(104, "DBG_PTI_DATA0"),
 PINCTRL_PIN(105, "DBG_PTI_DATA1"),
 PINCTRL_PIN(106, "DBG_PTI_DATA2"),
 PINCTRL_PIN(107, "DBG_PTI_DATA3"),
 PINCTRL_PIN(108, "DBG_PTI_DATA4"),
 PINCTRL_PIN(109, "DBG_PTI_DATA5"),
 PINCTRL_PIN(110, "DBG_PTI_DATA6"),
 PINCTRL_PIN(111, "DBG_PTI_DATA7"),
 /* WESTB */
 PINCTRL_PIN(112, "DBG_PTI_DATA8"),
 PINCTRL_PIN(113, "DBG_PTI_DATA9"),
 PINCTRL_PIN(114, "DBG_PTI_DATA10"),
 PINCTRL_PIN(115, "DBG_PTI_DATA11"),
 PINCTRL_PIN(116, "DBG_PTI_DATA12"),
 PINCTRL_PIN(117, "DBG_PTI_DATA13"),
 PINCTRL_PIN(118, "DBG_PTI_DATA14"),
 PINCTRL_PIN(119, "DBG_PTI_DATA15"),
 PINCTRL_PIN(120, "DBG_SPARE0"),
 PINCTRL_PIN(121, "DBG_SPARE1"),
 PINCTRL_PIN(122, "DBG_SPARE2"),
 PINCTRL_PIN(123, "DBG_SPARE3"),
 /* WESTD */
 PINCTRL_PIN(124, "CPU_PWR_GOOD"),
 PINCTRL_PIN(125, "PLTRST_CPU_N"),
 PINCTRL_PIN(126, "NAC_RESET_NAC_N"),
 PINCTRL_PIN(127, "PCH_SBLINK_RX"),
 PINCTRL_PIN(128, "PCH_SBLINK_TX"),
 PINCTRL_PIN(129, "PMSYNC_CLK"),
 PINCTRL_PIN(130, "CPU_ERR0_N"),
 PINCTRL_PIN(131, "CPU_ERR1_N"),
 PINCTRL_PIN(132, "CPU_ERR2_N"),
 PINCTRL_PIN(133, "CPU_THERMTRIP_N"),
 PINCTRL_PIN(134, "CPU_MSMI_N"),
 PINCTRL_PIN(135, "CPU_CATERR_N"),
 PINCTRL_PIN(136, "CPU_MEMTRIP_N"),
 PINCTRL_PIN(137, "NAC_GR_N"),
 PINCTRL_PIN(138, "NAC_XTAL_VALID"),
 PINCTRL_PIN(139, "NAC_WAKE_N"),
 PINCTRL_PIN(140, "NAC_SBLINK_CLK_S2N"),
 PINCTRL_PIN(141, "NAC_SBLINK_N2S"),
 PINCTRL_PIN(142, "NAC_SBLINK_S2N"),
 PINCTRL_PIN(143, "NAC_SBLINK_CLK_N2S"),
 /* WESTD_PECI */
 PINCTRL_PIN(144, "ME_PECI"),
 /* WESTF */
 PINCTRL_PIN(145, "NAC_RMII_CLK"),
 PINCTRL_PIN(146, "NAC_RGMII_CLK"),
 PINCTRL_PIN(147, "NAC_GBE_SMB_CLK_TX_N2S"),
 PINCTRL_PIN(148, "NAC_GBE_SMB_DATA_TX_N2S"),
 PINCTRL_PIN(149, "NAC_SPARE2"),
 PINCTRL_PIN(150, "NAC_INIT_SX_WAKE_N"),
 PINCTRL_PIN(151, "NAC_GBE_GPIO0_S2N"),
 PINCTRL_PIN(152, "NAC_GBE_GPIO1_S2N"),
 PINCTRL_PIN(153, "NAC_GBE_GPIO2_S2N"),
 PINCTRL_PIN(154, "NAC_GBE_GPIO3_S2N"),
 PINCTRL_PIN(155, "NAC_NCSI_RXD0"),
 PINCTRL_PIN(156, "NAC_NCSI_CLK_IN"),
 PINCTRL_PIN(157, "NAC_NCSI_RXD1"),
 PINCTRL_PIN(158, "NAC_NCSI_CRS_DV"),
 PINCTRL_PIN(159, "NAC_NCSI_ARB_IN"),
 PINCTRL_PIN(160, "NAC_NCSI_TX_EN"),
 PINCTRL_PIN(161, "NAC_NCSI_TXD0"),
 PINCTRL_PIN(162, "NAC_NCSI_TXD1"),
 PINCTRL_PIN(163, "NAC_NCSI_ARB_OUT"),
 PINCTRL_PIN(164, "NAC_NCSI_OE_N"),
 PINCTRL_PIN(165, "NAC_GBE_SMB_CLK_RX_S2N"),
 PINCTRL_PIN(166, "NAC_GBE_SMB_DATA_RX_S2N"),
 PINCTRL_PIN(167, "NAC_GBE_SMB_ALRT_N"),
 /* EAST2 */
 PINCTRL_PIN(168, "USB_OC0_N"),
 PINCTRL_PIN(169, "GBE_GPIO0"),
 PINCTRL_PIN(170, "GBE_GPIO1"),
 PINCTRL_PIN(171, "GBE_GPIO2"),
 PINCTRL_PIN(172, "GBE_GPIO3"),
 PINCTRL_PIN(173, "GBE_GPIO4"),
 PINCTRL_PIN(174, "GBE_GPIO5"),
 PINCTRL_PIN(175, "GBE_GPIO6"),
 PINCTRL_PIN(176, "GBE_GPIO7"),
 PINCTRL_PIN(177, "SPI_TPM_CS_N"),
 PINCTRL_PIN(178, "GBE_GPIO9"),
 PINCTRL_PIN(179, "GBE_GPIO10"),
 PINCTRL_PIN(180, "GBE_GPIO11"),
 PINCTRL_PIN(181, "GBE_GPIO12"),
 PINCTRL_PIN(182, "PECI_SMB_DATA"),
 PINCTRL_PIN(183, "SATA0_LED_N"),
 PINCTRL_PIN(184, "SATA1_LED_N"),
 PINCTRL_PIN(185, "SATA_PDETECT0"),
 PINCTRL_PIN(186, "SATA_PDETECT1"),
 PINCTRL_PIN(187, "SATA0_SDOUT"),
 PINCTRL_PIN(188, "SATA1_SDOUT"),
 PINCTRL_PIN(189, "SATA2_LED_N"),
 PINCTRL_PIN(190, "SATA_PDETECT2"),
 PINCTRL_PIN(191, "SATA2_SDOUT"),
 /* EAST3 */
 PINCTRL_PIN(192, "ESPI_IO0"),
 PINCTRL_PIN(193, "ESPI_IO1"),
 PINCTRL_PIN(194, "ESPI_IO2"),
 PINCTRL_PIN(195, "ESPI_IO3"),
 PINCTRL_PIN(196, "ESPI_CLK"),
 PINCTRL_PIN(197, "ESPI_RST_N"),
 PINCTRL_PIN(198, "ESPI_CS0_N"),
 PINCTRL_PIN(199, "ESPI_ALRT0_N"),
 PINCTRL_PIN(200, "ESPI_CS1_N"),
 PINCTRL_PIN(201, "ESPI_ALRT1_N"),
 PINCTRL_PIN(202, "ESPI_CLK_LOOPBK"),
 /* EAST0 */
 PINCTRL_PIN(203, "SPI_CS0_N"),
 PINCTRL_PIN(204, "SPI_CS1_N"),
 PINCTRL_PIN(205, "SPI_MOSI_IO0"),
 PINCTRL_PIN(206, "SPI_MISO_IO1"),
 PINCTRL_PIN(207, "SPI_IO2"),
 PINCTRL_PIN(208, "SPI_IO3"),
 PINCTRL_PIN(209, "SPI_CLK"),
 PINCTRL_PIN(210, "SPI_CLK_LOOPBK"),
 PINCTRL_PIN(211, "SUSPWRDNACK"),
 PINCTRL_PIN(212, "PMU_SUSCLK"),
 PINCTRL_PIN(213, "ADR_COMPLETE"),
 PINCTRL_PIN(214, "ADR_TRIGGER_N"),
 PINCTRL_PIN(215, "PMU_SLP_S45_N"),
 PINCTRL_PIN(216, "PMU_SLP_S3_N"),
 PINCTRL_PIN(217, "PMU_WAKE_N"),
 PINCTRL_PIN(218, "PMU_PWRBTN_N"),
 PINCTRL_PIN(219, "PMU_RESETBUTTON_N"),
 PINCTRL_PIN(220, "PMU_PLTRST_N"),
 PINCTRL_PIN(221, "SUS_STAT_N"),
 PINCTRL_PIN(222, "PMU_I2C_CLK"),
 PINCTRL_PIN(223, "PMU_I2C_DATA"),
 PINCTRL_PIN(224, "PECI_SMB_CLK"),
 PINCTRL_PIN(225, "PECI_SMB_ALRT_N"),
 /* EMMC */
 PINCTRL_PIN(226, "EMMC_CMD"),
 PINCTRL_PIN(227, "EMMC_STROBE"),
 PINCTRL_PIN(228, "EMMC_CLK"),
 PINCTRL_PIN(229, "EMMC_D0"),
 PINCTRL_PIN(230, "EMMC_D1"),
 PINCTRL_PIN(231, "EMMC_D2"),
 PINCTRL_PIN(232, "EMMC_D3"),
 PINCTRL_PIN(233, "EMMC_D4"),
 PINCTRL_PIN(234, "EMMC_D5"),
 PINCTRL_PIN(235, "EMMC_D6"),
 PINCTRL_PIN(236, "EMMC_D7"),
};

static const struct intel_padgroup cdf_community0_gpps[] = {
 CDF_GPP(0, 0, 23), /* WEST2 */
 CDF_GPP(1, 24, 47), /* WEST3 */
 CDF_GPP(2, 48, 70), /* WEST01 */
 CDF_GPP(3, 71, 90), /* WEST5 */
 CDF_GPP(4, 91, 96), /* WESTC */
 CDF_GPP(5, 97, 101), /* WESTC_DFX */
 CDF_GPP(6, 102, 111), /* WESTA */
 CDF_GPP(7, 112, 123), /* WESTB */
 CDF_GPP(8, 124, 143), /* WESTD */
 CDF_GPP(9, 144, 144), /* WESTD_PECI */
 CDF_GPP(10, 145, 167), /* WESTF */
};

static const struct intel_padgroup cdf_community1_gpps[] = {
 CDF_GPP(0, 168, 191), /* EAST2 */
 CDF_GPP(1, 192, 202), /* EAST3 */
 CDF_GPP(2, 203, 225), /* EAST0 */
 CDF_GPP(3, 226, 236), /* EMMC */
};

static const struct intel_community cdf_communities[] = {
 CDF_COMMUNITY(0, 0, 167, cdf_community0_gpps),  /* West */
 CDF_COMMUNITY(1, 168, 236, cdf_community1_gpps), /* East */
};

static const struct intel_pinctrl_soc_data cdf_soc_data = {
 .pins = cdf_pins,
 .npins = ARRAY_SIZE(cdf_pins),
 .communities = cdf_communities,
 .ncommunities = ARRAY_SIZE(cdf_communities),
};

static const struct acpi_device_id cdf_pinctrl_acpi_match[] = {
 { "INTC3001", (kernel_ulong_t)&cdf_soc_data },
 { }
};
MODULE_DEVICE_TABLE(acpi, cdf_pinctrl_acpi_match);

static struct platform_driver cdf_pinctrl_driver = {
 .probe = intel_pinctrl_probe_by_hid,
 .driver = {
  .name = "cedarfork-pinctrl",
  .acpi_match_table = cdf_pinctrl_acpi_match,
  .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
 },
};

static int __init cdf_pinctrl_init(void)
{
 return platform_driver_register(&cdf_pinctrl_driver);
}
subsys_initcall(cdf_pinctrl_init);

static void __exit cdf_pinctrl_exit(void)
{
 platform_driver_unregister(&cdf_pinctrl_driver);
}
module_exit(cdf_pinctrl_exit);

MODULE_AUTHOR("Mika Westerberg ");
MODULE_DESCRIPTION("Intel Cedar Fork PCH pinctrl/GPIO driver");
MODULE_LICENSE("GPL v2");
MODULE_IMPORT_NS("PINCTRL_INTEL");

Messung V0.5
C=96 H=95 G=95

¤ Dauer der Verarbeitung: 0.12 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.