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 |
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
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 --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: - |
'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(-)