Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Preliminary support for I2C HID touchpads of Intel Tigerlake+ notebooks #5195

Open
chelmuth opened this issue Apr 24, 2024 · 0 comments
Open
Labels

Comments

@chelmuth
Copy link
Member

The I2C HID support is a conglomerate of the following basic mechanisms.

  • Intel PCH GPIO support for the touchpad interrupt pin
    PCH GPIO is a platform device (e.g., INT34C5) with a spec-defined configuration that can be retrieved from ACPI tables.
  • Intel LPSS I2C (master) support
    The I2C master controller is a (pseudo-)PCI device, mostly with unsufficiently initialized BARs.
  • I2C HID driver
    The actual HID device (CID PNP0C50) is accessible via the mechanisms above and its configuration can be retrieved from ACPI resources and device-specific methods.
chelmuth added a commit that referenced this issue Apr 24, 2024
Discovered on Tigerlake (Fujitsu U7411) and Alderlake (Framework Gen12)
notebook devices.

Issue #5195
chelmuth added a commit that referenced this issue Apr 24, 2024
Discovered on Tigerlake (Fujitsu U7411) and Alderlake (Framework Gen12)
notebook devices.

Issue #5195
chelmuth added a commit that referenced this issue Apr 24, 2024
The ported i2c_hid driver contains driver code for the "Intel
Tigerlake/Alderlake PCH pinctrl/GPIO" device. Unfortunately, acpica
driver also accesses the same device on Lid open/close via ACPI AML code
of the DSDT table to read out the state of a GPIO pin connected to the
notebook lid. This would fail as I/O memory is handed out only once and
cannot be shared. The workaround disables the region check for the
specified GPIO I/O memory regions and provides both drivers shared
access to the regions.

This is a preliminary workaround. A general solution should separate the
GPIO driver into a component (e.g., platform driver) that regulates
accesses by i2c_hid and acpica.

Issue #5195
chelmuth added a commit that referenced this issue Apr 24, 2024
chelmuth added a commit that referenced this issue Apr 25, 2024
Discovered on Tigerlake (Fujitsu U7411) and Alderlake (Framework Gen12)
notebook devices.

Issue #5195
chelmuth added a commit that referenced this issue Apr 25, 2024
Discovered on Tigerlake (Fujitsu U7411) and Alderlake (Framework Gen12)
notebook devices.

Issue #5195
chelmuth added a commit that referenced this issue Apr 25, 2024
The ported i2c_hid driver contains driver code for the "Intel
Tigerlake/Alderlake PCH pinctrl/GPIO" device. Unfortunately, acpica
driver also accesses the same device on Lid open/close via ACPI AML code
of the DSDT table to read out the state of a GPIO pin connected to the
notebook lid. This would fail as I/O memory is handed out only once and
cannot be shared. The workaround disables the region check for the
specified GPIO I/O memory regions and provides both drivers shared
access to the regions.

This is a preliminary workaround. A general solution should separate the
GPIO driver into a component (e.g., platform driver) that regulates
accesses by i2c_hid and acpica.

Issue #5195
chelmuth added a commit that referenced this issue Apr 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant