[GIT PULL] I3C changes for 7.3

From: Alexandre Belloni

Date: Sun Aug 23 2026 - 16:20:41 EST


Hello Linus,

Here is the i3c subsystem pull request for 7.3. We get a new driver this
cycle, for the AMD AXI I3C controller. There are also new features such
as IBI wakeup support, SETAASA device discovery and ACPI support for the
the DAA methods, meaning we can now communicate with the SPD devices on
DDR5 modules.

The following changes since commit dc59e4fea9d83f03bad6bddf3fa2e52491777482:

Linux 7.2-rc1 (2026-06-28 12:01:31 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux.git tags/i3c/for-7.3

for you to fetch changes up to cab40cfc9e116acd4d60f95b4b1264cab78f3803:

i3c: dw: reduce do_daa time if there's no client (2026-08-19 09:28:33 +0200)

----------------------------------------------------------------
I3C for 7.3

New driver:
- AMD AXI I3C master controller

Subsystem:
- I3C Common Command Code (CCC) handling improvements, especially around GET
CCCs
- SETAASA device discovery support
- ACPI support for all existing DAA methods like SETDASA, SETNEWDA as well as
I2C devices on I3C bus
- IBI-based wakeup support

Drivers:
- dw: SETAASA support
- mipi-i3c-hci: advertise IBI wakeup capability, AMD_PT I3C controller support,
PIO queue management support for HCI v1.2
- renesas: improve suspend to RAM support, add runtime PM support

----------------------------------------------------------------
Adrian Hunter (16):
i3c: master: Fix device_register() error path
i3c: master: Fix info leak and UAF in device unregister path
i3c: master: Fix recursive locking during device registration
i3c: Fix unlocked dereference of dev->desc in i3c_device_get_supported_xfer_mode()
i3c: master: Do not treat master device as a duplicate target
i3c: master: Fix use-after-free of master->this
i3c: Make dev->desc locking assumptions explicit
i3c: master: Fix potential UAF in i3c_device_uevent()
i3c: master: Fix potential UAF in i3c_device_match()
i3c: master: Support IBI-based wakeup capability
i3c: master: Report wakeup events for IBIs
i3c: master: Add helper to query bus wakeup requirements
i3c: master: Reject IBI requests from non-IBI-capable devices
i3c: mipi-i3c-hci-pci: Propagate I3C wakeup requirements to PCI
i3c: mipi-i3c-hci: Factor out i3c_hci_sysdev()
i3c: mipi-i3c-hci: Advertise IBI wakeup capability

Adrian Ng Ho Yin (6):
i3c: ccc: Add actual_len to struct i3c_ccc_cmd_payload
i3c: master: Report actual GET CCC payload length on success
i3c: master: dw: Map CCC hardware errors to I3C M0/M2
i3c: master: Validate GET CCC payload length and retry Direct GET once
i3c: master: Add optional_bytes for variable-length GET CCC validation
i3c: master: require dests for read CCC commands

Akhil R (11):
dt-bindings: i3c: Add mipi-i3c-static-method to support SETAASA
i3c: master: Use unified device property interface
i3c: master: Support ACPI enumeration of child devices
i3c: master: Add support for devices using SETAASA
i3c: master: Add support for devices without PID
i3c: master: match I3C device through DT and ACPI
i3c: dw-i3c-master: Add SETAASA as supported CCC
i3c: dw-i3c-master: Add ACPI core clock frequency quirk
i3c: dw-i3c-master: Add ACPI ID for Tegra410
hwmon: spd5118: Remove 16-bit addressing
hwmon: spd5118: Add I3C support

Can Peng (1):
i3c: master: adi: add OF module alias for autoloading

Claudiu Beznea (18):
i3c: renesas: Check that the transfer is valid before accessing it
i3c: renesas: Restore STDBR and EXTBR registers on resume
i3c: renesas: Follow the reset deassert order used in probe
i3c: renesas: Reconfigure the DATBAS register on re-attach
i3c: renesas: Reset the controller on resume
i3c: renesas: Perform Dynamic Address Assignment on resume
i3c: renesas: Clean DATBAS register on detach
i3c: renesas: Fix out-of-bounds access for newdevs mask
i3c: renesas: Use reset_control_bulk_{assert, deassert}()
i3c: renesas: Return immediately if there is no transfer
i3c: renesas: Follow a unified pattern for transfer and command initialization
i3c: renesas: Drop the explicit memset() call
i3c: renesas: Update HW registers after SW computations are done
i3c: renesas: Organize structures to avoid unnecessary padding
i3c: renesas: Use the "dev_name:irq_name" format for the interrupt name
i3c: renesas: Drop unnecessary tab
i3c: renesas: Add runtime PM support
i3c: renesas: Drop unused structure member 'resuming'

Jakub Kicinski (1):
i3c: dw: avoid shift-out-of-bounds when DAA assigns no devices

Jian-Ming Liao (3):
i3c: mipi-i3c-hci: Fix missing STAT_IBI_STATUS_THLD in PIO mode
i3c: mipi-i3c-hci: Add PIO queue management support for HCI v1.2
i3c: mipi-i3c-hci: Add support for AMD_PT I3C controller

Jisheng Zhang (4):
i3c: dw: use COMMAND_PORT_TRANSFER_ARG instead of hardcoding
i3c: dw: make struct dw_i3c_cmd smaller
i3c: dw: rename "pclk" to "apb" to match dt-binding
i3c: dw: reduce do_daa time if there's no client

Manikanta Guntupalli (2):
dt-bindings: i3c: Add AMD I3C master controller support
i3c: master: Add driver for AMD AXI I3C master controller

Maoyi Xie (1):
i3c: master: svc: bound IBI payload to the requested max_payload_len

Pengpeng Hou (1):
i3c: master: svc: report timeout waiting for STOP idle

Runyu Xiao (1):
i3c: master: adi: initialize the lock before enabling interrupts

Shubham Patil (2):
dt-bindings: i3c: dw: Document missing optional core reset
i3c: master: dw: Drop redundant core reset name

Swark Yang (1):
dt-bindings: i3c: cdns: add Axiado AX3005 I3C variant

Tommaso Merciai (1):
i3c: renesas: Don't register devices when ENTDAA times out

Tze Yee Ng (1):
i3c: master: dw-i3c-master: fix OD timing for first broadcast

.../devicetree/bindings/i3c/cdns,i3c-master.yaml | 1 +
Documentation/devicetree/bindings/i3c/i3c.yaml | 36 +-
.../bindings/i3c/snps,dw-i3c-master.yaml | 3 +
.../devicetree/bindings/i3c/xlnx,axi-i3c-1.0.yaml | 58 +
MAINTAINERS | 8 +
drivers/hwmon/Kconfig | 9 +-
drivers/hwmon/spd5118.c | 119 +--
drivers/i3c/device.c | 13 +-
drivers/i3c/internals.h | 5 +
drivers/i3c/master.c | 632 +++++++++--
drivers/i3c/master/Kconfig | 15 +
drivers/i3c/master/Makefile | 1 +
drivers/i3c/master/adi-i3c-master.c | 19 +-
drivers/i3c/master/amd-i3c-master.c | 1124 ++++++++++++++++++++
drivers/i3c/master/dw-i3c-master.c | 188 +++-
drivers/i3c/master/dw-i3c-master.h | 1 +
drivers/i3c/master/i3c-master-cdns.c | 3 +
drivers/i3c/master/mipi-i3c-hci/core.c | 30 +-
drivers/i3c/master/mipi-i3c-hci/dma.c | 15 +-
drivers/i3c/master/mipi-i3c-hci/hci.h | 7 +
drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c | 32 +-
drivers/i3c/master/mipi-i3c-hci/pio.c | 74 +-
drivers/i3c/master/renesas-i3c.c | 390 +++++--
drivers/i3c/master/svc-i3c-master.c | 22 +-
include/dt-bindings/i3c/i3c.h | 4 +
include/linux/i3c/ccc.h | 12 +-
include/linux/i3c/master.h | 27 +-
27 files changed, 2470 insertions(+), 378 deletions(-)
create mode 100644 Documentation/devicetree/bindings/i3c/xlnx,axi-i3c-1.0.yaml
create mode 100644 drivers/i3c/master/amd-i3c-master.c

--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com