Intel Serial IO Code 31 on Windows 7 with Coffee Lake: Why Device IDs Aren’t the Real Problem
Why the same INF mod works on Windows 8.1 but not Windows 7
When device IDs A368 and A369 still throw Code 31 on Windows 7 even after a clean INF edit, the device IDs are not the problem. Intel’s Serial IO driver relies on ACPI bus interfaces that Microsoft introduced in Windows 8. The Windows 7 ACPI stack predates those interfaces entirely, so the driver binary loads, tries to acquire a bus handle it can never get, and fails to start. Device Manager reports Code 31 — driver could not be loaded.
Same INF. Same binary. Different kernel. That’s the whole story for why modding a Skylake INF to include Coffee Lake IDs loads cleanly on 8.1 and silently dies on 7.
What A368 and A369 actually are
PCI\VEN_8086&DEV_A368 and PCI\VEN_8086&DEV_A369 are Intel LPSS (Low Power Subsystem) I2C Host Controllers on the Coffee Lake PCH — the 300-series chipset in 8th-generation Intel systems. Functionally they are the same block as the Skylake LPSS I2C controllers; Intel simply assigned new device IDs for the new chipset generation.
On the Dell Precision 7530, the ALPS touchpad connects to the system over I2C rather than USB or PS/2. Without a working I2C host controller driver, that bus is dead. The touchpad is completely invisible to Windows.
Two paths to a working touchpad
Path 1: Backporting I2CHID.sys from Windows 8.1
Windows 8 added an in-box HID miniport driver for HID over I2C devices. Windows 7 ships without it. The HID over I2C protocol is standardised by Microsoft, and the driver is self-contained enough that a backport is feasible — it has been attempted with similar hardware by the legacy Windows community.
If you can get the Serial IO host controller (A368 or A369) loading first, then install a Windows 8.1 HIDI2C.sys with an INF covering the ALPS touchpad’s ACPI hardware ID, the touchpad should enumerate as a plain HID device. No proprietary ALPS protocol stack required. This is the cleaner route.
The main obstacle is driver signing. Windows 8.1 driver binaries carry SHA-256 certificates. Windows 7 without the Platform Update (KB2670838) only trusts SHA-1 for kernel-mode drivers. Install KB2670838 first — it also brings GDI+ updates and a newer DirectX runtime that several other modern drivers silently depend on. For testing, boot with driver signature enforcement disabled. For a persistent setup you need test-signing mode or a re-signed binary.
Path 2: Modding the ALPS Dell Touchpad driver
Dell ships a customised ALPS driver that speaks ALPS’s proprietary protocol over I2C. Versions targeting older Precision hardware don’t include the Coffee Lake I2C controller IDs in their hardware ID list. Adding those IDs to the INF gets you past Device Manager’s matching step.
The harder part is what comes after. The driver binary may expect specific ACPI device entries or HID descriptors that differ between the hardware it was compiled for and the Precision 7530. An INF change clears the ID check; it can’t fix a binary that fails to negotiate with the actual device. More variables, harder to debug when it partially initialises and gives no useful error.
The DSDT tables and ACPI enumeration
The Intel-HID Event Filter only appearing in Device Manager after loading modded DSDT tables through OpenCore points to something important. The stock BIOS ACPI namespace — as presented to Windows 7 — is probably missing device definitions the driver goes looking for at enumeration time. Without those entries, the device simply isn’t exposed to the OS.
The same almost certainly applies to the Serial IO controllers. The modded DSDT tables add or rename ACPI device entries so Windows 7’s enumerator can see them. Getting Serial IO working under Windows 7 on this machine very likely requires those tables loaded via OpenCore, not just a driver INF change.
The Intel-HID Event Filter is worth noting here, but don’t let it block the touchpad work. Intel-HID handles hotkeys and power events — it has no effect on the Serial IO I2C chain or touchpad input. They are independent problems.
Suggested order of operations
- Install Windows 7 SP1 and KB2670838 (Platform Update) if not already applied.
- Load the modded DSDT tables through OpenCore so the I2C controllers actually appear in Device Manager.
- Get the Serial IO host controller loading — use the modded Skylake INF you already have with test-signing active. Confirm it shows as running before moving on.
- Extract HIDI2C.sys and its INF from a Windows 8.1 installation source (a mounted ISO works). Add the ALPS touchpad’s ACPI hardware ID to the INF.
- Install under test-signing. If the touchpad enumerates but inputs don’t register, capture the HID report descriptor on a working Windows 8.1 installation first — comparing it to what the backported driver expects can reveal descriptor mismatches that no amount of INF editing will fix.
Sources
