dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime@cerno.tech>
To: devicetree@vger.kernel.org, "Rob Herring" <robh+dt@kernel.org>,
	"Frank Rowand" <frowand.list@gmail.com>,
	"Chen-Yu Tsai" <wens@csie.org>,
	"Maxime Ripard" <maxime@cerno.tech>,
	"Jernej Škrabec" <jernej.skrabec@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-sunxi@googlegroups.com, dri-devel@lists.freedesktop.org,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Sam Ravnborg <sam@ravnborg.org>,
	Thierry Reding <thierry.reding@gmail.com>
Subject: [PATCH v2 11/52] dt-bindings: display: Move idk-2121wr to panel-lvds
Date: Wed,  1 Sep 2021 11:18:11 +0200	[thread overview]
Message-ID: <20210901091852.479202-12-maxime@cerno.tech> (raw)
In-Reply-To: <20210901091852.479202-1-maxime@cerno.tech>

The Advantech IDK-2121WR Device Tree binding uses most of the panel-lvds
binding, aside from a requirement on the data-mapping and the
definition of the dual link binding.

The LVDS dual link binding applies to any panel with a dual-link setup,
and thus could be made generic, and we can move the data-mapping
requirement to a conditional.

Let's move it to the generic panel-lvds binding

Cc: dri-devel@lists.freedesktop.org
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Thierry Reding <thierry.reding@gmail.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 .../display/panel/advantech,idk-2121wr.yaml   | 121 ------------------
 .../bindings/display/panel/lvds.yaml          |  88 ++++++++++++-
 2 files changed, 87 insertions(+), 122 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml

diff --git a/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml b/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml
deleted file mode 100644
index 67682fe77f10..000000000000
--- a/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml
+++ /dev/null
@@ -1,121 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/display/panel/advantech,idk-2121wr.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Advantech IDK-2121WR 21.5" Full-HD dual-LVDS panel
-
-maintainers:
-  - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
-  - Thierry Reding <thierry.reding@gmail.com>
-
-description: |
-  The IDK-2121WR from Advantech is a Full-HD dual-LVDS panel.
-  A dual-LVDS interface is a dual-link connection with even pixels traveling
-  on one link, and with odd pixels traveling on the other link.
-
-  The panel expects odd pixels on the first port, and even pixels on the
-  second port, therefore the ports must be marked accordingly (with either
-  dual-lvds-odd-pixels or dual-lvds-even-pixels).
-
-properties:
-  compatible:
-    items:
-      - const: advantech,idk-2121wr
-      - {} # panel-lvds, but not listed here to avoid false select
-
-  width-mm:
-    const: 476
-
-  height-mm:
-    const: 268
-
-  data-mapping:
-    const: vesa-24
-
-  panel-timing: true
-
-  ports:
-    $ref: /schemas/graph.yaml#/properties/ports
-
-    properties:
-      port@0:
-        $ref: /schemas/graph.yaml#/$defs/port-base
-        unevaluatedProperties: false
-        description: The sink for odd pixels.
-        properties:
-          dual-lvds-odd-pixels: true
-
-        required:
-          - dual-lvds-odd-pixels
-
-      port@1:
-        $ref: /schemas/graph.yaml#/$defs/port-base
-        unevaluatedProperties: false
-        description: The sink for even pixels.
-        properties:
-          dual-lvds-even-pixels: true
-
-        required:
-          - dual-lvds-even-pixels
-
-    required:
-      - port@0
-      - port@1
-
-additionalProperties: false
-
-required:
-  - compatible
-  - width-mm
-  - height-mm
-  - data-mapping
-  - panel-timing
-  - ports
-
-examples:
-  - |+
-    panel-lvds {
-      compatible = "advantech,idk-2121wr", "panel-lvds";
-
-      width-mm = <476>;
-      height-mm = <268>;
-
-      data-mapping = "vesa-24";
-
-      panel-timing {
-        clock-frequency = <148500000>;
-        hactive = <1920>;
-        vactive = <1080>;
-        hsync-len = <44>;
-        hfront-porch = <88>;
-        hback-porch = <148>;
-        vfront-porch = <4>;
-        vback-porch = <36>;
-        vsync-len = <5>;
-      };
-
-      ports {
-        #address-cells = <1>;
-        #size-cells = <0>;
-
-        port@0 {
-          reg = <0>;
-          dual-lvds-odd-pixels;
-          panel_in0: endpoint {
-            remote-endpoint = <&lvds0_out>;
-          };
-        };
-
-        port@1 {
-          reg = <1>;
-          dual-lvds-even-pixels;
-          panel_in1: endpoint {
-            remote-endpoint = <&lvds1_out>;
-          };
-        };
-      };
-    };
-
-...
diff --git a/Documentation/devicetree/bindings/display/panel/lvds.yaml b/Documentation/devicetree/bindings/display/panel/lvds.yaml
index e4e49e06f302..9b3b329e4e67 100644
--- a/Documentation/devicetree/bindings/display/panel/lvds.yaml
+++ b/Documentation/devicetree/bindings/display/panel/lvds.yaml
@@ -39,11 +39,26 @@ allOf:
         data-mapping:
           const: jeida-24
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: advantech,idk-2121wr
+
+    then:
+      properties:
+        data-mapping:
+          const: vesa-24
+
+      required:
+        - ports
+
 properties:
   compatible:
     items:
       - enum:
           - advantech,idk-1110wr
+          - advantech,idk-2121wr
       - const: panel-lvds
 
   data-mapping:
@@ -105,7 +120,34 @@ properties:
       data lanes, transmitting bits for slots 6 to 0 instead of 0 to 6.
 
   port: true
-  ports: true
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    properties:
+      port@0:
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+        description: The sink for odd pixels.
+        properties:
+          dual-lvds-odd-pixels: true
+
+        required:
+          - dual-lvds-odd-pixels
+
+      port@1:
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+        description: The sink for even pixels.
+        properties:
+          dual-lvds-even-pixels: true
+
+        required:
+          - dual-lvds-even-pixels
+
+    required:
+      - port@0
+      - port@1
 
 required:
   - compatible
@@ -122,4 +164,48 @@ oneOf:
 
 unevaluatedProperties: false
 
+examples:
+  - |+
+    panel-lvds {
+      compatible = "advantech,idk-2121wr", "panel-lvds";
+
+      width-mm = <476>;
+      height-mm = <268>;
+
+      data-mapping = "vesa-24";
+
+      panel-timing {
+        clock-frequency = <148500000>;
+        hactive = <1920>;
+        vactive = <1080>;
+        hsync-len = <44>;
+        hfront-porch = <88>;
+        hback-porch = <148>;
+        vfront-porch = <4>;
+        vback-porch = <36>;
+        vsync-len = <5>;
+      };
+
+      ports {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        port@0 {
+          reg = <0>;
+          dual-lvds-odd-pixels;
+          panel_in0: endpoint {
+            remote-endpoint = <&lvds0_out>;
+          };
+        };
+
+        port@1 {
+          reg = <1>;
+          dual-lvds-even-pixels;
+          panel_in1: endpoint {
+            remote-endpoint = <&lvds1_out>;
+          };
+        };
+      };
+    };
+
 ...
-- 
2.31.1


  parent reply	other threads:[~2021-09-01  9:19 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20210901091852.479202-1-maxime@cerno.tech>
2021-09-01  9:18 ` [PATCH v2 10/52] dt-bindings: display: Move idk-1110wr to panel-lvds Maxime Ripard
2021-09-03 18:30   ` Rob Herring
2021-09-01  9:18 ` Maxime Ripard [this message]
2021-09-01  9:18 ` [PATCH v2 12/52] dt-bindings: display: Move ee101ia-01d " Maxime Ripard
2021-09-01  9:18 ` [PATCH v2 13/52] dt-bindings: display: aa104xd12: Remove unused vcc-supply Maxime Ripard
2021-09-03 18:30   ` Rob Herring
2021-09-01  9:18 ` [PATCH v2 14/52] dt-bindings: display: aa104xd12: Fix data-mapping Maxime Ripard
2021-09-03 18:31   ` Rob Herring
2021-09-01  9:18 ` [PATCH v2 15/52] dt-bindings: display: Move aa104xd12 to panel-lvds Maxime Ripard
2021-09-01  9:18 ` [PATCH v2 16/52] dt-bindings: display: aa121td01: Remove unused vcc-supply Maxime Ripard
2021-09-03 18:31   ` Rob Herring
2021-09-01  9:18 ` [PATCH v2 17/52] dt-bindings: display: aa121td01: Fix data-mapping Maxime Ripard
2021-09-03 18:31   ` Rob Herring
2021-09-01  9:18 ` [PATCH v2 18/52] dt-bindings: display: Move aa121td01 to panel-lvds Maxime Ripard
2021-09-01  9:18 ` [PATCH v2 19/52] dt-bindings: display: Move gktw70sdae4se " Maxime Ripard
2021-09-01  9:18 ` [PATCH v2 20/52] dt-bindings: display: panel-lvds: Document missing panel compatibles Maxime Ripard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210901091852.479202-12-maxime@cerno.tech \
    --to=maxime@cerno.tech \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=frowand.list@gmail.com \
    --cc=jernej.skrabec@gmail.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=robh+dt@kernel.org \
    --cc=sam@ravnborg.org \
    --cc=thierry.reding@gmail.com \
    --cc=wens@csie.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox