2021-06-22 23:15:40

by Kieran Bingham

[permalink] [raw]
Subject: [PATCH] dt-bindings: display: renesas,du: Provide bindings for r8a779a0

From: Kieran Bingham <[email protected]>

Extend the Renesas DU display bindings to support the r8a779a0 V3U.

Signed-off-by: Kieran Bingham <[email protected]>
---
.../bindings/display/renesas,du.yaml | 52 +++++++++++++++++++
1 file changed, 52 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/renesas,du.yaml b/Documentation/devicetree/bindings/display/renesas,du.yaml
index 121596f106da..febbd89a646e 100644
--- a/Documentation/devicetree/bindings/display/renesas,du.yaml
+++ b/Documentation/devicetree/bindings/display/renesas,du.yaml
@@ -39,6 +39,7 @@ properties:
- renesas,du-r8a77980 # for R-Car V3H compatible DU
- renesas,du-r8a77990 # for R-Car E3 compatible DU
- renesas,du-r8a77995 # for R-Car D3 compatible DU
+ - renesas,du-r8a779a0 # for R-Car V3U compatible DU

reg:
maxItems: 1
@@ -774,6 +775,57 @@ allOf:
- reset-names
- renesas,vsps

+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - renesas,du-r8a779a0
+ then:
+ properties:
+ clocks:
+ items:
+ - description: Functional clock for DU0
+ - description: Functional clock for DU1
+
+ clock-names:
+ items:
+ - const: du.0
+ - const: du.1
+
+ interrupts:
+ maxItems: 2
+
+ resets:
+ maxItems: 1
+
+ reset-names:
+ items:
+ - const: du.0
+
+ ports:
+ properties:
+ port@0:
+ description: DSI 0
+ port@1:
+ description: DSI 1
+ port@2: false
+ port@3: false
+
+ required:
+ - port@0
+ - port@1
+
+ renesas,vsps:
+ minItems: 2
+
+ required:
+ - clock-names
+ - interrupts
+ - resets
+ - reset-names
+ - renesas,vsps
+
additionalProperties: false

examples:
--
2.30.2


2021-06-23 02:46:41

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: display: renesas,du: Provide bindings for r8a779a0

Hi Kieran,

Thank you for the patch.

On Wed, Jun 23, 2021 at 12:11:46AM +0100, Kieran Bingham wrote:
> From: Kieran Bingham <[email protected]>
>
> Extend the Renesas DU display bindings to support the r8a779a0 V3U.
>
> Signed-off-by: Kieran Bingham <[email protected]>

Reviewed-by: Laurent Pinchart <[email protected]>

> ---
> .../bindings/display/renesas,du.yaml | 52 +++++++++++++++++++
> 1 file changed, 52 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/display/renesas,du.yaml b/Documentation/devicetree/bindings/display/renesas,du.yaml
> index 121596f106da..febbd89a646e 100644
> --- a/Documentation/devicetree/bindings/display/renesas,du.yaml
> +++ b/Documentation/devicetree/bindings/display/renesas,du.yaml
> @@ -39,6 +39,7 @@ properties:
> - renesas,du-r8a77980 # for R-Car V3H compatible DU
> - renesas,du-r8a77990 # for R-Car E3 compatible DU
> - renesas,du-r8a77995 # for R-Car D3 compatible DU
> + - renesas,du-r8a779a0 # for R-Car V3U compatible DU
>
> reg:
> maxItems: 1
> @@ -774,6 +775,57 @@ allOf:
> - reset-names
> - renesas,vsps
>
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - renesas,du-r8a779a0
> + then:
> + properties:
> + clocks:
> + items:
> + - description: Functional clock for DU0
> + - description: Functional clock for DU1
> +
> + clock-names:
> + items:
> + - const: du.0
> + - const: du.1
> +
> + interrupts:
> + maxItems: 2
> +
> + resets:
> + maxItems: 1
> +
> + reset-names:
> + items:
> + - const: du.0
> +
> + ports:
> + properties:
> + port@0:
> + description: DSI 0
> + port@1:
> + description: DSI 1
> + port@2: false
> + port@3: false
> +
> + required:
> + - port@0
> + - port@1
> +
> + renesas,vsps:
> + minItems: 2
> +
> + required:
> + - clock-names
> + - interrupts
> + - resets
> + - reset-names
> + - renesas,vsps
> +
> additionalProperties: false
>
> examples:

--
Regards,

Laurent Pinchart

2021-06-23 12:54:44

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: display: renesas,du: Provide bindings for r8a779a0

Hi Kieran,

On Wed, Jun 23, 2021 at 1:11 AM Kieran Bingham
<[email protected]> wrote:
> From: Kieran Bingham <[email protected]>
>
> Extend the Renesas DU display bindings to support the r8a779a0 V3U.
>
> Signed-off-by: Kieran Bingham <[email protected]>

Thanks for your patch!

> --- a/Documentation/devicetree/bindings/display/renesas,du.yaml
> +++ b/Documentation/devicetree/bindings/display/renesas,du.yaml
> @@ -39,6 +39,7 @@ properties:
> - renesas,du-r8a77980 # for R-Car V3H compatible DU
> - renesas,du-r8a77990 # for R-Car E3 compatible DU
> - renesas,du-r8a77995 # for R-Car D3 compatible DU
> + - renesas,du-r8a779a0 # for R-Car V3U compatible DU
>
> reg:
> maxItems: 1
> @@ -774,6 +775,57 @@ allOf:
> - reset-names
> - renesas,vsps
>
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - renesas,du-r8a779a0
> + then:
> + properties:
> + clocks:
> + items:
> + - description: Functional clock for DU0
> + - description: Functional clock for DU1
> +
> + clock-names:
> + items:
> + - const: du.0
> + - const: du.1

The hardware block has only a single function clock for both channels,
like on R-Car H1.

And what about DU_DOTCLKIN?

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2021-06-23 12:59:38

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: display: renesas,du: Provide bindings for r8a779a0

Hi Geert,

On Wed, Jun 23, 2021 at 02:53:33PM +0200, Geert Uytterhoeven wrote:
> On Wed, Jun 23, 2021 at 1:11 AM Kieran Bingham wrote:
> > From: Kieran Bingham <[email protected]>
> >
> > Extend the Renesas DU display bindings to support the r8a779a0 V3U.
> >
> > Signed-off-by: Kieran Bingham <[email protected]>
>
> Thanks for your patch!
>
> > --- a/Documentation/devicetree/bindings/display/renesas,du.yaml
> > +++ b/Documentation/devicetree/bindings/display/renesas,du.yaml
> > @@ -39,6 +39,7 @@ properties:
> > - renesas,du-r8a77980 # for R-Car V3H compatible DU
> > - renesas,du-r8a77990 # for R-Car E3 compatible DU
> > - renesas,du-r8a77995 # for R-Car D3 compatible DU
> > + - renesas,du-r8a779a0 # for R-Car V3U compatible DU
> >
> > reg:
> > maxItems: 1
> > @@ -774,6 +775,57 @@ allOf:
> > - reset-names
> > - renesas,vsps
> >
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + enum:
> > + - renesas,du-r8a779a0
> > + then:
> > + properties:
> > + clocks:
> > + items:
> > + - description: Functional clock for DU0
> > + - description: Functional clock for DU1
> > +
> > + clock-names:
> > + items:
> > + - const: du.0
> > + - const: du.1
>
> The hardware block has only a single function clock for both channels,
> like on R-Car H1.
>
> And what about DU_DOTCLKIN?

As far as I can tell, there's no DU_DOTCLKIN in V3U.

--
Regards,

Laurent Pinchart

2021-06-23 13:11:06

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: display: renesas,du: Provide bindings for r8a779a0

Hi Laurent,

On Wed, Jun 23, 2021 at 2:58 PM Laurent Pinchart
<[email protected]> wrote:
> On Wed, Jun 23, 2021 at 02:53:33PM +0200, Geert Uytterhoeven wrote:
> > On Wed, Jun 23, 2021 at 1:11 AM Kieran Bingham wrote:
> > > From: Kieran Bingham <[email protected]>
> > >
> > > Extend the Renesas DU display bindings to support the r8a779a0 V3U.
> > >
> > > Signed-off-by: Kieran Bingham <[email protected]>
> >
> > Thanks for your patch!
> >
> > > --- a/Documentation/devicetree/bindings/display/renesas,du.yaml
> > > +++ b/Documentation/devicetree/bindings/display/renesas,du.yaml
> > > @@ -39,6 +39,7 @@ properties:
> > > - renesas,du-r8a77980 # for R-Car V3H compatible DU
> > > - renesas,du-r8a77990 # for R-Car E3 compatible DU
> > > - renesas,du-r8a77995 # for R-Car D3 compatible DU
> > > + - renesas,du-r8a779a0 # for R-Car V3U compatible DU
> > >
> > > reg:
> > > maxItems: 1
> > > @@ -774,6 +775,57 @@ allOf:
> > > - reset-names
> > > - renesas,vsps
> > >
> > > + - if:
> > > + properties:
> > > + compatible:
> > > + contains:
> > > + enum:
> > > + - renesas,du-r8a779a0
> > > + then:
> > > + properties:
> > > + clocks:
> > > + items:
> > > + - description: Functional clock for DU0
> > > + - description: Functional clock for DU1
> > > +
> > > + clock-names:
> > > + items:
> > > + - const: du.0
> > > + - const: du.1
> >
> > The hardware block has only a single function clock for both channels,
> > like on R-Car H1.
> >
> > And what about DU_DOTCLKIN?
>
> As far as I can tell, there's no DU_DOTCLKIN in V3U.

See Table 6.13 of the Hardware User's Manual, pin IPC_CLKIN.
Note that the register bits to configure it are present in
drivers/pinctrl/renesas/pfc-r8a779a0.c, but the actual pin group is
missing.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2021-06-23 13:16:35

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: display: renesas,du: Provide bindings for r8a779a0

Hi Geert,

On Wed, Jun 23, 2021 at 03:09:06PM +0200, Geert Uytterhoeven wrote:
> On Wed, Jun 23, 2021 at 2:58 PM Laurent Pinchart wrote:
> > On Wed, Jun 23, 2021 at 02:53:33PM +0200, Geert Uytterhoeven wrote:
> > > On Wed, Jun 23, 2021 at 1:11 AM Kieran Bingham wrote:
> > > > From: Kieran Bingham <[email protected]>
> > > >
> > > > Extend the Renesas DU display bindings to support the r8a779a0 V3U.
> > > >
> > > > Signed-off-by: Kieran Bingham <[email protected]>
> > >
> > > Thanks for your patch!
> > >
> > > > --- a/Documentation/devicetree/bindings/display/renesas,du.yaml
> > > > +++ b/Documentation/devicetree/bindings/display/renesas,du.yaml
> > > > @@ -39,6 +39,7 @@ properties:
> > > > - renesas,du-r8a77980 # for R-Car V3H compatible DU
> > > > - renesas,du-r8a77990 # for R-Car E3 compatible DU
> > > > - renesas,du-r8a77995 # for R-Car D3 compatible DU
> > > > + - renesas,du-r8a779a0 # for R-Car V3U compatible DU
> > > >
> > > > reg:
> > > > maxItems: 1
> > > > @@ -774,6 +775,57 @@ allOf:
> > > > - reset-names
> > > > - renesas,vsps
> > > >
> > > > + - if:
> > > > + properties:
> > > > + compatible:
> > > > + contains:
> > > > + enum:
> > > > + - renesas,du-r8a779a0
> > > > + then:
> > > > + properties:
> > > > + clocks:
> > > > + items:
> > > > + - description: Functional clock for DU0
> > > > + - description: Functional clock for DU1
> > > > +
> > > > + clock-names:
> > > > + items:
> > > > + - const: du.0
> > > > + - const: du.1
> > >
> > > The hardware block has only a single function clock for both channels,
> > > like on R-Car H1.
> > >
> > > And what about DU_DOTCLKIN?
> >
> > As far as I can tell, there's no DU_DOTCLKIN in V3U.
>
> See Table 6.13 of the Hardware User's Manual, pin IPC_CLKIN.

Maybe that's incorrect ? There's no mention of DU_DOTCLKIN anywhere
else, and the DU bits that allow selection of the input clocks list the
value documented for Gen3 SoCs as selected DU_DOTCLKIN as reserved.

> Note that the register bits to configure it are present in
> drivers/pinctrl/renesas/pfc-r8a779a0.c, but the actual pin group is
> missing.

--
Regards,

Laurent Pinchart

2021-09-01 22:47:52

by Kieran Bingham

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: display: renesas,du: Provide bindings for r8a779a0

Hi Geert,

On 23/06/2021 13:53, Geert Uytterhoeven wrote:
> Hi Kieran,
>
> On Wed, Jun 23, 2021 at 1:11 AM Kieran Bingham
> <[email protected]> wrote:
>> From: Kieran Bingham <[email protected]>
>>
>> Extend the Renesas DU display bindings to support the r8a779a0 V3U.
>>
>> Signed-off-by: Kieran Bingham <[email protected]>
>
> Thanks for your patch!
>
>> --- a/Documentation/devicetree/bindings/display/renesas,du.yaml
>> +++ b/Documentation/devicetree/bindings/display/renesas,du.yaml
>> @@ -39,6 +39,7 @@ properties:
>> - renesas,du-r8a77980 # for R-Car V3H compatible DU
>> - renesas,du-r8a77990 # for R-Car E3 compatible DU
>> - renesas,du-r8a77995 # for R-Car D3 compatible DU
>> + - renesas,du-r8a779a0 # for R-Car V3U compatible DU
>>
>> reg:
>> maxItems: 1
>> @@ -774,6 +775,57 @@ allOf:
>> - reset-names
>> - renesas,vsps
>>
>> + - if:
>> + properties:
>> + compatible:
>> + contains:
>> + enum:
>> + - renesas,du-r8a779a0
>> + then:
>> + properties:
>> + clocks:
>> + items:
>> + - description: Functional clock for DU0
>> + - description: Functional clock for DU1
>> +
>> + clock-names:
>> + items:
>> + - const: du.0
>> + - const: du.1
>
> The hardware block has only a single function clock for both channels,
> like on R-Car H1.

Indeed, but I believe both channels still need to set them, if they can
be operated independently, the driver looks up the clock based on the
du.%d, and so for DU1, it is simply expressed as the same clock in DT.

Is this acceptable? or is there further issues there?

>
> And what about DU_DOTCLKIN?

This thread has already discussed this with Laurent, and I concur -
There doesn't appear to be any relevant reference to DU_DOTCLKIN on the
DU side.


>
> Gr{oetje,eeting}s,
>
> Geert
>

2021-09-01 22:49:32

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: display: renesas,du: Provide bindings for r8a779a0

Hi Kieran,

On Wed, Sep 01, 2021 at 11:01:11PM +0100, Kieran Bingham wrote:
> On 23/06/2021 13:53, Geert Uytterhoeven wrote:
> > On Wed, Jun 23, 2021 at 1:11 AM Kieran Bingham wrote:
> >> From: Kieran Bingham <[email protected]>
> >>
> >> Extend the Renesas DU display bindings to support the r8a779a0 V3U.
> >>
> >> Signed-off-by: Kieran Bingham <[email protected]>
> >
> > Thanks for your patch!
> >
> >> --- a/Documentation/devicetree/bindings/display/renesas,du.yaml
> >> +++ b/Documentation/devicetree/bindings/display/renesas,du.yaml
> >> @@ -39,6 +39,7 @@ properties:
> >> - renesas,du-r8a77980 # for R-Car V3H compatible DU
> >> - renesas,du-r8a77990 # for R-Car E3 compatible DU
> >> - renesas,du-r8a77995 # for R-Car D3 compatible DU
> >> + - renesas,du-r8a779a0 # for R-Car V3U compatible DU
> >>
> >> reg:
> >> maxItems: 1
> >> @@ -774,6 +775,57 @@ allOf:
> >> - reset-names
> >> - renesas,vsps
> >>
> >> + - if:
> >> + properties:
> >> + compatible:
> >> + contains:
> >> + enum:
> >> + - renesas,du-r8a779a0
> >> + then:
> >> + properties:
> >> + clocks:
> >> + items:
> >> + - description: Functional clock for DU0
> >> + - description: Functional clock for DU1
> >> +
> >> + clock-names:
> >> + items:
> >> + - const: du.0
> >> + - const: du.1
> >
> > The hardware block has only a single function clock for both channels,
> > like on R-Car H1.
>
> Indeed, but I believe both channels still need to set them, if they can
> be operated independently, the driver looks up the clock based on the
> du.%d, and so for DU1, it is simply expressed as the same clock in DT.
>
> Is this acceptable? or is there further issues there?

Could we handle that on the driver side, like we do for H1 by not
setting RCAR_DU_FEATURE_CRTC_IRQ_CLOCK ? We would probably need to split
that flag in two, as there are two interrupts.

It's a bit annoying not knowing what the MSTP bits do exactly, we've
modelled them as gates for the functional clock, but maybe in cases like
this one the mapping isn't fully correct, I'm not sure.

> > And what about DU_DOTCLKIN?
>
> This thread has already discussed this with Laurent, and I concur -
> There doesn't appear to be any relevant reference to DU_DOTCLKIN on the
> DU side.

--
Regards,

Laurent Pinchart

2021-09-01 23:22:24

by Kieran Bingham

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: display: renesas,du: Provide bindings for r8a779a0

Hi Laurent,

On 01/09/2021 23:13, Laurent Pinchart wrote:
> Hi Kieran,
>
> On Wed, Sep 01, 2021 at 11:01:11PM +0100, Kieran Bingham wrote:
>> On 23/06/2021 13:53, Geert Uytterhoeven wrote:
>>> On Wed, Jun 23, 2021 at 1:11 AM Kieran Bingham wrote:
>>>> From: Kieran Bingham <[email protected]>
>>>>
>>>> Extend the Renesas DU display bindings to support the r8a779a0 V3U.
>>>>
>>>> Signed-off-by: Kieran Bingham <[email protected]>
>>>
>>> Thanks for your patch!
>>>
>>>> --- a/Documentation/devicetree/bindings/display/renesas,du.yaml
>>>> +++ b/Documentation/devicetree/bindings/display/renesas,du.yaml
>>>> @@ -39,6 +39,7 @@ properties:
>>>> - renesas,du-r8a77980 # for R-Car V3H compatible DU
>>>> - renesas,du-r8a77990 # for R-Car E3 compatible DU
>>>> - renesas,du-r8a77995 # for R-Car D3 compatible DU
>>>> + - renesas,du-r8a779a0 # for R-Car V3U compatible DU
>>>>
>>>> reg:
>>>> maxItems: 1
>>>> @@ -774,6 +775,57 @@ allOf:
>>>> - reset-names
>>>> - renesas,vsps
>>>>
>>>> + - if:
>>>> + properties:
>>>> + compatible:
>>>> + contains:
>>>> + enum:
>>>> + - renesas,du-r8a779a0
>>>> + then:
>>>> + properties:
>>>> + clocks:
>>>> + items:
>>>> + - description: Functional clock for DU0
>>>> + - description: Functional clock for DU1
>>>> +
>>>> + clock-names:
>>>> + items:
>>>> + - const: du.0
>>>> + - const: du.1
>>>
>>> The hardware block has only a single function clock for both channels,
>>> like on R-Car H1.
>>
>> Indeed, but I believe both channels still need to set them, if they can
>> be operated independently, the driver looks up the clock based on the
>> du.%d, and so for DU1, it is simply expressed as the same clock in DT.
>>
>> Is this acceptable? or is there further issues there?
>
> Could we handle that on the driver side, like we do for H1 by not
> setting RCAR_DU_FEATURE_CRTC_IRQ_CLOCK ? We would probably need to split
> that flag in two, as there are two interrupts.

Ok, that's not so bad to split, Done.


> It's a bit annoying not knowing what the MSTP bits do exactly, we've
> modelled them as gates for the functional clock, but maybe in cases like
> this one the mapping isn't fully correct, I'm not sure.
>
>>> And what about DU_DOTCLKIN?
>>
>> This thread has already discussed this with Laurent, and I concur -
>> There doesn't appear to be any relevant reference to DU_DOTCLKIN on the
>> DU side.
>