dt-bindings: media: Use OF graph schema
Commit Message
Now that we have a graph schema, rework the media related schemas to
use it. Mostly this is adding a reference to graph.yaml and dropping
duplicate parts from schemas.
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>
---
This can go via the media tree. Ideally anything else subsequently added
will be fixed up too.
.../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, 61 insertions(+), 214 deletions(-)
Comments
Hi Rob,
Thank you for the patch.
On Mon, Nov 16, 2020 at 07:39:47PM -0600, Rob Herring wrote:
> Now that we have a graph schema, rework the media related schemas to
> use it. Mostly this is adding a reference to graph.yaml and dropping
> duplicate parts from schemas.
>
> 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>
> ---
> This can go via the media tree. Ideally anything else subsequently added
> will be fixed up too.
>
> .../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, 61 insertions(+), 214 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..0205f7dd7fdb 100644
> --- a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml
> +++ b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml
> @@ -70,6 +70,7 @@ properties:
> # See ./video-interfaces.txt for details
> port:
> type: object
Could the type be dropped (here and below, I haven't mentioned it in all
locations) as it's specified in /schemas/graph.yaml#/properties/port ?
> + $ref: /schemas/graph.yaml#/properties/port
> additionalProperties: false
Don't we need to switch to unevaluatedProperties ?
>
> properties:
> diff --git a/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml b/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml
> index 1fd9b5532a21..48d8f73ce7ab 100644
> --- a/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml
> +++ b/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml
> @@ -43,6 +43,7 @@ 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 d8c54f9d9506..7f28954a4508 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,24 +72,19 @@ 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
>
> - additionalProperties: false
> + unevaluatedProperties: false
>
> required:
> - ports
> @@ -110,24 +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
> description: Output port
>
> patternProperties:
> "^port@[0-5]$":
> - type: object
> description: Input port
>
> required:
> - port@6
>
> - additionalProperties: false
> + unevaluatedProperties: false
>
> required:
> - ports
> diff --git a/Documentation/devicetree/bindings/media/i2c/adv7604.yaml b/Documentation/devicetree/bindings/media/i2c/adv7604.yaml
> index 407baddfaa1d..693f31daf5aa 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,25 +82,17 @@ 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
>
> - additionalProperties: false
> -
> - required:
> - - ports
> + unevaluatedProperties: false
>
> - if:
> properties:
> @@ -114,27 +102,19 @@ 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
>
> - additionalProperties: false
> -
> - required:
> - - ports
> + unevaluatedProperties: false
>
> examples:
> - |
> diff --git a/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml b/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml
> index ff9546e95d05..17ec4ab1dbd0 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:
> - type: object
> + $ref: /schemas/graph.yaml#/properties/port
> 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 3dc06c628e64..e0ea3acca89a 100644
> --- a/Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml
> @@ -86,33 +86,12 @@ properties:
> maxItems: 3
>
> port:
> - type: object
> - additionalProperties: false
> - description: -|
> + $ref: /schemas/graph.yaml#/properties/port
> + 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 dfc4d29a4f04..bba42e015c98 100644
> --- a/Documentation/devicetree/bindings/media/i2c/imx219.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/imx219.yaml
> @@ -47,6 +47,8 @@ properties:
> # See ../video-interfaces.txt for more details
> port:
> type: object
> + $ref: /schemas/graph.yaml#/properties/port
> +
> properties:
> endpoint:
> type: object
Can we drop type from the endpoint ?
> @@ -74,6 +76,8 @@ properties:
> required:
> - link-frequencies
>
> + additionalProperties: false
I supppose additionalProperties works here as the endpoint property is
specified in this schema, but conceptually speaking, wouldn't
unevaluatedProperties be a better match ?
> +
> required:
> - compatible
> - reg
> diff --git a/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml b/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml
> index 9ea827092fdd..2e89a5458afe 100644
> --- a/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml
> @@ -53,56 +53,25 @@ properties:
>
> 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:
> + description: GMSL Input 0
>
> - port@[0-3]:
> - type: object
> - properties:
> - reg:
> - enum: [ 0, 1, 2, 3 ]
> + port@1:
> + description: GMSL Input 1
>
> - endpoint:
> - type: object
> + port@2:
> + description: GMSL Input 2
>
> - 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@3:
> + description: GMSL Input 3
>
> port@4:
> type: object
Dropping type here too ?
> + description: CSI-2 Output
> +
> properties:
> reg:
> const: 4
> @@ -130,6 +99,8 @@ properties:
> required:
> - port@4
>
> + unevaluatedProperties: false
> +
> i2c-mux:
> type: object
> description: |
> @@ -184,25 +155,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/ov5647.yaml b/Documentation/devicetree/bindings/media/i2c/ov5647.yaml
> index 280c62afae13..cd5291602a70 100644
> --- a/Documentation/devicetree/bindings/media/i2c/ov5647.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/ov5647.yaml
> @@ -32,10 +32,7 @@ properties:
>
> 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#/properties/port
>
> properties:
> endpoint:
> diff --git a/Documentation/devicetree/bindings/media/i2c/ov8856.yaml b/Documentation/devicetree/bindings/media/i2c/ov8856.yaml
> index cde85553fd01..2611eb69b3b2 100644
> --- a/Documentation/devicetree/bindings/media/i2c/ov8856.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/ov8856.yaml
> @@ -58,11 +58,8 @@ 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 6866c2cdac50..eedc560837d2 100644
> --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml
> @@ -38,6 +38,7 @@ 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 1a3590dd0e98..0599df605a4f 100644
> --- a/Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml
> @@ -55,6 +55,7 @@ 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 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..4832f55654cc 100644
> --- a/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml
> +++ b/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml
> @@ -25,6 +25,7 @@ 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 c7e1e4fe67e6..2d493d503d07 100644
> --- a/Documentation/devicetree/bindings/media/renesas,ceu.yaml
> +++ b/Documentation/devicetree/bindings/media/renesas,ceu.yaml
> @@ -35,6 +35,7 @@ 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 533c2f181db7..e34dfbef25a2 100644
> --- a/Documentation/devicetree/bindings/media/renesas,csi2.yaml
> +++ b/Documentation/devicetree/bindings/media/renesas,csi2.yaml
> @@ -47,10 +47,7 @@ properties:
>
> 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:
> @@ -84,38 +81,15 @@ 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.
>
> - properties:
> - '#address-cells':
> - const: 1
> -
> - '#size-cells':
> - const: 0
> -
> - reg:
> - const: 1
> -
> - patternProperties:
> - "^endpoint@[0-9a-f]$":
> - type: object
> + required:
> + - port@0
> + - port@1
>
> - properties:
> - reg:
> - maxItems: 1
> -
> - remote-endpoint: true
> -
> - required:
> - - reg
> - - remote-endpoint
> -
> - additionalProperties: false
> -
> - additionalProperties: false
> + unevaluatedProperties: false
>
> required:
> - compatible
> diff --git a/Documentation/devicetree/bindings/media/renesas,vin.yaml b/Documentation/devicetree/bindings/media/renesas,vin.yaml
> index ad2fe660364b..25a70dc89a4c 100644
> --- a/Documentation/devicetree/bindings/media/renesas,vin.yaml
> +++ b/Documentation/devicetree/bindings/media/renesas,vin.yaml
> @@ -70,6 +70,7 @@ 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
> @@ -124,9 +125,7 @@ properties:
>
> 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:
> @@ -272,6 +271,8 @@ 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 3fe778cb5cc3..66bdef5e1273 100644
> --- a/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml
> +++ b/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml
> @@ -37,12 +37,9 @@ properties:
> maxItems: 1
>
> port:
> - type: object
> + $ref: /schemas/graph.yaml#/properties/port
> 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.
>
> required:
> - compatible
> diff --git a/Documentation/devicetree/bindings/media/ti,cal.yaml b/Documentation/devicetree/bindings/media/ti,cal.yaml
> index 5e066629287d..dc2c6be4fa4d 100644
> --- a/Documentation/devicetree/bindings/media/ti,cal.yaml
> +++ b/Documentation/devicetree/bindings/media/ti,cal.yaml
> @@ -70,23 +70,18 @@ properties:
> # See ./video-interfaces.txt for details
> ports:
> type: object
> - additionalProperties: false
> + $ref: /schemas/graph.yaml#/properties/ports
> + unevaluatedProperties: 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:
> @@ -108,12 +103,12 @@ properties:
>
> port@1:
> type: object
> + description: CSI2 Port #1
> additionalProperties: false
>
> properties:
> reg:
> const: 1
> - description: CSI2 Port #1
>
> patternProperties:
> endpoint:
> @@ -134,8 +129,6 @@ 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 2961a5b6872f..0868718c3691 100644
> --- a/Documentation/devicetree/bindings/media/xilinx/xlnx,csi2rxss.yaml
> +++ b/Documentation/devicetree/bindings/media/xilinx/xlnx,csi2rxss.yaml
> @@ -98,6 +98,7 @@ properties:
>
> ports:
> type: object
> + $ref: /schemas/graph.yaml#/properties/ports
>
> properties:
> port@0:
> @@ -141,29 +142,11 @@ properties:
> additionalProperties: false
>
> port@1:
> - type: object
> 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
> + unevaluatedProperties: false
>
> required:
> - compatible
On Tue, Nov 17, 2020 at 3:52 AM Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> Hi Rob,
>
> Thank you for the patch.
>
> On Mon, Nov 16, 2020 at 07:39:47PM -0600, Rob Herring wrote:
> > Now that we have a graph schema, rework the media related schemas to
> > use it. Mostly this is adding a reference to graph.yaml and dropping
> > duplicate parts from schemas.
> >
> > 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>
> > ---
> > This can go via the media tree. Ideally anything else subsequently added
> > will be fixed up too.
> >
> > .../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, 61 insertions(+), 214 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..0205f7dd7fdb 100644
> > --- a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml
> > +++ b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml
> > @@ -70,6 +70,7 @@ properties:
> > # See ./video-interfaces.txt for details
> > port:
> > type: object
>
> Could the type be dropped (here and below, I haven't mentioned it in all
> locations) as it's specified in /schemas/graph.yaml#/properties/port ?
See my reply on the display patch for this.
> > + $ref: /schemas/graph.yaml#/properties/port
> > additionalProperties: false
>
> Don't we need to switch to unevaluatedProperties ?
We could, but additionalProperties works here because 'endpoint' is
the only one.
> > @@ -74,6 +76,8 @@ properties:
> > required:
> > - link-frequencies
> >
> > + additionalProperties: false
>
> I supppose additionalProperties works here as the endpoint property is
> specified in this schema, but conceptually speaking, wouldn't
> unevaluatedProperties be a better match ?
Yes, except unevaluatedProperties is currently a nop, so I went the
stricter route.
Rob
@@ -70,6 +70,7 @@ properties:
# See ./video-interfaces.txt for details
port:
type: object
+ $ref: /schemas/graph.yaml#/properties/port
additionalProperties: false
properties:
@@ -43,6 +43,7 @@ properties:
# See ./video-interfaces.txt for details
port:
type: object
+ $ref: /schemas/graph.yaml#/properties/port
properties:
endpoint:
@@ -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,24 +72,19 @@ 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
- additionalProperties: false
+ unevaluatedProperties: false
required:
- ports
@@ -110,24 +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
description: Output port
patternProperties:
"^port@[0-5]$":
- type: object
description: Input port
required:
- port@6
- additionalProperties: false
+ unevaluatedProperties: false
required:
- ports
@@ -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,25 +82,17 @@ 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
- additionalProperties: false
-
- required:
- - ports
+ unevaluatedProperties: false
- if:
properties:
@@ -114,27 +102,19 @@ 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
- additionalProperties: false
-
- required:
- - ports
+ unevaluatedProperties: false
examples:
- |
@@ -41,7 +41,7 @@ properties:
maxItems: 1
port:
- type: object
+ $ref: /schemas/graph.yaml#/properties/port
description: |
Output video port. See ../video-interfaces.txt.
@@ -86,33 +86,12 @@ properties:
maxItems: 3
port:
- type: object
- additionalProperties: false
- description: -|
+ $ref: /schemas/graph.yaml#/properties/port
+ 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
@@ -47,6 +47,8 @@ properties:
# See ../video-interfaces.txt for more details
port:
type: object
+ $ref: /schemas/graph.yaml#/properties/port
+
properties:
endpoint:
type: object
@@ -74,6 +76,8 @@ properties:
required:
- link-frequencies
+ additionalProperties: false
+
required:
- compatible
- reg
@@ -53,56 +53,25 @@ properties:
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:
+ description: GMSL Input 0
- port@[0-3]:
- type: object
- properties:
- reg:
- enum: [ 0, 1, 2, 3 ]
+ port@1:
+ description: GMSL Input 1
- endpoint:
- type: object
+ port@2:
+ description: GMSL Input 2
- 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@3:
+ description: GMSL Input 3
port@4:
type: object
+ description: CSI-2 Output
+
properties:
reg:
const: 4
@@ -130,6 +99,8 @@ properties:
required:
- port@4
+ unevaluatedProperties: false
+
i2c-mux:
type: object
description: |
@@ -184,25 +155,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
@@ -32,10 +32,7 @@ properties:
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#/properties/port
properties:
endpoint:
@@ -58,11 +58,8 @@ 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:
@@ -38,6 +38,7 @@ properties:
port:
type: object
+ $ref: /schemas/graph.yaml#/properties/port
description: |
Video output port. See ../video-interfaces.txt.
@@ -55,6 +55,7 @@ properties:
port:
type: object
+ $ref: /schemas/graph.yaml#/properties/port
description: |
Video output port. See ../video-interfaces.txt.
@@ -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
@@ -25,6 +25,7 @@ properties:
port:
type: object
+ $ref: /schemas/graph.yaml#/properties/port
additionalProperties: false
properties:
@@ -35,6 +35,7 @@ properties:
port:
type: object
+ $ref: /schemas/graph.yaml#/properties/port
additionalProperties: false
properties:
@@ -47,10 +47,7 @@ properties:
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:
@@ -84,38 +81,15 @@ 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.
- properties:
- '#address-cells':
- const: 1
-
- '#size-cells':
- const: 0
-
- reg:
- const: 1
-
- patternProperties:
- "^endpoint@[0-9a-f]$":
- type: object
+ required:
+ - port@0
+ - port@1
- properties:
- reg:
- maxItems: 1
-
- remote-endpoint: true
-
- required:
- - reg
- - remote-endpoint
-
- additionalProperties: false
-
- additionalProperties: false
+ unevaluatedProperties: false
required:
- compatible
@@ -70,6 +70,7 @@ 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
@@ -124,9 +125,7 @@ properties:
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:
@@ -272,6 +271,8 @@ properties:
additionalProperties: false
+ unevaluatedProperties: false
+
required:
- compatible
- reg
@@ -37,12 +37,9 @@ properties:
maxItems: 1
port:
- type: object
+ $ref: /schemas/graph.yaml#/properties/port
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.
required:
- compatible
@@ -70,23 +70,18 @@ properties:
# See ./video-interfaces.txt for details
ports:
type: object
- additionalProperties: false
+ $ref: /schemas/graph.yaml#/properties/ports
+ unevaluatedProperties: 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:
@@ -108,12 +103,12 @@ properties:
port@1:
type: object
+ description: CSI2 Port #1
additionalProperties: false
properties:
reg:
const: 1
- description: CSI2 Port #1
patternProperties:
endpoint:
@@ -134,8 +129,6 @@ properties:
- reg
required:
- - "#address-cells"
- - "#size-cells"
- port@0
required:
@@ -98,6 +98,7 @@ properties:
ports:
type: object
+ $ref: /schemas/graph.yaml#/properties/ports
properties:
port@0:
@@ -141,29 +142,11 @@ properties:
additionalProperties: false
port@1:
- type: object
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
+ unevaluatedProperties: false
required:
- compatible