diff mbox series

dt-bindings: media: Use OF graph schema

Message ID 20201117013947.2479625-1-robh@kernel.org
State Needs Review / ACK
Headers show
Series dt-bindings: media: Use OF graph schema | expand

Checks

Context Check Description
robh/checkpatch success

Commit Message

Rob Herring Nov. 17, 2020, 1:39 a.m. UTC
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

Laurent Pinchart Nov. 17, 2020, 9:52 a.m. UTC | #1
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
Rob Herring Nov. 17, 2020, 1:32 p.m. UTC | #2
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
diff mbox series

Patch

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
+    $ref: /schemas/graph.yaml#/properties/port
     additionalProperties: false
 
     properties:
diff --git a/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml b/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml
index 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
@@ -74,6 +76,8 @@  properties:
         required:
           - link-frequencies
 
+    additionalProperties: false
+
 required:
   - compatible
   - reg
diff --git a/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml b/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml
index 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
+        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