git: 5a19be15c90c - stable/14 - ig4: Add Lunar Lake-M I2C controllers 4 and 5
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 24 Sep 2026 02:34:05 UTC
The branch stable/14 has been updated by vexeduxr:
URL: https://cgit.FreeBSD.org/src/commit/?id=5a19be15c90c2a5f0a1d8c469cda6d3d4283f016
commit 5a19be15c90c2a5f0a1d8c469cda6d3d4283f016
Author: Kang Kang <kk1987@gmail.com>
AuthorDate: 2026-09-03 20:18:51 +0000
Commit: Ahmad Khalifa <vexeduxr@FreeBSD.org>
CommitDate: 2026-09-24 02:29:31 +0000
ig4: Add Lunar Lake-M I2C controllers 4 and 5
Commit 851dffef532a added the Lunar Lake-M I2C controllers 0 through 3
(0xa878-0xa87b), which sit on PCI device 0x15. The platform exposes two
further controllers at 0xa850 and 0xa851 on PCI device 0x19, reported by
Intel as I2C #4 and #5. This mirrors the layout already handled for
Arrow Lake-U, where both the 0x777x and 0x775x ranges are listed.
On an HP OmniBook X Flip 16-as0xxx (Core Ultra 9 288V) the firmware
enables only four of the six controllers, and both HID devices sit on
the two that were missing: an ELAN2514 touchscreen on controller 4 and
a SYNA3503 touchpad on controller 5. Neither attaches without this
change, so the machine has no working pointing device.
Like the other four, these use the Tiger Lake revision of the I2C IP;
Linux treats 0xa850/0xa851 identically to 0xa878-0xa87b in
intel-lpss-pci.c.
Tested on: HP OmniBook X Flip 16-as0xxx (Intel Core Ultra 9 288V)
Reviewed by: vexeduxr
MFC after: 2 weeks
Signed-off-by: Kang Kang <kk1987@gmail.com>
Pull Request: https://github.com/freebsd/freebsd-src/pull/2406
(cherry picked from commit 6b92093fdf65a80cba01af74710bdfe7ac7ef252)
---
sys/dev/ichiic/ig4_pci.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/sys/dev/ichiic/ig4_pci.c b/sys/dev/ichiic/ig4_pci.c
index b1562d3c5b5f..1893d5e43513 100644
--- a/sys/dev/ichiic/ig4_pci.c
+++ b/sys/dev/ichiic/ig4_pci.c
@@ -184,6 +184,8 @@ static int ig4iic_pci_detach(device_t dev);
#define PCI_CHIP_LUNARLAKE_M_I2C_1 0xa8798086
#define PCI_CHIP_LUNARLAKE_M_I2C_2 0xa87a8086
#define PCI_CHIP_LUNARLAKE_M_I2C_3 0xa87b8086
+#define PCI_CHIP_LUNARLAKE_M_I2C_4 0xa8508086
+#define PCI_CHIP_LUNARLAKE_M_I2C_5 0xa8518086
struct ig4iic_pci_device {
uint32_t devid;
@@ -312,6 +314,8 @@ static struct ig4iic_pci_device ig4iic_pci_devices[] = {
{ PCI_CHIP_LUNARLAKE_M_I2C_1, "Intel Lunar Lake-M I2C Controller-1", IG4_TIGERLAKE},
{ PCI_CHIP_LUNARLAKE_M_I2C_2, "Intel Lunar Lake-M I2C Controller-2", IG4_TIGERLAKE},
{ PCI_CHIP_LUNARLAKE_M_I2C_3, "Intel Lunar Lake-M I2C Controller-3", IG4_TIGERLAKE},
+ { PCI_CHIP_LUNARLAKE_M_I2C_4, "Intel Lunar Lake-M I2C Controller-4", IG4_TIGERLAKE},
+ { PCI_CHIP_LUNARLAKE_M_I2C_5, "Intel Lunar Lake-M I2C Controller-5", IG4_TIGERLAKE},
};
static int