devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] dt-bindings: adv748x: Convert bindings to json-schema
@ 2021-10-12 18:33 Niklas Söderlund
  2021-10-13 15:08 ` Geert Uytterhoeven
  0 siblings, 1 reply; 7+ messages in thread
From: Niklas Söderlund @ 2021-10-12 18:33 UTC (permalink / raw)
  To: Rob Herring, Kieran Bingham, devicetree, linux-media
  Cc: linux-renesas-soc, Niklas Söderlund

Convert ADV748X analog video decoder documentation to json-schema.

Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
---
Hello,

This conversion revealed a problem with the Renesas DTSI files for the 
adv7482 nodes. A fix for that have been submitted in a separate patch,

    [PATCH] arm64: dts: renesas: Add ports node to all adv7482 nodes

Kind Regards,
Niklas Söderlund
---
 .../devicetree/bindings/media/i2c/adv748x.txt | 116 ----------
 .../bindings/media/i2c/adv748x.yaml           | 211 ++++++++++++++++++
 2 files changed, 211 insertions(+), 116 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/media/i2c/adv748x.txt
 create mode 100644 Documentation/devicetree/bindings/media/i2c/adv748x.yaml

diff --git a/Documentation/devicetree/bindings/media/i2c/adv748x.txt b/Documentation/devicetree/bindings/media/i2c/adv748x.txt
deleted file mode 100644
index 4f91686e54a6b939..0000000000000000
--- a/Documentation/devicetree/bindings/media/i2c/adv748x.txt
+++ /dev/null
@@ -1,116 +0,0 @@
-* Analog Devices ADV748X video decoder with HDMI receiver
-
-The ADV7481 and ADV7482 are multi format video decoders with an integrated
-HDMI receiver. They can output CSI-2 on two independent outputs TXA and TXB
-from three input sources HDMI, analog and TTL.
-
-Required Properties:
-
-  - compatible: Must contain one of the following
-    - "adi,adv7481" for the ADV7481
-    - "adi,adv7482" for the ADV7482
-
-  - reg: I2C slave addresses
-    The ADV748x has up to twelve 256-byte maps that can be accessed via the
-    main I2C ports. Each map has it own I2C address and acts as a standard
-    slave device on the I2C bus. The main address is mandatory, others are
-    optional and remain at default values if not specified.
-
-Optional Properties:
-
-  - interrupt-names: Should specify the interrupts as "intrq1", "intrq2" and/or
-		     "intrq3". All interrupts are optional. The "intrq3" interrupt
-		     is only available on the adv7481
-  - interrupts: Specify the interrupt lines for the ADV748x
-  - reg-names : Names of maps with programmable addresses.
-		It shall contain all maps needing a non-default address.
-		Possible map names are:
-		  "main", "dpll", "cp", "hdmi", "edid", "repeater",
-		  "infoframe", "cbus", "cec", "sdp", "txa", "txb"
-
-The device node must contain one 'port' child node per device input and output
-port, in accordance with the video interface bindings defined in
-Documentation/devicetree/bindings/media/video-interfaces.txt. The port nodes
-are numbered as follows.
-
-	  Name		Type		Port
-	---------------------------------------
-	  AIN0		sink		0
-	  AIN1		sink		1
-	  AIN2		sink		2
-	  AIN3		sink		3
-	  AIN4		sink		4
-	  AIN5		sink		5
-	  AIN6		sink		6
-	  AIN7		sink		7
-	  HDMI		sink		8
-	  TTL		sink		9
-	  TXA		source		10
-	  TXB		source		11
-
-The digital output port nodes, when present, shall contain at least one
-endpoint. Each of those endpoints shall contain the data-lanes property as
-described in video-interfaces.txt.
-
-Required source endpoint properties:
-  - data-lanes: an array of physical data lane indexes
-    The accepted value(s) for this property depends on which of the two
-    sources are described. For TXA 1, 2 or 4 data lanes can be described
-    while for TXB only 1 data lane is valid. See video-interfaces.txt
-    for detailed description.
-
-Ports are optional if they are not connected to anything at the hardware level.
-
-Example:
-
-	video-receiver@70 {
-		compatible = "adi,adv7482";
-		reg = <0x70 0x71 0x72 0x73 0x74 0x75
-		       0x60 0x61 0x62 0x63 0x64 0x65>;
-		reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater",
-			    "infoframe", "cbus", "cec", "sdp", "txa", "txb";
-
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		interrupt-parent = <&gpio6>;
-		interrupt-names = "intrq1", "intrq2";
-		interrupts = <30 IRQ_TYPE_LEVEL_LOW>,
-			     <31 IRQ_TYPE_LEVEL_LOW>;
-
-		port@7 {
-			reg = <7>;
-
-			adv7482_ain7: endpoint {
-				remote-endpoint = <&cvbs_in>;
-			};
-		};
-
-		port@8 {
-			reg = <8>;
-
-			adv7482_hdmi: endpoint {
-				remote-endpoint = <&hdmi_in>;
-			};
-		};
-
-		port@a {
-			reg = <10>;
-
-			adv7482_txa: endpoint {
-				clock-lanes = <0>;
-				data-lanes = <1 2 3 4>;
-				remote-endpoint = <&csi40_in>;
-			};
-		};
-
-		port@b {
-			reg = <11>;
-
-			adv7482_txb: endpoint {
-				clock-lanes = <0>;
-				data-lanes = <1>;
-				remote-endpoint = <&csi20_in>;
-			};
-		};
-	};
diff --git a/Documentation/devicetree/bindings/media/i2c/adv748x.yaml b/Documentation/devicetree/bindings/media/i2c/adv748x.yaml
new file mode 100644
index 0000000000000000..37df0441d8790c6e
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/adv748x.yaml
@@ -0,0 +1,211 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/adv748x.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices ADV748X video decoder with HDMI receiver
+
+maintainers:
+  - Kieran Bingham <kieran.bingham@ideasonboard.com>
+
+description:
+  The ADV7481 and ADV7482 are multi format video decoders with an integrated
+  HDMI receiver. They can output CSI-2 on two independent outputs TXA and TXB
+  from three input sources HDMI, analog and TTL.
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - adi,adv7481
+          - adi,adv7482
+
+  reg:
+    minItems: 1
+    maxItems: 12
+    description:
+      The ADV748x has up to twelve 256-byte maps that can be accessed via the
+      main I2C ports. Each map has it own I2C address and acts as a standard
+      slave device on the I2C bus. The main address is mandatory, others are
+      optional and remain at default values if not specified.
+
+  reg-names:
+    minItems: 1
+    items:
+      - const: main
+      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
+      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
+      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
+      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
+      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
+      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
+      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
+      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
+      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
+      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
+      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
+
+  interrupts: true
+
+  interrupt-names: true
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    patternProperties:
+      "^port@[0-7]$":
+        $ref: /schemas/graph.yaml#/properties/port
+        description: Input port nodes for analog inputs AIN[0-7].
+
+    properties:
+      port@8:
+        $ref: /schemas/graph.yaml#/properties/port
+        description: Input port node for HDMI.
+
+      port@9:
+        $ref: /schemas/graph.yaml#/properties/port
+        description: Input port node for TTL.
+
+      port@a:
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+        description:
+          Output port node, single endpoint describing the CSI-2 transmitter TXA.
+
+        properties:
+          endpoint:
+            $ref: /schemas/media/video-interfaces.yaml#
+            unevaluatedProperties: false
+
+            properties:
+              clock-lanes:
+                maxItems: 1
+
+              data-lanes:
+                minItems: 1
+                maxItems: 4
+
+            required:
+              - clock-lanes
+              - data-lanes
+
+      port@b:
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+        description:
+          Output port node, single endpoint describing the CSI-2 transmitter TXB.
+
+        properties:
+          endpoint:
+            $ref: /schemas/media/video-interfaces.yaml#
+            unevaluatedProperties: false
+
+            properties:
+              clock-lanes:
+                maxItems: 1
+
+              data-lanes:
+                maxItems: 1
+
+            required:
+              - clock-lanes
+              - data-lanes
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: adi,adv7481
+    then:
+      properties:
+        interrupts:
+          minItems: 1
+          maxItems: 3
+
+        interrupt-names:
+          minItems: 1
+          items:
+            - enum: [ intrq1, intrq2, intrq3 ]
+            - enum: [ intrq1, intrq2, intrq3 ]
+            - enum: [ intrq1, intrq2, intrq3 ]
+    else:
+      properties:
+        interrupts:
+          minItems: 1
+          maxItems: 2
+
+        interrupt-names:
+          minItems: 1
+          items:
+            - enum: [ intrq1, intrq2 ]
+            - enum: [ intrq1, intrq2 ]
+
+additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - ports
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        video-receiver@70 {
+            compatible = "adi,adv7482";
+            reg = <0x70 0x71 0x72 0x73 0x74 0x75 0x60 0x61 0x62 0x63 0x64 0x65>;
+            reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater",
+                        "infoframe", "cbus", "cec", "sdp", "txa", "txb";
+
+            interrupt-parent = <&gpio6>;
+            interrupts = <30 IRQ_TYPE_LEVEL_LOW>, <31 IRQ_TYPE_LEVEL_LOW>;
+            interrupt-names = "intrq1", "intrq2";
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@7 {
+                    reg = <7>;
+
+                    adv7482_ain7: endpoint {
+                        remote-endpoint = <&cvbs_in>;
+                    };
+                };
+
+                port@8 {
+                    reg = <8>;
+
+                    adv7482_hdmi: endpoint {
+                        remote-endpoint = <&hdmi_in>;
+                    };
+                };
+
+                port@a {
+                    reg = <10>;
+
+                    adv7482_txa: endpoint {
+                        clock-lanes = <0>;
+                        data-lanes = <1 2 3 4>;
+                        remote-endpoint = <&csi40_in>;
+                    };
+                };
+
+                port@b {
+                    reg = <11>;
+
+                    adv7482_txb: endpoint {
+                        clock-lanes = <0>;
+                        data-lanes = <1>;
+                        remote-endpoint = <&csi20_in>;
+                    };
+                };
+            };
+        };
+    };
-- 
2.33.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] dt-bindings: adv748x: Convert bindings to json-schema
  2021-10-12 18:33 [PATCH] dt-bindings: adv748x: Convert bindings to json-schema Niklas Söderlund
@ 2021-10-13 15:08 ` Geert Uytterhoeven
  2021-10-14 10:47   ` Niklas Söderlund
  0 siblings, 1 reply; 7+ messages in thread
From: Geert Uytterhoeven @ 2021-10-13 15:08 UTC (permalink / raw)
  To: Niklas Söderlund
  Cc: Rob Herring, Kieran Bingham,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Linux Media Mailing List, Linux-Renesas

Hi Niklas,

Thanks for your patch!

On Tue, Oct 12, 2021 at 8:48 PM Niklas Söderlund
<niklas.soderlund+renesas@ragnatech.se> wrote:
> Convert ADV748X analog video decoder documentation to json-schema.

You may want to list what changes you made:
  - Add missing ports subnode
  - Anything else I didn't notice? ;-)

> Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>

> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/i2c/adv748x.yaml

> +  reg-names:
> +    minItems: 1
> +    items:
> +      - const: main
> +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]

They can really appear in any order?

> +allOf:
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: adi,adv7481
> +    then:
> +      properties:
> +        interrupts:
> +          minItems: 1
> +          maxItems: 3
> +
> +        interrupt-names:
> +          minItems: 1
> +          items:
> +            - enum: [ intrq1, intrq2, intrq3 ]
> +            - enum: [ intrq1, intrq2, intrq3 ]
> +            - enum: [ intrq1, intrq2, intrq3 ]

They can really appear in any order?

> +    else:
> +      properties:
> +        interrupts:
> +          minItems: 1
> +          maxItems: 2
> +
> +        interrupt-names:
> +          minItems: 1
> +          items:
> +            - enum: [ intrq1, intrq2 ]
> +            - enum: [ intrq1, intrq2 ]

They can really appear in any order?

If not, you can merge the entries, and just override maxItems.

The rest looks good to me, but I'm no graph expert.
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] dt-bindings: adv748x: Convert bindings to json-schema
  2021-10-13 15:08 ` Geert Uytterhoeven
@ 2021-10-14 10:47   ` Niklas Söderlund
  2021-10-14 11:07     ` Geert Uytterhoeven
  0 siblings, 1 reply; 7+ messages in thread
From: Niklas Söderlund @ 2021-10-14 10:47 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Rob Herring, Kieran Bingham,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Linux Media Mailing List, Linux-Renesas

Hi Geert,

Thanks for your review.

On 2021-10-13 17:08:44 +0200, Geert Uytterhoeven wrote:
> Hi Niklas,
> 
> Thanks for your patch!
> 
> On Tue, Oct 12, 2021 at 8:48 PM Niklas Söderlund
> <niklas.soderlund+renesas@ragnatech.se> wrote:
> > Convert ADV748X analog video decoder documentation to json-schema.
> 
> You may want to list what changes you made:
>   - Add missing ports subnode
>   - Anything else I didn't notice? ;-)

Wops, I intended to mention the addition of ports node. Thanks for 
noticing, will send a v2.

> 
> > Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> 
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/media/i2c/adv748x.yaml
> 
> > +  reg-names:
> > +    minItems: 1
> > +    items:
> > +      - const: main
> > +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> > +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> > +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> > +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> > +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> > +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> > +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> > +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> > +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> > +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> > +      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
> 
> They can really appear in any order?

Yes they are refereed by i2c_new_ancillary_device() so any order is 
fine. They can only appear once tho, but I'm not sure how to enforce 
that.

> 
> > +allOf:
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            const: adi,adv7481
> > +    then:
> > +      properties:
> > +        interrupts:
> > +          minItems: 1
> > +          maxItems: 3
> > +
> > +        interrupt-names:
> > +          minItems: 1
> > +          items:
> > +            - enum: [ intrq1, intrq2, intrq3 ]
> > +            - enum: [ intrq1, intrq2, intrq3 ]
> > +            - enum: [ intrq1, intrq2, intrq3 ]
> 
> They can really appear in any order?

Yes, as not all interrupt lines may be wired up. It would be nice to 
enforce that intrq2 must come before intrq3 if both are wired but I'm 
not sure how to express that.

> 
> > +    else:
> > +      properties:
> > +        interrupts:
> > +          minItems: 1
> > +          maxItems: 2
> > +
> > +        interrupt-names:
> > +          minItems: 1
> > +          items:
> > +            - enum: [ intrq1, intrq2 ]
> > +            - enum: [ intrq1, intrq2 ]
> 
> They can really appear in any order?
> 
> If not, you can merge the entries, and just override maxItems.
> 
> The rest looks good to me, but I'm no graph expert.
> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>

Thanks!

> 
> Gr{oetje,eeting}s,
> 
>                         Geert
> 
> -- 
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
> 
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds

-- 
Regards,
Niklas Söderlund

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] dt-bindings: adv748x: Convert bindings to json-schema
  2021-10-14 10:47   ` Niklas Söderlund
@ 2021-10-14 11:07     ` Geert Uytterhoeven
  2021-10-14 11:39       ` Niklas Söderlund
  0 siblings, 1 reply; 7+ messages in thread
From: Geert Uytterhoeven @ 2021-10-14 11:07 UTC (permalink / raw)
  To: Niklas Söderlund
  Cc: Rob Herring, Kieran Bingham,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Linux Media Mailing List, Linux-Renesas

Hi Niklas,

On Thu, Oct 14, 2021 at 12:48 PM Niklas Söderlund
<niklas.soderlund+renesas@ragnatech.se> wrote:
> On 2021-10-13 17:08:44 +0200, Geert Uytterhoeven wrote:
> > On Tue, Oct 12, 2021 at 8:48 PM Niklas Söderlund
> > <niklas.soderlund+renesas@ragnatech.se> wrote:
> > > Convert ADV748X analog video decoder documentation to json-schema.

> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/media/i2c/adv748x.yaml

> > > +allOf:
> > > +  - if:
> > > +      properties:
> > > +        compatible:
> > > +          contains:
> > > +            const: adi,adv7481
> > > +    then:
> > > +      properties:
> > > +        interrupts:
> > > +          minItems: 1
> > > +          maxItems: 3
> > > +
> > > +        interrupt-names:
> > > +          minItems: 1
> > > +          items:
> > > +            - enum: [ intrq1, intrq2, intrq3 ]
> > > +            - enum: [ intrq1, intrq2, intrq3 ]
> > > +            - enum: [ intrq1, intrq2, intrq3 ]
> >
> > They can really appear in any order?
>
> Yes, as not all interrupt lines may be wired up. It would be nice to
> enforce that intrq2 must come before intrq3 if both are wired but I'm
> not sure how to express that.

You mean

    items:
      - const: intrq1
      - const: intrq2
      - const: intrq3

?

If the first two might be exchanged, you can still fix the last one:

    items:
      - const: [ intrq1, intrq2 ]
      - const: [ intrq1, intrq2 ]
      - const: intrq3

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] dt-bindings: adv748x: Convert bindings to json-schema
  2021-10-14 11:07     ` Geert Uytterhoeven
@ 2021-10-14 11:39       ` Niklas Söderlund
  2021-10-14 12:14         ` Geert Uytterhoeven
  0 siblings, 1 reply; 7+ messages in thread
From: Niklas Söderlund @ 2021-10-14 11:39 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Rob Herring, Kieran Bingham,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Linux Media Mailing List, Linux-Renesas

Hi Geert,

On 2021-10-14 13:07:30 +0200, Geert Uytterhoeven wrote:
> Hi Niklas,
> 
> On Thu, Oct 14, 2021 at 12:48 PM Niklas Söderlund
> <niklas.soderlund+renesas@ragnatech.se> wrote:
> > On 2021-10-13 17:08:44 +0200, Geert Uytterhoeven wrote:
> > > On Tue, Oct 12, 2021 at 8:48 PM Niklas Söderlund
> > > <niklas.soderlund+renesas@ragnatech.se> wrote:
> > > > Convert ADV748X analog video decoder documentation to json-schema.
> 
> > > > --- /dev/null
> > > > +++ b/Documentation/devicetree/bindings/media/i2c/adv748x.yaml
> 
> > > > +allOf:
> > > > +  - if:
> > > > +      properties:
> > > > +        compatible:
> > > > +          contains:
> > > > +            const: adi,adv7481
> > > > +    then:
> > > > +      properties:
> > > > +        interrupts:
> > > > +          minItems: 1
> > > > +          maxItems: 3
> > > > +
> > > > +        interrupt-names:
> > > > +          minItems: 1
> > > > +          items:
> > > > +            - enum: [ intrq1, intrq2, intrq3 ]
> > > > +            - enum: [ intrq1, intrq2, intrq3 ]
> > > > +            - enum: [ intrq1, intrq2, intrq3 ]
> > >
> > > They can really appear in any order?
> >
> > Yes, as not all interrupt lines may be wired up. It would be nice to
> > enforce that intrq2 must come before intrq3 if both are wired but I'm
> > not sure how to express that.
> 
> You mean
> 
>     items:
>       - const: intrq1
>       - const: intrq2
>       - const: intrq3

Will this not enforce that if intrq2 is present intrq1 must be too?

> 
> ?
> 
> If the first two might be exchanged, you can still fix the last one:
> 
>     items:
>       - const: [ intrq1, intrq2 ]
>       - const: [ intrq1, intrq2 ]
>       - const: intrq3

Same here, will this not fail if only intrq3 is given?

> 
> Gr{oetje,eeting}s,
> 
>                         Geert
> 
> -- 
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
> 
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds

-- 
Regards,
Niklas Söderlund

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] dt-bindings: adv748x: Convert bindings to json-schema
  2021-10-14 11:39       ` Niklas Söderlund
@ 2021-10-14 12:14         ` Geert Uytterhoeven
  2021-10-14 12:20           ` Niklas Söderlund
  0 siblings, 1 reply; 7+ messages in thread
From: Geert Uytterhoeven @ 2021-10-14 12:14 UTC (permalink / raw)
  To: Niklas Söderlund
  Cc: Rob Herring, Kieran Bingham,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Linux Media Mailing List, Linux-Renesas

Hi Niklas,

On Thu, Oct 14, 2021 at 1:39 PM Niklas Söderlund
<niklas.soderlund+renesas@ragnatech.se> wrote:
> On 2021-10-14 13:07:30 +0200, Geert Uytterhoeven wrote:
> > On Thu, Oct 14, 2021 at 12:48 PM Niklas Söderlund
> > <niklas.soderlund+renesas@ragnatech.se> wrote:
> > > On 2021-10-13 17:08:44 +0200, Geert Uytterhoeven wrote:
> > > > On Tue, Oct 12, 2021 at 8:48 PM Niklas Söderlund
> > > > <niklas.soderlund+renesas@ragnatech.se> wrote:
> > > > > Convert ADV748X analog video decoder documentation to json-schema.
> >
> > > > > --- /dev/null
> > > > > +++ b/Documentation/devicetree/bindings/media/i2c/adv748x.yaml
> >
> > > > > +allOf:
> > > > > +  - if:
> > > > > +      properties:
> > > > > +        compatible:
> > > > > +          contains:
> > > > > +            const: adi,adv7481
> > > > > +    then:
> > > > > +      properties:
> > > > > +        interrupts:
> > > > > +          minItems: 1
> > > > > +          maxItems: 3
> > > > > +
> > > > > +        interrupt-names:
> > > > > +          minItems: 1
> > > > > +          items:
> > > > > +            - enum: [ intrq1, intrq2, intrq3 ]
> > > > > +            - enum: [ intrq1, intrq2, intrq3 ]
> > > > > +            - enum: [ intrq1, intrq2, intrq3 ]
> > > >
> > > > They can really appear in any order?
> > >
> > > Yes, as not all interrupt lines may be wired up. It would be nice to
> > > enforce that intrq2 must come before intrq3 if both are wired but I'm
> > > not sure how to express that.
> >
> > You mean
> >
> >     items:
> >       - const: intrq1
> >       - const: intrq2
> >       - const: intrq3
>
> Will this not enforce that if intrq2 is present intrq1 must be too?
>
> >
> > ?
> >
> > If the first two might be exchanged, you can still fix the last one:
> >
> >     items:
> >       - const: [ intrq1, intrq2 ]
> >       - const: [ intrq1, intrq2 ]
> >       - const: intrq3
>
> Same here, will this not fail if only intrq3 is given?

Right. And these combinations are all valid?

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] dt-bindings: adv748x: Convert bindings to json-schema
  2021-10-14 12:14         ` Geert Uytterhoeven
@ 2021-10-14 12:20           ` Niklas Söderlund
  0 siblings, 0 replies; 7+ messages in thread
From: Niklas Söderlund @ 2021-10-14 12:20 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Rob Herring, Kieran Bingham,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Linux Media Mailing List, Linux-Renesas

Hi Geert,

On 2021-10-14 14:14:26 +0200, Geert Uytterhoeven wrote:
> Hi Niklas,
> 
> On Thu, Oct 14, 2021 at 1:39 PM Niklas Söderlund
> <niklas.soderlund+renesas@ragnatech.se> wrote:
> > On 2021-10-14 13:07:30 +0200, Geert Uytterhoeven wrote:
> > > On Thu, Oct 14, 2021 at 12:48 PM Niklas Söderlund
> > > <niklas.soderlund+renesas@ragnatech.se> wrote:
> > > > On 2021-10-13 17:08:44 +0200, Geert Uytterhoeven wrote:
> > > > > On Tue, Oct 12, 2021 at 8:48 PM Niklas Söderlund
> > > > > <niklas.soderlund+renesas@ragnatech.se> wrote:
> > > > > > Convert ADV748X analog video decoder documentation to json-schema.
> > >
> > > > > > --- /dev/null
> > > > > > +++ b/Documentation/devicetree/bindings/media/i2c/adv748x.yaml
> > >
> > > > > > +allOf:
> > > > > > +  - if:
> > > > > > +      properties:
> > > > > > +        compatible:
> > > > > > +          contains:
> > > > > > +            const: adi,adv7481
> > > > > > +    then:
> > > > > > +      properties:
> > > > > > +        interrupts:
> > > > > > +          minItems: 1
> > > > > > +          maxItems: 3
> > > > > > +
> > > > > > +        interrupt-names:
> > > > > > +          minItems: 1
> > > > > > +          items:
> > > > > > +            - enum: [ intrq1, intrq2, intrq3 ]
> > > > > > +            - enum: [ intrq1, intrq2, intrq3 ]
> > > > > > +            - enum: [ intrq1, intrq2, intrq3 ]
> > > > >
> > > > > They can really appear in any order?
> > > >
> > > > Yes, as not all interrupt lines may be wired up. It would be nice to
> > > > enforce that intrq2 must come before intrq3 if both are wired but I'm
> > > > not sure how to express that.
> > >
> > > You mean
> > >
> > >     items:
> > >       - const: intrq1
> > >       - const: intrq2
> > >       - const: intrq3
> >
> > Will this not enforce that if intrq2 is present intrq1 must be too?
> >
> > >
> > > ?
> > >
> > > If the first two might be exchanged, you can still fix the last one:
> > >
> > >     items:
> > >       - const: [ intrq1, intrq2 ]
> > >       - const: [ intrq1, intrq2 ]
> > >       - const: intrq3
> >
> > Same here, will this not fail if only intrq3 is given?
> 
> Right. And these combinations are all valid?

Yes, there is two or three depending on model irq pins on the device 
itself and all, none or any combination of them could be wired up.

> 
> Gr{oetje,eeting}s,
> 
>                         Geert
> 
> -- 
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
> 
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds

-- 
Regards,
Niklas Söderlund

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-10-14 12:20 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-12 18:33 [PATCH] dt-bindings: adv748x: Convert bindings to json-schema Niklas Söderlund
2021-10-13 15:08 ` Geert Uytterhoeven
2021-10-14 10:47   ` Niklas Söderlund
2021-10-14 11:07     ` Geert Uytterhoeven
2021-10-14 11:39       ` Niklas Söderlund
2021-10-14 12:14         ` Geert Uytterhoeven
2021-10-14 12:20           ` Niklas Söderlund

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).