[RFC PATCH 0/4] Add support for Realtek RTS490x I3C hub

From: zain_zhou

Date: Sun Sep 20 2026 - 06:09:49 EST


From: Yin Zhou <zain_zhou@xxxxxxxxxxxxxx>

Hi all,

This series adds support for the Realtek RTS490x family of I3C hubs.
The devices provide four or eight downstream target ports, which can be
configured as I3C buses or SMBus controller/target interfaces. They also
provide four programmable LDO outputs for the controller and target-port
power domains.

This RFC is based on the NXP P3H2x4x generic I3C hub framework series v17:

[PATCH v17 0/8] Add support for NXP P3H2x4x I3C hub driver

The NXP dependency series is not included below and must be applied first.
It applies on top of current Linux mainline; the base commit used to build
and test this RFC is:

940de590b839f71d6dc846160534bf202401b8b7

The dependency status and the final generic-hub API shape are an explicit
part of this RFC. If the generic framework is revised, this series will be
rebased accordingly. NXP's later v19 series will be evaluated for a future
revision of this RTS490x series and is not being used as the basis for this
RFC v1.

Patch overview:

1. dt-bindings: i3c: Add Realtek RTS490x I3C hub support
Add the RTS490x device-tree binding and register the binding with
MAINTAINERS.

2. mfd: Add driver for Realtek RTS490x I3C hub
Add the I3C-only MFD parent, shared regmap, manufacturer matching,
variant detection, protected-register lock, and child devices.

3. regulator: rts490x: Add driver for on-die regulators
Expose the four programmable LDOs through the regulator framework.
Only regulator nodes explicitly present and enabled in DT are
registered; omitted LDOs retain their existing hardware state.

4. i3c: hub: Add Realtek RTS490x I3C hub support
Add downstream I3C ports through the generic I3C hub framework and
SMBus ports through Linux I2C adapters. SMBus controller completion
and target receive handling use the hub self-IBI.

The first RFC intentionally has a limited scope:

- The hub must be connected to the host through I3C.
- GPIO and GPIO IRQ support are deferred to a follow-up series.
- SMBus controller and target paths use IBI; polling fallback is not
included.
- Legacy I2C device discovery behind I3C-mode ports follows the existing
behavior of the generic I3C master framework and has not been
specifically validated on this hardware in this RFC.

Testing:

- checkpatch.pl --strict, 0 errors/0 warnings across the series
- dt_binding_check for the RTS490x binding
- Cross-build validated for the MFD, regulator, and hub composite objects
- git diff --check across the series
- I3C and SMBus downstream ports have been functionally verified on
target hardware.

Regards,
Yin Zhou

Yin Zhou (4):
dt-bindings: i3c: Add Realtek RTS490x I3C hub support
mfd: Add driver for Realtek RTS490x I3C hub
regulator: rts490x: Add driver for on-die regulators
i3c: hub: Add Realtek RTS490x I3C hub support

.../bindings/i3c/realtek,rts490x.yaml | 266 ++++++
MAINTAINERS | 11 +
drivers/i3c/hub/Kconfig | 11 +
drivers/i3c/hub/Makefile | 3 +
drivers/i3c/hub/rts490x-i3c-hub-core.c | 444 +++++++++
drivers/i3c/hub/rts490x-i3c-hub-i3c.c | 150 ++++
drivers/i3c/hub/rts490x-i3c-hub-smbus.c | 839 ++++++++++++++++++
drivers/i3c/hub/rts490x-i3c-hub.h | 150 ++++
drivers/mfd/Kconfig | 11 +
drivers/mfd/Makefile | 1 +
drivers/mfd/rts490x-core.c | 131 +++
drivers/regulator/Kconfig | 9 +
drivers/regulator/Makefile | 1 +
drivers/regulator/rts490x-regulator.c | 284 ++++++
include/linux/mfd/rts490x.h | 53 ++
15 files changed, 2364 insertions(+)
create mode 100644 Documentation/devicetree/bindings/i3c/realtek,rts490x.yaml
create mode 100644 drivers/i3c/hub/rts490x-i3c-hub-core.c
create mode 100644 drivers/i3c/hub/rts490x-i3c-hub-i3c.c
create mode 100644 drivers/i3c/hub/rts490x-i3c-hub-smbus.c
create mode 100644 drivers/i3c/hub/rts490x-i3c-hub.h
create mode 100644 drivers/mfd/rts490x-core.c
create mode 100644 drivers/regulator/rts490x-regulator.c
create mode 100644 include/linux/mfd/rts490x.h

--
2.34.1