diff mbox series

dt-bindings: display: Use OF graph schema

Message ID 20201117013703.2477151-1-robh@kernel.org (mailing list archive)
State New, archived
Headers show
Series dt-bindings: display: Use OF graph schema | expand

Commit Message

Rob Herring Nov. 17, 2020, 1:37 a.m. UTC
Now that we have a graph schema, rework the display related schemas to use
it. Mostly this is adding a reference to graph.yaml and dropping duplicate
parts from schemas.

Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Rob Herring <robh@kernel.org>
---
graph.yaml is in the dtschema repo, so this can go into drm-misc and 
hopefully anything afterwards be fixed up to use graph.yaml.

 .../allwinner,sun4i-a10-display-backend.yaml  | 14 +---
 .../allwinner,sun4i-a10-display-frontend.yaml | 16 +----
 .../display/allwinner,sun4i-a10-hdmi.yaml     | 16 +----
 .../display/allwinner,sun4i-a10-tcon.yaml     | 16 +----
 .../allwinner,sun4i-a10-tv-encoder.yaml       |  2 +-
 .../display/allwinner,sun6i-a31-drc.yaml      | 16 +----
 .../display/allwinner,sun6i-a31-mipi-dsi.yaml |  6 +-
 .../allwinner,sun8i-a83t-de2-mixer.yaml       | 16 +----
 .../display/allwinner,sun8i-a83t-dw-hdmi.yaml | 16 +----
 .../display/allwinner,sun8i-r40-tcon-top.yaml | 19 +-----
 .../display/allwinner,sun9i-a80-deu.yaml      | 16 +----
 .../bindings/display/brcm,bcm2835-dpi.yaml    |  7 +-
 .../display/bridge/analogix,anx7625.yaml      |  5 +-
 .../display/bridge/analogix,anx7814.yaml      | 18 +----
 .../bindings/display/bridge/anx6345.yaml      | 15 ++--
 .../display/bridge/cdns,mhdp8546.yaml         | 18 +----
 .../display/bridge/chrontel,ch7033.yaml       |  3 +
 .../display/bridge/intel,keembay-dsi.yaml     |  9 +--
 .../bindings/display/bridge/ite,it6505.yaml   |  2 +-
 .../display/bridge/lontium,lt9611.yaml        | 68 ++-----------------
 .../bindings/display/bridge/lvds-codec.yaml   | 15 +---
 .../bindings/display/bridge/nwl-dsi.yaml      | 17 +----
 .../bindings/display/bridge/ps8640.yaml       | 21 ++----
 .../bindings/display/bridge/renesas,lvds.yaml | 15 +---
 .../display/bridge/simple-bridge.yaml         | 15 +---
 .../display/bridge/snps,dw-mipi-dsi.yaml      |  5 +-
 .../display/bridge/thine,thc63lvd1024.yaml    | 16 +----
 .../bindings/display/bridge/ti,sn65dsi86.yaml | 27 +-------
 .../bindings/display/bridge/ti,tfp410.yaml    | 15 +---
 .../display/bridge/toshiba,tc358762.yaml      | 51 ++------------
 .../display/bridge/toshiba,tc358768.yaml      | 11 +--
 .../display/bridge/toshiba,tc358775.yaml      | 17 ++---
 .../connector/analog-tv-connector.yaml        |  1 +
 .../display/connector/dvi-connector.yaml      |  1 +
 .../display/connector/hdmi-connector.yaml     |  1 +
 .../display/connector/vga-connector.yaml      |  1 +
 .../bindings/display/imx/nxp,imx8mq-dcss.yaml |  2 +-
 .../bindings/display/ingenic,lcd.yaml         |  7 +-
 .../display/intel,keembay-display.yaml        |  2 +-
 .../display/panel/advantech,idk-2121wr.yaml   |  5 ++
 .../bindings/display/panel/panel-common.yaml  | 11 +--
 .../rockchip/rockchip,rk3066-hdmi.yaml        | 13 +---
 .../display/rockchip/rockchip-vop.yaml        |  5 +-
 .../bindings/display/st,stm32-dsi.yaml        | 13 ++--
 .../bindings/display/st,stm32-ltdc.yaml       |  7 +-
 .../bindings/display/ti/ti,am65x-dss.yaml     | 16 +----
 .../bindings/display/ti/ti,j721e-dss.yaml     | 18 +----
 .../bindings/display/ti/ti,k2g-dss.yaml       |  4 +-
 48 files changed, 121 insertions(+), 509 deletions(-)

Comments

Laurent Pinchart Nov. 17, 2020, 9:42 a.m. UTC | #1
Hi Rob,

Thank you for the patch.

On Mon, Nov 16, 2020 at 07:37:03PM -0600, Rob Herring wrote:
> Now that we have a graph schema, rework the display related schemas to use
> it. Mostly this is adding a reference to graph.yaml and dropping duplicate
> parts from schemas.
> 
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> Cc: Maxime Ripard <mripard@kernel.org>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Thomas Zimmermann <tzimmermann@suse.de>
> Signed-off-by: Rob Herring <robh@kernel.org>
> ---
> graph.yaml is in the dtschema repo, so this can go into drm-misc and 
> hopefully anything afterwards be fixed up to use graph.yaml.
> 
>  .../allwinner,sun4i-a10-display-backend.yaml  | 14 +---
>  .../allwinner,sun4i-a10-display-frontend.yaml | 16 +----
>  .../display/allwinner,sun4i-a10-hdmi.yaml     | 16 +----
>  .../display/allwinner,sun4i-a10-tcon.yaml     | 16 +----
>  .../allwinner,sun4i-a10-tv-encoder.yaml       |  2 +-
>  .../display/allwinner,sun6i-a31-drc.yaml      | 16 +----
>  .../display/allwinner,sun6i-a31-mipi-dsi.yaml |  6 +-
>  .../allwinner,sun8i-a83t-de2-mixer.yaml       | 16 +----
>  .../display/allwinner,sun8i-a83t-dw-hdmi.yaml | 16 +----
>  .../display/allwinner,sun8i-r40-tcon-top.yaml | 19 +-----
>  .../display/allwinner,sun9i-a80-deu.yaml      | 16 +----
>  .../bindings/display/brcm,bcm2835-dpi.yaml    |  7 +-
>  .../display/bridge/analogix,anx7625.yaml      |  5 +-
>  .../display/bridge/analogix,anx7814.yaml      | 18 +----
>  .../bindings/display/bridge/anx6345.yaml      | 15 ++--
>  .../display/bridge/cdns,mhdp8546.yaml         | 18 +----
>  .../display/bridge/chrontel,ch7033.yaml       |  3 +
>  .../display/bridge/intel,keembay-dsi.yaml     |  9 +--
>  .../bindings/display/bridge/ite,it6505.yaml   |  2 +-
>  .../display/bridge/lontium,lt9611.yaml        | 68 ++-----------------
>  .../bindings/display/bridge/lvds-codec.yaml   | 15 +---
>  .../bindings/display/bridge/nwl-dsi.yaml      | 17 +----
>  .../bindings/display/bridge/ps8640.yaml       | 21 ++----
>  .../bindings/display/bridge/renesas,lvds.yaml | 15 +---
>  .../display/bridge/simple-bridge.yaml         | 15 +---
>  .../display/bridge/snps,dw-mipi-dsi.yaml      |  5 +-
>  .../display/bridge/thine,thc63lvd1024.yaml    | 16 +----
>  .../bindings/display/bridge/ti,sn65dsi86.yaml | 27 +-------
>  .../bindings/display/bridge/ti,tfp410.yaml    | 15 +---
>  .../display/bridge/toshiba,tc358762.yaml      | 51 ++------------
>  .../display/bridge/toshiba,tc358768.yaml      | 11 +--
>  .../display/bridge/toshiba,tc358775.yaml      | 17 ++---
>  .../connector/analog-tv-connector.yaml        |  1 +
>  .../display/connector/dvi-connector.yaml      |  1 +
>  .../display/connector/hdmi-connector.yaml     |  1 +
>  .../display/connector/vga-connector.yaml      |  1 +
>  .../bindings/display/imx/nxp,imx8mq-dcss.yaml |  2 +-
>  .../bindings/display/ingenic,lcd.yaml         |  7 +-
>  .../display/intel,keembay-display.yaml        |  2 +-
>  .../display/panel/advantech,idk-2121wr.yaml   |  5 ++
>  .../bindings/display/panel/panel-common.yaml  | 11 +--
>  .../rockchip/rockchip,rk3066-hdmi.yaml        | 13 +---
>  .../display/rockchip/rockchip-vop.yaml        |  5 +-
>  .../bindings/display/st,stm32-dsi.yaml        | 13 ++--
>  .../bindings/display/st,stm32-ltdc.yaml       |  7 +-
>  .../bindings/display/ti/ti,am65x-dss.yaml     | 16 +----
>  .../bindings/display/ti/ti,j721e-dss.yaml     | 18 +----
>  .../bindings/display/ti/ti,k2g-dss.yaml       |  4 +-
>  48 files changed, 121 insertions(+), 509 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-backend.yaml b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-backend.yaml
> index 86057d541065..7e8798b43c2a 100644
> --- a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-backend.yaml
> +++ b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-backend.yaml
> @@ -85,17 +85,9 @@ properties:
>  
>    ports:
>      type: object

Do we need to specify the type here (and in all the locations below),
give that it's specified in /schemas/graph.yaml#/properties/ports ?

> -    description: |
> -      A ports node with endpoint definitions as defined 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
>          description: |
> @@ -107,12 +99,10 @@ properties:
>            Output endpoints of the controller.
>  
>      required:
> -      - "#address-cells"
> -      - "#size-cells"
>        - port@0
>        - port@1
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>  required:
>    - compatible
> diff --git a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-frontend.yaml b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-frontend.yaml
> index 3eb1c2bbf4e7..005a550d7226 100644
> --- a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-frontend.yaml
> +++ b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-frontend.yaml
> @@ -58,33 +58,21 @@ properties:
>  
>    ports:
>      type: object
> -    description: |
> -      A ports node with endpoint definitions as defined 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
>          description: |
>            Input endpoints of the controller.
>  
>        port@1:
> -        type: object
>          description: |
>            Output endpoints of the controller.
>  
>      required:
> -      - "#address-cells"
> -      - "#size-cells"
>        - port@1
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>  required:
>    - compatible
> diff --git a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-hdmi.yaml b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-hdmi.yaml
> index 75e6479397a5..2c2a582300b7 100644
> --- a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-hdmi.yaml
> +++ b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-hdmi.yaml
> @@ -77,35 +77,23 @@ properties:
>  
>    ports:
>      type: object
> -    description: |
> -      A ports node with endpoint definitions as defined 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
>          description: |
>            Input endpoints of the controller.
>  
>        port@1:
> -        type: object
>          description: |
>            Output endpoints of the controller. Usually an HDMI
>            connector.
>  
>      required:
> -      - "#address-cells"
> -      - "#size-cells"
>        - port@0
>        - port@1
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>  required:
>    - compatible
> diff --git a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tcon.yaml b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tcon.yaml
> index 4c15a2644a7c..ce1065b46ef9 100644
> --- a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tcon.yaml
> +++ b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tcon.yaml
> @@ -116,24 +116,14 @@ properties:
>  
>    ports:
>      type: object
> -    description: |
> -      A ports node with endpoint definitions as defined 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
>          description: |
>            Input endpoints of the controller.
>  
>        port@1:
> -        type: object
>          description: |
>            Output endpoints of the controller.
>  
> @@ -159,12 +149,10 @@ properties:
>              unevaluatedProperties: true
>  
>      required:
> -      - "#address-cells"
> -      - "#size-cells"
>        - port@0
>        - port@1
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>  required:
>    - compatible
> diff --git a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tv-encoder.yaml b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tv-encoder.yaml
> index 6009324be967..9885839df5eb 100644
> --- a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tv-encoder.yaml
> +++ b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tv-encoder.yaml
> @@ -24,7 +24,7 @@ properties:
>      maxItems: 1
>  
>    port:
> -    type: object
> +    $ref: /schemas/graph.yaml#/properties/port
>      description:
>        A port node with endpoint definitions as defined in
>        Documentation/devicetree/bindings/media/video-interfaces.txt. The
> diff --git a/Documentation/devicetree/bindings/display/allwinner,sun6i-a31-drc.yaml b/Documentation/devicetree/bindings/display/allwinner,sun6i-a31-drc.yaml
> index 0c1ce55940e1..287681fcde72 100644
> --- a/Documentation/devicetree/bindings/display/allwinner,sun6i-a31-drc.yaml
> +++ b/Documentation/devicetree/bindings/display/allwinner,sun6i-a31-drc.yaml
> @@ -47,34 +47,22 @@ properties:
>  
>    ports:
>      type: object
> -    description: |
> -      A ports node with endpoint definitions as defined 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
>          description: |
>            Input endpoints of the controller.
>  
>        port@1:
> -        type: object
>          description: |
>            Output endpoints of the controller.
>  
>      required:
> -      - "#address-cells"
> -      - "#size-cells"
>        - port@0
>        - port@1
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>  required:
>    - compatible
> diff --git a/Documentation/devicetree/bindings/display/allwinner,sun6i-a31-mipi-dsi.yaml b/Documentation/devicetree/bindings/display/allwinner,sun6i-a31-mipi-dsi.yaml
> index 7aa330dabc44..a738d7c12a97 100644
> --- a/Documentation/devicetree/bindings/display/allwinner,sun6i-a31-mipi-dsi.yaml
> +++ b/Documentation/devicetree/bindings/display/allwinner,sun6i-a31-mipi-dsi.yaml
> @@ -47,11 +47,9 @@ properties:
>      const: dphy
>  
>    port:
> -    type: object
> +    $ref: /schemas/graph.yaml#/properties/port
>      description:
> -      A port node with endpoint definitions as defined in
> -      Documentation/devicetree/bindings/media/video-interfaces.txt. That
> -      port should be the input endpoint, usually coming from the
> +      The port should be the input endpoint, usually coming from the
>        associated TCON.
>  
>  required:
> diff --git a/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml b/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml
> index c040eef56518..269e26681b2f 100644
> --- a/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml
> +++ b/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml
> @@ -44,33 +44,21 @@ properties:
>  
>    ports:
>      type: object
> -    description: |
> -      A ports node with endpoint definitions as defined 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
>          description: |
>            Input endpoints of the controller.
>  
>        port@1:
> -        type: object
>          description: |
>            Output endpoints of the controller.
>  
>      required:
> -      - "#address-cells"
> -      - "#size-cells"
>        - port@1
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>  required:
>    - compatible
> diff --git a/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-dw-hdmi.yaml b/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-dw-hdmi.yaml
> index fa4769a0b26e..37ec88d52099 100644
> --- a/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-dw-hdmi.yaml
> +++ b/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-dw-hdmi.yaml
> @@ -94,36 +94,24 @@ properties:
>  
>    ports:
>      type: object
> -    description: |
> -      A ports node with endpoint definitions as defined 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
>          description: |
>            Input endpoints of the controller. Usually the associated
>            TCON.
>  
>        port@1:
> -        type: object
>          description: |
>            Output endpoints of the controller. Usually an HDMI
>            connector.
>  
>      required:
> -      - "#address-cells"
> -      - "#size-cells"
>        - port@0
>        - port@1
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>  required:
>    - compatible
> diff --git a/Documentation/devicetree/bindings/display/allwinner,sun8i-r40-tcon-top.yaml b/Documentation/devicetree/bindings/display/allwinner,sun8i-r40-tcon-top.yaml
> index b98ca609824b..ef6974510590 100644
> --- a/Documentation/devicetree/bindings/display/allwinner,sun8i-r40-tcon-top.yaml
> +++ b/Documentation/devicetree/bindings/display/allwinner,sun8i-r40-tcon-top.yaml
> @@ -81,21 +81,10 @@ properties:
>  
>    ports:
>      type: object
> -    description: |
> -      A ports node with endpoint definitions as defined in
> -      Documentation/devicetree/bindings/media/video-interfaces.txt.
> -      All ports should have only one endpoint connected to
> -      remote endpoint.
> +    $ref: /schemas/graph.yaml#/properties/ports
>  
>      properties:
> -      "#address-cells":
> -        const: 1
> -
> -      "#size-cells":
> -        const: 0
> -
>        port@0:
> -        type: object
>          description: |
>            Input endpoint for Mixer 0 mux.
>  
> @@ -132,7 +121,6 @@ properties:
>          additionalProperties: false
>  
>        port@2:
> -        type: object
>          description: |
>            Input endpoint for Mixer 1 mux.
>  
> @@ -201,19 +189,16 @@ properties:
>          additionalProperties: false
>  
>        port@5:
> -        type: object
>          description: |
>            Output endpoint for HDMI mux
>  
>      required:
> -      - "#address-cells"
> -      - "#size-cells"
>        - port@0
>        - port@1
>        - port@4
>        - port@5
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>  required:
>    - "#clock-cells"
> diff --git a/Documentation/devicetree/bindings/display/allwinner,sun9i-a80-deu.yaml b/Documentation/devicetree/bindings/display/allwinner,sun9i-a80-deu.yaml
> index 96de41d32b3e..112f9b93fe8d 100644
> --- a/Documentation/devicetree/bindings/display/allwinner,sun9i-a80-deu.yaml
> +++ b/Documentation/devicetree/bindings/display/allwinner,sun9i-a80-deu.yaml
> @@ -41,34 +41,22 @@ properties:
>  
>    ports:
>      type: object
> -    description: |
> -      A ports node with endpoint definitions as defined 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
>          description: |
>            Input endpoints of the controller.
>  
>        port@1:
> -        type: object
>          description: |
>            Output endpoints of the controller.
>  
>      required:
> -      - "#address-cells"
> -      - "#size-cells"
>        - port@0
>        - port@1
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>  required:
>    - compatible
> diff --git a/Documentation/devicetree/bindings/display/brcm,bcm2835-dpi.yaml b/Documentation/devicetree/bindings/display/brcm,bcm2835-dpi.yaml
> index 5c1024bbc1b3..c9ad0ecc9b6d 100644
> --- a/Documentation/devicetree/bindings/display/brcm,bcm2835-dpi.yaml
> +++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-dpi.yaml
> @@ -27,10 +27,9 @@ properties:
>        - const: pixel
>  
>    port:
> -    type: object
> -    description: >
> -      Port node with a single endpoint connecting to the panel, as
> -      defined in Documentation/devicetree/bindings/media/video-interfaces.txt.
> +    $ref: /schemas/graph.yaml#/properties/port
> +    description:
> +      Port node with a single endpoint connecting to the panel.
>  
>  required:
>    - compatible
> diff --git a/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml b/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml
> index 60585a4fc22b..b99cc1f028be 100644
> --- a/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml
> @@ -35,16 +35,15 @@ properties:
>      maxItems: 1
>  
>    ports:
> +    $ref: /schemas/graph.yaml#/properties/ports
>      type: object

This is my OCD speaking, assuming we need to keep the type, $ref is
after type in most other locations (there are a few other occurrences
below).

>  
>      properties:
>        port@0:
> -        type: object
>          description:
>            Video port for MIPI DSI input.
>  
>        port@1:
> -        type: object
>          description:
>            Video port for panel or connector.
>  
> @@ -52,6 +51,8 @@ properties:
>          - port@0
>          - port@1
>  
> +    unevaluatedProperties: false
> +
>  required:
>    - compatible
>    - reg
> diff --git a/Documentation/devicetree/bindings/display/bridge/analogix,anx7814.yaml b/Documentation/devicetree/bindings/display/bridge/analogix,anx7814.yaml
> index 3ba477aefdd7..ae1c01d85c7e 100644
> --- a/Documentation/devicetree/bindings/display/bridge/analogix,anx7814.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/analogix,anx7814.yaml
> @@ -43,34 +43,22 @@ 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
> -      Documentation/devicetree/bindings/graph.txt
> +    $ref: /schemas/graph.yaml#/properties/ports
>  
>      properties:
>        port@0:
> -        type: object
>          description: Video port for HDMI input.
>  
> -        properties:
> -          reg:
> -            const: 0
> -
>        port@1:
> -        type: object
>          description:
>            Video port for SlimPort, DisplayPort, eDP or MyDP output.
>  
> -        properties:
> -          reg:
> -            const: 1
> -
>      required:
>        - port@0
>        - port@1
>  
> +    unevaluatedProperties: false
> +
>  required:
>    - compatible
>    - reg
> diff --git a/Documentation/devicetree/bindings/display/bridge/anx6345.yaml b/Documentation/devicetree/bindings/display/bridge/anx6345.yaml
> index 8c0e4f285fbc..9eaa680d98bc 100644
> --- a/Documentation/devicetree/bindings/display/bridge/anx6345.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/anx6345.yaml
> @@ -35,29 +35,22 @@ properties:
>  
>    ports:
>      type: object
> +    $ref: /schemas/graph.yaml#/properties/ports
>  
>      properties:
> -      '#address-cells':
> -        const: 1
> -
> -      '#size-cells':
> -        const: 0
> -
>        port@0:
> -        type: object
> -        description: |
> +        description:
>            Video port for LVTTL input
>  
>        port@1:
> -        type: object
> -        description: |
> +        description:
>            Video port for eDP output (panel or connector).
>            May be omitted if EDID works reliably.
>  
>      required:
>        - port@0
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>  required:
>    - compatible
> diff --git a/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8546.yaml b/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8546.yaml
> index 74d675fc6e7b..d197bae48c8a 100644
> --- a/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8546.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8546.yaml
> @@ -58,46 +58,34 @@ properties:
>  
>    ports:
>      type: object
> -    description:
> -      Ports as described in Documentation/devicetree/bindings/graph.txt.
> +    $ref: /schemas/graph.yaml#/properties/ports
>  
>      properties:
> -      '#address-cells':
> -        const: 1
> -
> -      '#size-cells':
> -        const: 0
> -
>        port@0:
> -        type: object
>          description:
>            First input port representing the DP bridge input.
>  
>        port@1:
> -        type: object
>          description:
>            Second input port representing the DP bridge input.
>  
>        port@2:
> -        type: object
>          description:
>            Third input port representing the DP bridge input.
>  
>        port@3:
> -        type: object
>          description:
>            Fourth input port representing the DP bridge input.
>  
>        port@4:
> -        type: object
>          description:
>            Output port representing the DP bridge output.
>  
>      required:
>        - port@0
>        - port@4
> -      - '#address-cells'
> -      - '#size-cells'
> +
> +    unevaluatedProperties: false
>  
>  allOf:
>    - if:
> diff --git a/Documentation/devicetree/bindings/display/bridge/chrontel,ch7033.yaml b/Documentation/devicetree/bindings/display/bridge/chrontel,ch7033.yaml
> index 9f38f55fc990..6f478020014d 100644
> --- a/Documentation/devicetree/bindings/display/bridge/chrontel,ch7033.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/chrontel,ch7033.yaml
> @@ -20,6 +20,7 @@ properties:
>  
>    ports:
>      type: object
> +    $ref: /schemas/graph.yaml#/properties/ports
>  
>      properties:
>        port@0:
> @@ -37,6 +38,8 @@ properties:
>        - port@0
>        - port@1
>  
> +    unevaluatedProperties: false
> +
>  required:
>    - compatible
>    - reg
> diff --git a/Documentation/devicetree/bindings/display/bridge/intel,keembay-dsi.yaml b/Documentation/devicetree/bindings/display/bridge/intel,keembay-dsi.yaml
> index ab5be2625224..d83e21ec0fb3 100644
> --- a/Documentation/devicetree/bindings/display/bridge/intel,keembay-dsi.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/intel,keembay-dsi.yaml
> @@ -35,15 +35,10 @@ properties:
>        - const: clk_mipi_cfg
>  
>    ports:
> +    $ref: /schemas/graph.yaml#/properties/ports
>      type: object

Another case of $ref before type.

>  
>      properties:
> -      '#address-cells':
> -       const: 1
> -
> -      '#size-cells':
> -       const: 0
> -
>        port@0:
>          type: object
>          description: MIPI DSI input port.
> @@ -56,7 +51,7 @@ properties:
>        - port@0
>        - port@1
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>  required:
>    - compatible
> diff --git a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
> index efbb3d0117dc..eedf8b7f5173 100644
> --- a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
> @@ -55,7 +55,7 @@ properties:
>      description: extcon specifier for the Power Delivery
>  
>    port:
> -    type: object
> +    $ref: /schemas/graph.yaml#/properties/port
>      description: A port node pointing to DPI host port node
>  
>  required:
> diff --git a/Documentation/devicetree/bindings/display/bridge/lontium,lt9611.yaml b/Documentation/devicetree/bindings/display/bridge/lontium,lt9611.yaml
> index 7a1c89b995e2..840d7f9b19bb 100644
> --- a/Documentation/devicetree/bindings/display/bridge/lontium,lt9611.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/lontium,lt9611.yaml
> @@ -39,84 +39,28 @@ properties:
>  
>    ports:
>      type: object
> +    $ref: /schemas/graph.yaml#/properties/ports
>  
>      properties:
> -      "#address-cells":
> -        const: 1
> -
> -      "#size-cells":
> -        const: 0
> -
>        port@0:
> -        type: object
> -        description: |
> +        description:
>            Primary MIPI port-1 for MIPI input
>  
> -        properties:
> -          reg:
> -            const: 0
> -
> -        patternProperties:
> -          "^endpoint(@[0-9])$":
> -            type: object
> -            additionalProperties: false
> -
> -            properties:
> -              remote-endpoint:
> -                $ref: /schemas/types.yaml#/definitions/phandle
> -
> -        required:
> -          - reg
> -
>        port@1:
> -        type: object
> -        description: |
> +        description:
>            Additional MIPI port-2 for MIPI input, used in combination
>            with primary MIPI port-1 to drive higher resolution displays
>  
> -        properties:
> -          reg:
> -            const: 1
> -
> -        patternProperties:
> -          "^endpoint(@[0-9])$":
> -            type: object
> -            additionalProperties: false
> -
> -            properties:
> -              remote-endpoint:
> -                $ref: /schemas/types.yaml#/definitions/phandle
> -
> -        required:
> -          - reg
> -
>        port@2:
> -        type: object
> -        description: |
> +        description:
>            HDMI port for HDMI output
>  
> -        properties:
> -          reg:
> -            const: 2
> -
> -        patternProperties:
> -          "^endpoint(@[0-9])$":
> -            type: object
> -            additionalProperties: false
> -
> -            properties:
> -              remote-endpoint:
> -                $ref: /schemas/types.yaml#/definitions/phandle
> -
> -        required:
> -          - reg
> -
>      required:
> -      - "#address-cells"
> -      - "#size-cells"
>        - port@0
>        - port@2
>  
> +    unevaluatedProperties: false
> +
>  required:
>    - compatible
>    - reg
> diff --git a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml
> index e5e3c72630cf..517baf661ee5 100644
> --- a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml
> @@ -46,24 +46,15 @@ properties:
>  
>    ports:
>      type: object
> -    description: |
> -      This device has two video ports. Their connections are modeled using the
> -      OF graph bindings specified in Documentation/devicetree/bindings/graph.txt
> -    properties:
> -      '#address-cells':
> -        const: 1
> -
> -      '#size-cells':
> -        const: 0
> +    $ref: /schemas/graph.yaml#/properties/ports
>  
> +    properties:
>        port@0:
> -        type: object
>          description: |
>            For LVDS encoders, port 0 is the parallel input
>            For LVDS decoders, port 0 is the LVDS input
>  
>        port@1:
> -        type: object
>          description: |
>            For LVDS encoders, port 1 is the LVDS output
>            For LVDS decoders, port 1 is the parallel output
> @@ -72,7 +63,7 @@ properties:
>        - port@0
>        - port@1
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>    powerdown-gpios:
>      description:
> diff --git a/Documentation/devicetree/bindings/display/bridge/nwl-dsi.yaml b/Documentation/devicetree/bindings/display/bridge/nwl-dsi.yaml
> index a125b2dd3a2f..9664ba22afa1 100644
> --- a/Documentation/devicetree/bindings/display/bridge/nwl-dsi.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/nwl-dsi.yaml
> @@ -85,10 +85,8 @@ properties:
>  
>    ports:
>      type: object
> -    description:
> -      A node containing DSI input & output port nodes with endpoint
> -      definitions as documented in
> -      Documentation/devicetree/bindings/graph.txt.
> +    $ref: /schemas/graph.yaml#/properties/ports
> +
>      properties:
>        port@0:
>          type: object

Should type be dropped here ?

> @@ -128,24 +126,15 @@ properties:
>          additionalProperties: false
>  
>        port@1:
> -        type: object
>          description:
>            DSI output port node to the panel or the next bridge
>            in the chain
>  
> -      '#address-cells':
> -        const: 1
> -
> -      '#size-cells':
> -        const: 0
> -
>      required:
> -      - '#address-cells'
> -      - '#size-cells'
>        - port@0
>        - port@1
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>  required:
>    - '#address-cells'
> diff --git a/Documentation/devicetree/bindings/display/bridge/ps8640.yaml b/Documentation/devicetree/bindings/display/bridge/ps8640.yaml
> index 7e27cfcf770d..c9cf781ee7b2 100644
> --- a/Documentation/devicetree/bindings/display/bridge/ps8640.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/ps8640.yaml
> @@ -44,32 +44,21 @@ properties:
>  
>    ports:
>      type: object
> -    description:
> -      A node containing DSI input & output port nodes with endpoint
> -      definitions as documented in
> -      Documentation/devicetree/bindings/media/video-interfaces.txt
> -      Documentation/devicetree/bindings/graph.txt
> -    properties:
> -      '#address-cells':
> -        const: 1
> -
> -      '#size-cells':
> -        const: 0
> +    $ref: /schemas/graph.yaml#/properties/ports
>  
> +    properties:
>        port@0:
> -        type: object
> -        description: |
> +        description:
>            Video port for DSI input
>  
>        port@1:
> -        type: object
> -        description: |
> +        description:
>            Video port for eDP output (panel or connector).
>  
>      required:
>        - port@0
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>  required:
>    - compatible
> diff --git a/Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml b/Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml
> index e5b163951b91..b3993300b335 100644
> --- a/Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml
> @@ -50,31 +50,20 @@ properties:
>  
>    ports:
>      type: object
> -    description: |
> -      This device has two video ports. Their connections are modelled using the
> -      OF graph bindings specified in Documentation/devicetree/bindings/graph.txt.
> -      Each port shall have a single endpoint.
> +    $ref: /schemas/graph.yaml#/properties/ports
>  
>      properties:
> -      '#address-cells':
> -        const: 1
> -
> -      '#size-cells':
> -        const: 0
> -
>        port@0:
> -        type: object
>          description: Parallel RGB input port
>  
>        port@1:
> -        type: object
>          description: LVDS output port
>  
>      required:
>        - port@0
>        - port@1
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>    power-domains:
>      maxItems: 1
> diff --git a/Documentation/devicetree/bindings/display/bridge/simple-bridge.yaml b/Documentation/devicetree/bindings/display/bridge/simple-bridge.yaml
> index 3ddb35fcf0a2..96dd457a26c1 100644
> --- a/Documentation/devicetree/bindings/display/bridge/simple-bridge.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/simple-bridge.yaml
> @@ -31,29 +31,20 @@ properties:
>  
>    ports:
>      type: object
> -    description: |
> -      This device has two video ports. Their connections are modeled using the
> -      OF graph bindings specified in Documentation/devicetree/bindings/graph.txt.
> -    properties:
> -      '#address-cells':
> -        const: 1
> -
> -      '#size-cells':
> -        const: 0
> +    $ref: /schemas/graph.yaml#/properties/ports
>  
> +    properties:
>        port@0:
> -        type: object
>          description: The bridge input
>  
>        port@1:
> -        type: object
>          description: The bridge output
>  
>      required:
>        - port@0
>        - port@1
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>    enable-gpios:
>      maxItems: 1
> diff --git a/Documentation/devicetree/bindings/display/bridge/snps,dw-mipi-dsi.yaml b/Documentation/devicetree/bindings/display/bridge/snps,dw-mipi-dsi.yaml
> index e42cb610f545..c04771d01137 100644
> --- a/Documentation/devicetree/bindings/display/bridge/snps,dw-mipi-dsi.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/snps,dw-mipi-dsi.yaml
> @@ -47,20 +47,21 @@ properties:
>      const: apb
>  
>    ports:
> +    $ref: /schemas/graph.yaml#/properties/ports
>      type: object

OCD again :-)

>  
>      properties:
>        port@0:
> -        type: object
>          description: Input node to receive pixel data.
>        port@1:
> -        type: object
>          description: DSI output node to panel.
>  
>      required:
>        - port@0
>        - port@1
>  
> +    unevaluatedProperties: false
> +
>  required:
>    - clock-names
>    - clocks
> diff --git a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.yaml b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.yaml
> index 469ac4a34273..eed984e08d7c 100644
> --- a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.yaml
> @@ -26,10 +26,8 @@ properties:
>  
>    ports:
>      type: object
> +    $ref: /schemas/graph.yaml#/properties/ports
>      description: |
> -      This device has four video ports. Their connections are modeled using the
> -      OF graph bindings specified in Documentation/devicetree/bindings/graph.txt.
> -
>        The device can operate in single-link mode or dual-link mode. In
>        single-link mode, all pixels are received on port@0, and port@1 shall not
>        contain any endpoint. In dual-link mode, even-numbered pixels are
> @@ -37,33 +35,23 @@ properties:
>        port@1 shall contain endpoints.
>  
>      properties:
> -      '#address-cells':
> -        const: 1
> -
> -      '#size-cells':
> -        const: 0
> -
>        port@0:
> -        type: object
>          description: First LVDS input port
>  
>        port@1:
> -        type: object
>          description: Second LVDS input port
>  
>        port@2:
> -        type: object
>          description: First digital CMOS/TTL parallel output
>  
>        port@3:
> -        type: object
>          description: Second digital CMOS/TTL parallel output
>  
>      required:
>        - port@0
>        - port@2
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>    oe-gpios:
>      maxItems: 1
> diff --git a/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi86.yaml b/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi86.yaml
> index f8622bd0f61e..d69b38270f78 100644
> --- a/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi86.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi86.yaml
> @@ -72,35 +72,14 @@ properties:
>  
>    ports:
>      type: object
> -    additionalProperties: false
> +    $ref: /schemas/graph.yaml#/properties/ports
> +    unevaluatedProperties: false

Maybe after 'required' for consistency ?

>  
>      properties:
> -      "#address-cells":
> -        const: 1
> -
> -      "#size-cells":
> -        const: 0
> -
>        port@0:
> -        type: object
> -        additionalProperties: false
> -
>          description:
>            Video port for MIPI DSI input
>  
> -        properties:
> -          reg:
> -            const: 0
> -
> -          endpoint:
> -            type: object
> -            additionalProperties: false
> -            properties:
> -              remote-endpoint: true
> -
> -        required:
> -          - reg
> -
>        port@1:
>          type: object

Should type be dropped ?

>          additionalProperties: false

You drop additionalProperties for port@0 but not for port@1, is that
intentional ?

> @@ -175,8 +154,6 @@ properties:
>            - reg
>  
>      required:
> -      - "#address-cells"
> -      - "#size-cells"
>        - port@0
>        - port@1
>  
> diff --git a/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml b/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml
> index 605831c1e836..ffc6540f58e4 100644
> --- a/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml
> @@ -31,11 +31,8 @@ properties:
>      maximum: 7
>  
>    ports:
> -    description:
> -      A node containing input and output port nodes with endpoint
> -      definitions as documented in
> -      Documentation/devicetree/bindings/media/video-interfaces.txt
>      type: object
> +    $ref: /schemas/graph.yaml#/properties/ports
>  
>      properties:
>        port@0:
> @@ -68,19 +65,13 @@ properties:
>  
>        port@1:
>          description: DVI output port.
> -        type: object
> -
> -        properties:
> -          reg:
> -            const: 1
> -
> -          endpoint:
> -            type: object
>  
>      required:
>        - port@0
>        - port@1
>  
> +    unevaluatedProperties: false
> +
>  required:
>    - compatible
>    - ports
> diff --git a/Documentation/devicetree/bindings/display/bridge/toshiba,tc358762.yaml b/Documentation/devicetree/bindings/display/bridge/toshiba,tc358762.yaml
> index 195025e6803c..b622c6d489fd 100644
> --- a/Documentation/devicetree/bindings/display/bridge/toshiba,tc358762.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/toshiba,tc358762.yaml
> @@ -26,64 +26,23 @@ properties:
>  
>    ports:
>      type: object
> +    $ref: /schemas/graph.yaml#/properties/ports
>  
>      properties:
> -      "#address-cells":
> -        const: 1
> -
> -      "#size-cells":
> -        const: 0
> -
>        port@0:
> -        type: object
> -        additionalProperties: false
> -
> -        description: |
> +        description:
>            Video port for MIPI DSI input
>  
> -        properties:
> -          reg:
> -            const: 0
> -
> -        patternProperties:
> -          endpoint:
> -            type: object
> -            additionalProperties: false
> -
> -            properties:
> -              remote-endpoint: true
> -
> -        required:
> -          - reg
> -
>        port@1:
> -        type: object
> -        additionalProperties: false
> -
> -        description: |
> +        description:
>            Video port for MIPI DPI output (panel or connector).
>  
> -        properties:
> -          reg:
> -            const: 1
> -
> -        patternProperties:
> -          endpoint:
> -            type: object
> -            additionalProperties: false
> -
> -            properties:
> -              remote-endpoint: true
> -
> -        required:
> -          - reg
> -
>      required:
> -      - "#address-cells"
> -      - "#size-cells"
>        - port@0
>        - port@1
>  
> +    unevaluatedProperties: false
> +
>  required:
>    - compatible
>    - reg
> diff --git a/Documentation/devicetree/bindings/display/bridge/toshiba,tc358768.yaml b/Documentation/devicetree/bindings/display/bridge/toshiba,tc358768.yaml
> index c036a75db8f7..6dfe7293420d 100644
> --- a/Documentation/devicetree/bindings/display/bridge/toshiba,tc358768.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/toshiba,tc358768.yaml
> @@ -43,14 +43,9 @@ properties:
>  
>    ports:
>      type: object
> +    $ref: /schemas/graph.yaml#/properties/ports
>  
>      properties:
> -      "#address-cells":
> -        const: 1
> -
> -      "#size-cells":
> -        const: 0
> -
>        port@0:
>          type: object

Dropping type here too (as well as for port@1) ?

>          additionalProperties: false
> @@ -99,11 +94,11 @@ properties:
>            - reg
>  
>      required:
> -      - "#address-cells"
> -      - "#size-cells"
>        - port@0
>        - port@1
>  
> +    unevaluatedProperties: false
> +
>  required:
>    - compatible
>    - reg
> diff --git a/Documentation/devicetree/bindings/display/bridge/toshiba,tc358775.yaml b/Documentation/devicetree/bindings/display/bridge/toshiba,tc358775.yaml
> index fd3113aa9ccd..89e5641df643 100644
> --- a/Documentation/devicetree/bindings/display/bridge/toshiba,tc358775.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/toshiba,tc358775.yaml
> @@ -45,30 +45,19 @@ 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
> -    properties:
> -      "#address-cells":
> -        const: 1
> -
> -      "#size-cells":
> -        const: 0
> +    $ref: /schemas/graph.yaml#/properties/ports
>  
> +    properties:
>        port@0:
> -        type: object
>          description: |
>            DSI Input. The remote endpoint phandle should be a
>            reference to a valid mipi_dsi_host device node.
>  
>        port@1:
> -        type: object
>          description: |
>            Video port for LVDS output (panel or connector).
>  
>        port@2:
> -        type: object
>          description: |
>            Video port for Dual link LVDS output (panel or connector).
>  
> @@ -76,6 +65,8 @@ properties:
>        - port@0
>        - port@1
>  
> +    unevaluatedProperties: false
> +
>  required:
>    - compatible
>    - reg
> diff --git a/Documentation/devicetree/bindings/display/connector/analog-tv-connector.yaml b/Documentation/devicetree/bindings/display/connector/analog-tv-connector.yaml
> index eebe88fed999..a31ca2d52b86 100644
> --- a/Documentation/devicetree/bindings/display/connector/analog-tv-connector.yaml
> +++ b/Documentation/devicetree/bindings/display/connector/analog-tv-connector.yaml
> @@ -25,6 +25,7 @@ properties:
>      $ref: /schemas/types.yaml#/definitions/uint32
>  
>    port:
> +    $ref: /schemas/graph.yaml#/properties/port
>      description: Connection to controller providing analog TV signals
>  
>  required:
> diff --git a/Documentation/devicetree/bindings/display/connector/dvi-connector.yaml b/Documentation/devicetree/bindings/display/connector/dvi-connector.yaml
> index 71cb9220fa59..93eb14294e68 100644
> --- a/Documentation/devicetree/bindings/display/connector/dvi-connector.yaml
> +++ b/Documentation/devicetree/bindings/display/connector/dvi-connector.yaml
> @@ -36,6 +36,7 @@ properties:
>      description: the connector has pins for DVI dual-link
>  
>    port:
> +    $ref: /schemas/graph.yaml#/properties/port
>      description: Connection to controller providing DVI signals
>  
>  required:
> diff --git a/Documentation/devicetree/bindings/display/connector/hdmi-connector.yaml b/Documentation/devicetree/bindings/display/connector/hdmi-connector.yaml
> index 14d7128af592..83c0d008265b 100644
> --- a/Documentation/devicetree/bindings/display/connector/hdmi-connector.yaml
> +++ b/Documentation/devicetree/bindings/display/connector/hdmi-connector.yaml
> @@ -37,6 +37,7 @@ properties:
>      maxItems: 1
>  
>    port:
> +    $ref: /schemas/graph.yaml#/properties/port
>      description: Connection to controller providing HDMI signals
>  
>  required:
> diff --git a/Documentation/devicetree/bindings/display/connector/vga-connector.yaml b/Documentation/devicetree/bindings/display/connector/vga-connector.yaml
> index 5782c4bb3252..25f868002000 100644
> --- a/Documentation/devicetree/bindings/display/connector/vga-connector.yaml
> +++ b/Documentation/devicetree/bindings/display/connector/vga-connector.yaml
> @@ -20,6 +20,7 @@ properties:
>      $ref: /schemas/types.yaml#/definitions/phandle
>  
>    port:
> +    $ref: /schemas/graph.yaml#/properties/port
>      description: Connection to controller providing VGA signals
>  
>  required:
> diff --git a/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml b/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
> index f1f25aa794d9..0091df9dd73b 100644
> --- a/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
> +++ b/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
> @@ -74,7 +74,7 @@ properties:
>        - description: Must be 400 MHz
>  
>    port:
> -    type: object
> +    $ref: /schemas/graph.yaml#/properties/port
>      description:
>        A port node pointing to the input port of a HDMI/DP or MIPI display bridge.
>  
> diff --git a/Documentation/devicetree/bindings/display/ingenic,lcd.yaml b/Documentation/devicetree/bindings/display/ingenic,lcd.yaml
> index 768050f30dba..2f252e8d5389 100644
> --- a/Documentation/devicetree/bindings/display/ingenic,lcd.yaml
> +++ b/Documentation/devicetree/bindings/display/ingenic,lcd.yaml
> @@ -39,18 +39,17 @@ properties:
>      minItems: 1
>  
>    port:
> -    description: OF graph bindings (specified in bindings/graph.txt).
> +    $ref: /schemas/graph.yaml#/properties/port
>  
>    ports:
> -    description: OF graph bindings (specified in bindings/graph.txt).
>      type: object
> +    $ref: /schemas/graph.yaml#/properties/ports
> +
>      properties:
>        port@0:
> -        type: object
>          description: DPI output, to interface with TFT panels.
>  
>        port@8:
> -        type: object
>          description: Link to the Image Processing Unit (IPU).
>            (See ingenic,ipu.yaml).
>  
> diff --git a/Documentation/devicetree/bindings/display/intel,keembay-display.yaml b/Documentation/devicetree/bindings/display/intel,keembay-display.yaml
> index 0a697d45c2ad..bc6622b010ca 100644
> --- a/Documentation/devicetree/bindings/display/intel,keembay-display.yaml
> +++ b/Documentation/devicetree/bindings/display/intel,keembay-display.yaml
> @@ -36,7 +36,7 @@ properties:
>      maxItems: 1
>  
>    port:
> -    type: object
> +    $ref: /schemas/graph.yaml#/properties/port
>      description: Display output node to DSI.
>  
>  required:
> diff --git a/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml b/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml
> index 6b7fddc80c41..1261b061169e 100644
> --- a/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml
> @@ -38,6 +38,7 @@ properties:
>  
>    ports:
>      type: object
> +    $ref: /schemas/graph.yaml#/properties/ports
>      properties:
>        port@0:
>          type: object

Same comment about the type property here.

> @@ -65,6 +66,10 @@ properties:
>            - reg
>            - dual-lvds-even-pixels
>  
> +    required:
> +      - port@0
> +      - port@1
> +
>  additionalProperties: false
>  
>  required:
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-common.yaml b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> index cd6dc5461721..5b38dc89cb21 100644
> --- a/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> @@ -68,16 +68,7 @@ properties:
>  
>    # Connectivity
>    port:
> -    type: object
> -
> -  ports:
> -    type: object
> -    description:
> -      Panels receive video data through one or multiple connections. While
> -      the nature of those connections is specific to the panel type, the
> -      connectivity is expressed in a standard fashion using ports as specified
> -      in the device graph bindings defined in
> -      Documentation/devicetree/bindings/graph.txt.
> +    $ref: /schemas/graph.yaml#/properties/port

This drops "ports", is it intentional ?

>  
>    ddc-i2c-bus:
>      $ref: /schemas/types.yaml#/definitions/phandle
> diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip,rk3066-hdmi.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip,rk3066-hdmi.yaml
> index 4110d003ce1f..524f4d786b02 100644
> --- a/Documentation/devicetree/bindings/display/rockchip/rockchip,rk3066-hdmi.yaml
> +++ b/Documentation/devicetree/bindings/display/rockchip/rockchip,rk3066-hdmi.yaml
> @@ -44,32 +44,23 @@ properties:
>  
>    ports:
>      type: object
> +    $ref: /schemas/graph.yaml#/properties/ports
>  
>      properties:
> -      "#address-cells":
> -        const: 1
> -
> -      "#size-cells":
> -        const: 0
> -
>        port@0:
> -        type: object
>          description:
>            Port node with two endpoints, numbered 0 and 1,
>            connected respectively to vop0 and vop1.
>  
>        port@1:
> -        type: object
>          description:
>            Port node with one endpoint connected to a hdmi-connector node.
>  
>      required:
> -      - "#address-cells"
> -      - "#size-cells"
>        - port@0
>        - port@1
>  
> -    additionalProperties: false
> +    unevaluatedProperties: false
>  
>  required:
>    - compatible
> diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop.yaml
> index ed8148e26e24..6f43d885c9b3 100644
> --- a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop.yaml
> +++ b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop.yaml
> @@ -70,10 +70,7 @@ properties:
>        - const: dclk
>  
>    port:
> -    type: object
> -    description:
> -      A port node with endpoint definitions as defined in
> -      Documentation/devicetree/bindings/media/video-interfaces.txt.
> +    $ref: /schemas/graph.yaml#/properties/port
>  
>    assigned-clocks:
>      maxItems: 2
> diff --git a/Documentation/devicetree/bindings/display/st,stm32-dsi.yaml b/Documentation/devicetree/bindings/display/st,stm32-dsi.yaml
> index 327a14d85df8..ec0353593b22 100644
> --- a/Documentation/devicetree/bindings/display/st,stm32-dsi.yaml
> +++ b/Documentation/devicetree/bindings/display/st,stm32-dsi.yaml
> @@ -52,22 +52,21 @@ properties:
>  
>    ports:
>      type: object
> -    description:
> -      A node containing DSI input & output port nodes with endpoint
> -      definitions as documented in
> -      Documentation/devicetree/bindings/media/video-interfaces.txt
> -      Documentation/devicetree/bindings/graph.txt
> +    $ref: /schemas/graph.yaml#/properties/ports
> +
>      properties:
>        port@0:
> -        type: object
>          description:
>            DSI input port node, connected to the ltdc rgb output port.
>  
>        port@1:
> -        type: object
>          description:
>            DSI output port node, connected to a panel or a bridge input port"
>  
> +    required:
> +      - port@0
> +      - port@1
> +
>  required:
>    - "#address-cells"
>    - "#size-cells"
> diff --git a/Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml b/Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml
> index bf8ad916e9b0..c4588cd2ac7d 100644
> --- a/Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml
> +++ b/Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml
> @@ -36,14 +36,13 @@ properties:
>  
>    port:
>      type: object
> -    description:
> -      "Video port for DPI RGB output.
> +    $ref: /schemas/graph.yaml#/properties/port
> +    description: |
> +      Video port for DPI RGB output.
>        ltdc has one video port with up to 2 endpoints:
>        - for external dpi rgb panel or bridge, using gpios.
>        - for internal dpi input of the MIPI DSI host controller.
>        Note: These 2 endpoints cannot be activated simultaneously.
> -      Please refer to the bindings defined in
> -      Documentation/devicetree/bindings/media/video-interfaces.txt."
>  
>  required:
>    - compatible
> diff --git a/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml b/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
> index 4dc30738ee57..60ad0e8fc7c0 100644
> --- a/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
> +++ b/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
> @@ -75,28 +75,18 @@ properties:
>  
>    ports:
>      type: object
> -    description:
> -      Ports as described in Documentation/devicetree/bindings/graph.txt
> -    properties:
> -      "#address-cells":
> -        const: 1
> -
> -      "#size-cells":
> -        const: 0
> +    $ref: /schemas/graph.yaml#/properties/ports
>  
> +    properties:
>        port@0:
> -        type: object
>          description:
>            The DSS OLDI output port node form video port 1
>  
>        port@1:
> -        type: object
>          description:
>            The DSS DPI output port node from video port 2
>  
> -    required:
> -      - "#address-cells"
> -      - "#size-cells"
> +    unevaluatedProperties: false
>  
>    ti,am65x-oldi-io-ctrl:
>      $ref: "/schemas/types.yaml#/definitions/phandle-array"
> diff --git a/Documentation/devicetree/bindings/display/ti/ti,j721e-dss.yaml b/Documentation/devicetree/bindings/display/ti/ti,j721e-dss.yaml
> index c9a947d55fa4..b3e0fa41180c 100644
> --- a/Documentation/devicetree/bindings/display/ti/ti,j721e-dss.yaml
> +++ b/Documentation/devicetree/bindings/display/ti/ti,j721e-dss.yaml
> @@ -108,38 +108,26 @@ properties:
>  
>    ports:
>      type: object
> -    description:
> -      Ports as described in Documentation/devicetree/bindings/graph.txt
> -    properties:
> -      "#address-cells":
> -        const: 1
> -
> -      "#size-cells":
> -        const: 0
> +    $ref: /schemas/graph.yaml#/properties/ports
>  
> +    properties:
>        port@0:
> -        type: object
>          description:
>            The output port node form video port 1
>  
>        port@1:
> -        type: object
>          description:
>            The output port node from video port 2
>  
>        port@2:
> -        type: object
>          description:
>            The output port node from video port 3
>  
>        port@3:
> -        type: object
>          description:
>            The output port node from video port 4
>  
> -    required:
> -      - "#address-cells"
> -      - "#size-cells"
> +    unevaluatedProperties: false
>  
>    max-memory-bandwidth:
>      $ref: /schemas/types.yaml#/definitions/uint32
> diff --git a/Documentation/devicetree/bindings/display/ti/ti,k2g-dss.yaml b/Documentation/devicetree/bindings/display/ti/ti,k2g-dss.yaml
> index 8f87b82c6695..74dd1ce46d00 100644
> --- a/Documentation/devicetree/bindings/display/ti/ti,k2g-dss.yaml
> +++ b/Documentation/devicetree/bindings/display/ti/ti,k2g-dss.yaml
> @@ -55,9 +55,7 @@ properties:
>  
>    port:
>      type: object
> -    description:
> -      Port as described in Documentation/devicetree/bindings/graph.txt.
> -      The DSS DPI output port node

I think the second line of the description should be kept.

> +    $ref: /schemas/graph.yaml#/properties/port
>  
>    max-memory-bandwidth:
>      $ref: /schemas/types.yaml#/definitions/uint32
Rob Herring Nov. 17, 2020, 1:21 p.m. UTC | #2
On Tue, Nov 17, 2020 at 3:43 AM Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> Hi Rob,
>
> Thank you for the patch.
>
> On Mon, Nov 16, 2020 at 07:37:03PM -0600, Rob Herring wrote:
> > Now that we have a graph schema, rework the display related schemas to use
> > it. Mostly this is adding a reference to graph.yaml and dropping duplicate
> > parts from schemas.
> >
> > Cc: Thierry Reding <thierry.reding@gmail.com>
> > Cc: Sam Ravnborg <sam@ravnborg.org>
> > Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> > Cc: Maxime Ripard <mripard@kernel.org>
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Cc: Thomas Zimmermann <tzimmermann@suse.de>
> > Signed-off-by: Rob Herring <robh@kernel.org>
> > ---
> > graph.yaml is in the dtschema repo, so this can go into drm-misc and
> > hopefully anything afterwards be fixed up to use graph.yaml.
> >
> >  .../allwinner,sun4i-a10-display-backend.yaml  | 14 +---
> >  .../allwinner,sun4i-a10-display-frontend.yaml | 16 +----
> >  .../display/allwinner,sun4i-a10-hdmi.yaml     | 16 +----
> >  .../display/allwinner,sun4i-a10-tcon.yaml     | 16 +----
> >  .../allwinner,sun4i-a10-tv-encoder.yaml       |  2 +-
> >  .../display/allwinner,sun6i-a31-drc.yaml      | 16 +----
> >  .../display/allwinner,sun6i-a31-mipi-dsi.yaml |  6 +-
> >  .../allwinner,sun8i-a83t-de2-mixer.yaml       | 16 +----
> >  .../display/allwinner,sun8i-a83t-dw-hdmi.yaml | 16 +----
> >  .../display/allwinner,sun8i-r40-tcon-top.yaml | 19 +-----
> >  .../display/allwinner,sun9i-a80-deu.yaml      | 16 +----
> >  .../bindings/display/brcm,bcm2835-dpi.yaml    |  7 +-
> >  .../display/bridge/analogix,anx7625.yaml      |  5 +-
> >  .../display/bridge/analogix,anx7814.yaml      | 18 +----
> >  .../bindings/display/bridge/anx6345.yaml      | 15 ++--
> >  .../display/bridge/cdns,mhdp8546.yaml         | 18 +----
> >  .../display/bridge/chrontel,ch7033.yaml       |  3 +
> >  .../display/bridge/intel,keembay-dsi.yaml     |  9 +--
> >  .../bindings/display/bridge/ite,it6505.yaml   |  2 +-
> >  .../display/bridge/lontium,lt9611.yaml        | 68 ++-----------------
> >  .../bindings/display/bridge/lvds-codec.yaml   | 15 +---
> >  .../bindings/display/bridge/nwl-dsi.yaml      | 17 +----
> >  .../bindings/display/bridge/ps8640.yaml       | 21 ++----
> >  .../bindings/display/bridge/renesas,lvds.yaml | 15 +---
> >  .../display/bridge/simple-bridge.yaml         | 15 +---
> >  .../display/bridge/snps,dw-mipi-dsi.yaml      |  5 +-
> >  .../display/bridge/thine,thc63lvd1024.yaml    | 16 +----
> >  .../bindings/display/bridge/ti,sn65dsi86.yaml | 27 +-------
> >  .../bindings/display/bridge/ti,tfp410.yaml    | 15 +---
> >  .../display/bridge/toshiba,tc358762.yaml      | 51 ++------------
> >  .../display/bridge/toshiba,tc358768.yaml      | 11 +--
> >  .../display/bridge/toshiba,tc358775.yaml      | 17 ++---
> >  .../connector/analog-tv-connector.yaml        |  1 +
> >  .../display/connector/dvi-connector.yaml      |  1 +
> >  .../display/connector/hdmi-connector.yaml     |  1 +
> >  .../display/connector/vga-connector.yaml      |  1 +
> >  .../bindings/display/imx/nxp,imx8mq-dcss.yaml |  2 +-
> >  .../bindings/display/ingenic,lcd.yaml         |  7 +-
> >  .../display/intel,keembay-display.yaml        |  2 +-
> >  .../display/panel/advantech,idk-2121wr.yaml   |  5 ++
> >  .../bindings/display/panel/panel-common.yaml  | 11 +--
> >  .../rockchip/rockchip,rk3066-hdmi.yaml        | 13 +---
> >  .../display/rockchip/rockchip-vop.yaml        |  5 +-
> >  .../bindings/display/st,stm32-dsi.yaml        | 13 ++--
> >  .../bindings/display/st,stm32-ltdc.yaml       |  7 +-
> >  .../bindings/display/ti/ti,am65x-dss.yaml     | 16 +----
> >  .../bindings/display/ti/ti,j721e-dss.yaml     | 18 +----
> >  .../bindings/display/ti/ti,k2g-dss.yaml       |  4 +-
> >  48 files changed, 121 insertions(+), 509 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-backend.yaml b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-backend.yaml
> > index 86057d541065..7e8798b43c2a 100644
> > --- a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-backend.yaml
> > +++ b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-backend.yaml
> > @@ -85,17 +85,9 @@ properties:
> >
> >    ports:
> >      type: object
>
> Do we need to specify the type here (and in all the locations below),
> give that it's specified in /schemas/graph.yaml#/properties/ports ?

The metaschema enforces that we have 'type' if we have 'properties'
(except at the top level), so yes. Now that I think about it more,
maybe I can rework it such that we required at least 'type' or '$ref'
when we have 'properties'. Though that's not going to remove 'type'
for 'port@n' schemas.

[...]

> > diff --git a/Documentation/devicetree/bindings/display/panel/panel-common.yaml b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> > index cd6dc5461721..5b38dc89cb21 100644
> > --- a/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> > +++ b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> > @@ -68,16 +68,7 @@ properties:
> >
> >    # Connectivity
> >    port:
> > -    type: object
> > -
> > -  ports:
> > -    type: object
> > -    description:
> > -      Panels receive video data through one or multiple connections. While
> > -      the nature of those connections is specific to the panel type, the
> > -      connectivity is expressed in a standard fashion using ports as specified
> > -      in the device graph bindings defined in
> > -      Documentation/devicetree/bindings/graph.txt.
> > +    $ref: /schemas/graph.yaml#/properties/port
>
> This drops "ports", is it intentional ?

Yes, I forgot to note that in the commit. The reason is defining ports
here is not that useful. We don't want single port cases just randomly
picking whether they use port or ports. If you use 'ports' then you
need a schema defining each 'port'.

[...]

> > diff --git a/Documentation/devicetree/bindings/display/ti/ti,k2g-dss.yaml b/Documentation/devicetree/bindings/display/ti/ti,k2g-dss.yaml
> > index 8f87b82c6695..74dd1ce46d00 100644
> > --- a/Documentation/devicetree/bindings/display/ti/ti,k2g-dss.yaml
> > +++ b/Documentation/devicetree/bindings/display/ti/ti,k2g-dss.yaml
> > @@ -55,9 +55,7 @@ properties:
> >
> >    port:
> >      type: object
> > -    description:
> > -      Port as described in Documentation/devicetree/bindings/graph.txt.
> > -      The DSS DPI output port node
>
> I think the second line of the description should be kept.

Yes.

Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-backend.yaml b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-backend.yaml
index 86057d541065..7e8798b43c2a 100644
--- a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-backend.yaml
+++ b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-backend.yaml
@@ -85,17 +85,9 @@  properties:
 
   ports:
     type: object
-    description: |
-      A ports node with endpoint definitions as defined 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
         description: |
@@ -107,12 +99,10 @@  properties:
           Output endpoints of the controller.
 
     required:
-      - "#address-cells"
-      - "#size-cells"
       - port@0
       - port@1
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
 required:
   - compatible
diff --git a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-frontend.yaml b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-frontend.yaml
index 3eb1c2bbf4e7..005a550d7226 100644
--- a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-frontend.yaml
+++ b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-frontend.yaml
@@ -58,33 +58,21 @@  properties:
 
   ports:
     type: object
-    description: |
-      A ports node with endpoint definitions as defined 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
         description: |
           Input endpoints of the controller.
 
       port@1:
-        type: object
         description: |
           Output endpoints of the controller.
 
     required:
-      - "#address-cells"
-      - "#size-cells"
       - port@1
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
 required:
   - compatible
diff --git a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-hdmi.yaml b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-hdmi.yaml
index 75e6479397a5..2c2a582300b7 100644
--- a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-hdmi.yaml
+++ b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-hdmi.yaml
@@ -77,35 +77,23 @@  properties:
 
   ports:
     type: object
-    description: |
-      A ports node with endpoint definitions as defined 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
         description: |
           Input endpoints of the controller.
 
       port@1:
-        type: object
         description: |
           Output endpoints of the controller. Usually an HDMI
           connector.
 
     required:
-      - "#address-cells"
-      - "#size-cells"
       - port@0
       - port@1
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
 required:
   - compatible
diff --git a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tcon.yaml b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tcon.yaml
index 4c15a2644a7c..ce1065b46ef9 100644
--- a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tcon.yaml
+++ b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tcon.yaml
@@ -116,24 +116,14 @@  properties:
 
   ports:
     type: object
-    description: |
-      A ports node with endpoint definitions as defined 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
         description: |
           Input endpoints of the controller.
 
       port@1:
-        type: object
         description: |
           Output endpoints of the controller.
 
@@ -159,12 +149,10 @@  properties:
             unevaluatedProperties: true
 
     required:
-      - "#address-cells"
-      - "#size-cells"
       - port@0
       - port@1
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
 required:
   - compatible
diff --git a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tv-encoder.yaml b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tv-encoder.yaml
index 6009324be967..9885839df5eb 100644
--- a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tv-encoder.yaml
+++ b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tv-encoder.yaml
@@ -24,7 +24,7 @@  properties:
     maxItems: 1
 
   port:
-    type: object
+    $ref: /schemas/graph.yaml#/properties/port
     description:
       A port node with endpoint definitions as defined in
       Documentation/devicetree/bindings/media/video-interfaces.txt. The
diff --git a/Documentation/devicetree/bindings/display/allwinner,sun6i-a31-drc.yaml b/Documentation/devicetree/bindings/display/allwinner,sun6i-a31-drc.yaml
index 0c1ce55940e1..287681fcde72 100644
--- a/Documentation/devicetree/bindings/display/allwinner,sun6i-a31-drc.yaml
+++ b/Documentation/devicetree/bindings/display/allwinner,sun6i-a31-drc.yaml
@@ -47,34 +47,22 @@  properties:
 
   ports:
     type: object
-    description: |
-      A ports node with endpoint definitions as defined 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
         description: |
           Input endpoints of the controller.
 
       port@1:
-        type: object
         description: |
           Output endpoints of the controller.
 
     required:
-      - "#address-cells"
-      - "#size-cells"
       - port@0
       - port@1
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
 required:
   - compatible
diff --git a/Documentation/devicetree/bindings/display/allwinner,sun6i-a31-mipi-dsi.yaml b/Documentation/devicetree/bindings/display/allwinner,sun6i-a31-mipi-dsi.yaml
index 7aa330dabc44..a738d7c12a97 100644
--- a/Documentation/devicetree/bindings/display/allwinner,sun6i-a31-mipi-dsi.yaml
+++ b/Documentation/devicetree/bindings/display/allwinner,sun6i-a31-mipi-dsi.yaml
@@ -47,11 +47,9 @@  properties:
     const: dphy
 
   port:
-    type: object
+    $ref: /schemas/graph.yaml#/properties/port
     description:
-      A port node with endpoint definitions as defined in
-      Documentation/devicetree/bindings/media/video-interfaces.txt. That
-      port should be the input endpoint, usually coming from the
+      The port should be the input endpoint, usually coming from the
       associated TCON.
 
 required:
diff --git a/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml b/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml
index c040eef56518..269e26681b2f 100644
--- a/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml
+++ b/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml
@@ -44,33 +44,21 @@  properties:
 
   ports:
     type: object
-    description: |
-      A ports node with endpoint definitions as defined 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
         description: |
           Input endpoints of the controller.
 
       port@1:
-        type: object
         description: |
           Output endpoints of the controller.
 
     required:
-      - "#address-cells"
-      - "#size-cells"
       - port@1
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
 required:
   - compatible
diff --git a/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-dw-hdmi.yaml b/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-dw-hdmi.yaml
index fa4769a0b26e..37ec88d52099 100644
--- a/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-dw-hdmi.yaml
+++ b/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-dw-hdmi.yaml
@@ -94,36 +94,24 @@  properties:
 
   ports:
     type: object
-    description: |
-      A ports node with endpoint definitions as defined 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
         description: |
           Input endpoints of the controller. Usually the associated
           TCON.
 
       port@1:
-        type: object
         description: |
           Output endpoints of the controller. Usually an HDMI
           connector.
 
     required:
-      - "#address-cells"
-      - "#size-cells"
       - port@0
       - port@1
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
 required:
   - compatible
diff --git a/Documentation/devicetree/bindings/display/allwinner,sun8i-r40-tcon-top.yaml b/Documentation/devicetree/bindings/display/allwinner,sun8i-r40-tcon-top.yaml
index b98ca609824b..ef6974510590 100644
--- a/Documentation/devicetree/bindings/display/allwinner,sun8i-r40-tcon-top.yaml
+++ b/Documentation/devicetree/bindings/display/allwinner,sun8i-r40-tcon-top.yaml
@@ -81,21 +81,10 @@  properties:
 
   ports:
     type: object
-    description: |
-      A ports node with endpoint definitions as defined in
-      Documentation/devicetree/bindings/media/video-interfaces.txt.
-      All ports should have only one endpoint connected to
-      remote endpoint.
+    $ref: /schemas/graph.yaml#/properties/ports
 
     properties:
-      "#address-cells":
-        const: 1
-
-      "#size-cells":
-        const: 0
-
       port@0:
-        type: object
         description: |
           Input endpoint for Mixer 0 mux.
 
@@ -132,7 +121,6 @@  properties:
         additionalProperties: false
 
       port@2:
-        type: object
         description: |
           Input endpoint for Mixer 1 mux.
 
@@ -201,19 +189,16 @@  properties:
         additionalProperties: false
 
       port@5:
-        type: object
         description: |
           Output endpoint for HDMI mux
 
     required:
-      - "#address-cells"
-      - "#size-cells"
       - port@0
       - port@1
       - port@4
       - port@5
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
 required:
   - "#clock-cells"
diff --git a/Documentation/devicetree/bindings/display/allwinner,sun9i-a80-deu.yaml b/Documentation/devicetree/bindings/display/allwinner,sun9i-a80-deu.yaml
index 96de41d32b3e..112f9b93fe8d 100644
--- a/Documentation/devicetree/bindings/display/allwinner,sun9i-a80-deu.yaml
+++ b/Documentation/devicetree/bindings/display/allwinner,sun9i-a80-deu.yaml
@@ -41,34 +41,22 @@  properties:
 
   ports:
     type: object
-    description: |
-      A ports node with endpoint definitions as defined 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
         description: |
           Input endpoints of the controller.
 
       port@1:
-        type: object
         description: |
           Output endpoints of the controller.
 
     required:
-      - "#address-cells"
-      - "#size-cells"
       - port@0
       - port@1
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
 required:
   - compatible
diff --git a/Documentation/devicetree/bindings/display/brcm,bcm2835-dpi.yaml b/Documentation/devicetree/bindings/display/brcm,bcm2835-dpi.yaml
index 5c1024bbc1b3..c9ad0ecc9b6d 100644
--- a/Documentation/devicetree/bindings/display/brcm,bcm2835-dpi.yaml
+++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-dpi.yaml
@@ -27,10 +27,9 @@  properties:
       - const: pixel
 
   port:
-    type: object
-    description: >
-      Port node with a single endpoint connecting to the panel, as
-      defined in Documentation/devicetree/bindings/media/video-interfaces.txt.
+    $ref: /schemas/graph.yaml#/properties/port
+    description:
+      Port node with a single endpoint connecting to the panel.
 
 required:
   - compatible
diff --git a/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml b/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml
index 60585a4fc22b..b99cc1f028be 100644
--- a/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml
@@ -35,16 +35,15 @@  properties:
     maxItems: 1
 
   ports:
+    $ref: /schemas/graph.yaml#/properties/ports
     type: object
 
     properties:
       port@0:
-        type: object
         description:
           Video port for MIPI DSI input.
 
       port@1:
-        type: object
         description:
           Video port for panel or connector.
 
@@ -52,6 +51,8 @@  properties:
         - port@0
         - port@1
 
+    unevaluatedProperties: false
+
 required:
   - compatible
   - reg
diff --git a/Documentation/devicetree/bindings/display/bridge/analogix,anx7814.yaml b/Documentation/devicetree/bindings/display/bridge/analogix,anx7814.yaml
index 3ba477aefdd7..ae1c01d85c7e 100644
--- a/Documentation/devicetree/bindings/display/bridge/analogix,anx7814.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/analogix,anx7814.yaml
@@ -43,34 +43,22 @@  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
-      Documentation/devicetree/bindings/graph.txt
+    $ref: /schemas/graph.yaml#/properties/ports
 
     properties:
       port@0:
-        type: object
         description: Video port for HDMI input.
 
-        properties:
-          reg:
-            const: 0
-
       port@1:
-        type: object
         description:
           Video port for SlimPort, DisplayPort, eDP or MyDP output.
 
-        properties:
-          reg:
-            const: 1
-
     required:
       - port@0
       - port@1
 
+    unevaluatedProperties: false
+
 required:
   - compatible
   - reg
diff --git a/Documentation/devicetree/bindings/display/bridge/anx6345.yaml b/Documentation/devicetree/bindings/display/bridge/anx6345.yaml
index 8c0e4f285fbc..9eaa680d98bc 100644
--- a/Documentation/devicetree/bindings/display/bridge/anx6345.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/anx6345.yaml
@@ -35,29 +35,22 @@  properties:
 
   ports:
     type: object
+    $ref: /schemas/graph.yaml#/properties/ports
 
     properties:
-      '#address-cells':
-        const: 1
-
-      '#size-cells':
-        const: 0
-
       port@0:
-        type: object
-        description: |
+        description:
           Video port for LVTTL input
 
       port@1:
-        type: object
-        description: |
+        description:
           Video port for eDP output (panel or connector).
           May be omitted if EDID works reliably.
 
     required:
       - port@0
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
 required:
   - compatible
diff --git a/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8546.yaml b/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8546.yaml
index 74d675fc6e7b..d197bae48c8a 100644
--- a/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8546.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8546.yaml
@@ -58,46 +58,34 @@  properties:
 
   ports:
     type: object
-    description:
-      Ports as described in Documentation/devicetree/bindings/graph.txt.
+    $ref: /schemas/graph.yaml#/properties/ports
 
     properties:
-      '#address-cells':
-        const: 1
-
-      '#size-cells':
-        const: 0
-
       port@0:
-        type: object
         description:
           First input port representing the DP bridge input.
 
       port@1:
-        type: object
         description:
           Second input port representing the DP bridge input.
 
       port@2:
-        type: object
         description:
           Third input port representing the DP bridge input.
 
       port@3:
-        type: object
         description:
           Fourth input port representing the DP bridge input.
 
       port@4:
-        type: object
         description:
           Output port representing the DP bridge output.
 
     required:
       - port@0
       - port@4
-      - '#address-cells'
-      - '#size-cells'
+
+    unevaluatedProperties: false
 
 allOf:
   - if:
diff --git a/Documentation/devicetree/bindings/display/bridge/chrontel,ch7033.yaml b/Documentation/devicetree/bindings/display/bridge/chrontel,ch7033.yaml
index 9f38f55fc990..6f478020014d 100644
--- a/Documentation/devicetree/bindings/display/bridge/chrontel,ch7033.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/chrontel,ch7033.yaml
@@ -20,6 +20,7 @@  properties:
 
   ports:
     type: object
+    $ref: /schemas/graph.yaml#/properties/ports
 
     properties:
       port@0:
@@ -37,6 +38,8 @@  properties:
       - port@0
       - port@1
 
+    unevaluatedProperties: false
+
 required:
   - compatible
   - reg
diff --git a/Documentation/devicetree/bindings/display/bridge/intel,keembay-dsi.yaml b/Documentation/devicetree/bindings/display/bridge/intel,keembay-dsi.yaml
index ab5be2625224..d83e21ec0fb3 100644
--- a/Documentation/devicetree/bindings/display/bridge/intel,keembay-dsi.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/intel,keembay-dsi.yaml
@@ -35,15 +35,10 @@  properties:
       - const: clk_mipi_cfg
 
   ports:
+    $ref: /schemas/graph.yaml#/properties/ports
     type: object
 
     properties:
-      '#address-cells':
-       const: 1
-
-      '#size-cells':
-       const: 0
-
       port@0:
         type: object
         description: MIPI DSI input port.
@@ -56,7 +51,7 @@  properties:
       - port@0
       - port@1
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
 required:
   - compatible
diff --git a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
index efbb3d0117dc..eedf8b7f5173 100644
--- a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
@@ -55,7 +55,7 @@  properties:
     description: extcon specifier for the Power Delivery
 
   port:
-    type: object
+    $ref: /schemas/graph.yaml#/properties/port
     description: A port node pointing to DPI host port node
 
 required:
diff --git a/Documentation/devicetree/bindings/display/bridge/lontium,lt9611.yaml b/Documentation/devicetree/bindings/display/bridge/lontium,lt9611.yaml
index 7a1c89b995e2..840d7f9b19bb 100644
--- a/Documentation/devicetree/bindings/display/bridge/lontium,lt9611.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/lontium,lt9611.yaml
@@ -39,84 +39,28 @@  properties:
 
   ports:
     type: object
+    $ref: /schemas/graph.yaml#/properties/ports
 
     properties:
-      "#address-cells":
-        const: 1
-
-      "#size-cells":
-        const: 0
-
       port@0:
-        type: object
-        description: |
+        description:
           Primary MIPI port-1 for MIPI input
 
-        properties:
-          reg:
-            const: 0
-
-        patternProperties:
-          "^endpoint(@[0-9])$":
-            type: object
-            additionalProperties: false
-
-            properties:
-              remote-endpoint:
-                $ref: /schemas/types.yaml#/definitions/phandle
-
-        required:
-          - reg
-
       port@1:
-        type: object
-        description: |
+        description:
           Additional MIPI port-2 for MIPI input, used in combination
           with primary MIPI port-1 to drive higher resolution displays
 
-        properties:
-          reg:
-            const: 1
-
-        patternProperties:
-          "^endpoint(@[0-9])$":
-            type: object
-            additionalProperties: false
-
-            properties:
-              remote-endpoint:
-                $ref: /schemas/types.yaml#/definitions/phandle
-
-        required:
-          - reg
-
       port@2:
-        type: object
-        description: |
+        description:
           HDMI port for HDMI output
 
-        properties:
-          reg:
-            const: 2
-
-        patternProperties:
-          "^endpoint(@[0-9])$":
-            type: object
-            additionalProperties: false
-
-            properties:
-              remote-endpoint:
-                $ref: /schemas/types.yaml#/definitions/phandle
-
-        required:
-          - reg
-
     required:
-      - "#address-cells"
-      - "#size-cells"
       - port@0
       - port@2
 
+    unevaluatedProperties: false
+
 required:
   - compatible
   - reg
diff --git a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml
index e5e3c72630cf..517baf661ee5 100644
--- a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml
@@ -46,24 +46,15 @@  properties:
 
   ports:
     type: object
-    description: |
-      This device has two video ports. Their connections are modeled using the
-      OF graph bindings specified in Documentation/devicetree/bindings/graph.txt
-    properties:
-      '#address-cells':
-        const: 1
-
-      '#size-cells':
-        const: 0
+    $ref: /schemas/graph.yaml#/properties/ports
 
+    properties:
       port@0:
-        type: object
         description: |
           For LVDS encoders, port 0 is the parallel input
           For LVDS decoders, port 0 is the LVDS input
 
       port@1:
-        type: object
         description: |
           For LVDS encoders, port 1 is the LVDS output
           For LVDS decoders, port 1 is the parallel output
@@ -72,7 +63,7 @@  properties:
       - port@0
       - port@1
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
   powerdown-gpios:
     description:
diff --git a/Documentation/devicetree/bindings/display/bridge/nwl-dsi.yaml b/Documentation/devicetree/bindings/display/bridge/nwl-dsi.yaml
index a125b2dd3a2f..9664ba22afa1 100644
--- a/Documentation/devicetree/bindings/display/bridge/nwl-dsi.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/nwl-dsi.yaml
@@ -85,10 +85,8 @@  properties:
 
   ports:
     type: object
-    description:
-      A node containing DSI input & output port nodes with endpoint
-      definitions as documented in
-      Documentation/devicetree/bindings/graph.txt.
+    $ref: /schemas/graph.yaml#/properties/ports
+
     properties:
       port@0:
         type: object
@@ -128,24 +126,15 @@  properties:
         additionalProperties: false
 
       port@1:
-        type: object
         description:
           DSI output port node to the panel or the next bridge
           in the chain
 
-      '#address-cells':
-        const: 1
-
-      '#size-cells':
-        const: 0
-
     required:
-      - '#address-cells'
-      - '#size-cells'
       - port@0
       - port@1
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
 required:
   - '#address-cells'
diff --git a/Documentation/devicetree/bindings/display/bridge/ps8640.yaml b/Documentation/devicetree/bindings/display/bridge/ps8640.yaml
index 7e27cfcf770d..c9cf781ee7b2 100644
--- a/Documentation/devicetree/bindings/display/bridge/ps8640.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/ps8640.yaml
@@ -44,32 +44,21 @@  properties:
 
   ports:
     type: object
-    description:
-      A node containing DSI input & output port nodes with endpoint
-      definitions as documented in
-      Documentation/devicetree/bindings/media/video-interfaces.txt
-      Documentation/devicetree/bindings/graph.txt
-    properties:
-      '#address-cells':
-        const: 1
-
-      '#size-cells':
-        const: 0
+    $ref: /schemas/graph.yaml#/properties/ports
 
+    properties:
       port@0:
-        type: object
-        description: |
+        description:
           Video port for DSI input
 
       port@1:
-        type: object
-        description: |
+        description:
           Video port for eDP output (panel or connector).
 
     required:
       - port@0
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
 required:
   - compatible
diff --git a/Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml b/Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml
index e5b163951b91..b3993300b335 100644
--- a/Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml
@@ -50,31 +50,20 @@  properties:
 
   ports:
     type: object
-    description: |
-      This device has two video ports. Their connections are modelled using the
-      OF graph bindings specified in Documentation/devicetree/bindings/graph.txt.
-      Each port shall have a single endpoint.
+    $ref: /schemas/graph.yaml#/properties/ports
 
     properties:
-      '#address-cells':
-        const: 1
-
-      '#size-cells':
-        const: 0
-
       port@0:
-        type: object
         description: Parallel RGB input port
 
       port@1:
-        type: object
         description: LVDS output port
 
     required:
       - port@0
       - port@1
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
   power-domains:
     maxItems: 1
diff --git a/Documentation/devicetree/bindings/display/bridge/simple-bridge.yaml b/Documentation/devicetree/bindings/display/bridge/simple-bridge.yaml
index 3ddb35fcf0a2..96dd457a26c1 100644
--- a/Documentation/devicetree/bindings/display/bridge/simple-bridge.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/simple-bridge.yaml
@@ -31,29 +31,20 @@  properties:
 
   ports:
     type: object
-    description: |
-      This device has two video ports. Their connections are modeled using the
-      OF graph bindings specified in Documentation/devicetree/bindings/graph.txt.
-    properties:
-      '#address-cells':
-        const: 1
-
-      '#size-cells':
-        const: 0
+    $ref: /schemas/graph.yaml#/properties/ports
 
+    properties:
       port@0:
-        type: object
         description: The bridge input
 
       port@1:
-        type: object
         description: The bridge output
 
     required:
       - port@0
       - port@1
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
   enable-gpios:
     maxItems: 1
diff --git a/Documentation/devicetree/bindings/display/bridge/snps,dw-mipi-dsi.yaml b/Documentation/devicetree/bindings/display/bridge/snps,dw-mipi-dsi.yaml
index e42cb610f545..c04771d01137 100644
--- a/Documentation/devicetree/bindings/display/bridge/snps,dw-mipi-dsi.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/snps,dw-mipi-dsi.yaml
@@ -47,20 +47,21 @@  properties:
     const: apb
 
   ports:
+    $ref: /schemas/graph.yaml#/properties/ports
     type: object
 
     properties:
       port@0:
-        type: object
         description: Input node to receive pixel data.
       port@1:
-        type: object
         description: DSI output node to panel.
 
     required:
       - port@0
       - port@1
 
+    unevaluatedProperties: false
+
 required:
   - clock-names
   - clocks
diff --git a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.yaml b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.yaml
index 469ac4a34273..eed984e08d7c 100644
--- a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.yaml
@@ -26,10 +26,8 @@  properties:
 
   ports:
     type: object
+    $ref: /schemas/graph.yaml#/properties/ports
     description: |
-      This device has four video ports. Their connections are modeled using the
-      OF graph bindings specified in Documentation/devicetree/bindings/graph.txt.
-
       The device can operate in single-link mode or dual-link mode. In
       single-link mode, all pixels are received on port@0, and port@1 shall not
       contain any endpoint. In dual-link mode, even-numbered pixels are
@@ -37,33 +35,23 @@  properties:
       port@1 shall contain endpoints.
 
     properties:
-      '#address-cells':
-        const: 1
-
-      '#size-cells':
-        const: 0
-
       port@0:
-        type: object
         description: First LVDS input port
 
       port@1:
-        type: object
         description: Second LVDS input port
 
       port@2:
-        type: object
         description: First digital CMOS/TTL parallel output
 
       port@3:
-        type: object
         description: Second digital CMOS/TTL parallel output
 
     required:
       - port@0
       - port@2
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
   oe-gpios:
     maxItems: 1
diff --git a/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi86.yaml b/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi86.yaml
index f8622bd0f61e..d69b38270f78 100644
--- a/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi86.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi86.yaml
@@ -72,35 +72,14 @@  properties:
 
   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
-        additionalProperties: false
-
         description:
           Video port for MIPI DSI input
 
-        properties:
-          reg:
-            const: 0
-
-          endpoint:
-            type: object
-            additionalProperties: false
-            properties:
-              remote-endpoint: true
-
-        required:
-          - reg
-
       port@1:
         type: object
         additionalProperties: false
@@ -175,8 +154,6 @@  properties:
           - reg
 
     required:
-      - "#address-cells"
-      - "#size-cells"
       - port@0
       - port@1
 
diff --git a/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml b/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml
index 605831c1e836..ffc6540f58e4 100644
--- a/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml
@@ -31,11 +31,8 @@  properties:
     maximum: 7
 
   ports:
-    description:
-      A node containing input and output port nodes with endpoint
-      definitions as documented in
-      Documentation/devicetree/bindings/media/video-interfaces.txt
     type: object
+    $ref: /schemas/graph.yaml#/properties/ports
 
     properties:
       port@0:
@@ -68,19 +65,13 @@  properties:
 
       port@1:
         description: DVI output port.
-        type: object
-
-        properties:
-          reg:
-            const: 1
-
-          endpoint:
-            type: object
 
     required:
       - port@0
       - port@1
 
+    unevaluatedProperties: false
+
 required:
   - compatible
   - ports
diff --git a/Documentation/devicetree/bindings/display/bridge/toshiba,tc358762.yaml b/Documentation/devicetree/bindings/display/bridge/toshiba,tc358762.yaml
index 195025e6803c..b622c6d489fd 100644
--- a/Documentation/devicetree/bindings/display/bridge/toshiba,tc358762.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/toshiba,tc358762.yaml
@@ -26,64 +26,23 @@  properties:
 
   ports:
     type: object
+    $ref: /schemas/graph.yaml#/properties/ports
 
     properties:
-      "#address-cells":
-        const: 1
-
-      "#size-cells":
-        const: 0
-
       port@0:
-        type: object
-        additionalProperties: false
-
-        description: |
+        description:
           Video port for MIPI DSI input
 
-        properties:
-          reg:
-            const: 0
-
-        patternProperties:
-          endpoint:
-            type: object
-            additionalProperties: false
-
-            properties:
-              remote-endpoint: true
-
-        required:
-          - reg
-
       port@1:
-        type: object
-        additionalProperties: false
-
-        description: |
+        description:
           Video port for MIPI DPI output (panel or connector).
 
-        properties:
-          reg:
-            const: 1
-
-        patternProperties:
-          endpoint:
-            type: object
-            additionalProperties: false
-
-            properties:
-              remote-endpoint: true
-
-        required:
-          - reg
-
     required:
-      - "#address-cells"
-      - "#size-cells"
       - port@0
       - port@1
 
+    unevaluatedProperties: false
+
 required:
   - compatible
   - reg
diff --git a/Documentation/devicetree/bindings/display/bridge/toshiba,tc358768.yaml b/Documentation/devicetree/bindings/display/bridge/toshiba,tc358768.yaml
index c036a75db8f7..6dfe7293420d 100644
--- a/Documentation/devicetree/bindings/display/bridge/toshiba,tc358768.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/toshiba,tc358768.yaml
@@ -43,14 +43,9 @@  properties:
 
   ports:
     type: object
+    $ref: /schemas/graph.yaml#/properties/ports
 
     properties:
-      "#address-cells":
-        const: 1
-
-      "#size-cells":
-        const: 0
-
       port@0:
         type: object
         additionalProperties: false
@@ -99,11 +94,11 @@  properties:
           - reg
 
     required:
-      - "#address-cells"
-      - "#size-cells"
       - port@0
       - port@1
 
+    unevaluatedProperties: false
+
 required:
   - compatible
   - reg
diff --git a/Documentation/devicetree/bindings/display/bridge/toshiba,tc358775.yaml b/Documentation/devicetree/bindings/display/bridge/toshiba,tc358775.yaml
index fd3113aa9ccd..89e5641df643 100644
--- a/Documentation/devicetree/bindings/display/bridge/toshiba,tc358775.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/toshiba,tc358775.yaml
@@ -45,30 +45,19 @@  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
-    properties:
-      "#address-cells":
-        const: 1
-
-      "#size-cells":
-        const: 0
+    $ref: /schemas/graph.yaml#/properties/ports
 
+    properties:
       port@0:
-        type: object
         description: |
           DSI Input. The remote endpoint phandle should be a
           reference to a valid mipi_dsi_host device node.
 
       port@1:
-        type: object
         description: |
           Video port for LVDS output (panel or connector).
 
       port@2:
-        type: object
         description: |
           Video port for Dual link LVDS output (panel or connector).
 
@@ -76,6 +65,8 @@  properties:
       - port@0
       - port@1
 
+    unevaluatedProperties: false
+
 required:
   - compatible
   - reg
diff --git a/Documentation/devicetree/bindings/display/connector/analog-tv-connector.yaml b/Documentation/devicetree/bindings/display/connector/analog-tv-connector.yaml
index eebe88fed999..a31ca2d52b86 100644
--- a/Documentation/devicetree/bindings/display/connector/analog-tv-connector.yaml
+++ b/Documentation/devicetree/bindings/display/connector/analog-tv-connector.yaml
@@ -25,6 +25,7 @@  properties:
     $ref: /schemas/types.yaml#/definitions/uint32
 
   port:
+    $ref: /schemas/graph.yaml#/properties/port
     description: Connection to controller providing analog TV signals
 
 required:
diff --git a/Documentation/devicetree/bindings/display/connector/dvi-connector.yaml b/Documentation/devicetree/bindings/display/connector/dvi-connector.yaml
index 71cb9220fa59..93eb14294e68 100644
--- a/Documentation/devicetree/bindings/display/connector/dvi-connector.yaml
+++ b/Documentation/devicetree/bindings/display/connector/dvi-connector.yaml
@@ -36,6 +36,7 @@  properties:
     description: the connector has pins for DVI dual-link
 
   port:
+    $ref: /schemas/graph.yaml#/properties/port
     description: Connection to controller providing DVI signals
 
 required:
diff --git a/Documentation/devicetree/bindings/display/connector/hdmi-connector.yaml b/Documentation/devicetree/bindings/display/connector/hdmi-connector.yaml
index 14d7128af592..83c0d008265b 100644
--- a/Documentation/devicetree/bindings/display/connector/hdmi-connector.yaml
+++ b/Documentation/devicetree/bindings/display/connector/hdmi-connector.yaml
@@ -37,6 +37,7 @@  properties:
     maxItems: 1
 
   port:
+    $ref: /schemas/graph.yaml#/properties/port
     description: Connection to controller providing HDMI signals
 
 required:
diff --git a/Documentation/devicetree/bindings/display/connector/vga-connector.yaml b/Documentation/devicetree/bindings/display/connector/vga-connector.yaml
index 5782c4bb3252..25f868002000 100644
--- a/Documentation/devicetree/bindings/display/connector/vga-connector.yaml
+++ b/Documentation/devicetree/bindings/display/connector/vga-connector.yaml
@@ -20,6 +20,7 @@  properties:
     $ref: /schemas/types.yaml#/definitions/phandle
 
   port:
+    $ref: /schemas/graph.yaml#/properties/port
     description: Connection to controller providing VGA signals
 
 required:
diff --git a/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml b/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
index f1f25aa794d9..0091df9dd73b 100644
--- a/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
+++ b/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
@@ -74,7 +74,7 @@  properties:
       - description: Must be 400 MHz
 
   port:
-    type: object
+    $ref: /schemas/graph.yaml#/properties/port
     description:
       A port node pointing to the input port of a HDMI/DP or MIPI display bridge.
 
diff --git a/Documentation/devicetree/bindings/display/ingenic,lcd.yaml b/Documentation/devicetree/bindings/display/ingenic,lcd.yaml
index 768050f30dba..2f252e8d5389 100644
--- a/Documentation/devicetree/bindings/display/ingenic,lcd.yaml
+++ b/Documentation/devicetree/bindings/display/ingenic,lcd.yaml
@@ -39,18 +39,17 @@  properties:
     minItems: 1
 
   port:
-    description: OF graph bindings (specified in bindings/graph.txt).
+    $ref: /schemas/graph.yaml#/properties/port
 
   ports:
-    description: OF graph bindings (specified in bindings/graph.txt).
     type: object
+    $ref: /schemas/graph.yaml#/properties/ports
+
     properties:
       port@0:
-        type: object
         description: DPI output, to interface with TFT panels.
 
       port@8:
-        type: object
         description: Link to the Image Processing Unit (IPU).
           (See ingenic,ipu.yaml).
 
diff --git a/Documentation/devicetree/bindings/display/intel,keembay-display.yaml b/Documentation/devicetree/bindings/display/intel,keembay-display.yaml
index 0a697d45c2ad..bc6622b010ca 100644
--- a/Documentation/devicetree/bindings/display/intel,keembay-display.yaml
+++ b/Documentation/devicetree/bindings/display/intel,keembay-display.yaml
@@ -36,7 +36,7 @@  properties:
     maxItems: 1
 
   port:
-    type: object
+    $ref: /schemas/graph.yaml#/properties/port
     description: Display output node to DSI.
 
 required:
diff --git a/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml b/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml
index 6b7fddc80c41..1261b061169e 100644
--- a/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml
+++ b/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml
@@ -38,6 +38,7 @@  properties:
 
   ports:
     type: object
+    $ref: /schemas/graph.yaml#/properties/ports
     properties:
       port@0:
         type: object
@@ -65,6 +66,10 @@  properties:
           - reg
           - dual-lvds-even-pixels
 
+    required:
+      - port@0
+      - port@1
+
 additionalProperties: false
 
 required:
diff --git a/Documentation/devicetree/bindings/display/panel/panel-common.yaml b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
index cd6dc5461721..5b38dc89cb21 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-common.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
@@ -68,16 +68,7 @@  properties:
 
   # Connectivity
   port:
-    type: object
-
-  ports:
-    type: object
-    description:
-      Panels receive video data through one or multiple connections. While
-      the nature of those connections is specific to the panel type, the
-      connectivity is expressed in a standard fashion using ports as specified
-      in the device graph bindings defined in
-      Documentation/devicetree/bindings/graph.txt.
+    $ref: /schemas/graph.yaml#/properties/port
 
   ddc-i2c-bus:
     $ref: /schemas/types.yaml#/definitions/phandle
diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip,rk3066-hdmi.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip,rk3066-hdmi.yaml
index 4110d003ce1f..524f4d786b02 100644
--- a/Documentation/devicetree/bindings/display/rockchip/rockchip,rk3066-hdmi.yaml
+++ b/Documentation/devicetree/bindings/display/rockchip/rockchip,rk3066-hdmi.yaml
@@ -44,32 +44,23 @@  properties:
 
   ports:
     type: object
+    $ref: /schemas/graph.yaml#/properties/ports
 
     properties:
-      "#address-cells":
-        const: 1
-
-      "#size-cells":
-        const: 0
-
       port@0:
-        type: object
         description:
           Port node with two endpoints, numbered 0 and 1,
           connected respectively to vop0 and vop1.
 
       port@1:
-        type: object
         description:
           Port node with one endpoint connected to a hdmi-connector node.
 
     required:
-      - "#address-cells"
-      - "#size-cells"
       - port@0
       - port@1
 
-    additionalProperties: false
+    unevaluatedProperties: false
 
 required:
   - compatible
diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop.yaml
index ed8148e26e24..6f43d885c9b3 100644
--- a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop.yaml
+++ b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop.yaml
@@ -70,10 +70,7 @@  properties:
       - const: dclk
 
   port:
-    type: object
-    description:
-      A port node with endpoint definitions as defined in
-      Documentation/devicetree/bindings/media/video-interfaces.txt.
+    $ref: /schemas/graph.yaml#/properties/port
 
   assigned-clocks:
     maxItems: 2
diff --git a/Documentation/devicetree/bindings/display/st,stm32-dsi.yaml b/Documentation/devicetree/bindings/display/st,stm32-dsi.yaml
index 327a14d85df8..ec0353593b22 100644
--- a/Documentation/devicetree/bindings/display/st,stm32-dsi.yaml
+++ b/Documentation/devicetree/bindings/display/st,stm32-dsi.yaml
@@ -52,22 +52,21 @@  properties:
 
   ports:
     type: object
-    description:
-      A node containing DSI input & output port nodes with endpoint
-      definitions as documented in
-      Documentation/devicetree/bindings/media/video-interfaces.txt
-      Documentation/devicetree/bindings/graph.txt
+    $ref: /schemas/graph.yaml#/properties/ports
+
     properties:
       port@0:
-        type: object
         description:
           DSI input port node, connected to the ltdc rgb output port.
 
       port@1:
-        type: object
         description:
           DSI output port node, connected to a panel or a bridge input port"
 
+    required:
+      - port@0
+      - port@1
+
 required:
   - "#address-cells"
   - "#size-cells"
diff --git a/Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml b/Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml
index bf8ad916e9b0..c4588cd2ac7d 100644
--- a/Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml
+++ b/Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml
@@ -36,14 +36,13 @@  properties:
 
   port:
     type: object
-    description:
-      "Video port for DPI RGB output.
+    $ref: /schemas/graph.yaml#/properties/port
+    description: |
+      Video port for DPI RGB output.
       ltdc has one video port with up to 2 endpoints:
       - for external dpi rgb panel or bridge, using gpios.
       - for internal dpi input of the MIPI DSI host controller.
       Note: These 2 endpoints cannot be activated simultaneously.
-      Please refer to the bindings defined in
-      Documentation/devicetree/bindings/media/video-interfaces.txt."
 
 required:
   - compatible
diff --git a/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml b/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
index 4dc30738ee57..60ad0e8fc7c0 100644
--- a/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
+++ b/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
@@ -75,28 +75,18 @@  properties:
 
   ports:
     type: object
-    description:
-      Ports as described in Documentation/devicetree/bindings/graph.txt
-    properties:
-      "#address-cells":
-        const: 1
-
-      "#size-cells":
-        const: 0
+    $ref: /schemas/graph.yaml#/properties/ports
 
+    properties:
       port@0:
-        type: object
         description:
           The DSS OLDI output port node form video port 1
 
       port@1:
-        type: object
         description:
           The DSS DPI output port node from video port 2
 
-    required:
-      - "#address-cells"
-      - "#size-cells"
+    unevaluatedProperties: false
 
   ti,am65x-oldi-io-ctrl:
     $ref: "/schemas/types.yaml#/definitions/phandle-array"
diff --git a/Documentation/devicetree/bindings/display/ti/ti,j721e-dss.yaml b/Documentation/devicetree/bindings/display/ti/ti,j721e-dss.yaml
index c9a947d55fa4..b3e0fa41180c 100644
--- a/Documentation/devicetree/bindings/display/ti/ti,j721e-dss.yaml
+++ b/Documentation/devicetree/bindings/display/ti/ti,j721e-dss.yaml
@@ -108,38 +108,26 @@  properties:
 
   ports:
     type: object
-    description:
-      Ports as described in Documentation/devicetree/bindings/graph.txt
-    properties:
-      "#address-cells":
-        const: 1
-
-      "#size-cells":
-        const: 0
+    $ref: /schemas/graph.yaml#/properties/ports
 
+    properties:
       port@0:
-        type: object
         description:
           The output port node form video port 1
 
       port@1:
-        type: object
         description:
           The output port node from video port 2
 
       port@2:
-        type: object
         description:
           The output port node from video port 3
 
       port@3:
-        type: object
         description:
           The output port node from video port 4
 
-    required:
-      - "#address-cells"
-      - "#size-cells"
+    unevaluatedProperties: false
 
   max-memory-bandwidth:
     $ref: /schemas/types.yaml#/definitions/uint32
diff --git a/Documentation/devicetree/bindings/display/ti/ti,k2g-dss.yaml b/Documentation/devicetree/bindings/display/ti/ti,k2g-dss.yaml
index 8f87b82c6695..74dd1ce46d00 100644
--- a/Documentation/devicetree/bindings/display/ti/ti,k2g-dss.yaml
+++ b/Documentation/devicetree/bindings/display/ti/ti,k2g-dss.yaml
@@ -55,9 +55,7 @@  properties:
 
   port:
     type: object
-    description:
-      Port as described in Documentation/devicetree/bindings/graph.txt.
-      The DSS DPI output port node
+    $ref: /schemas/graph.yaml#/properties/port
 
   max-memory-bandwidth:
     $ref: /schemas/types.yaml#/definitions/uint32