diff mbox series

dt-bindings: display: panel: add common definition of ports

Message ID 20230416153929.356330-1-krzysztof.kozlowski@linaro.org
State New
Headers show
Series dt-bindings: display: panel: add common definition of ports | expand

Commit Message

Krzysztof Kozlowski April 16, 2023, 3:39 p.m. UTC
Few panel bindings for dual-link connections just type "ports: true",
which does not enforce any type.  Add common definition of ports, so the
type will be fixed.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

---

Cc: Konrad Dybcio <konrad.dybcio@linaro.org>
---
 .../bindings/display/panel/panel-common.yaml     | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

Comments

Konrad Dybcio April 17, 2023, 7:20 a.m. UTC | #1
On 16.04.2023 17:39, Krzysztof Kozlowski wrote:
> Few panel bindings for dual-link connections just type "ports: true",
> which does not enforce any type.  Add common definition of ports, so the
> type will be fixed.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> 
> ---
Acked-by: Konrad Dybcio <konrad.dybcio@linaro.org>

Konrad
> 
> Cc: Konrad Dybcio <konrad.dybcio@linaro.org>
> ---
>  .../bindings/display/panel/panel-common.yaml     | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-common.yaml b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> index 5b38dc89cb21..ad62d34e6fa3 100644
> --- a/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> @@ -70,6 +70,16 @@ properties:
>    port:
>      $ref: /schemas/graph.yaml#/properties/port
>  
> +  # For dual-link connections
> +  ports:
> +    $ref: /schemas/graph.yaml#/properties/ports
> +    patternProperties:
> +      "^port@[0-9a-f]+$":
> +        $ref: /schemas/graph.yaml#/$defs/port-base
> +
> +    required:
> +      - port@0
> +
>    ddc-i2c-bus:
>      $ref: /schemas/types.yaml#/definitions/phandle
>      description:
> @@ -154,6 +164,12 @@ dependencies:
>    width-mm: [ height-mm ]
>    height-mm: [ width-mm ]
>  
> +allOf:
> +  - not:
> +      required:
> +        - port
> +        - ports
> +
>  additionalProperties: true
>  
>  ...
Neil Armstrong April 17, 2023, 7:24 a.m. UTC | #2
On 16/04/2023 17:39, Krzysztof Kozlowski wrote:
> Few panel bindings for dual-link connections just type "ports: true",
> which does not enforce any type.  Add common definition of ports, so the
> type will be fixed.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> 
> ---
> 
> Cc: Konrad Dybcio <konrad.dybcio@linaro.org>
> ---
>   .../bindings/display/panel/panel-common.yaml     | 16 ++++++++++++++++
>   1 file changed, 16 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-common.yaml b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> index 5b38dc89cb21..ad62d34e6fa3 100644
> --- a/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> @@ -70,6 +70,16 @@ properties:
>     port:
>       $ref: /schemas/graph.yaml#/properties/port
>   
> +  # For dual-link connections
> +  ports:
> +    $ref: /schemas/graph.yaml#/properties/ports
> +    patternProperties:
> +      "^port@[0-9a-f]+$":
> +        $ref: /schemas/graph.yaml#/$defs/port-base
> +
> +    required:
> +      - port@0
> +
>     ddc-i2c-bus:
>       $ref: /schemas/types.yaml#/definitions/phandle
>       description:
> @@ -154,6 +164,12 @@ dependencies:
>     width-mm: [ height-mm ]
>     height-mm: [ width-mm ]
>   
> +allOf:
> +  - not:
> +      required:
> +        - port
> +        - ports
> +
>   additionalProperties: true
>   
>   ...

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Rob Herring (Arm) April 18, 2023, 10:26 p.m. UTC | #3
On Sun, Apr 16, 2023 at 05:39:29PM +0200, Krzysztof Kozlowski wrote:
> Few panel bindings for dual-link connections just type "ports: true",
> which does not enforce any type.  Add common definition of ports, so the
> type will be fixed.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> 
> ---
> 
> Cc: Konrad Dybcio <konrad.dybcio@linaro.org>
> ---
>  .../bindings/display/panel/panel-common.yaml     | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-common.yaml b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> index 5b38dc89cb21..ad62d34e6fa3 100644
> --- a/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> @@ -70,6 +70,16 @@ properties:
>    port:
>      $ref: /schemas/graph.yaml#/properties/port
>  
> +  # For dual-link connections
> +  ports:
> +    $ref: /schemas/graph.yaml#/properties/ports
> +    patternProperties:
> +      "^port@[0-9a-f]+$":
> +        $ref: /schemas/graph.yaml#/$defs/port-base

This allows any undocumented property.

> +
> +    required:
> +      - port@0
> +

I don't think this should be added here because users must define what 
each port is. With it here, we're going to validate the nodes twice as 
well. Same can be said for 'port' though. It can't be extended though.

I originally wanted to a do a meta-schema to enforce some of this, but 
there's just too many exceptions.

Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/display/panel/panel-common.yaml b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
index 5b38dc89cb21..ad62d34e6fa3 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-common.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
@@ -70,6 +70,16 @@  properties:
   port:
     $ref: /schemas/graph.yaml#/properties/port
 
+  # For dual-link connections
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+    patternProperties:
+      "^port@[0-9a-f]+$":
+        $ref: /schemas/graph.yaml#/$defs/port-base
+
+    required:
+      - port@0
+
   ddc-i2c-bus:
     $ref: /schemas/types.yaml#/definitions/phandle
     description:
@@ -154,6 +164,12 @@  dependencies:
   width-mm: [ height-mm ]
   height-mm: [ width-mm ]
 
+allOf:
+  - not:
+      required:
+        - port
+        - ports
+
 additionalProperties: true
 
 ...