Here is a basic driver for the I3C IP found in various Renesas SoCs like RZ/G3S and G3E. Missing features to be added incrementally are IBI, HotJoin and maybe target support. Other than that, this driver has been tested with I3C pure busses (2 targets) and mixed busses (2 I3C + various I2C targets). DAA and reading/writing to the temperature sensors worked reliably at different speeds. Scoping the bus, the output from the protocol analyzer seems reasonable, too. It was created by merging two versions of it from two different BSPs. Then, improved according to code analyzers, cleaned up with regard to coding style, and then refactored to hopefully match I3C subsystem standards.
Changes since v1 are described in the individual patches. A branch with enablement patches for RZ/G3S+G3E can be found here: git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git renesas/g3s/i3c Looking forward to comments, Wolfram Tommaso Merciai (1): dt-bindings: i3c: renesas,i3c: Add binding for Renesas I3C controller Wolfram Sang (1): i3c: master: Add basic driver for the Renesas I3C controller .../devicetree/bindings/i3c/renesas,i3c.yaml | 179 +++ MAINTAINERS | 7 + drivers/i3c/master/Kconfig | 10 + drivers/i3c/master/Makefile | 1 + drivers/i3c/master/renesas-i3c.c | 1425 +++++++++++++++++ 5 files changed, 1622 insertions(+) create mode 100644 Documentation/devicetree/bindings/i3c/renesas,i3c.yaml create mode 100644 drivers/i3c/master/renesas-i3c.c -- 2.47.2