diff mbox series

dt-bindings: display: panel-simple: Add Arm virtual platforms display

Message ID 20220610203818.2193593-1-robh@kernel.org (mailing list archive)
State New, archived
Headers show
Series dt-bindings: display: panel-simple: Add Arm virtual platforms display | expand

Commit Message

Rob Herring (Arm) June 10, 2022, 8:38 p.m. UTC
'arm,rtsm-display' is a panel for Arm, Ltd. virtual platforms (e.g. FVP).
The binding has been in use for a long time, but was never documented.

Some users and an example have a 'panel-dpi' compatible, but that's not
needed without a 'panel-timing' node which none of the users have since
commit 928faf5e3e8d ("arm64: dts: fvp: Remove panel timings"). The
example does have a 'panel-timing' node, but it should not for the
same reasons the node was removed in the dts files. So update the
example in arm,pl11x.yaml to match the schema.

Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Rob Herring <robh@kernel.org>
---
 .../bindings/display/arm,pl11x.yaml           | 15 +-------------
 .../bindings/display/panel/panel-simple.yaml  | 20 +++++++++++++------
 2 files changed, 15 insertions(+), 20 deletions(-)

Comments

Sam Ravnborg June 10, 2022, 8:54 p.m. UTC | #1
Hi Rob,

On Fri, Jun 10, 2022 at 02:38:18PM -0600, Rob Herring wrote:
> 'arm,rtsm-display' is a panel for Arm, Ltd. virtual platforms (e.g. FVP).
> The binding has been in use for a long time, but was never documented.
> 
> Some users and an example have a 'panel-dpi' compatible, but that's not
> needed without a 'panel-timing' node which none of the users have since
> commit 928faf5e3e8d ("arm64: dts: fvp: Remove panel timings"). The
> example does have a 'panel-timing' node, but it should not for the
> same reasons the node was removed in the dts files. So update the
> example in arm,pl11x.yaml to match the schema.
> 
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Robin Murphy <robin.murphy@arm.com>
> Cc: Andre Przywara <andre.przywara@arm.com>
> Signed-off-by: Rob Herring <robh@kernel.org>
> ---
>  .../bindings/display/arm,pl11x.yaml           | 15 +-------------
>  .../bindings/display/panel/panel-simple.yaml  | 20 +++++++++++++------
>  2 files changed, 15 insertions(+), 20 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/display/arm,pl11x.yaml b/Documentation/devicetree/bindings/display/arm,pl11x.yaml
> index b545c6d20325..6cc9045e5c68 100644
> --- a/Documentation/devicetree/bindings/display/arm,pl11x.yaml
> +++ b/Documentation/devicetree/bindings/display/arm,pl11x.yaml
> @@ -159,25 +159,12 @@ examples:
>      };
>  
>      panel {
> -        compatible = "arm,rtsm-display", "panel-dpi";
> -        power-supply = <&vcc_supply>;
> +        compatible = "arm,rtsm-display";
>  
>          port {
>              clcd_panel: endpoint {
>                  remote-endpoint = <&clcd_pads>;
>              };
>          };
> -
> -        panel-timing {
> -            clock-frequency = <25175000>;
> -            hactive = <640>;
> -            hback-porch = <40>;
> -            hfront-porch = <24>;
> -            hsync-len = <96>;
> -            vactive = <480>;
> -            vback-porch = <32>;
> -            vfront-porch = <11>;
> -            vsync-len = <2>;
> -        };
>      };
>  ...
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
> index 21ba90c9fe33..97afd276c54a 100644
> --- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
> @@ -19,9 +19,6 @@ description: |
>  
>    If the panel is more advanced a dedicated binding file is required.
>  
> -allOf:
> -  - $ref: panel-common.yaml#
> -
>  properties:
>  
>    compatible:
> @@ -35,6 +32,8 @@ properties:
>        - ampire,am-480272h3tmqw-t01h
>          # Ampire AM-800480R3TMQW-A1H 7.0" WVGA TFT LCD panel
>        - ampire,am800480r3tmqwa1h
> +        # Arm, Ltd. Virtual Platforms Display
> +      - arm,rtsm-display
>          # AU Optronics Corporation 10.1" WSVGA TFT LCD panel
>        - auo,b101aw03
>          # AU Optronics Corporation 10.1" WSVGA TFT LCD panel
> @@ -340,9 +339,18 @@ properties:
>  
>  additionalProperties: false
>  
> -required:
> -  - compatible
> -  - power-supply
> +allOf:
> +  - $ref: panel-common.yaml#
> +  - if:
> +      # Most 'simple' panels must have a single supply, but a virtual display does not
> +      not:
> +        properties:
> +          compatible:
> +            contains:
> +              const: arm,rtsm-display
> +    then:
> +      required:
> +        - power-supply

Sorry, but I do not like this change. The beauty of panel-simple is that
this is a collection of simple display with identical bindings because
the HW is more or less the same (in general - not in details like size
etc).

Any panels that requires more are pushed out to their own binding and
for arm,rtsm-display that would be better.

It is not this single exceptions that bothers me, it is the many
exceptions we will have in a few years from now.

	Sam
Rob Herring (Arm) June 10, 2022, 9:25 p.m. UTC | #2
On Fri, Jun 10, 2022 at 2:55 PM Sam Ravnborg <sam@ravnborg.org> wrote:
>
> Hi Rob,
>
> On Fri, Jun 10, 2022 at 02:38:18PM -0600, Rob Herring wrote:
> > 'arm,rtsm-display' is a panel for Arm, Ltd. virtual platforms (e.g. FVP).
> > The binding has been in use for a long time, but was never documented.
> >
> > Some users and an example have a 'panel-dpi' compatible, but that's not
> > needed without a 'panel-timing' node which none of the users have since
> > commit 928faf5e3e8d ("arm64: dts: fvp: Remove panel timings"). The
> > example does have a 'panel-timing' node, but it should not for the
> > same reasons the node was removed in the dts files. So update the
> > example in arm,pl11x.yaml to match the schema.
> >
> > Cc: Linus Walleij <linus.walleij@linaro.org>
> > Cc: Robin Murphy <robin.murphy@arm.com>
> > Cc: Andre Przywara <andre.przywara@arm.com>
> > Signed-off-by: Rob Herring <robh@kernel.org>
> > ---
> >  .../bindings/display/arm,pl11x.yaml           | 15 +-------------
> >  .../bindings/display/panel/panel-simple.yaml  | 20 +++++++++++++------
> >  2 files changed, 15 insertions(+), 20 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/display/arm,pl11x.yaml b/Documentation/devicetree/bindings/display/arm,pl11x.yaml
> > index b545c6d20325..6cc9045e5c68 100644
> > --- a/Documentation/devicetree/bindings/display/arm,pl11x.yaml
> > +++ b/Documentation/devicetree/bindings/display/arm,pl11x.yaml
> > @@ -159,25 +159,12 @@ examples:
> >      };
> >
> >      panel {
> > -        compatible = "arm,rtsm-display", "panel-dpi";
> > -        power-supply = <&vcc_supply>;
> > +        compatible = "arm,rtsm-display";
> >
> >          port {
> >              clcd_panel: endpoint {
> >                  remote-endpoint = <&clcd_pads>;
> >              };
> >          };
> > -
> > -        panel-timing {
> > -            clock-frequency = <25175000>;
> > -            hactive = <640>;
> > -            hback-porch = <40>;
> > -            hfront-porch = <24>;
> > -            hsync-len = <96>;
> > -            vactive = <480>;
> > -            vback-porch = <32>;
> > -            vfront-porch = <11>;
> > -            vsync-len = <2>;
> > -        };
> >      };
> >  ...
> > diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
> > index 21ba90c9fe33..97afd276c54a 100644
> > --- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
> > +++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
> > @@ -19,9 +19,6 @@ description: |
> >
> >    If the panel is more advanced a dedicated binding file is required.
> >
> > -allOf:
> > -  - $ref: panel-common.yaml#
> > -
> >  properties:
> >
> >    compatible:
> > @@ -35,6 +32,8 @@ properties:
> >        - ampire,am-480272h3tmqw-t01h
> >          # Ampire AM-800480R3TMQW-A1H 7.0" WVGA TFT LCD panel
> >        - ampire,am800480r3tmqwa1h
> > +        # Arm, Ltd. Virtual Platforms Display
> > +      - arm,rtsm-display
> >          # AU Optronics Corporation 10.1" WSVGA TFT LCD panel
> >        - auo,b101aw03
> >          # AU Optronics Corporation 10.1" WSVGA TFT LCD panel
> > @@ -340,9 +339,18 @@ properties:
> >
> >  additionalProperties: false
> >
> > -required:
> > -  - compatible
> > -  - power-supply
> > +allOf:
> > +  - $ref: panel-common.yaml#
> > +  - if:
> > +      # Most 'simple' panels must have a single supply, but a virtual display does not
> > +      not:
> > +        properties:
> > +          compatible:
> > +            contains:
> > +              const: arm,rtsm-display
> > +    then:
> > +      required:
> > +        - power-supply
>
> Sorry, but I do not like this change. The beauty of panel-simple is that
> this is a collection of simple display with identical bindings because
> the HW is more or less the same (in general - not in details like size
> etc).
>
> Any panels that requires more are pushed out to their own binding and
> for arm,rtsm-display that would be better.

But I require less...

> It is not this single exceptions that bothers me, it is the many
> exceptions we will have in a few years from now.

Fair enough, I'll make it a separate file.

Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/display/arm,pl11x.yaml b/Documentation/devicetree/bindings/display/arm,pl11x.yaml
index b545c6d20325..6cc9045e5c68 100644
--- a/Documentation/devicetree/bindings/display/arm,pl11x.yaml
+++ b/Documentation/devicetree/bindings/display/arm,pl11x.yaml
@@ -159,25 +159,12 @@  examples:
     };
 
     panel {
-        compatible = "arm,rtsm-display", "panel-dpi";
-        power-supply = <&vcc_supply>;
+        compatible = "arm,rtsm-display";
 
         port {
             clcd_panel: endpoint {
                 remote-endpoint = <&clcd_pads>;
             };
         };
-
-        panel-timing {
-            clock-frequency = <25175000>;
-            hactive = <640>;
-            hback-porch = <40>;
-            hfront-porch = <24>;
-            hsync-len = <96>;
-            vactive = <480>;
-            vback-porch = <32>;
-            vfront-porch = <11>;
-            vsync-len = <2>;
-        };
     };
 ...
diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
index 21ba90c9fe33..97afd276c54a 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
@@ -19,9 +19,6 @@  description: |
 
   If the panel is more advanced a dedicated binding file is required.
 
-allOf:
-  - $ref: panel-common.yaml#
-
 properties:
 
   compatible:
@@ -35,6 +32,8 @@  properties:
       - ampire,am-480272h3tmqw-t01h
         # Ampire AM-800480R3TMQW-A1H 7.0" WVGA TFT LCD panel
       - ampire,am800480r3tmqwa1h
+        # Arm, Ltd. Virtual Platforms Display
+      - arm,rtsm-display
         # AU Optronics Corporation 10.1" WSVGA TFT LCD panel
       - auo,b101aw03
         # AU Optronics Corporation 10.1" WSVGA TFT LCD panel
@@ -340,9 +339,18 @@  properties:
 
 additionalProperties: false
 
-required:
-  - compatible
-  - power-supply
+allOf:
+  - $ref: panel-common.yaml#
+  - if:
+      # Most 'simple' panels must have a single supply, but a virtual display does not
+      not:
+        properties:
+          compatible:
+            contains:
+              const: arm,rtsm-display
+    then:
+      required:
+        - power-supply
 
 examples:
   - |