From 339f0e7e14c00d7e322fbfc3d0b69af9285bc963 Mon Sep 17 00:00:00 2001 From: Varshit B Pandya Date: Wed, 14 Jul 2021 11:08:23 +0530 Subject: soc/intel/alderlake: Add support for I2C6 and I2C7 As per the EDS revision 1.3 add support for I2C6 and I2C7. Signed-off-by: Varshit B Pandya Change-Id: Id918d55e48b91993af9de8381995917aef55edc9 Reviewed-on: https://review.coreboot.org/c/coreboot/+/55996 Reviewed-by: Tim Wawrzynczak Reviewed-by: Maulik V Vaghela Reviewed-by: Paul Menzel Tested-by: build bot (Jenkins) --- src/soc/intel/alderlake/Kconfig | 2 +- src/soc/intel/alderlake/acpi/serialio.asl | 12 ++++++++++++ src/soc/intel/alderlake/chip.c | 2 ++ src/soc/intel/alderlake/chipset.cb | 2 ++ src/soc/intel/alderlake/i2c.c | 8 ++++++++ src/soc/intel/alderlake/include/soc/serialio.h | 2 ++ src/soc/intel/common/block/i2c/i2c.c | 2 ++ 7 files changed, 29 insertions(+), 1 deletion(-) (limited to 'src/soc/intel') diff --git a/src/soc/intel/alderlake/Kconfig b/src/soc/intel/alderlake/Kconfig index 677e14155f..743be57d89 100644 --- a/src/soc/intel/alderlake/Kconfig +++ b/src/soc/intel/alderlake/Kconfig @@ -223,7 +223,7 @@ config SOC_INTEL_COMMON_BLOCK_GSPI_MAX config SOC_INTEL_I2C_DEV_MAX int - default 6 + default 8 config SOC_INTEL_UART_DEV_MAX int diff --git a/src/soc/intel/alderlake/acpi/serialio.asl b/src/soc/intel/alderlake/acpi/serialio.asl index f7bf452058..a325953818 100644 --- a/src/soc/intel/alderlake/acpi/serialio.asl +++ b/src/soc/intel/alderlake/acpi/serialio.asl @@ -38,6 +38,18 @@ Device (I2C5) Name (_DDN, "Serial IO I2C Controller 5") } +Device (I2C6) +{ + Name (_ADR, 0x00100000) + Name (_DDN, "Serial IO I2C Controller 6") +} + +Device (I2C7) +{ + Name (_ADR, 0x00100001) + Name (_DDN, "Serial IO I2C Controller 7") +} + Device (SPI0) { Name (_ADR, 0x001e0002) diff --git a/src/soc/intel/alderlake/chip.c b/src/soc/intel/alderlake/chip.c index 88b31954e6..4a060af662 100644 --- a/src/soc/intel/alderlake/chip.c +++ b/src/soc/intel/alderlake/chip.c @@ -78,6 +78,8 @@ const char *soc_acpi_name(const struct device *dev) case PCH_DEVFN_I2C3: return "I2C3"; case PCH_DEVFN_I2C4: return "I2C4"; case PCH_DEVFN_I2C5: return "I2C5"; + case PCH_DEVFN_I2C6: return "I2C6"; + case PCH_DEVFN_I2C7: return "I2C7"; case PCH_DEVFN_SATA: return "SATA"; case PCH_DEVFN_PCIE1: return "RP01"; case PCH_DEVFN_PCIE2: return "RP02"; diff --git a/src/soc/intel/alderlake/chipset.cb b/src/soc/intel/alderlake/chipset.cb index b05a1e9bb5..532ec38395 100644 --- a/src/soc/intel/alderlake/chipset.cb +++ b/src/soc/intel/alderlake/chipset.cb @@ -79,6 +79,8 @@ chip soc/intel/alderlake device pci 0d.2 alias tcss_dma0 off end device pci 0d.3 alias tcss_dma1 off end device pci 0e.0 alias vmd off end + device pci 10.0 alias i2c6 off end + device pci 10.1 alias i2c7 off end device pci 10.6 alias thc0 off end device pci 10.7 alias thc1 off end device pci 12.0 alias ish off end diff --git a/src/soc/intel/alderlake/i2c.c b/src/soc/intel/alderlake/i2c.c index ef34e2ef1c..5fcca2a9e7 100644 --- a/src/soc/intel/alderlake/i2c.c +++ b/src/soc/intel/alderlake/i2c.c @@ -25,6 +25,10 @@ int dw_i2c_soc_devfn_to_bus(unsigned int devfn) return 4; case PCH_DEVFN_I2C5: return 5; + case PCH_DEVFN_I2C6: + return 6; + case PCH_DEVFN_I2C7: + return 7; } return -1; } @@ -44,6 +48,10 @@ int dw_i2c_soc_bus_to_devfn(unsigned int bus) return PCH_DEVFN_I2C4; case 5: return PCH_DEVFN_I2C5; + case 6: + return PCH_DEVFN_I2C6; + case 7: + return PCH_DEVFN_I2C7; } return -1; } diff --git a/src/soc/intel/alderlake/include/soc/serialio.h b/src/soc/intel/alderlake/include/soc/serialio.h index e42af5f781..d1a9a015fe 100644 --- a/src/soc/intel/alderlake/include/soc/serialio.h +++ b/src/soc/intel/alderlake/include/soc/serialio.h @@ -18,6 +18,8 @@ enum { PchSerialIoIndexI2C3, PchSerialIoIndexI2C4, PchSerialIoIndexI2C5, + PchSerialIoIndexI2C6, + PchSerialIoIndexI2C7, }; enum { diff --git a/src/soc/intel/common/block/i2c/i2c.c b/src/soc/intel/common/block/i2c/i2c.c index a82b1eb98e..21e6a32807 100644 --- a/src/soc/intel/common/block/i2c/i2c.c +++ b/src/soc/intel/common/block/i2c/i2c.c @@ -250,6 +250,8 @@ static const unsigned short pci_device_ids[] = { PCI_DEVICE_ID_INTEL_ADP_P_I2C3, PCI_DEVICE_ID_INTEL_ADP_P_I2C4, PCI_DEVICE_ID_INTEL_ADP_P_I2C5, + PCI_DEVICE_ID_INTEL_ADP_P_I2C6, + PCI_DEVICE_ID_INTEL_ADP_P_I2C7, PCI_DEVICE_ID_INTEL_ADP_S_I2C0, PCI_DEVICE_ID_INTEL_ADP_S_I2C1, PCI_DEVICE_ID_INTEL_ADP_S_I2C2, -- cgit v1.2.3