From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A6C923B0ACB for ; Sat, 29 Aug 2026 14:55:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788015345; cv=none; b=GotnjLWADTsTmcHBs5dYP5RAogwwFco8sGpVlb77STUVr0otlbVfR+MZNSJE01Q4S2snhaOOGgvRaZ8BMLCBAZLQQb7HJH/GjEJ5QkOBOtJroBbOr4KmXmsJS4IDNVm5k+r45p8n0emCTWeoUU9ojPbSDL+XypyIB2PytZrsgro= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788015345; c=relaxed/simple; bh=BwrsapI1lbY1VuA5R33NbR3GNe+BnBcSC2crTnv7Rlc=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=GSHtDqR1HLbLsM3yPqldTzn44ydsvx5n4eIyU7CTUYNrdtuvQmbUFOZORWJ3wAEiagDd78T7/TpUGb3nUPVmxc8EQjssx1bqX3Fpc7CWPVHzeymtg2FXMHsZTJEPGzU+t0JKfHjevmi7gBjs7v8hZP+EMKrTY+fYBG5kMpNcfTU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=aeQO2tAS; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aeQO2tAS" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-490cf322ed0so21707105e9.1 for ; Sat, 29 Aug 2026 07:55:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788015340; x=1788620140; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=Sznin/P7lIs0oXLcYrBqu0KsuS3x0PiQ6+HHBq1mQpk=; b=aeQO2tASpTC6K+OKTMzafHVMm27055KpCE0AyqCeat5/0QZ+hmgyIy7I/j1iqKJQO0 u8fDotU7MidWZqFZPcLX0TiP6KpKcPSXT0s0vI7LuP4UZaColNeM95UWi070LgxtibNk sHOYJg72WufV2QJMtjOc5yC5eB4C67EtohCn9NeZaviNgiIarYfPOKY0AqL/Xso9PwuX TAg21ooii38JEqwIlu9YWG/ND24YBUCCPGr1uBj1DFZveOvOaszeP5qjIRh835K9XmrB 8mf0VZV55oktvE+WbQzEzbsMZDD0dTq5iKEooyJ8hLeoEyJYWfh16p7jxvTGdtEchUS9 hLQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788015340; x=1788620140; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Sznin/P7lIs0oXLcYrBqu0KsuS3x0PiQ6+HHBq1mQpk=; b=CjCpXsHLi93Js1XiFse6lNrKUxSCbezJa/2Pa1qW/y0/TdOxbw+q8XsdO16pKord5R phWJN46IFYQtfjRPDm1Pv6EZe8p6WtxrQ+X1iUS4GGzxEb15kGzxGAYz5DRkfVTYM687 xPyTeqXj5WwUZ0e5qDP9XWlxFdslXR4JDqmX0dFBOFlxZEHgdHm7A8zx5pTO77tbSl8I SSBheIlke9St6gslgPAoAgZxWoEZ0rkJzqn1O+dNNSU9x8rEDUc4Misztv1wIlJETS2N 5lj/ZX9enuza3P2TlR8Lhs8Nxt0680DtleNV6yssHwB/ljoBKtZyIMwlqPeIrcPpXN5f dhSQ== X-Forwarded-Encrypted: i=1; AHgh+Rr/cmKV3YVl2qcFNDu6tfS/iGcTKe/RHSn9pTobMq7lHCvFi9S0kL2HSE6imoiNqsRxh7ZXH7sGTW4=@vger.kernel.org X-Gm-Message-State: AFuF++nRAN18v1zZOhFL9ZLf631Qz13n7bQ3rwEUeSEyBjmYMN07lumP 0UOr/kfiscI6e2wLOnkNnbhEQ9qoA3ZW0Tzm6v4lIJwmerIW6gOM2agS X-Gm-Gg: AR+sD128OzhfZQOTAddfEezWdFnjtQtgbSZLrD6gtlIYNpSMu/GLpXLS2QPI3Pyi4gu EwvtGPklUSTHf83O2XYHheGZoOwOqntiyY9VQbd+bIyka/zNrCsgptYZVzJZlQ/CJVF9XA6yJKN ISZZm0uZkqA3Ur8Ic3tIfGNNvzs1H6Xskn+HDkp3dX/LD0qYZM6kzCMhEl0rE8yECPDHfii2PHW R52kCpms8tnTOk6FITDdCl6OYHOarTmYNnmF3YSTbnyy7aXJDEQUOaRh5lf8giDYC8GtJTmF9E5 lLFT1pz1SbPnV/HM5U9I2pkqLvcB7qi/GH8JtMITM2NibzHPS9j1KjtjrJYaE7exJ6Iwznjz/iP sbOmHfJaDUcvI/9WGdauLZ5CClRg/9zirxPqMpWtCmZMADIJdPtV4dflBxECujgRScuwZR56KZ/ BH6WJk572LsvC/ne4pUkgelyJDe2foLhGWFCP9RzHy69nrHVJY6Pbb5Ge+uEKcu72ly/2YoLh2N 9DSkFSNvx/lmaO2Qr4g623q2Sx4FTvyUY86ocZvPAJv6KoPFL6viMvVzq0VBSa06gUiBz2CoHq0 tCpqjUAS/igIktSiPoMdF88kzAXlgrrO+gyl6/hsPPiGdTqq X-Received: by 2002:a05:600c:8411:b0:499:4892:d022 with SMTP id 5b1f17b1804b1-49b91c279e1mr243879245e9.8.1788015339857; Sat, 29 Aug 2026 07:55:39 -0700 (PDT) Received: from scambox.localdomain (5-198-68-184.static.kc.net.uk. [5.198.68.184]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49b4dfdf00csm195113255e9.14.2026.08.29.07.55.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 29 Aug 2026 07:55:39 -0700 (PDT) From: Edward Blair To: linux-acpi@vger.kernel.org, linux-usb@vger.kernel.org Cc: rafael@kernel.org, lenb@kernel.org, heikki.krogerus@linux.intel.com, mika.westerberg@linux.intel.com, gregkh@linuxfoundation.org, W_Armin@gmx.de, linux-kernel@vger.kernel.org, Edward Blair Subject: [PATCH v3 0/2] Add ITE885x UCSI I2C transport driver Date: Sat, 29 Aug 2026 15:55:14 +0100 Message-ID: <20260829145516.13500-1-edward.blair@gmail.com> X-Mailer: git-send-email 2.55.0 Precedence: bulk X-Mailing-List: linux-usb@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 Resource Hub Proxy claims the address first, the ITE device cannot be registered. Only the ITE node provides the interrupt required by this transport. Patch 1 handles MSFT8000 generically in the ACPI core. It keeps the ACPI device present but prevents its SerialBus resources from being instantiated as I2C, SPI or serdev clients. 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 in v3: - Rework patch 1 as suggested by Armin: add MSFT8000 to ignore_serial_bus_ids[] in acpi_device_enumeration_by_parent(). - Keep the MSFT8000 ACPI device present while preventing its SerialBus resources from being instantiated as bus clients. - Drop the ITE-specific ACPI x86 status override added in v2. - Add a comment explaining why MSFT8000 is ignored during serial bus enumeration. - Rebase onto current mainline and retest the series. - Patch 2 is unchanged apart from the rebase. Changes in v2: - Move the v1 duplicate-device handling 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. Changes in v1: - Initial submission. v2: https://lore.kernel.org/all/20260825201426.47030-1-edward.blair@gmail.com/ v1: https://lore.kernel.org/all/20260314013157.7181-1-edward.blair@gmail.com/ Edward Blair (2): ACPI: scan: do not enumerate MSFT8000 as a serial bus slave usb: typec: ucsi: add ITE885x I2C transport driver drivers/acpi/scan.c | 5 + drivers/usb/typec/ucsi/Kconfig | 11 + drivers/usb/typec/ucsi/Makefile | 1 + drivers/usb/typec/ucsi/ucsi_ite.c | 395 ++++++++++++++++++++++++++++++ 4 files changed, 412 insertions(+) create mode 100644 drivers/usb/typec/ucsi/ucsi_ite.c base-commit: 1b78070aaef63512688aebfbc82365ef9d6660f1 -- 2.55.0