Message ID | 20201210211625.3070388-6-robh@kernel.org |
---|---|
State | Superseded |
Headers | show |
Series | dt-bindings: media: Convert video-interfaces.txt to schemas | expand |
Hi Rob, Thank you for the patch. On Thu, Dec 10, 2020 at 03:16:25PM -0600, Rob Herring wrote: > Now that we have graph and video-interfaces schemas, rework the media > related schemas to use them. > > Cc: Maxime Ripard <mripard@kernel.org> > Cc: Mauro Carvalho Chehab <mchehab@kernel.org> > Cc: Jacopo Mondi <jacopo@jmondi.org> > Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> > Cc: linux-media@vger.kernel.org > Signed-off-by: Rob Herring <robh@kernel.org> > --- > v3: > - Add mipi-ccs.yaml, ovti,ov02a10.yaml > > v2: > - Update based on graph schema changes and addition of video-interfaces > schemas > > --- > .../media/allwinner,sun4i-a10-csi.yaml | 11 +- > .../media/allwinner,sun6i-a31-csi.yaml | 12 +- > .../bindings/media/i2c/adv7180.yaml | 36 ++---- > .../bindings/media/i2c/adv7604.yaml | 37 ++---- > .../bindings/media/i2c/aptina,mt9v111.yaml | 4 +- > .../bindings/media/i2c/imi,rdacm2x-gmsl.yaml | 30 +---- > .../devicetree/bindings/media/i2c/imx219.yaml | 21 ++-- > .../bindings/media/i2c/maxim,max9286.yaml | 101 ++++------------ > .../bindings/media/i2c/mipi-ccs.yaml | 15 +-- > .../devicetree/bindings/media/i2c/ov5647.yaml | 20 +--- > .../devicetree/bindings/media/i2c/ov8856.yaml | 21 +--- > .../bindings/media/i2c/ovti,ov02a10.yaml | 30 ++--- > .../bindings/media/i2c/ovti,ov2680.yaml | 6 +- > .../bindings/media/i2c/ovti,ov772x.yaml | 9 +- > .../bindings/media/i2c/sony,imx214.yaml | 25 ++-- > .../bindings/media/i2c/sony,imx274.yaml | 3 +- > .../bindings/media/marvell,mmp2-ccic.yaml | 15 +-- > .../bindings/media/nxp,imx7-csi.yaml | 5 +- > .../bindings/media/nxp,imx7-mipi-csi2.yaml | 32 +---- > .../bindings/media/renesas,ceu.yaml | 17 +-- > .../bindings/media/renesas,csi2.yaml | 54 ++------- > .../bindings/media/renesas,vin.yaml | 113 +++--------------- > .../bindings/media/rockchip-isp1.yaml | 40 +------ > .../bindings/media/st,stm32-dcmi.yaml | 18 +-- > .../devicetree/bindings/media/ti,cal.yaml | 55 ++------- > .../bindings/media/xilinx/xlnx,csi2rxss.yaml | 39 +----- > 26 files changed, 169 insertions(+), 600 deletions(-) > > diff --git a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml > index 09318830db47..6ced94064215 100644 > --- a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml > +++ b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml > @@ -67,14 +67,14 @@ properties: > interconnect-names: > const: dma-mem > > - # See ./video-interfaces.txt for details > port: > - type: object > + $ref: /schemas/graph.yaml#/$defs/port-base > additionalProperties: false > > properties: > endpoint: > - type: object > + $ref: video-interfaces.yaml# > + unevaluatedProperties: false > > properties: > bus-width: > @@ -83,7 +83,6 @@ properties: > data-active: true > hsync-active: true > pclk-sample: true > - remote-endpoint: true > vsync-active: true > > required: > @@ -91,12 +90,8 @@ properties: > - data-active > - hsync-active > - pclk-sample > - - remote-endpoint > - vsync-active > > - required: > - - endpoint > - > required: > - compatible > - reg > diff --git a/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml b/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml > index 1fd9b5532a21..8b568072a069 100644 > --- a/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml > +++ b/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml > @@ -40,17 +40,15 @@ properties: > resets: > maxItems: 1 > > - # See ./video-interfaces.txt for details > port: > - type: object > + $ref: /schemas/graph.yaml#/$defs/port-base > > properties: > endpoint: > - type: object > + $ref: video-interfaces.yaml# > + unevaluatedProperties: false > > properties: > - remote-endpoint: true > - > bus-width: > enum: [ 8, 10, 12, 16 ] > > @@ -60,10 +58,6 @@ properties: > > required: > - bus-width > - - remote-endpoint > - > - required: > - - endpoint > > additionalProperties: false > > diff --git a/Documentation/devicetree/bindings/media/i2c/adv7180.yaml b/Documentation/devicetree/bindings/media/i2c/adv7180.yaml > index d8c54f9d9506..bcfd93739b4f 100644 > --- a/Documentation/devicetree/bindings/media/i2c/adv7180.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/adv7180.yaml > @@ -36,17 +36,9 @@ properties: > maxItems: 1 > > port: > - 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 > + $ref: /schemas/graph.yaml#/properties/port > + > + ports: true > > additionalProperties: false > > @@ -80,25 +72,20 @@ allOf: > then: > properties: > ports: > + $ref: /schemas/graph.yaml#/properties/ports > properties: > - '#address-cells': > - const: 1 > - '#size-cells': > - const: 0 > port@3: > - type: object > + $ref: /schemas/graph.yaml#/properties/port > description: Output port > > patternProperties: > "^port@[0-2]$": > - type: object > + $ref: /schemas/graph.yaml#/properties/port > description: Input port > > required: > - port@3 > > - additionalProperties: false > - > required: > - ports > > @@ -110,25 +97,20 @@ allOf: > then: > properties: > ports: > + $ref: /schemas/graph.yaml#/properties/ports > properties: > - '#address-cells': > - const: 1 > - '#size-cells': > - const: 0 > port@6: > - type: object > + $ref: /schemas/graph.yaml#/properties/port > description: Output port > > patternProperties: > "^port@[0-5]$": > - type: object > + $ref: /schemas/graph.yaml#/properties/port > description: Input port > > required: > - port@6 > > - additionalProperties: false > - > required: > - ports > > diff --git a/Documentation/devicetree/bindings/media/i2c/adv7604.yaml b/Documentation/devicetree/bindings/media/i2c/adv7604.yaml > index 407baddfaa1d..df634b0c1f8c 100644 > --- a/Documentation/devicetree/bindings/media/i2c/adv7604.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/adv7604.yaml > @@ -64,16 +64,12 @@ properties: > description: > Select which input is selected after reset. > > - 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 > + ports: true > > required: > - compatible > - reg > + - ports > > additionalProperties: false > > @@ -86,26 +82,19 @@ allOf: > then: > properties: > ports: > + $ref: /schemas/graph.yaml#/properties/ports > properties: > - '#address-cells': > - const: 1 > - '#size-cells': > - const: 0 > port@0: > - type: object > + $ref: /schemas/graph.yaml#/properties/port > description: Input port > + > port@1: > - type: object > + $ref: /schemas/graph.yaml#/properties/port > description: Output port > > required: > - port@1 > > - additionalProperties: false > - > - required: > - - ports > - > - if: > properties: > compatible: > @@ -114,28 +103,20 @@ allOf: > then: > properties: > ports: > + $ref: /schemas/graph.yaml#/properties/ports > properties: > - '#address-cells': > - const: 1 > - '#size-cells': > - const: 0 > port@2: > - type: object > + $ref: /schemas/graph.yaml#/properties/port > description: Output port > > patternProperties: > "^port@[0-1]$": > - type: object > + $ref: /schemas/graph.yaml#/properties/port > description: Input port > > required: > - port@2 > > - additionalProperties: false > - > - required: > - - ports > - > examples: > - | > #include <dt-bindings/gpio/gpio.h> > diff --git a/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml b/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml > index ff9546e95d05..e53b8d65f381 100644 > --- a/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml > @@ -41,9 +41,9 @@ properties: > maxItems: 1 > > port: > - type: object > + $ref: /schemas/graph.yaml#/properties/port > description: | > - Output video port. See ../video-interfaces.txt. > + Output video port. > > required: > - compatible > diff --git a/Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml b/Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml > index 3dc06c628e64..e57575c44930 100644 > --- a/Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml > @@ -86,33 +86,9 @@ properties: > maxItems: 3 > > port: > - 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 > + $ref: /schemas/graph.yaml#/properties/port > + description: > + Connection to the remote GMSL endpoint. > > required: > - compatible > diff --git a/Documentation/devicetree/bindings/media/i2c/imx219.yaml b/Documentation/devicetree/bindings/media/i2c/imx219.yaml > index dfc4d29a4f04..012c0565d8ae 100644 > --- a/Documentation/devicetree/bindings/media/i2c/imx219.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/imx219.yaml > @@ -44,12 +44,15 @@ properties: > Reference to the GPIO connected to the xclr pin, if any. > Must be released (set high) after all supplies are applied. > > - # See ../video-interfaces.txt for more details > port: > - type: object > + $ref: /schemas/graph.yaml#/$defs/port-base > + additionalProperties: false > + > properties: > endpoint: > - type: object > + $ref: /schemas/media/video-interfaces.yaml# > + unevaluatedProperties: false > + > properties: > data-lanes: > description: |- > @@ -60,16 +63,8 @@ properties: > - const: 1 > - const: 2 > > - clock-noncontinuous: > - type: boolean > - description: |- > - MIPI CSI-2 clock is non-continuous if this property is present, > - otherwise it's continuous. > - > - link-frequencies: > - $ref: /schemas/types.yaml#/definitions/uint64-array > - description: > - Allowed data bus frequencies. > + clock-noncontinuous: true > + link-frequencies: true > > required: > - link-frequencies > diff --git a/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml b/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml > index 9ea827092fdd..3a52dc81eabd 100644 > --- a/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml > @@ -52,81 +52,41 @@ properties: > const: 2 > > ports: > - type: object > - 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 > + $ref: /schemas/graph.yaml#/properties/ports > > properties: > - '#address-cells': > - const: 1 > - > - '#size-cells': > - const: 0 > - > - port@[0-3]: > - type: object > - properties: > - reg: > - enum: [ 0, 1, 2, 3 ] > - > - endpoint: > - type: object > - > - properties: > - remote-endpoint: > - description: | > - phandle to the remote GMSL source endpoint subnode in the > - remote node port. > + port@0: > + $ref: /schemas/graph.yaml#/properties/port > + description: GMSL Input 0 > > - required: > - - remote-endpoint > + port@1: > + $ref: /schemas/graph.yaml#/properties/port > + description: GMSL Input 1 > > - required: > - - reg > - - endpoint > + port@2: > + $ref: /schemas/graph.yaml#/properties/port > + description: GMSL Input 2 > > - additionalProperties: false > + port@3: > + $ref: /schemas/graph.yaml#/properties/port > + description: GMSL Input 3 > > port@4: > - type: object > - properties: > - reg: > - const: 4 > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > + description: CSI-2 Output > > + properties: > endpoint: > - type: object > + $ref: /schemas/media/video-interfaces.yaml# > + unevaluatedProperties: false > > properties: > - remote-endpoint: > - description: phandle to the remote CSI-2 sink endpoint. > - > - data-lanes: > - description: array of physical CSI-2 data lane indexes. > + data-lanes: true > > required: > - - remote-endpoint > - data-lanes > > - required: > - - reg > - - endpoint > - > - additionalProperties: false > - > required: > - port@4 > > @@ -184,25 +144,8 @@ properties: > requirements of the currently connected remote device. > > port: > - 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 > + $ref: /schemas/graph.yaml#/properties/port > + description: Connection to the MAX9286 sink. > > required: > - compatible > diff --git a/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml b/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml > index d94bd67ccea1..3657f2f41098 100644 > --- a/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml > @@ -73,19 +73,16 @@ properties: > enum: [ 0, 180 ] > > port: > - type: object > + $ref: /schemas/graph.yaml#/$defs/port-base > + additionalProperties: false > + > properties: > endpoint: > - type: object > + $ref: /schemas/media/video-interfaces.yaml# > + unevaluatedProperties: false > + > properties: > - link-frequencies: > - $ref: /schemas/types.yaml#/definitions/uint64-array > - description: List of allowed data link frequencies. > - data-lanes: > - minItems: 1 > - maxItems: 8 Don't we need link-frequencies: true data-lanes: true to convey the fact that those properties are applicable for this device ? This applies to a few locations below too. > bus-type: > - description: The type of the data bus. > oneOf: > - const: 1 # CSI-2 C-PHY > - const: 3 # CCP2 > diff --git a/Documentation/devicetree/bindings/media/i2c/ov5647.yaml b/Documentation/devicetree/bindings/media/i2c/ov5647.yaml > index 280c62afae13..3b1ea9da437a 100644 > --- a/Documentation/devicetree/bindings/media/i2c/ov5647.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/ov5647.yaml > @@ -31,27 +31,15 @@ properties: > maxItems: 1 > > port: > - type: object > - 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. > + $ref: /schemas/graph.yaml#/$defs/port-base > > properties: > endpoint: > - type: object > + $ref: /schemas/media/video-interfaces.yaml# > + unevaluatedProperties: false > > properties: > - remote-endpoint: > - description: |- > - phandle to the video receiver input port. > - > - clock-noncontinuous: > - type: boolean > - description: |- > - Set to true to allow MIPI CSI-2 non-continuous clock operations. > - > - additionalProperties: false > + clock-noncontinuous: true > > additionalProperties: false > > diff --git a/Documentation/devicetree/bindings/media/i2c/ov8856.yaml b/Documentation/devicetree/bindings/media/i2c/ov8856.yaml > index cde85553fd01..c29b057ae922 100644 > --- a/Documentation/devicetree/bindings/media/i2c/ov8856.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/ov8856.yaml > @@ -57,16 +57,13 @@ properties: > active low. > > port: > - type: object > + $ref: /schemas/graph.yaml#/$defs/port-base > 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: > - type: object > + $ref: /schemas/media/video-interfaces.yaml# > + unevaluatedProperties: false > > properties: > data-lanes: > @@ -79,18 +76,13 @@ properties: > - const: 4 > > link-frequencies: > - $ref: /schemas/types.yaml#/definitions/uint64-array > - description: > - Allowed data bus frequencies. 360000000, 180000000 Hz or both > - are supported by the driver. > - > + maxItems: 2 > + items: > + enum: [ 360000000, 180000000 ] This is a limitation of the driver, not the device. Should we keep this information in a comment, to eventually get it fixed and drop the limitation from the bindings ? > > required: > - link-frequencies > > - required: > - - endpoint > - > required: > - compatible > - reg > @@ -139,4 +131,3 @@ examples: > }; > }; > ... > - > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml > index 1c3879ec4122..aaf541cd3833 100644 > --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml > @@ -17,6 +17,9 @@ description: |- > @ 1600x1200 (UXGA) resolution transferred over a 1-lane MIPI interface. The > sensor output is available via CSI-2 serial data output. > > +allOf: > + - $ref: /schemas/media/video-interface-device.yaml# > + > properties: > compatible: > const: ovti,ov02a10 > @@ -66,42 +69,33 @@ properties: > maxItems: 1 > > rotation: > - description: > - Definition of the sensor's placement. > - allOf: > - - $ref: "/schemas/types.yaml#/definitions/uint32" > - - enum: > - - 0 # Sensor Mounted Upright > - - 180 # Sensor Mounted Upside Down > - default: 0 > - > - # See ../video-interfaces.txt for details > + enum: > + - 0 # Sensor Mounted Upright > + - 180 # Sensor Mounted Upside Down > + default: 0 > + > port: > - type: object > + $ref: /schemas/graph.yaml#/$defs/port-base > additionalProperties: false > description: > Output port node, single endpoint describing the CSI-2 transmitter. > > properties: > endpoint: > - type: object > - additionalProperties: false > + $ref: /schemas/media/video-interfaces.yaml# > + unevaluatedProperties: false > > properties: > - link-frequencies: true > ovti,mipi-clock-voltage: > - allOf: > - - $ref: "/schemas/types.yaml#/definitions/uint32" > + $ref: "/schemas/types.yaml#/definitions/uint32" > description: > Definition of MIPI clock voltage unit. This entry corresponds to > the link speed defined by the 'link-frequencies' property. > If present, the value shall be in the range of 0-4. > default: 4 > - remote-endpoint: true > > required: > - link-frequencies > - - remote-endpoint > > required: > - endpoint > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov2680.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov2680.yaml > index 43bf749807e1..cf456f8d9ddc 100644 > --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov2680.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov2680.yaml > @@ -50,11 +50,9 @@ properties: > Definition of the regulator used as digital power supply. > > port: > - type: object > + $ref: /schemas/graph.yaml#/properties/port > description: > - A node containing an output port node with an endpoint definition > - as documented in > - Documentation/devicetree/bindings/media/video-interfaces.txt > + A node containing an output port node. > > required: > - compatible > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml > index 6866c2cdac50..44529425ce3a 100644 > --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml > @@ -37,13 +37,14 @@ properties: > maxItems: 1 > > port: > - type: object > + $ref: /schemas/graph.yaml#/$defs/port-base > description: | > - Video output port. See ../video-interfaces.txt. > + Video output port. > > properties: > endpoint: > - type: object > + $ref: /schemas/media/video-interfaces.yaml# > + unevaluatedProperties: false > > properties: > bus-type: > @@ -91,8 +92,6 @@ properties: > required: > - bus-type > > - unevaluatedProperties: false > - > additionalProperties: false > > required: > diff --git a/Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml b/Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml > index 1a3590dd0e98..1b69b6342978 100644 > --- a/Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml > @@ -15,6 +15,9 @@ description: | > interface. Image data is sent through MIPI CSI-2, through 2 or 4 lanes at a > maximum throughput of 1.2Gbps/lane. > > +allOf: > + - $ref: ../video-interface-devices.yaml# > + > properties: > compatible: > const: sony,imx214 > @@ -47,25 +50,21 @@ properties: > description: Chip digital core regulator (1.12V). > maxItems: 1 > > - flash-leds: > - description: See ../video-interfaces.txt > - > - lens-focus: > - description: See ../video-interfaces.txt > + flash-leds: true > + lens-focus: true > > port: > - type: object > + $ref: /schemas/graph.yaml#/$defs/port-base > description: | > - Video output port. See ../video-interfaces.txt. > + Video output port. > > properties: > endpoint: > - type: object > + $ref: /schemas/media/video-interfaces.yaml# > + unevaluatedProperties: false > > properties: > data-lanes: > - $ref: /schemas/types.yaml#/definitions/uint32-array > - description: See ../video-interfaces.txt > anyOf: > - items: > - const: 1 > @@ -76,16 +75,12 @@ properties: > - const: 3 > - const: 4 > > - link-frequencies: > - $ref: /schemas/types.yaml#/definitions/uint64-array > - description: See ../video-interfaces.txt > + link-frequencies: true > > required: > - data-lanes > - link-frequencies > > - unevaluatedProperties: false > - > additionalProperties: false > > required: > diff --git a/Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml b/Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml > index f697e1a20beb..90828020e42a 100644 > --- a/Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml > @@ -44,8 +44,7 @@ properties: > maxItems: 1 > > port: > - type: object > - description: Output video port. See ../video-interfaces.txt. > + $ref: /schemas/graph.yaml#/properties/port > > required: > - compatible > diff --git a/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml b/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml > index 49bff738aca5..9e85c70d1a1f 100644 > --- a/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml > +++ b/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml > @@ -24,29 +24,20 @@ properties: > maxItems: 1 > > port: > - type: object > + $ref: /schemas/graph.yaml#/$defs/port-base > additionalProperties: false > > properties: > endpoint: > - type: object > - additionalProperties: false > + $ref: video-interfaces.yaml# > + unevaluatedProperties: false > > - # Properties described in > - # Documentation/devicetree/bindings/media/video-interfaces.txt > properties: > - remote-endpoint: true > hsync-active: true > vsync-active: true > pclk-sample: true > bus-type: true > > - required: > - - remote-endpoint > - > - required: > - - endpoint > - > clocks: > minItems: 1 > maxItems: 3 > diff --git a/Documentation/devicetree/bindings/media/nxp,imx7-csi.yaml b/Documentation/devicetree/bindings/media/nxp,imx7-csi.yaml > index 4e81a47e60ac..d91575b8ebb9 100644 > --- a/Documentation/devicetree/bindings/media/nxp,imx7-csi.yaml > +++ b/Documentation/devicetree/bindings/media/nxp,imx7-csi.yaml > @@ -33,10 +33,7 @@ properties: > - const: mclk > > port: > - type: object > - description: > - A node containing input port nodes with endpoint definitions as documented > - in Documentation/devicetree/bindings/media/video-interfaces.txt > + $ref: /schemas/graph.yaml#/properties/port > > required: > - compatible > diff --git a/Documentation/devicetree/bindings/media/nxp,imx7-mipi-csi2.yaml b/Documentation/devicetree/bindings/media/nxp,imx7-mipi-csi2.yaml > index 0668332959e7..be47a7b62ca9 100644 > --- a/Documentation/devicetree/bindings/media/nxp,imx7-mipi-csi2.yaml > +++ b/Documentation/devicetree/bindings/media/nxp,imx7-mipi-csi2.yaml > @@ -58,35 +58,22 @@ properties: > Differential receiver (HS-RX) settle time > > 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 > + $ref: /schemas/graph.yaml#/properties/ports > > properties: > - '#address-cells': > - const: 1 > - > - '#size-cells': > - const: 0 > - > port@0: > - type: object > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > description: > Input port node, single endpoint describing the CSI-2 transmitter. > > properties: > - reg: > - const: 0 > - > endpoint: > - type: object > + $ref: video-interfaces.yaml# > + unevaluatedProperties: false > > properties: > data-lanes: > - $ref: /schemas/types.yaml#/definitions/uint32-array > - description: See ../video-interfaces.txt > oneOf: > - items: > - const: 1 > @@ -94,18 +81,11 @@ properties: > - const: 1 > - const: 2 > > - remote-endpoint: true > - > required: > - data-lanes > - - remote-endpoint > - > - additionalProperties: false > - > - additionalProperties: false > > port@1: > - type: object > + $ref: /schemas/graph.yaml#/properties/port > description: > Output port node > > diff --git a/Documentation/devicetree/bindings/media/renesas,ceu.yaml b/Documentation/devicetree/bindings/media/renesas,ceu.yaml > index c7e1e4fe67e6..50e0740af15a 100644 > --- a/Documentation/devicetree/bindings/media/renesas,ceu.yaml > +++ b/Documentation/devicetree/bindings/media/renesas,ceu.yaml > @@ -34,18 +34,15 @@ properties: > maxItems: 1 > > port: > - type: object > - additionalProperties: false > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > > properties: > endpoint: > - type: object > - additionalProperties: false > + $ref: video-interfaces.yaml# > + unevaluatedProperties: false > > - # Properties described in > - # Documentation/devicetree/bindings/media/video-interfaces.txt > properties: > - remote-endpoint: true > hsync-active: true > vsync-active: true > field-even-active: false > @@ -53,12 +50,6 @@ properties: > enum: [8, 16] > default: 8 > > - required: > - - remote-endpoint > - > - required: > - - endpoint > - > required: > - compatible > - reg > diff --git a/Documentation/devicetree/bindings/media/renesas,csi2.yaml b/Documentation/devicetree/bindings/media/renesas,csi2.yaml > index 533c2f181db7..20396f1be999 100644 > --- a/Documentation/devicetree/bindings/media/renesas,csi2.yaml > +++ b/Documentation/devicetree/bindings/media/renesas,csi2.yaml > @@ -46,24 +46,19 @@ properties: > maxItems: 1 > > 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 > + $ref: /schemas/graph.yaml#/properties/ports > > properties: > port@0: > - type: object > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > description: > Input port node, single endpoint describing the CSI-2 transmitter. > > properties: > - reg: > - const: 0 > - > endpoint: > - type: object > + $ref: video-interfaces.yaml# > + unevaluatedProperties: false > > properties: > clock-lanes: > @@ -72,50 +67,19 @@ properties: > data-lanes: > maxItems: 1 > > - remote-endpoint: true > - > required: > - clock-lanes > - data-lanes > - - remote-endpoint > - > - additionalProperties: false > - > - additionalProperties: false > > port@1: > - type: object > + $ref: /schemas/graph.yaml#/properties/port > description: > Output port node, multiple endpoints describing all the R-Car VIN > modules connected the CSI-2 receiver. > > - properties: > - '#address-cells': > - const: 1 > - > - '#size-cells': > - const: 0 > - > - reg: > - const: 1 > - > - patternProperties: > - "^endpoint@[0-9a-f]$": > - type: object > - > - properties: > - reg: > - maxItems: 1 > - > - remote-endpoint: true > - > - required: > - - reg > - - remote-endpoint > - > - additionalProperties: false > - > - additionalProperties: false > + required: > + - port@0 > + - port@1 > > required: > - compatible > diff --git a/Documentation/devicetree/bindings/media/renesas,vin.yaml b/Documentation/devicetree/bindings/media/renesas,vin.yaml > index ad2fe660364b..fe7c4cbfe4ba 100644 > --- a/Documentation/devicetree/bindings/media/renesas,vin.yaml > +++ b/Documentation/devicetree/bindings/media/renesas,vin.yaml > @@ -69,15 +69,15 @@ properties: > > #The per-board settings for Gen2 and RZ/G1 platforms: > port: > - type: object > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > description: > - A node containing a parallel input with a single endpoint definitions as > - documented in > - Documentation/devicetree/bindings/media/video-interfaces.txt > + A node containing a parallel input > > properties: > endpoint: > - type: object > + $ref: video-interfaces.yaml# > + unevaluatedProperties: false > > properties: > hsync-active: > @@ -106,15 +106,6 @@ properties: > > data-active: true > > - remote-endpoint: true > - > - required: > - - remote-endpoint > - > - additionalProperties: false > - > - additionalProperties: false > - > #The per-board settings for Gen3 and RZ/G2 platforms: > renesas,id: > description: VIN channel number > @@ -123,23 +114,18 @@ properties: > maximum: 15 > > ports: > - type: object > - description: > - A node containing input nodes with endpoint definitions as documented in > - Documentation/devicetree/bindings/media/video-interfaces.txt > + $ref: /schemas/graph.yaml#/properties/ports > > properties: > port@0: > - type: object > + $ref: /schemas/graph.yaml#/properties/port > description: > Input port node, single endpoint describing a parallel input source. > > properties: > - reg: > - const: 0 > - > endpoint: > - type: object > + $ref: video-interfaces.yaml# > + unevaluatedProperties: false > > properties: > hsync-active: > @@ -168,98 +154,29 @@ properties: > > data-active: true > > - remote-endpoint: true > - > - required: > - - remote-endpoint > - > - additionalProperties: false > - > - required: > - - endpoint > - > - additionalProperties: false > - > port@1: > - type: object > + $ref: /schemas/graph.yaml#/properties/port > description: > Input port node, multiple endpoints describing all the R-Car CSI-2 > modules connected the VIN. > > properties: > - '#address-cells': > - const: 1 > - > - '#size-cells': > - const: 0 > - > - reg: > - const: 1 > - > endpoint@0: > - type: object > + $ref: /schemas/graph.yaml#/properties/endpoint > description: Endpoint connected to CSI20. > > - properties: > - reg: > - const: 0 > - > - remote-endpoint: true > - > - required: > - - reg > - - remote-endpoint > - > - additionalProperties: false > - > endpoint@1: > - type: object > + $ref: /schemas/graph.yaml#/properties/endpoint > description: Endpoint connected to CSI21. > > - properties: > - reg: > - const: 1 > - > - remote-endpoint: true > - > - required: > - - reg > - - remote-endpoint > - > - additionalProperties: false > - > endpoint@2: > - type: object > + $ref: /schemas/graph.yaml#/properties/endpoint > description: Endpoint connected to CSI40. > > - properties: > - reg: > - const: 2 > - > - remote-endpoint: true > - > - required: > - - reg > - - remote-endpoint > - > - additionalProperties: false > - > endpoint@3: > - type: object > + $ref: /schemas/graph.yaml#/properties/endpoint > description: Endpoint connected to CSI41. > > - properties: > - reg: > - const: 3 > - > - remote-endpoint: true > - > - required: > - - reg > - - remote-endpoint > - > - additionalProperties: false > - > anyOf: > - required: > - endpoint@0 > @@ -270,8 +187,6 @@ properties: > - required: > - endpoint@3 > > - additionalProperties: false > - > required: > - compatible > - reg > diff --git a/Documentation/devicetree/bindings/media/rockchip-isp1.yaml b/Documentation/devicetree/bindings/media/rockchip-isp1.yaml > index 2004c054ed1a..a6b1eff879ed 100644 > --- a/Documentation/devicetree/bindings/media/rockchip-isp1.yaml > +++ b/Documentation/devicetree/bindings/media/rockchip-isp1.yaml > @@ -56,56 +56,26 @@ properties: > power-domains: > maxItems: 1 > > - # See ./video-interfaces.txt for details > ports: > - type: object > - additionalProperties: false > + $ref: /schemas/graph.yaml#/properties/ports > > properties: > - "#address-cells": > - const: 1 > - > - "#size-cells": > - const: 0 > - > port@0: > - type: object > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > description: connection point for sensors at MIPI-DPHY RX0 > - additionalProperties: false > > properties: > - "#address-cells": > - const: 1 > - > - "#size-cells": > - const: 0 > - > - reg: > - const: 0 > - > - patternProperties: > endpoint: > - type: object > - additionalProperties: false > + $ref: video-interfaces.yaml# > + unevaluatedProperties: false > > properties: > - reg: > - maxItems: 1 > - > data-lanes: > minItems: 1 > maxItems: 4 > > - remote-endpoint: true > - > - required: > - - reg > - - "#address-cells" > - - "#size-cells" > - > required: > - - "#address-cells" > - - "#size-cells" > - port@0 > > required: > diff --git a/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml b/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml > index c18574bb3e81..41e1d0cd80e5 100644 > --- a/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml > +++ b/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml > @@ -37,16 +37,15 @@ properties: > maxItems: 1 > > port: > - type: object > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > description: > - 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. > + DCMI supports a single port node with parallel bus. > > properties: > endpoint: > - type: object > + $ref: video-interfaces.yaml# > + unevaluatedProperties: false > > properties: > bus-type: > @@ -57,8 +56,6 @@ properties: > enum: [8, 10, 12, 14] > default: 8 > > - remote-endpoint: true > - > allOf: > - if: > properties: > @@ -73,14 +70,9 @@ properties: > enum: [8] > > required: > - - remote-endpoint > - bus-type > - pclk-sample > > - unevaluatedProperties: false > - > - additionalProperties: false > - > required: > - compatible > - reg > diff --git a/Documentation/devicetree/bindings/media/ti,cal.yaml b/Documentation/devicetree/bindings/media/ti,cal.yaml > index 5e066629287d..65177cd69514 100644 > --- a/Documentation/devicetree/bindings/media/ti,cal.yaml > +++ b/Documentation/devicetree/bindings/media/ti,cal.yaml > @@ -15,10 +15,7 @@ description: |- > processing capability to connect CSI2 image-sensor modules to the > DRA72x device. > > - CAL supports 2 camera port nodes on MIPI bus. Each CSI2 camera port nodes > - should contain a 'port' child node with child 'endpoint' node. Please > - refer to the bindings defined in > - Documentation/devicetree/bindings/media/video-interfaces.txt. > + CAL supports 2 camera port nodes on MIPI bus. > > properties: > compatible: > @@ -67,31 +64,19 @@ properties: > Documentation/devicetree/bindings/power/power_domain.txt > maxItems: 1 > > - # See ./video-interfaces.txt for details > ports: > - type: object > - additionalProperties: false > + $ref: /schemas/graph.yaml#/properties/ports > > properties: > - "#address-cells": > - const: 1 > - > - "#size-cells": > - const: 0 > - > port@0: > - type: object > - additionalProperties: false > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > + description: CSI2 Port #0 > > properties: > - reg: > - const: 0 > - description: CSI2 Port #0 > - > - patternProperties: > endpoint: > - type: object > - additionalProperties: false > + $ref: video-interfaces.yaml# > + unevaluatedProperties: false > > properties: > clock-lanes: > @@ -101,24 +86,15 @@ properties: > minItems: 1 > maxItems: 4 > > - remote-endpoint: true > - > - required: > - - reg > - > port@1: > - type: object > - additionalProperties: false > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > + description: CSI2 Port #1 > > properties: > - reg: > - const: 1 > - description: CSI2 Port #1 > - > - patternProperties: > endpoint: > - type: object > - additionalProperties: false > + $ref: video-interfaces.yaml# > + unevaluatedProperties: false > > properties: > clock-lanes: > @@ -128,14 +104,7 @@ properties: > minItems: 1 > maxItems: 4 > > - remote-endpoint: true > - > - required: > - - 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 2961a5b6872f..7d77823dbb7a 100644 > --- a/Documentation/devicetree/bindings/media/xilinx/xlnx,csi2rxss.yaml > +++ b/Documentation/devicetree/bindings/media/xilinx/xlnx,csi2rxss.yaml > @@ -97,24 +97,21 @@ properties: > maxItems: 1 > > ports: > - type: object > + $ref: /schemas/graph.yaml#/properties/ports > > properties: > port@0: > - type: object > + $ref: /schemas/graph.yaml#/$defs/port-base > description: | > Input / sink port node, single endpoint describing the > CSI-2 transmitter. > > properties: > - reg: > - const: 0 > - > endpoint: > - type: object > + $ref: /schemas/media/video-interfaces.yaml# > + unevaluatedProperties: false > > properties: > - > data-lanes: > description: | > This is required only in the sink port 0 endpoint which > @@ -130,41 +127,17 @@ properties: > - const: 3 > - const: 4 > > - remote-endpoint: true > - > required: > - data-lanes > - - remote-endpoint > - > - additionalProperties: false > > - additionalProperties: false > + unevaluatedProperties: false > > port@1: > - type: object > + $ref: /schemas/graph.yaml#/properties/port > description: | > Output / source port node, endpoint describing modules > connected the CSI-2 receiver. > > - properties: > - > - reg: > - const: 1 > - > - endpoint: > - type: object > - > - properties: > - > - remote-endpoint: true > - > - required: > - - remote-endpoint > - > - additionalProperties: false > - > - additionalProperties: false > - > required: > - compatible > - reg -- Regards, Laurent Pinchart
On Wed, Dec 16, 2020 at 05:19:55PM +0200, Laurent Pinchart wrote: > Hi Rob, > > Thank you for the patch. > > On Thu, Dec 10, 2020 at 03:16:25PM -0600, Rob Herring wrote: > > Now that we have graph and video-interfaces schemas, rework the media > > related schemas to use them. > > > > Cc: Maxime Ripard <mripard@kernel.org> > > Cc: Mauro Carvalho Chehab <mchehab@kernel.org> > > Cc: Jacopo Mondi <jacopo@jmondi.org> > > Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> > > Cc: linux-media@vger.kernel.org > > Signed-off-by: Rob Herring <robh@kernel.org> > > --- > > diff --git a/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml b/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml > > index d94bd67ccea1..3657f2f41098 100644 > > --- a/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml > > +++ b/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml > > @@ -73,19 +73,16 @@ properties: > > enum: [ 0, 180 ] > > > > port: > > - type: object > > + $ref: /schemas/graph.yaml#/$defs/port-base > > + additionalProperties: false > > + > > properties: > > endpoint: > > - type: object > > + $ref: /schemas/media/video-interfaces.yaml# > > + unevaluatedProperties: false > > + > > properties: > > - link-frequencies: > > - $ref: /schemas/types.yaml#/definitions/uint64-array > > - description: List of allowed data link frequencies. > > - data-lanes: > > - minItems: 1 > > - maxItems: 8 > > Don't we need > > link-frequencies: true > data-lanes: true > > to convey the fact that those properties are applicable for this device > ? This applies to a few locations below too. Adding them would convey that to the reader, but wouldn't change the schema validation. We'd have to use 'additionalProperties' instead and also add 'remote-endpoint' everywhere (and 'reg' sometimes). I prefer not doing all that, but if we want it just for purposes of documenting the usage, that's fine. > > bus-type: > > - description: The type of the data bus. > > oneOf: > > - const: 1 # CSI-2 C-PHY > > - const: 3 # CCP2 > > diff --git a/Documentation/devicetree/bindings/media/i2c/ov5647.yaml b/Documentation/devicetree/bindings/media/i2c/ov5647.yaml > > index 280c62afae13..3b1ea9da437a 100644 > > --- a/Documentation/devicetree/bindings/media/i2c/ov5647.yaml > > +++ b/Documentation/devicetree/bindings/media/i2c/ov5647.yaml > > @@ -31,27 +31,15 @@ properties: > > maxItems: 1 > > > > port: > > - type: object > > - 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. > > + $ref: /schemas/graph.yaml#/$defs/port-base > > > > properties: > > endpoint: > > - type: object > > + $ref: /schemas/media/video-interfaces.yaml# > > + unevaluatedProperties: false > > > > properties: > > - remote-endpoint: > > - description: |- > > - phandle to the video receiver input port. > > - > > - clock-noncontinuous: > > - type: boolean > > - description: |- > > - Set to true to allow MIPI CSI-2 non-continuous clock operations. > > - > > - additionalProperties: false > > + clock-noncontinuous: true > > > > additionalProperties: false > > > > diff --git a/Documentation/devicetree/bindings/media/i2c/ov8856.yaml b/Documentation/devicetree/bindings/media/i2c/ov8856.yaml > > index cde85553fd01..c29b057ae922 100644 > > --- a/Documentation/devicetree/bindings/media/i2c/ov8856.yaml > > +++ b/Documentation/devicetree/bindings/media/i2c/ov8856.yaml > > @@ -57,16 +57,13 @@ properties: > > active low. > > > > port: > > - type: object > > + $ref: /schemas/graph.yaml#/$defs/port-base > > 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: > > - type: object > > + $ref: /schemas/media/video-interfaces.yaml# > > + unevaluatedProperties: false > > > > properties: > > data-lanes: > > @@ -79,18 +76,13 @@ properties: > > - const: 4 > > > > link-frequencies: > > - $ref: /schemas/types.yaml#/definitions/uint64-array > > - description: > > - Allowed data bus frequencies. 360000000, 180000000 Hz or both > > - are supported by the driver. > > - > > + maxItems: 2 > > + items: > > + enum: [ 360000000, 180000000 ] > > This is a limitation of the driver, not the device. Should we keep this > information in a comment, to eventually get it fixed and drop the > limitation from the bindings ? If your dts has anything else, then it won't work. Warning on that seems valuable to me, so I think we should keep it. If someone with a better driver complains, we can drop it. I can keep the description with 'Frequencies listed are driver, not h/w limitations'. Rob
Hi Rob, On Wed, Dec 16, 2020 at 11:38:41AM -0600, Rob Herring wrote: > On Wed, Dec 16, 2020 at 05:19:55PM +0200, Laurent Pinchart wrote: > > On Thu, Dec 10, 2020 at 03:16:25PM -0600, Rob Herring wrote: > > > Now that we have graph and video-interfaces schemas, rework the media > > > related schemas to use them. > > > > > > Cc: Maxime Ripard <mripard@kernel.org> > > > Cc: Mauro Carvalho Chehab <mchehab@kernel.org> > > > Cc: Jacopo Mondi <jacopo@jmondi.org> > > > Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> > > > Cc: linux-media@vger.kernel.org > > > Signed-off-by: Rob Herring <robh@kernel.org> > > > --- > > > > > diff --git a/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml b/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml > > > index d94bd67ccea1..3657f2f41098 100644 > > > --- a/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml > > > +++ b/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml > > > @@ -73,19 +73,16 @@ properties: > > > enum: [ 0, 180 ] > > > > > > port: > > > - type: object > > > + $ref: /schemas/graph.yaml#/$defs/port-base > > > + additionalProperties: false > > > + > > > properties: > > > endpoint: > > > - type: object > > > + $ref: /schemas/media/video-interfaces.yaml# > > > + unevaluatedProperties: false > > > + > > > properties: > > > - link-frequencies: > > > - $ref: /schemas/types.yaml#/definitions/uint64-array > > > - description: List of allowed data link frequencies. > > > - data-lanes: > > > - minItems: 1 > > > - maxItems: 8 > > > > Don't we need > > > > link-frequencies: true > > data-lanes: true > > > > to convey the fact that those properties are applicable for this device > > ? This applies to a few locations below too. > > Adding them would convey that to the reader, but wouldn't change the > schema validation. We'd have to use 'additionalProperties' instead and > also add 'remote-endpoint' everywhere (and 'reg' sometimes). I prefer > not doing all that, but if we want it just for purposes of documenting > the usage, that's fine. I'd prefer keeping it to document what properties are applicable. If we can later find a better way to express it in a way that will be taken into account during validation, that will be best, but not required now. > > > bus-type: > > > - description: The type of the data bus. > > > oneOf: > > > - const: 1 # CSI-2 C-PHY > > > - const: 3 # CCP2 > > > diff --git a/Documentation/devicetree/bindings/media/i2c/ov5647.yaml b/Documentation/devicetree/bindings/media/i2c/ov5647.yaml > > > index 280c62afae13..3b1ea9da437a 100644 > > > --- a/Documentation/devicetree/bindings/media/i2c/ov5647.yaml > > > +++ b/Documentation/devicetree/bindings/media/i2c/ov5647.yaml > > > @@ -31,27 +31,15 @@ properties: > > > maxItems: 1 > > > > > > port: > > > - type: object > > > - 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. > > > + $ref: /schemas/graph.yaml#/$defs/port-base > > > > > > properties: > > > endpoint: > > > - type: object > > > + $ref: /schemas/media/video-interfaces.yaml# > > > + unevaluatedProperties: false > > > > > > properties: > > > - remote-endpoint: > > > - description: |- > > > - phandle to the video receiver input port. > > > - > > > - clock-noncontinuous: > > > - type: boolean > > > - description: |- > > > - Set to true to allow MIPI CSI-2 non-continuous clock operations. > > > - > > > - additionalProperties: false > > > + clock-noncontinuous: true > > > > > > additionalProperties: false > > > > > > diff --git a/Documentation/devicetree/bindings/media/i2c/ov8856.yaml b/Documentation/devicetree/bindings/media/i2c/ov8856.yaml > > > index cde85553fd01..c29b057ae922 100644 > > > --- a/Documentation/devicetree/bindings/media/i2c/ov8856.yaml > > > +++ b/Documentation/devicetree/bindings/media/i2c/ov8856.yaml > > > @@ -57,16 +57,13 @@ properties: > > > active low. > > > > > > port: > > > - type: object > > > + $ref: /schemas/graph.yaml#/$defs/port-base > > > 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: > > > - type: object > > > + $ref: /schemas/media/video-interfaces.yaml# > > > + unevaluatedProperties: false > > > > > > properties: > > > data-lanes: > > > @@ -79,18 +76,13 @@ properties: > > > - const: 4 > > > > > > link-frequencies: > > > - $ref: /schemas/types.yaml#/definitions/uint64-array > > > - description: > > > - Allowed data bus frequencies. 360000000, 180000000 Hz or both > > > - are supported by the driver. > > > - > > > + maxItems: 2 > > > + items: > > > + enum: [ 360000000, 180000000 ] > > > > This is a limitation of the driver, not the device. Should we keep this > > information in a comment, to eventually get it fixed and drop the > > limitation from the bindings ? > > If your dts has anything else, then it won't work. Warning on that seems > valuable to me, so I think we should keep it. If someone with a better > driver complains, we can drop it. > > I can keep the description with 'Frequencies listed are driver, not h/w > limitations'. I'm fine with the constraint itself, my comment was referring to the fact that we're dropping the description. Your description proposal works for me, thanks. -- Regards, Laurent Pinchart
Hi Laurent, Rob, On Wed, Dec 16, 2020 at 07:43:45PM +0200, Laurent Pinchart wrote: > Hi Rob, > > On Wed, Dec 16, 2020 at 11:38:41AM -0600, Rob Herring wrote: > > On Wed, Dec 16, 2020 at 05:19:55PM +0200, Laurent Pinchart wrote: > > > On Thu, Dec 10, 2020 at 03:16:25PM -0600, Rob Herring wrote: > > > > Now that we have graph and video-interfaces schemas, rework the media > > > > related schemas to use them. > > > > > > > > Cc: Maxime Ripard <mripard@kernel.org> > > > > Cc: Mauro Carvalho Chehab <mchehab@kernel.org> > > > > Cc: Jacopo Mondi <jacopo@jmondi.org> > > > > Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> > > > > Cc: linux-media@vger.kernel.org > > > > Signed-off-by: Rob Herring <robh@kernel.org> > > > > --- > > > > > > > > diff --git a/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml b/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml > > > > index d94bd67ccea1..3657f2f41098 100644 > > > > --- a/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml > > > > +++ b/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml > > > > @@ -73,19 +73,16 @@ properties: > > > > enum: [ 0, 180 ] > > > > > > > > port: > > > > - type: object > > > > + $ref: /schemas/graph.yaml#/$defs/port-base > > > > + additionalProperties: false > > > > + > > > > properties: > > > > endpoint: > > > > - type: object > > > > + $ref: /schemas/media/video-interfaces.yaml# > > > > + unevaluatedProperties: false > > > > + > > > > properties: > > > > - link-frequencies: > > > > - $ref: /schemas/types.yaml#/definitions/uint64-array > > > > - description: List of allowed data link frequencies. > > > > - data-lanes: > > > > - minItems: 1 > > > > - maxItems: 8 > > > > > > Don't we need > > > > > > link-frequencies: true > > > data-lanes: true > > > > > > to convey the fact that those properties are applicable for this device > > > ? This applies to a few locations below too. > > > > Adding them would convey that to the reader, but wouldn't change the > > schema validation. We'd have to use 'additionalProperties' instead and > > also add 'remote-endpoint' everywhere (and 'reg' sometimes). I prefer > > not doing all that, but if we want it just for purposes of documenting > > the usage, that's fine. > > I'd prefer keeping it to document what properties are applicable. If we > can later find a better way to express it in a way that will be taken > into account during validation, that will be best, but not required now. I agree. There properties that are used for linking other devices such as flash-leds. It could be related to any camera sensor, independently of its properties. If we went that way, that should be also added to a lot of places. ... > > > > diff --git a/Documentation/devicetree/bindings/media/i2c/ov8856.yaml b/Documentation/devicetree/bindings/media/i2c/ov8856.yaml > > > > index cde85553fd01..c29b057ae922 100644 > > > > --- a/Documentation/devicetree/bindings/media/i2c/ov8856.yaml > > > > +++ b/Documentation/devicetree/bindings/media/i2c/ov8856.yaml > > > > @@ -57,16 +57,13 @@ properties: > > > > active low. > > > > > > > > port: > > > > - type: object > > > > + $ref: /schemas/graph.yaml#/$defs/port-base > > > > 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: > > > > - type: object > > > > + $ref: /schemas/media/video-interfaces.yaml# > > > > + unevaluatedProperties: false > > > > > > > > properties: > > > > data-lanes: > > > > @@ -79,18 +76,13 @@ properties: > > > > - const: 4 > > > > > > > > link-frequencies: > > > > - $ref: /schemas/types.yaml#/definitions/uint64-array > > > > - description: > > > > - Allowed data bus frequencies. 360000000, 180000000 Hz or both > > > > - are supported by the driver. > > > > - > > > > + maxItems: 2 > > > > + items: > > > > + enum: [ 360000000, 180000000 ] > > > > > > This is a limitation of the driver, not the device. Should we keep this > > > information in a comment, to eventually get it fixed and drop the > > > limitation from the bindings ? > > > > If your dts has anything else, then it won't work. Warning on that seems > > valuable to me, so I think we should keep it. If someone with a better > > driver complains, we can drop it. > > > > I can keep the description with 'Frequencies listed are driver, not h/w > > limitations'. > > I'm fine with the constraint itself, my comment was referring to the > fact that we're dropping the description. Your description proposal > works for me, thanks. Sounds good. -- Sakari Ailus
diff --git a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml index 09318830db47..6ced94064215 100644 --- a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml +++ b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml @@ -67,14 +67,14 @@ properties: interconnect-names: const: dma-mem - # See ./video-interfaces.txt for details port: - type: object + $ref: /schemas/graph.yaml#/$defs/port-base additionalProperties: false properties: endpoint: - type: object + $ref: video-interfaces.yaml# + unevaluatedProperties: false properties: bus-width: @@ -83,7 +83,6 @@ properties: data-active: true hsync-active: true pclk-sample: true - remote-endpoint: true vsync-active: true required: @@ -91,12 +90,8 @@ properties: - data-active - hsync-active - pclk-sample - - remote-endpoint - vsync-active - required: - - endpoint - required: - compatible - reg diff --git a/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml b/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml index 1fd9b5532a21..8b568072a069 100644 --- a/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml +++ b/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml @@ -40,17 +40,15 @@ properties: resets: maxItems: 1 - # See ./video-interfaces.txt for details port: - type: object + $ref: /schemas/graph.yaml#/$defs/port-base properties: endpoint: - type: object + $ref: video-interfaces.yaml# + unevaluatedProperties: false properties: - remote-endpoint: true - bus-width: enum: [ 8, 10, 12, 16 ] @@ -60,10 +58,6 @@ properties: required: - bus-width - - remote-endpoint - - required: - - endpoint additionalProperties: false diff --git a/Documentation/devicetree/bindings/media/i2c/adv7180.yaml b/Documentation/devicetree/bindings/media/i2c/adv7180.yaml index d8c54f9d9506..bcfd93739b4f 100644 --- a/Documentation/devicetree/bindings/media/i2c/adv7180.yaml +++ b/Documentation/devicetree/bindings/media/i2c/adv7180.yaml @@ -36,17 +36,9 @@ properties: maxItems: 1 port: - 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 + $ref: /schemas/graph.yaml#/properties/port + + ports: true additionalProperties: false @@ -80,25 +72,20 @@ allOf: then: properties: ports: + $ref: /schemas/graph.yaml#/properties/ports properties: - '#address-cells': - const: 1 - '#size-cells': - const: 0 port@3: - type: object + $ref: /schemas/graph.yaml#/properties/port description: Output port patternProperties: "^port@[0-2]$": - type: object + $ref: /schemas/graph.yaml#/properties/port description: Input port required: - port@3 - additionalProperties: false - required: - ports @@ -110,25 +97,20 @@ allOf: then: properties: ports: + $ref: /schemas/graph.yaml#/properties/ports properties: - '#address-cells': - const: 1 - '#size-cells': - const: 0 port@6: - type: object + $ref: /schemas/graph.yaml#/properties/port description: Output port patternProperties: "^port@[0-5]$": - type: object + $ref: /schemas/graph.yaml#/properties/port description: Input port required: - port@6 - additionalProperties: false - required: - ports diff --git a/Documentation/devicetree/bindings/media/i2c/adv7604.yaml b/Documentation/devicetree/bindings/media/i2c/adv7604.yaml index 407baddfaa1d..df634b0c1f8c 100644 --- a/Documentation/devicetree/bindings/media/i2c/adv7604.yaml +++ b/Documentation/devicetree/bindings/media/i2c/adv7604.yaml @@ -64,16 +64,12 @@ properties: description: Select which input is selected after reset. - 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 + ports: true required: - compatible - reg + - ports additionalProperties: false @@ -86,26 +82,19 @@ allOf: then: properties: ports: + $ref: /schemas/graph.yaml#/properties/ports properties: - '#address-cells': - const: 1 - '#size-cells': - const: 0 port@0: - type: object + $ref: /schemas/graph.yaml#/properties/port description: Input port + port@1: - type: object + $ref: /schemas/graph.yaml#/properties/port description: Output port required: - port@1 - additionalProperties: false - - required: - - ports - - if: properties: compatible: @@ -114,28 +103,20 @@ allOf: then: properties: ports: + $ref: /schemas/graph.yaml#/properties/ports properties: - '#address-cells': - const: 1 - '#size-cells': - const: 0 port@2: - type: object + $ref: /schemas/graph.yaml#/properties/port description: Output port patternProperties: "^port@[0-1]$": - type: object + $ref: /schemas/graph.yaml#/properties/port description: Input port required: - port@2 - additionalProperties: false - - required: - - ports - examples: - | #include <dt-bindings/gpio/gpio.h> diff --git a/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml b/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml index ff9546e95d05..e53b8d65f381 100644 --- a/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml +++ b/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml @@ -41,9 +41,9 @@ properties: maxItems: 1 port: - type: object + $ref: /schemas/graph.yaml#/properties/port description: | - Output video port. See ../video-interfaces.txt. + Output video port. required: - compatible diff --git a/Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml b/Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml index 3dc06c628e64..e57575c44930 100644 --- a/Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml +++ b/Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml @@ -86,33 +86,9 @@ properties: maxItems: 3 port: - 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 + $ref: /schemas/graph.yaml#/properties/port + description: + Connection to the remote GMSL endpoint. required: - compatible diff --git a/Documentation/devicetree/bindings/media/i2c/imx219.yaml b/Documentation/devicetree/bindings/media/i2c/imx219.yaml index dfc4d29a4f04..012c0565d8ae 100644 --- a/Documentation/devicetree/bindings/media/i2c/imx219.yaml +++ b/Documentation/devicetree/bindings/media/i2c/imx219.yaml @@ -44,12 +44,15 @@ properties: Reference to the GPIO connected to the xclr pin, if any. Must be released (set high) after all supplies are applied. - # See ../video-interfaces.txt for more details port: - type: object + $ref: /schemas/graph.yaml#/$defs/port-base + additionalProperties: false + properties: endpoint: - type: object + $ref: /schemas/media/video-interfaces.yaml# + unevaluatedProperties: false + properties: data-lanes: description: |- @@ -60,16 +63,8 @@ properties: - const: 1 - const: 2 - clock-noncontinuous: - type: boolean - description: |- - MIPI CSI-2 clock is non-continuous if this property is present, - otherwise it's continuous. - - link-frequencies: - $ref: /schemas/types.yaml#/definitions/uint64-array - description: - Allowed data bus frequencies. + clock-noncontinuous: true + link-frequencies: true required: - link-frequencies diff --git a/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml b/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml index 9ea827092fdd..3a52dc81eabd 100644 --- a/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml +++ b/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml @@ -52,81 +52,41 @@ properties: const: 2 ports: - type: object - 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 + $ref: /schemas/graph.yaml#/properties/ports properties: - '#address-cells': - const: 1 - - '#size-cells': - const: 0 - - port@[0-3]: - type: object - properties: - reg: - enum: [ 0, 1, 2, 3 ] - - endpoint: - type: object - - properties: - remote-endpoint: - description: | - phandle to the remote GMSL source endpoint subnode in the - remote node port. + port@0: + $ref: /schemas/graph.yaml#/properties/port + description: GMSL Input 0 - required: - - remote-endpoint + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: GMSL Input 1 - required: - - reg - - endpoint + port@2: + $ref: /schemas/graph.yaml#/properties/port + description: GMSL Input 2 - additionalProperties: false + port@3: + $ref: /schemas/graph.yaml#/properties/port + description: GMSL Input 3 port@4: - type: object - properties: - reg: - const: 4 + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: CSI-2 Output + properties: endpoint: - type: object + $ref: /schemas/media/video-interfaces.yaml# + unevaluatedProperties: false properties: - remote-endpoint: - description: phandle to the remote CSI-2 sink endpoint. - - data-lanes: - description: array of physical CSI-2 data lane indexes. + data-lanes: true required: - - remote-endpoint - data-lanes - required: - - reg - - endpoint - - additionalProperties: false - required: - port@4 @@ -184,25 +144,8 @@ properties: requirements of the currently connected remote device. port: - 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 + $ref: /schemas/graph.yaml#/properties/port + description: Connection to the MAX9286 sink. required: - compatible diff --git a/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml b/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml index d94bd67ccea1..3657f2f41098 100644 --- a/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml +++ b/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml @@ -73,19 +73,16 @@ properties: enum: [ 0, 180 ] port: - type: object + $ref: /schemas/graph.yaml#/$defs/port-base + additionalProperties: false + properties: endpoint: - type: object + $ref: /schemas/media/video-interfaces.yaml# + unevaluatedProperties: false + properties: - link-frequencies: - $ref: /schemas/types.yaml#/definitions/uint64-array - description: List of allowed data link frequencies. - data-lanes: - minItems: 1 - maxItems: 8 bus-type: - description: The type of the data bus. oneOf: - const: 1 # CSI-2 C-PHY - const: 3 # CCP2 diff --git a/Documentation/devicetree/bindings/media/i2c/ov5647.yaml b/Documentation/devicetree/bindings/media/i2c/ov5647.yaml index 280c62afae13..3b1ea9da437a 100644 --- a/Documentation/devicetree/bindings/media/i2c/ov5647.yaml +++ b/Documentation/devicetree/bindings/media/i2c/ov5647.yaml @@ -31,27 +31,15 @@ properties: maxItems: 1 port: - type: object - 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. + $ref: /schemas/graph.yaml#/$defs/port-base properties: endpoint: - type: object + $ref: /schemas/media/video-interfaces.yaml# + unevaluatedProperties: false properties: - remote-endpoint: - description: |- - phandle to the video receiver input port. - - clock-noncontinuous: - type: boolean - description: |- - Set to true to allow MIPI CSI-2 non-continuous clock operations. - - additionalProperties: false + clock-noncontinuous: true additionalProperties: false diff --git a/Documentation/devicetree/bindings/media/i2c/ov8856.yaml b/Documentation/devicetree/bindings/media/i2c/ov8856.yaml index cde85553fd01..c29b057ae922 100644 --- a/Documentation/devicetree/bindings/media/i2c/ov8856.yaml +++ b/Documentation/devicetree/bindings/media/i2c/ov8856.yaml @@ -57,16 +57,13 @@ properties: active low. port: - type: object + $ref: /schemas/graph.yaml#/$defs/port-base 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: - type: object + $ref: /schemas/media/video-interfaces.yaml# + unevaluatedProperties: false properties: data-lanes: @@ -79,18 +76,13 @@ properties: - const: 4 link-frequencies: - $ref: /schemas/types.yaml#/definitions/uint64-array - description: - Allowed data bus frequencies. 360000000, 180000000 Hz or both - are supported by the driver. - + maxItems: 2 + items: + enum: [ 360000000, 180000000 ] required: - link-frequencies - required: - - endpoint - required: - compatible - reg @@ -139,4 +131,3 @@ examples: }; }; ... - diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml index 1c3879ec4122..aaf541cd3833 100644 --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml @@ -17,6 +17,9 @@ description: |- @ 1600x1200 (UXGA) resolution transferred over a 1-lane MIPI interface. The sensor output is available via CSI-2 serial data output. +allOf: + - $ref: /schemas/media/video-interface-device.yaml# + properties: compatible: const: ovti,ov02a10 @@ -66,42 +69,33 @@ properties: maxItems: 1 rotation: - description: - Definition of the sensor's placement. - allOf: - - $ref: "/schemas/types.yaml#/definitions/uint32" - - enum: - - 0 # Sensor Mounted Upright - - 180 # Sensor Mounted Upside Down - default: 0 - - # See ../video-interfaces.txt for details + enum: + - 0 # Sensor Mounted Upright + - 180 # Sensor Mounted Upside Down + default: 0 + port: - type: object + $ref: /schemas/graph.yaml#/$defs/port-base additionalProperties: false description: Output port node, single endpoint describing the CSI-2 transmitter. properties: endpoint: - type: object - additionalProperties: false + $ref: /schemas/media/video-interfaces.yaml# + unevaluatedProperties: false properties: - link-frequencies: true ovti,mipi-clock-voltage: - allOf: - - $ref: "/schemas/types.yaml#/definitions/uint32" + $ref: "/schemas/types.yaml#/definitions/uint32" description: Definition of MIPI clock voltage unit. This entry corresponds to the link speed defined by the 'link-frequencies' property. If present, the value shall be in the range of 0-4. default: 4 - remote-endpoint: true required: - link-frequencies - - remote-endpoint required: - endpoint diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov2680.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov2680.yaml index 43bf749807e1..cf456f8d9ddc 100644 --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov2680.yaml +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov2680.yaml @@ -50,11 +50,9 @@ properties: Definition of the regulator used as digital power supply. port: - type: object + $ref: /schemas/graph.yaml#/properties/port description: - A node containing an output port node with an endpoint definition - as documented in - Documentation/devicetree/bindings/media/video-interfaces.txt + A node containing an output port node. required: - compatible diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml index 6866c2cdac50..44529425ce3a 100644 --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml @@ -37,13 +37,14 @@ properties: maxItems: 1 port: - type: object + $ref: /schemas/graph.yaml#/$defs/port-base description: | - Video output port. See ../video-interfaces.txt. + Video output port. properties: endpoint: - type: object + $ref: /schemas/media/video-interfaces.yaml# + unevaluatedProperties: false properties: bus-type: @@ -91,8 +92,6 @@ properties: required: - bus-type - unevaluatedProperties: false - additionalProperties: false required: diff --git a/Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml b/Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml index 1a3590dd0e98..1b69b6342978 100644 --- a/Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml +++ b/Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml @@ -15,6 +15,9 @@ description: | interface. Image data is sent through MIPI CSI-2, through 2 or 4 lanes at a maximum throughput of 1.2Gbps/lane. +allOf: + - $ref: ../video-interface-devices.yaml# + properties: compatible: const: sony,imx214 @@ -47,25 +50,21 @@ properties: description: Chip digital core regulator (1.12V). maxItems: 1 - flash-leds: - description: See ../video-interfaces.txt - - lens-focus: - description: See ../video-interfaces.txt + flash-leds: true + lens-focus: true port: - type: object + $ref: /schemas/graph.yaml#/$defs/port-base description: | - Video output port. See ../video-interfaces.txt. + Video output port. properties: endpoint: - type: object + $ref: /schemas/media/video-interfaces.yaml# + unevaluatedProperties: false properties: data-lanes: - $ref: /schemas/types.yaml#/definitions/uint32-array - description: See ../video-interfaces.txt anyOf: - items: - const: 1 @@ -76,16 +75,12 @@ properties: - const: 3 - const: 4 - link-frequencies: - $ref: /schemas/types.yaml#/definitions/uint64-array - description: See ../video-interfaces.txt + link-frequencies: true required: - data-lanes - link-frequencies - unevaluatedProperties: false - additionalProperties: false required: diff --git a/Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml b/Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml index f697e1a20beb..90828020e42a 100644 --- a/Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml +++ b/Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml @@ -44,8 +44,7 @@ properties: maxItems: 1 port: - type: object - description: Output video port. See ../video-interfaces.txt. + $ref: /schemas/graph.yaml#/properties/port required: - compatible diff --git a/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml b/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml index 49bff738aca5..9e85c70d1a1f 100644 --- a/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml +++ b/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml @@ -24,29 +24,20 @@ properties: maxItems: 1 port: - type: object + $ref: /schemas/graph.yaml#/$defs/port-base additionalProperties: false properties: endpoint: - type: object - additionalProperties: false + $ref: video-interfaces.yaml# + unevaluatedProperties: false - # Properties described in - # Documentation/devicetree/bindings/media/video-interfaces.txt properties: - remote-endpoint: true hsync-active: true vsync-active: true pclk-sample: true bus-type: true - required: - - remote-endpoint - - required: - - endpoint - clocks: minItems: 1 maxItems: 3 diff --git a/Documentation/devicetree/bindings/media/nxp,imx7-csi.yaml b/Documentation/devicetree/bindings/media/nxp,imx7-csi.yaml index 4e81a47e60ac..d91575b8ebb9 100644 --- a/Documentation/devicetree/bindings/media/nxp,imx7-csi.yaml +++ b/Documentation/devicetree/bindings/media/nxp,imx7-csi.yaml @@ -33,10 +33,7 @@ properties: - const: mclk port: - type: object - description: - A node containing input port nodes with endpoint definitions as documented - in Documentation/devicetree/bindings/media/video-interfaces.txt + $ref: /schemas/graph.yaml#/properties/port required: - compatible diff --git a/Documentation/devicetree/bindings/media/nxp,imx7-mipi-csi2.yaml b/Documentation/devicetree/bindings/media/nxp,imx7-mipi-csi2.yaml index 0668332959e7..be47a7b62ca9 100644 --- a/Documentation/devicetree/bindings/media/nxp,imx7-mipi-csi2.yaml +++ b/Documentation/devicetree/bindings/media/nxp,imx7-mipi-csi2.yaml @@ -58,35 +58,22 @@ properties: Differential receiver (HS-RX) settle time 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 + $ref: /schemas/graph.yaml#/properties/ports properties: - '#address-cells': - const: 1 - - '#size-cells': - const: 0 - port@0: - type: object + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false description: Input port node, single endpoint describing the CSI-2 transmitter. properties: - reg: - const: 0 - endpoint: - type: object + $ref: video-interfaces.yaml# + unevaluatedProperties: false properties: data-lanes: - $ref: /schemas/types.yaml#/definitions/uint32-array - description: See ../video-interfaces.txt oneOf: - items: - const: 1 @@ -94,18 +81,11 @@ properties: - const: 1 - const: 2 - remote-endpoint: true - required: - data-lanes - - remote-endpoint - - additionalProperties: false - - additionalProperties: false port@1: - type: object + $ref: /schemas/graph.yaml#/properties/port description: Output port node diff --git a/Documentation/devicetree/bindings/media/renesas,ceu.yaml b/Documentation/devicetree/bindings/media/renesas,ceu.yaml index c7e1e4fe67e6..50e0740af15a 100644 --- a/Documentation/devicetree/bindings/media/renesas,ceu.yaml +++ b/Documentation/devicetree/bindings/media/renesas,ceu.yaml @@ -34,18 +34,15 @@ properties: maxItems: 1 port: - type: object - additionalProperties: false + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false properties: endpoint: - type: object - additionalProperties: false + $ref: video-interfaces.yaml# + unevaluatedProperties: false - # Properties described in - # Documentation/devicetree/bindings/media/video-interfaces.txt properties: - remote-endpoint: true hsync-active: true vsync-active: true field-even-active: false @@ -53,12 +50,6 @@ properties: enum: [8, 16] default: 8 - required: - - remote-endpoint - - required: - - endpoint - required: - compatible - reg diff --git a/Documentation/devicetree/bindings/media/renesas,csi2.yaml b/Documentation/devicetree/bindings/media/renesas,csi2.yaml index 533c2f181db7..20396f1be999 100644 --- a/Documentation/devicetree/bindings/media/renesas,csi2.yaml +++ b/Documentation/devicetree/bindings/media/renesas,csi2.yaml @@ -46,24 +46,19 @@ properties: maxItems: 1 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 + $ref: /schemas/graph.yaml#/properties/ports properties: port@0: - type: object + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false description: Input port node, single endpoint describing the CSI-2 transmitter. properties: - reg: - const: 0 - endpoint: - type: object + $ref: video-interfaces.yaml# + unevaluatedProperties: false properties: clock-lanes: @@ -72,50 +67,19 @@ properties: data-lanes: maxItems: 1 - remote-endpoint: true - required: - clock-lanes - data-lanes - - remote-endpoint - - additionalProperties: false - - additionalProperties: false port@1: - type: object + $ref: /schemas/graph.yaml#/properties/port description: Output port node, multiple endpoints describing all the R-Car VIN modules connected the CSI-2 receiver. - properties: - '#address-cells': - const: 1 - - '#size-cells': - const: 0 - - reg: - const: 1 - - patternProperties: - "^endpoint@[0-9a-f]$": - type: object - - properties: - reg: - maxItems: 1 - - remote-endpoint: true - - required: - - reg - - remote-endpoint - - additionalProperties: false - - additionalProperties: false + required: + - port@0 + - port@1 required: - compatible diff --git a/Documentation/devicetree/bindings/media/renesas,vin.yaml b/Documentation/devicetree/bindings/media/renesas,vin.yaml index ad2fe660364b..fe7c4cbfe4ba 100644 --- a/Documentation/devicetree/bindings/media/renesas,vin.yaml +++ b/Documentation/devicetree/bindings/media/renesas,vin.yaml @@ -69,15 +69,15 @@ properties: #The per-board settings for Gen2 and RZ/G1 platforms: port: - type: object + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false description: - A node containing a parallel input with a single endpoint definitions as - documented in - Documentation/devicetree/bindings/media/video-interfaces.txt + A node containing a parallel input properties: endpoint: - type: object + $ref: video-interfaces.yaml# + unevaluatedProperties: false properties: hsync-active: @@ -106,15 +106,6 @@ properties: data-active: true - remote-endpoint: true - - required: - - remote-endpoint - - additionalProperties: false - - additionalProperties: false - #The per-board settings for Gen3 and RZ/G2 platforms: renesas,id: description: VIN channel number @@ -123,23 +114,18 @@ properties: maximum: 15 ports: - type: object - description: - A node containing input nodes with endpoint definitions as documented in - Documentation/devicetree/bindings/media/video-interfaces.txt + $ref: /schemas/graph.yaml#/properties/ports properties: port@0: - type: object + $ref: /schemas/graph.yaml#/properties/port description: Input port node, single endpoint describing a parallel input source. properties: - reg: - const: 0 - endpoint: - type: object + $ref: video-interfaces.yaml# + unevaluatedProperties: false properties: hsync-active: @@ -168,98 +154,29 @@ properties: data-active: true - remote-endpoint: true - - required: - - remote-endpoint - - additionalProperties: false - - required: - - endpoint - - additionalProperties: false - port@1: - type: object + $ref: /schemas/graph.yaml#/properties/port description: Input port node, multiple endpoints describing all the R-Car CSI-2 modules connected the VIN. properties: - '#address-cells': - const: 1 - - '#size-cells': - const: 0 - - reg: - const: 1 - endpoint@0: - type: object + $ref: /schemas/graph.yaml#/properties/endpoint description: Endpoint connected to CSI20. - properties: - reg: - const: 0 - - remote-endpoint: true - - required: - - reg - - remote-endpoint - - additionalProperties: false - endpoint@1: - type: object + $ref: /schemas/graph.yaml#/properties/endpoint description: Endpoint connected to CSI21. - properties: - reg: - const: 1 - - remote-endpoint: true - - required: - - reg - - remote-endpoint - - additionalProperties: false - endpoint@2: - type: object + $ref: /schemas/graph.yaml#/properties/endpoint description: Endpoint connected to CSI40. - properties: - reg: - const: 2 - - remote-endpoint: true - - required: - - reg - - remote-endpoint - - additionalProperties: false - endpoint@3: - type: object + $ref: /schemas/graph.yaml#/properties/endpoint description: Endpoint connected to CSI41. - properties: - reg: - const: 3 - - remote-endpoint: true - - required: - - reg - - remote-endpoint - - additionalProperties: false - anyOf: - required: - endpoint@0 @@ -270,8 +187,6 @@ properties: - required: - endpoint@3 - additionalProperties: false - required: - compatible - reg diff --git a/Documentation/devicetree/bindings/media/rockchip-isp1.yaml b/Documentation/devicetree/bindings/media/rockchip-isp1.yaml index 2004c054ed1a..a6b1eff879ed 100644 --- a/Documentation/devicetree/bindings/media/rockchip-isp1.yaml +++ b/Documentation/devicetree/bindings/media/rockchip-isp1.yaml @@ -56,56 +56,26 @@ properties: power-domains: maxItems: 1 - # See ./video-interfaces.txt for details ports: - type: object - additionalProperties: false + $ref: /schemas/graph.yaml#/properties/ports properties: - "#address-cells": - const: 1 - - "#size-cells": - const: 0 - port@0: - type: object + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false description: connection point for sensors at MIPI-DPHY RX0 - additionalProperties: false properties: - "#address-cells": - const: 1 - - "#size-cells": - const: 0 - - reg: - const: 0 - - patternProperties: endpoint: - type: object - additionalProperties: false + $ref: video-interfaces.yaml# + unevaluatedProperties: false properties: - reg: - maxItems: 1 - data-lanes: minItems: 1 maxItems: 4 - remote-endpoint: true - - required: - - reg - - "#address-cells" - - "#size-cells" - required: - - "#address-cells" - - "#size-cells" - port@0 required: diff --git a/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml b/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml index c18574bb3e81..41e1d0cd80e5 100644 --- a/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml +++ b/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml @@ -37,16 +37,15 @@ properties: maxItems: 1 port: - type: object + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false description: - 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. + DCMI supports a single port node with parallel bus. properties: endpoint: - type: object + $ref: video-interfaces.yaml# + unevaluatedProperties: false properties: bus-type: @@ -57,8 +56,6 @@ properties: enum: [8, 10, 12, 14] default: 8 - remote-endpoint: true - allOf: - if: properties: @@ -73,14 +70,9 @@ properties: enum: [8] required: - - remote-endpoint - bus-type - pclk-sample - unevaluatedProperties: false - - additionalProperties: false - required: - compatible - reg diff --git a/Documentation/devicetree/bindings/media/ti,cal.yaml b/Documentation/devicetree/bindings/media/ti,cal.yaml index 5e066629287d..65177cd69514 100644 --- a/Documentation/devicetree/bindings/media/ti,cal.yaml +++ b/Documentation/devicetree/bindings/media/ti,cal.yaml @@ -15,10 +15,7 @@ description: |- processing capability to connect CSI2 image-sensor modules to the DRA72x device. - CAL supports 2 camera port nodes on MIPI bus. Each CSI2 camera port nodes - should contain a 'port' child node with child 'endpoint' node. Please - refer to the bindings defined in - Documentation/devicetree/bindings/media/video-interfaces.txt. + CAL supports 2 camera port nodes on MIPI bus. properties: compatible: @@ -67,31 +64,19 @@ properties: Documentation/devicetree/bindings/power/power_domain.txt maxItems: 1 - # See ./video-interfaces.txt for details ports: - type: object - additionalProperties: false + $ref: /schemas/graph.yaml#/properties/ports properties: - "#address-cells": - const: 1 - - "#size-cells": - const: 0 - port@0: - type: object - additionalProperties: false + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: CSI2 Port #0 properties: - reg: - const: 0 - description: CSI2 Port #0 - - patternProperties: endpoint: - type: object - additionalProperties: false + $ref: video-interfaces.yaml# + unevaluatedProperties: false properties: clock-lanes: @@ -101,24 +86,15 @@ properties: minItems: 1 maxItems: 4 - remote-endpoint: true - - required: - - reg - port@1: - type: object - additionalProperties: false + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: CSI2 Port #1 properties: - reg: - const: 1 - description: CSI2 Port #1 - - patternProperties: endpoint: - type: object - additionalProperties: false + $ref: video-interfaces.yaml# + unevaluatedProperties: false properties: clock-lanes: @@ -128,14 +104,7 @@ properties: minItems: 1 maxItems: 4 - remote-endpoint: true - - required: - - 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 2961a5b6872f..7d77823dbb7a 100644 --- a/Documentation/devicetree/bindings/media/xilinx/xlnx,csi2rxss.yaml +++ b/Documentation/devicetree/bindings/media/xilinx/xlnx,csi2rxss.yaml @@ -97,24 +97,21 @@ properties: maxItems: 1 ports: - type: object + $ref: /schemas/graph.yaml#/properties/ports properties: port@0: - type: object + $ref: /schemas/graph.yaml#/$defs/port-base description: | Input / sink port node, single endpoint describing the CSI-2 transmitter. properties: - reg: - const: 0 - endpoint: - type: object + $ref: /schemas/media/video-interfaces.yaml# + unevaluatedProperties: false properties: - data-lanes: description: | This is required only in the sink port 0 endpoint which @@ -130,41 +127,17 @@ properties: - const: 3 - const: 4 - remote-endpoint: true - required: - data-lanes - - remote-endpoint - - additionalProperties: false - additionalProperties: false + unevaluatedProperties: false port@1: - type: object + $ref: /schemas/graph.yaml#/properties/port description: | Output / source port node, endpoint describing modules connected the CSI-2 receiver. - properties: - - reg: - const: 1 - - endpoint: - type: object - - properties: - - remote-endpoint: true - - required: - - remote-endpoint - - additionalProperties: false - - additionalProperties: false - required: - compatible - reg
Now that we have graph and video-interfaces schemas, rework the media related schemas to use them. Cc: Maxime Ripard <mripard@kernel.org> Cc: Mauro Carvalho Chehab <mchehab@kernel.org> Cc: Jacopo Mondi <jacopo@jmondi.org> Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Cc: linux-media@vger.kernel.org Signed-off-by: Rob Herring <robh@kernel.org> --- v3: - Add mipi-ccs.yaml, ovti,ov02a10.yaml v2: - Update based on graph schema changes and addition of video-interfaces schemas --- .../media/allwinner,sun4i-a10-csi.yaml | 11 +- .../media/allwinner,sun6i-a31-csi.yaml | 12 +- .../bindings/media/i2c/adv7180.yaml | 36 ++---- .../bindings/media/i2c/adv7604.yaml | 37 ++---- .../bindings/media/i2c/aptina,mt9v111.yaml | 4 +- .../bindings/media/i2c/imi,rdacm2x-gmsl.yaml | 30 +---- .../devicetree/bindings/media/i2c/imx219.yaml | 21 ++-- .../bindings/media/i2c/maxim,max9286.yaml | 101 ++++------------ .../bindings/media/i2c/mipi-ccs.yaml | 15 +-- .../devicetree/bindings/media/i2c/ov5647.yaml | 20 +--- .../devicetree/bindings/media/i2c/ov8856.yaml | 21 +--- .../bindings/media/i2c/ovti,ov02a10.yaml | 30 ++--- .../bindings/media/i2c/ovti,ov2680.yaml | 6 +- .../bindings/media/i2c/ovti,ov772x.yaml | 9 +- .../bindings/media/i2c/sony,imx214.yaml | 25 ++-- .../bindings/media/i2c/sony,imx274.yaml | 3 +- .../bindings/media/marvell,mmp2-ccic.yaml | 15 +-- .../bindings/media/nxp,imx7-csi.yaml | 5 +- .../bindings/media/nxp,imx7-mipi-csi2.yaml | 32 +---- .../bindings/media/renesas,ceu.yaml | 17 +-- .../bindings/media/renesas,csi2.yaml | 54 ++------- .../bindings/media/renesas,vin.yaml | 113 +++--------------- .../bindings/media/rockchip-isp1.yaml | 40 +------ .../bindings/media/st,stm32-dcmi.yaml | 18 +-- .../devicetree/bindings/media/ti,cal.yaml | 55 ++------- .../bindings/media/xilinx/xlnx,csi2rxss.yaml | 39 +----- 26 files changed, 169 insertions(+), 600 deletions(-) -- 2.25.1