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