Hi Sakari, Thank you for the patch. On Wed, Dec 02, 2020 at 08:14:32PM +0200, Sakari Ailus wrote: > This reverts commit f61eb7bc9256aeb173d2d730f59cdd569d261c52. > > While aligning with the OF graph schema will be done for the media DT > bindings, this patch got merged a little too hastily. Revert it for now. > > Suggested-by: Rob Herring <robh@xxxxxxxxxx> > Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> Acked-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- > .../media/allwinner,sun4i-a10-csi.yaml | 1 - > .../media/allwinner,sun6i-a31-csi.yaml | 1 - > .../bindings/media/i2c/adv7180.yaml | 31 ++++++-- > .../bindings/media/i2c/adv7604.yaml | 32 ++++++-- > .../bindings/media/i2c/aptina,mt9v111.yaml | 2 +- > .../bindings/media/i2c/imi,rdacm2x-gmsl.yaml | 25 +++++- > .../devicetree/bindings/media/i2c/imx219.yaml | 4 - > .../bindings/media/i2c/maxim,max9286.yaml | 76 +++++++++++++++---- > .../devicetree/bindings/media/i2c/ov5647.yaml | 5 +- > .../devicetree/bindings/media/i2c/ov8856.yaml | 5 +- > .../bindings/media/i2c/ovti,ov772x.yaml | 1 - > .../bindings/media/i2c/sony,imx214.yaml | 1 - > .../bindings/media/i2c/sony,imx274.yaml | 3 +- > .../bindings/media/marvell,mmp2-ccic.yaml | 1 - > .../bindings/media/renesas,ceu.yaml | 1 - > .../bindings/media/renesas,csi2.yaml | 36 +++++++-- > .../bindings/media/renesas,vin.yaml | 7 +- > .../bindings/media/st,stm32-dcmi.yaml | 7 +- > .../devicetree/bindings/media/ti,cal.yaml | 15 +++- > .../bindings/media/xilinx/xlnx,csi2rxss.yaml | 21 ++++- > 20 files changed, 214 insertions(+), 61 deletions(-) > > diff --git a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml > index 0205f7dd7fdb..09318830db47 100644 > --- a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml > +++ b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml > @@ -70,7 +70,6 @@ properties: > # See ./video-interfaces.txt for details > port: > type: object > - $ref: /schemas/graph.yaml#/properties/port > additionalProperties: false > > properties: > diff --git a/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml b/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml > index 48d8f73ce7ab..1fd9b5532a21 100644 > --- a/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml > +++ b/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml > @@ -43,7 +43,6 @@ properties: > # See ./video-interfaces.txt for details > port: > type: object > - $ref: /schemas/graph.yaml#/properties/port > > properties: > endpoint: > diff --git a/Documentation/devicetree/bindings/media/i2c/adv7180.yaml b/Documentation/devicetree/bindings/media/i2c/adv7180.yaml > index 7f28954a4508..d8c54f9d9506 100644 > --- a/Documentation/devicetree/bindings/media/i2c/adv7180.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/adv7180.yaml > @@ -36,9 +36,17 @@ properties: > maxItems: 1 > > port: > - $ref: /schemas/graph.yaml#/properties/port > - > - ports: true > + type: object > + description: > + A node containing a single endpoint as doucmented in > + Documentation/devicetree/bindings/media/video-interfaces.txt > + > + ports: > + type: object > + description: > + A node containing input and output port nodes with endpoint definitions > + as documented in > + Documentation/devicetree/bindings/media/video-interfaces.txt > > additionalProperties: false > > @@ -72,19 +80,24 @@ allOf: > then: > properties: > ports: > - $ref: /schemas/graph.yaml#/properties/ports > properties: > + '#address-cells': > + const: 1 > + '#size-cells': > + const: 0 > port@3: > + type: object > description: Output port > > patternProperties: > "^port@[0-2]$": > + type: object > description: Input port > > required: > - port@3 > > - unevaluatedProperties: false > + additionalProperties: false > > required: > - ports > @@ -97,20 +110,24 @@ allOf: > then: > properties: > ports: > - $ref: /schemas/graph.yaml#/properties/ports > properties: > + '#address-cells': > + const: 1 > + '#size-cells': > + const: 0 > port@6: > type: object > description: Output port > > patternProperties: > "^port@[0-5]$": > + type: object > description: Input port > > required: > - port@6 > > - unevaluatedProperties: false > + additionalProperties: false > > required: > - ports > diff --git a/Documentation/devicetree/bindings/media/i2c/adv7604.yaml b/Documentation/devicetree/bindings/media/i2c/adv7604.yaml > index 81f17e719d87..3897af540ddd 100644 > --- a/Documentation/devicetree/bindings/media/i2c/adv7604.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/adv7604.yaml > @@ -64,12 +64,16 @@ properties: > description: > Select which input is selected after reset. > > - ports: true > + ports: > + type: object > + description: > + A node containing input and output port nodes with endpoint definitions > + as documented in > + Documentation/devicetree/bindings/media/video-interfaces.txt > > required: > - compatible > - reg > - - ports > > additionalProperties: false > > @@ -82,17 +86,25 @@ allOf: > then: > properties: > ports: > - $ref: /schemas/graph.yaml#/properties/ports > properties: > + '#address-cells': > + const: 1 > + '#size-cells': > + const: 0 > port@0: > + type: object > description: Input port > port@1: > + type: object > description: Output port > > required: > - port@1 > > - unevaluatedProperties: false > + additionalProperties: false > + > + required: > + - ports > > - if: > properties: > @@ -102,19 +114,27 @@ allOf: > then: > properties: > ports: > - $ref: /schemas/graph.yaml#/properties/ports > properties: > + '#address-cells': > + const: 1 > + '#size-cells': > + const: 0 > port@2: > + type: object > description: Output port > > patternProperties: > "^port@[0-1]$": > + type: object > description: Input port > > required: > - port@2 > > - unevaluatedProperties: false > + additionalProperties: false > + > + required: > + - ports > > examples: > - | > diff --git a/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml b/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml > index 17ec4ab1dbd0..ff9546e95d05 100644 > --- a/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml > @@ -41,7 +41,7 @@ properties: > maxItems: 1 > > port: > - $ref: /schemas/graph.yaml#/properties/port > + type: object > description: | > Output video port. See ../video-interfaces.txt. > > diff --git a/Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml b/Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml > index e0ea3acca89a..3dc06c628e64 100644 > --- a/Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml > @@ -86,12 +86,33 @@ properties: > maxItems: 3 > > port: > - $ref: /schemas/graph.yaml#/properties/port > - description: > + type: object > + additionalProperties: false > + description: -| > Connection to the remote GMSL endpoint are modelled using the OF graph > bindings in accordance with the video interface bindings defined in > Documentation/devicetree/bindings/media/video-interfaces.txt. > > + The device node contains a single "port" child node with a single > + "endpoint" sub-device. > + > + properties: > + endpoint: > + type: object > + additionalProperties: false > + > + properties: > + remote-endpoint: > + description: -| > + phandle to the remote GMSL endpoint sub-node in the remote node > + port. > + maxItems: 1 > + > + required: > + - remote-endpoint > + > + required: > + - endpoint > > required: > - compatible > diff --git a/Documentation/devicetree/bindings/media/i2c/imx219.yaml b/Documentation/devicetree/bindings/media/i2c/imx219.yaml > index bba42e015c98..dfc4d29a4f04 100644 > --- a/Documentation/devicetree/bindings/media/i2c/imx219.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/imx219.yaml > @@ -47,8 +47,6 @@ properties: > # See ../video-interfaces.txt for more details > port: > type: object > - $ref: /schemas/graph.yaml#/properties/port > - > properties: > endpoint: > type: object > @@ -76,8 +74,6 @@ properties: > required: > - link-frequencies > > - additionalProperties: false > - > required: > - compatible > - reg > diff --git a/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml b/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml > index 2e89a5458afe..9ea827092fdd 100644 > --- a/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml > @@ -53,25 +53,56 @@ properties: > > ports: > type: object > - $ref: /schemas/graph.yaml#/properties/ports > + description: | > + The connections to the MAX9286 GMSL and its endpoint nodes are modelled > + using the OF graph bindings in accordance with the video interface > + bindings defined in > + Documentation/devicetree/bindings/media/video-interfaces.txt. > + > + The following table lists the port number corresponding to each device > + port. > + > + Port Description > + ---------------------------------------- > + Port 0 GMSL Input 0 > + Port 1 GMSL Input 1 > + Port 2 GMSL Input 2 > + Port 3 GMSL Input 3 > + Port 4 CSI-2 Output > > properties: > - port@0: > - description: GMSL Input 0 > + '#address-cells': > + const: 1 > + > + '#size-cells': > + const: 0 > > - port@1: > - description: GMSL Input 1 > + port@[0-3]: > + type: object > + properties: > + reg: > + enum: [ 0, 1, 2, 3 ] > > - port@2: > - description: GMSL Input 2 > + endpoint: > + type: object > > - port@3: > - description: GMSL Input 3 > + properties: > + remote-endpoint: > + description: | > + phandle to the remote GMSL source endpoint subnode in the > + remote node port. > + > + required: > + - remote-endpoint > + > + required: > + - reg > + - endpoint > + > + additionalProperties: false > > port@4: > type: object > - description: CSI-2 Output > - > properties: > reg: > const: 4 > @@ -99,8 +130,6 @@ properties: > required: > - port@4 > > - unevaluatedProperties: false > - > i2c-mux: > type: object > description: | > @@ -155,8 +184,25 @@ properties: > requirements of the currently connected remote device. > > port: > - $ref: /schemas/graph.yaml#/properties/port > - description: Connection to the MAX9286 sink. > + type: object > + > + properties: > + endpoint: > + type: object > + > + properties: > + remote-endpoint: > + description: phandle to the MAX9286 sink endpoint. > + > + required: > + - remote-endpoint > + > + additionalProperties: false > + > + required: > + - endpoint > + > + additionalProperties: false > > required: > - compatible > diff --git a/Documentation/devicetree/bindings/media/i2c/ov5647.yaml b/Documentation/devicetree/bindings/media/i2c/ov5647.yaml > index cd5291602a70..280c62afae13 100644 > --- a/Documentation/devicetree/bindings/media/i2c/ov5647.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/ov5647.yaml > @@ -32,7 +32,10 @@ properties: > > port: > type: object > - $ref: /schemas/graph.yaml#/properties/port > + description: |- > + Should contain one endpoint sub-node used to model connection to the > + video receiver according to the specification defined in > + Documentation/devicetree/bindings/media/video-interfaces.txt. > > properties: > endpoint: > diff --git a/Documentation/devicetree/bindings/media/i2c/ov8856.yaml b/Documentation/devicetree/bindings/media/i2c/ov8856.yaml > index 2611eb69b3b2..cde85553fd01 100644 > --- a/Documentation/devicetree/bindings/media/i2c/ov8856.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/ov8856.yaml > @@ -58,8 +58,11 @@ properties: > > port: > type: object > - $ref: /schemas/graph.yaml#/properties/port > additionalProperties: false > + description: > + A node containing an output port node with an endpoint definition > + as documented in > + Documentation/devicetree/bindings/media/video-interfaces.txt > > properties: > endpoint: > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml > index 450e5bd64312..63b3779d7289 100644 > --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml > @@ -38,7 +38,6 @@ properties: > > port: > type: object > - $ref: /schemas/graph.yaml#/properties/port > description: | > Video output port. See ../video-interfaces.txt. > > diff --git a/Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml b/Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml > index 884bd3527e0a..0f5e25fa4e9d 100644 > --- a/Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml > @@ -55,7 +55,6 @@ properties: > > port: > type: object > - $ref: /schemas/graph.yaml#/properties/port > description: | > Video output port. See ../video-interfaces.txt. > > diff --git a/Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml b/Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml > index 90828020e42a..f697e1a20beb 100644 > --- a/Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml > @@ -44,7 +44,8 @@ properties: > maxItems: 1 > > port: > - $ref: /schemas/graph.yaml#/properties/port > + type: object > + description: Output video port. See ../video-interfaces.txt. > > required: > - compatible > diff --git a/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml b/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml > index 4832f55654cc..49bff738aca5 100644 > --- a/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml > +++ b/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml > @@ -25,7 +25,6 @@ properties: > > port: > type: object > - $ref: /schemas/graph.yaml#/properties/port > additionalProperties: false > > properties: > diff --git a/Documentation/devicetree/bindings/media/renesas,ceu.yaml b/Documentation/devicetree/bindings/media/renesas,ceu.yaml > index 2d493d503d07..c7e1e4fe67e6 100644 > --- a/Documentation/devicetree/bindings/media/renesas,ceu.yaml > +++ b/Documentation/devicetree/bindings/media/renesas,ceu.yaml > @@ -35,7 +35,6 @@ properties: > > port: > type: object > - $ref: /schemas/graph.yaml#/properties/port > additionalProperties: false > > properties: > diff --git a/Documentation/devicetree/bindings/media/renesas,csi2.yaml b/Documentation/devicetree/bindings/media/renesas,csi2.yaml > index e34dfbef25a2..533c2f181db7 100644 > --- a/Documentation/devicetree/bindings/media/renesas,csi2.yaml > +++ b/Documentation/devicetree/bindings/media/renesas,csi2.yaml > @@ -47,7 +47,10 @@ properties: > > ports: > type: object > - $ref: /schemas/graph.yaml#/properties/ports > + description: > + A node containing input and output port nodes with endpoint definitions > + as documented in > + Documentation/devicetree/bindings/media/video-interfaces.txt > > properties: > port@0: > @@ -81,15 +84,38 @@ properties: > additionalProperties: false > > port@1: > + type: object > description: > Output port node, multiple endpoints describing all the R-Car VIN > modules connected the CSI-2 receiver. > > - required: > - - port@0 > - - port@1 > + properties: > + '#address-cells': > + const: 1 > + > + '#size-cells': > + const: 0 > + > + reg: > + const: 1 > + > + patternProperties: > + "^endpoint@[0-9a-f]$": > + type: object > > - unevaluatedProperties: false > + properties: > + reg: > + maxItems: 1 > + > + remote-endpoint: true > + > + required: > + - reg > + - remote-endpoint > + > + additionalProperties: false > + > + additionalProperties: false > > required: > - compatible > diff --git a/Documentation/devicetree/bindings/media/renesas,vin.yaml b/Documentation/devicetree/bindings/media/renesas,vin.yaml > index 25a70dc89a4c..ad2fe660364b 100644 > --- a/Documentation/devicetree/bindings/media/renesas,vin.yaml > +++ b/Documentation/devicetree/bindings/media/renesas,vin.yaml > @@ -70,7 +70,6 @@ properties: > #The per-board settings for Gen2 and RZ/G1 platforms: > port: > type: object > - $ref: /schemas/graph.yaml#/properties/port > description: > A node containing a parallel input with a single endpoint definitions as > documented in > @@ -125,7 +124,9 @@ properties: > > ports: > type: object > - $ref: /schemas/graph.yaml#/properties/ports > + description: > + A node containing input nodes with endpoint definitions as documented in > + Documentation/devicetree/bindings/media/video-interfaces.txt > > properties: > port@0: > @@ -271,8 +272,6 @@ properties: > > additionalProperties: false > > - unevaluatedProperties: false > - > required: > - compatible > - reg > diff --git a/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml b/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml > index e3152c8fdfea..c18574bb3e81 100644 > --- a/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml > +++ b/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml > @@ -37,9 +37,12 @@ properties: > maxItems: 1 > > port: > - $ref: /schemas/graph.yaml#/properties/port > + type: object > description: > - DCMI supports a single port node with parallel bus. > + DCMI supports a single port node with parallel bus. It should contain > + one 'port' child node with child 'endpoint' node. Please refer to the > + bindings defined in > + Documentation/devicetree/bindings/media/video-interfaces.txt. > > properties: > endpoint: > diff --git a/Documentation/devicetree/bindings/media/ti,cal.yaml b/Documentation/devicetree/bindings/media/ti,cal.yaml > index dc2c6be4fa4d..5e066629287d 100644 > --- a/Documentation/devicetree/bindings/media/ti,cal.yaml > +++ b/Documentation/devicetree/bindings/media/ti,cal.yaml > @@ -70,18 +70,23 @@ properties: > # See ./video-interfaces.txt for details > ports: > type: object > - $ref: /schemas/graph.yaml#/properties/ports > - unevaluatedProperties: false > + additionalProperties: false > > properties: > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > port@0: > type: object > - description: CSI2 Port #0 > additionalProperties: false > > properties: > reg: > const: 0 > + description: CSI2 Port #0 > > patternProperties: > endpoint: > @@ -103,12 +108,12 @@ properties: > > port@1: > type: object > - description: CSI2 Port #1 > additionalProperties: false > > properties: > reg: > const: 1 > + description: CSI2 Port #1 > > patternProperties: > endpoint: > @@ -129,6 +134,8 @@ properties: > - reg > > required: > + - "#address-cells" > + - "#size-cells" > - port@0 > > required: > diff --git a/Documentation/devicetree/bindings/media/xilinx/xlnx,csi2rxss.yaml b/Documentation/devicetree/bindings/media/xilinx/xlnx,csi2rxss.yaml > index 0868718c3691..2961a5b6872f 100644 > --- a/Documentation/devicetree/bindings/media/xilinx/xlnx,csi2rxss.yaml > +++ b/Documentation/devicetree/bindings/media/xilinx/xlnx,csi2rxss.yaml > @@ -98,7 +98,6 @@ properties: > > ports: > type: object > - $ref: /schemas/graph.yaml#/properties/ports > > properties: > port@0: > @@ -142,11 +141,29 @@ properties: > additionalProperties: false > > port@1: > + type: object > description: | > Output / source port node, endpoint describing modules > connected the CSI-2 receiver. > > - unevaluatedProperties: false > + properties: > + > + reg: > + const: 1 > + > + endpoint: > + type: object > + > + properties: > + > + remote-endpoint: true > + > + required: > + - remote-endpoint > + > + additionalProperties: false > + > + additionalProperties: false > > required: > - compatible -- Regards, Laurent Pinchart