Re: [PATCH RFC 0/7] i3c: add driver for the Renesas IP and support RZ/G3S+G3E

Rob Herring (Arm)
2025-06-11T16:30:03Z

On Wed, 11 Jun 2025 11:39:24 +0200, Wolfram Sang wrote:
> Here is finally the first RFC of a driver for the Renesas I3C IP. 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.
>
> It is a basic driver for the I3C IP found in various 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. But hey, I am still new to all
> this, so I might have overlooked something.
>
> The first patches are needed to enable I3C on the RZ/G3S and G3E boards.
> Once this series loses RFC status, they will be sent out individually,
> of course. All is on top of 6.16-rc1. A branch can be found here:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git renesas/g3s/i3c
>
> Why is this still RFC?
>
> - On G3E (but not G3S), we get a spurious irq during boot. We are
> working on it. This is just platform dependent, though, kind of
> independent of the high level design of the driver. For this, we
> would love to get comments already. So, we can fix things in parallel
>
> - G3S has 17 irqs, G3E only 16. The way we handle this might need
> discussion (see patch 3)
>
> - On G3S, clocks are named 'i3c' while on G3E they are named 'i3c0'
> I don't have all the needed docs for this, but Tommaso can surely
> figure this out meanwhile
>
> - There are some open questions regarding the driver itself
> (see patch 4)
>
> Really looking forward to comments! This has been quite a ride. Getting
> a suitable test setup was a surprisingly big task. If someone knows an
> off-the-shelf device supporting HotJoin, I am all ears. I couldn't find
> one.
>
> So much for now here, some patches have more details.
>
> All the best,
>
> Wolfram
>
>
> Quynh Nguyen (1):
> arm64: dts: renesas: r9a08g045: Add I3C node
>
> Tommaso Merciai (3):
> clk: renesas: r9a09g047: Add I3C0 clocks and resets
> dt-bindings: i3c: renesas,i3c: Add binding for Renesas I3C controller
> arm64: dts: renesas: r9a09g047: Add I3C node
>
> Wolfram Sang (3):
> clk: renesas: r9a08g045: Add I3C clocks, resets and power domain
> i3c: add driver for Renesas I3C IP
> WIP: arm64: dts: renesas: rzg3s-smarc-som: Enable I3C
>
> .../devicetree/bindings/i3c/renesas,i3c.yaml | 186 +++
> MAINTAINERS | 7 +
> arch/arm64/boot/dts/renesas/r9a08g045.dtsi | 35 +
> arch/arm64/boot/dts/renesas/r9a09g047.dtsi | 35 +
> .../boot/dts/renesas/rzg3s-smarc-som.dtsi | 33 +
> drivers/clk/renesas/r9a08g045-cpg.c | 7 +
> drivers/clk/renesas/r9a09g047-cpg.c | 8 +
> drivers/i3c/master/Kconfig | 10 +
> drivers/i3c/master/Makefile | 1 +
> drivers/i3c/master/renesas-i3c.c | 1441 +++++++++++++++++
> 10 files changed, 1763 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/i3c/renesas,i3c.yaml
> create mode 100644 drivers/i3c/master/renesas-i3c.c
>
> --
> 2.47.2
>
>
>

My bot found new DTB warnings on the .dts files added or changed in this
series.

Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.

If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:

pip3 install dtschema --upgrade

This patch series was applied (using b4) to base:
Base: attempting to guess base-commit...
Base: tags/v6.16-rc1 (exact match)

If this is not the correct base, please add 'base-commit' tag
(or use b4 which does this automatically)

New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/renesas/' for 20250611093934.4208-1-wsa+renesas@sang-engineering.com:

arch/arm64/boot/dts/renesas/r9a08g045s33-smarc.dtb: /soc/i3c@1005b000/temp@4a: failed to match any schema with compatible: ['adi,adt7411']