Re: [PATCH v2 0/2] Add UCSI I2C transport driver for ITE885x USB-C controllers
Edward Blair <[email protected]>
| Newsgroups | org.kernel.vger.linux-acpi,org.kernel.vger.linux-kernel,org.kernel.vger.linux-usb |
|---|---|
| Message-ID | <CAJDQNgiYYQW1N94cTSD-Naph9h44OXZpsZVySi=7sgpcQ21yYQ@mail.gmail.com> |
Let's try that again.. without gmail's html... Thanks, that makes sense. I can rework patch 1 to add MSFT8000 to ignore_serial_bus_ids[] in acpi_device_enumeration_by_parent(). This keeps the ACPI device present while preventing its SerialBus resources from being instantiated as bus clients. If that sounds reasonable, it seems like a good middle ground between v1 and v2: it preserves v1's enumeration behaviour while handling the device generically in the ACPI core, without the ITE-specific x86 status override added in v2. Thanks, Edward On Fri, 28 Aug 2026 at 01:58, Edward Blair <[email protected]> wrote: > > Thanks, that makes sense. I can rework patch 1 to add MSFT8000 to ignore_serial_bus_ids[] in acpi_device_enumeration_by_parent(). This keeps the ACPI device present while preventing its SerialBus resources from being instantiated as bus clients. > > If that sounds reasonable, it seems like a good middle ground between v1 and v2: it preserves v1's enumeration behaviour while handling the device generically in the ACPI core, without the ITE-specific x86 status override added in v2. > > Thanks, > Edward > > On Thu, 27 Aug 2026 at 23:30, Armin Wolf <[email protected]> wrote: >> >> Am 25.08.26 um 22:14 schrieb Edward Blair: >> >> > Some ASUS desktop boards describe the same ITE USB-C controller twice >> > in ACPI: as an MSFT8000 Resource Hub Proxy and as an ITE885x device at >> > the same I2C address. If the RhProxy node claims the address first, the >> > ITE device cannot be registered. Only the ITE node provides the >> > interrupt required by this transport. >> > >> > Patch 1 marks the RhProxy node absent only when its I2C resource exactly >> > matches a supported ITE node which also has an interrupt. >> >> AFAIK the MSFT8000 device is used to grant userspace applications under Windows >> access to I2C, SPI, UART and GPIO resources. Since we already provide those functions >> natively i suggest that we generally ignore MSFT8000 devices when checking for resource >> conflicts. >> >> Thanks, >> Armin Wolf >> >> > Patch 2 adds the ITE885x UCSI transport. These controllers use >> > ITE-specific offsets for CCI, MESSAGE_IN, CONTROL and interrupt >> > handling. They do not expose a VERSION register or accept PPM_RESET >> > over I2C. >> > >> > The register layout and reset behaviour were checked against the ITE >> > Windows driver supplied for this board. >> > >> > Tested on an ASUS ROG Strix Z790-E Gaming WiFi with ITE8853: >> > >> > - Built and booted on x86_64. >> > - ucsi_ite bound to ITE8853:00 without the previous -EBUSY failure. >> > - /sys/class/typec/port0 was registered. >> > - USB-C attachment detection worked. >> > - No UCSI, ITE or Type-C initialization errors were logged. >> > >> > Suspend/resume and the ITE8800 through ITE8805 IDs have not been tested. >> > >> > Changes since v1: >> > >> > - Move the duplicate-device quirk from the I2C core to the ACPI x86 >> > status-override code, as suggested by Mika and Heikki. >> > - Correctly identify MSFT8000 as a Resource Hub Proxy. >> > - Restrict the quirk to exact matching I2C resources. >> > - Use devm_request_threaded_irq(), as suggested by Heikki. >> > - Rebase onto Linux 7.2 and update for the current UCSI API. >> > - Read and cache complete UCSI events before acknowledging them. >> > - Match the vendor transport's MESSAGE_IN and PPM_RESET behaviour. >> > >> > Link: https://lore.kernel.org/all/[email protected]/ >> > >> > Edward Blair (2): >> > ACPI: x86: hide duplicate RhProxy node for ITE UCSI controllers >> > usb: typec: ucsi: add ITE885x I2C transport driver >> > >> > drivers/acpi/x86/utils.c | 151 ++++++++++++ >> > drivers/usb/typec/ucsi/Kconfig | 11 + >> > drivers/usb/typec/ucsi/Makefile | 1 + >> > drivers/usb/typec/ucsi/ucsi_ite.c | 395 ++++++++++++++++++++++++++++++ >> > 4 files changed, 558 insertions(+) >> > create mode 100644 drivers/usb/typec/ucsi/ucsi_ite.c >> > >> > >> > base-commit: 66498c75b4f8017f62d720d9b59675bdf3abce91