git: 6b92093fdf65 - main - ig4: Add Lunar Lake-M I2C controllers 4 and 5
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 10 Sep 2026 18:22:26 UTC
The branch main has been updated by vexeduxr:
URL: https://cgit.FreeBSD.org/src/commit/?id=6b92093fdf65a80cba01af74710bdfe7ac7ef252
commit 6b92093fdf65a80cba01af74710bdfe7ac7ef252
Author: Kang Kang <kk1987@gmail.com>
AuthorDate: 2026-09-03 20:18:51 +0000
Commit: Ahmad Khalifa <vexeduxr@FreeBSD.org>
CommitDate: 2026-09-10 18:11:27 +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
---
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 52e072e8eae1..f99ab64c36ce 100644
--- a/sys/dev/ichiic/ig4_pci.c
+++ b/sys/dev/ichiic/ig4_pci.c
@@ -196,6 +196,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
#define PCI_CHIP_PANTHERLAKE_H_I2C_0 0xe4788086
#define PCI_CHIP_PANTHERLAKE_H_I2C_1 0xe4798086
#define PCI_CHIP_PANTHERLAKE_H_I2C_2 0xe4508086
@@ -342,6 +344,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},
{ PCI_CHIP_PANTHERLAKE_H_I2C_0, "Intel Panther Lake-H I2C Controller-0", IG4_TIGERLAKE},
{ PCI_CHIP_PANTHERLAKE_H_I2C_1, "Intel Panther Lake-H I2C Controller-1", IG4_TIGERLAKE},
{ PCI_CHIP_PANTHERLAKE_H_I2C_2, "Intel Panther Lake-H I2C Controller-2", IG4_TIGERLAKE},