Skip to contentSkip to conversation

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

PATCH Superseded Rob Herring 2 participants 3 messages Jun 10, 2022

Subsystems (4)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Rob Herring

author maintainer
#0 lore raw

PATCH 1/1 dt-bindings: display: panel-simple: Add Arm virtual platforms display

'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 <[email protected]>
Cc Robin Murphy <[email protected]>
Cc Andre Przywara <[email protected]>
---
 .../bindings/display/arm,pl11x.yaml           | 15 +-------------
 .../bindings/display/panel/panel-simple.yaml  | 20 +++++++++++++------
 2 files changed, 15 insertions(+), 20 deletions(-)
Documentation/devicetree/bindings/display/arm,pl11x.yaml +1 -14
index b545c6d20325..6cc9045e5c68 100644
@@ -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>;
-        };
     };
 ...
Documentation/devicetree/bindings/display/panel/panel-simple.yaml +14 -6
index 21ba90c9fe33..97afd276c54a 100644
@@ -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:
   - |
Signature · 1 line
2.34.1
#1 lore raw

Hi Rob,

Quoted 82 lines · Rob Herring

'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 <[email protected]>
Cc Robin Murphy <[email protected]>
Cc Andre Przywara <[email protected]>
---
 .../bindings/display/arm,pl11x.yaml           | 15 +-------------
 .../bindings/display/panel/panel-simple.yaml  | 20 +++++++++++++------
 2 files changed, 15 insertions(+), 20 deletions(-)
Documentation/devicetree/bindings/display/arm,pl11x.yaml +1 -14
index b545c6d20325..6cc9045e5c68 100644
@@ -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>;
-        };
     };
...
Documentation/devicetree/bindings/display/panel/panel-simple.yaml +4 -6
index 21ba90c9fe33..97afd276c54a 100644
@@ -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#

Documentation/devicetree/bindings/display/panel/panel-simple.yaml properties: · line 353

Quoted 10 lines
Documentation/devicetree/bindings/display/panel/panel-simple.yaml +10 -0
+  - 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

author maintainer
#2 lore raw
Quoted 102 lines · Sam Ravnborg

Hi Rob,

Quoted 82 lines · Rob Herring

'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 <[email protected]>
Cc Robin Murphy <[email protected]>
Cc Andre Przywara <[email protected]>
---
 .../bindings/display/arm,pl11x.yaml           | 15 +-------------
 .../bindings/display/panel/panel-simple.yaml  | 20 +++++++++++++------
 2 files changed, 15 insertions(+), 20 deletions(-)
Documentation/devicetree/bindings/display/arm,pl11x.yaml +1 -14
index b545c6d20325..6cc9045e5c68 100644
@@ -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>;
-        };
     };
...
Documentation/devicetree/bindings/display/panel/panel-simple.yaml +4 -6
index 21ba90c9fe33..97afd276c54a 100644
@@ -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#

Documentation/devicetree/bindings/display/panel/panel-simple.yaml properties: · line 353

Quoted 10 lines
Documentation/devicetree/bindings/display/panel/panel-simple.yaml +10 -0
+  - 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).

Quoted 2 lines

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...

Quoted 2 lines

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