Re: [PATCH v8 1/9] dt-bindings: display: renesas,rzg2l-du: Document RZ/G3E SoC

From: Philipp Zabel

Date: Thu Sep 03 2026 - 06:08:45 EST


On Mi, 2026-09-02 at 17:11 +0200, Tommaso Merciai wrote:
> On Wed, Sep 02, 2026 at 04:20:51PM +0200, Geert Uytterhoeven wrote:
> > Hi all,
> >
> > On Wed, 2 Sept 2026 at 16:03, Tommaso Merciai
> > <tommaso.merciai.xr@xxxxxxxxxxxxxx> wrote:
> > > On Wed, Sep 02, 2026 at 08:37:06AM +0200, Krzysztof Kozlowski wrote:
> > > > On Fri, Aug 28, 2026 at 02:21:04PM +0200, Tommaso Merciai wrote:
> > > > > The RZ/G3E Soc has 2 LCD controller (LCDC), contain a Frame Compression
> > > > > Processor (FCPVD), a Video Signal Processor (VSPD), Video Signal
> > > > > Processor (VSPD), and Display Unit (DU).
> > > > >
> > > > > - LCDC0 supports DSI and LVDS (single or dual-channel) outputs.
> > > > > - LCDC1 supports DSI, LVDS (single-channel), and RGB outputs.
> > > > >
> > > > > Add new SoC-specific compatible string 'renesas,r9a09g047-du'.
> > > > >
> > > > > Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@xxxxxxxxxxxxxx>
> >
> > > > > --- a/Documentation/devicetree/bindings/display/renesas,rzg2l-du.yaml
> > > > > +++ b/Documentation/devicetree/bindings/display/renesas,rzg2l-du.yaml
> > > > > @@ -21,6 +21,7 @@ properties:
> > > > > - renesas,r9a07g043u-du # RZ/G2UL
> > > > > - renesas,r9a07g044-du # RZ/G2{L,LC}
> > > > > - renesas,r9a08g046-du # RZ/G3L
> > > > > + - renesas,r9a09g047-du # RZ/G3E
> > > > > - renesas,r9a09g057-du # RZ/V2H(P)
> > > > > - renesas,r9a09g077-du # RZ/T2H
> > > > > - items:
> > > > > @@ -35,25 +36,51 @@ properties:
> > > > > - const: renesas,r9a09g077-du # RZ/T2H fallback
> > > > >
> > > > > reg:
> > > > > - maxItems: 1
> > > > > + minItems: 1
> > > > > + maxItems: 2
> > > > > +
> > > > > + reg-names:
> > > > > + items:
> > > > > + - const: du.0
> > > > > + - const: du.1
> > > >
> > > > du is the name of the device, thus calling items "0" and "1" is pretty
> > > > pointless - indices already define that. Please drop the reg-names.
> > >
> > > Will drop this in v8.
> > >
> > > > > interrupts:
> > > > > - maxItems: 1
> > > > > + minItems: 1
> > > > > + maxItems: 2
> > > > > +
> > > > > + interrupt-names:
> > > > > + items:
> > > > > + - const: du.0
> > > > > + - const: du.1
> > > >
> > > > Same here
> > >
> > > Same, thanks.
> > >
> > > >
> > > > >
> > > > > clocks:
> > > > > + minItems: 3
> > > > > items:
> > > > > - description: Main clock
> > > > > - description: Register access clock
> > > > > - description: Video clock
> > > > > + - description: Main clock for DU1
> > > > > + - description: Register access clock for DU1
> > > > > + - description: Video clock for DU1
> > > > >
> > > > > clock-names:
> > > > > + minItems: 3
> > > > > items:
> > > > > - const: aclk
> > > > > - const: pclk
> > > > > - const: vclk
> > > > > + - const: aclk1
> > > > > + - const: pclk1
> > > > > + - const: vclk1
> > > > >
> > > > > resets:
> > > > > - maxItems: 1
> > > > > + minItems: 1
> > > > > + maxItems: 2
> > > > > +
> > > > > + reset-names:
> > > > > + items:
> > > > > + - const: resetn
> > > > > + - const: resetn1
> > > >
> > > > Drop reset-names
> > >
> > > For reset-names, I got the the following comment from Philipp in v7 [1].
> > >
> > > Dropping reset-names would force the driver back to an index-based
> > > lookup, which is what that comment explicitly asked me to avoid.
> > >
> > > [1] https://lore.kernel.org/all/8382e2b9fd07fb1132c26e228b3899336fc1fdd4.camel@xxxxxxxxxxxxxx/
> > >
> > > Philipp, Krzysztof, could you agree on which way you'd prefer?
> > > I'll follow whatever you decide.
> >
> > Until we get a variant with a third interrupt (or reset or reg),
> > which is not related to the number of channels...
>
> Right, IMHO names keep the driver flexible enough for such a variant,
> indices don't.

I would like to get rid of the reset_control_get_by_index() API
altogether, if possible. Currently there are only users with index ==
0, so this would be the first and so far only valid user. I'd prefer if
we could keep reset lookup aligned with clock lookup, with via clock-
names as well.

That being said, why are the two DU units represented as a single
device tree node at all? Aren't they two completely separate instances
of the same IP core?

regards
Philipp