Re: [PATCH 1/2] media: dt-bindings: i2c: Drop redundant endpoint properties
From: Laurent Pinchart
Date: Mon Mar 16 2026 - 09:54:15 EST
Hello Krzysztof,
Thank you for the patch.
On Mon, Mar 16, 2026 at 02:45:34PM +0100, Krzysztof Kozlowski wrote:
> The "endpoint" node references video-interfaces.yaml schema with
> "unevaluatedProperties: false" which means that all properties from
> referenced schema apply. Listing some of them with ": true" is simply
> redundant and does not make this code easier to read.
I think you know my opinion on this topic. I believe we would be better
off by turning "unevaluatedProperties: false" into
"additionalProperties: false" here, and keeping the list of applicable
properties. It brings value to device tree authors by telling which
properties are applicable to the device at hand. For instance ... (see
below)
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxxxxx>
> ---
> .../bindings/media/i2c/alliedvision,alvium-csi2.yaml | 2 --
> .../devicetree/bindings/media/i2c/galaxycore,gc0308.yaml | 8 --------
> .../devicetree/bindings/media/i2c/galaxycore,gc2145.yaml | 3 ---
> .../devicetree/bindings/media/i2c/maxim,max9286.yaml | 3 ---
> .../devicetree/bindings/media/i2c/maxim,max96712.yaml | 1 -
> Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml | 2 --
> .../devicetree/bindings/media/i2c/ovti,og01a1b.yaml | 2 --
> .../devicetree/bindings/media/i2c/ovti,ov02a10.yaml | 1 -
> .../devicetree/bindings/media/i2c/ovti,ov5647.yaml | 3 ---
> .../devicetree/bindings/media/i2c/ovti,ov5648.yaml | 2 --
> .../devicetree/bindings/media/i2c/ovti,ov5675.yaml | 4 +---
> .../devicetree/bindings/media/i2c/ovti,ov7251.yaml | 2 --
> .../devicetree/bindings/media/i2c/ovti,ov8865.yaml | 2 --
> .../devicetree/bindings/media/i2c/ovti,ov9282.yaml | 4 ----
> .../devicetree/bindings/media/i2c/sony,imx334.yaml | 4 ----
> .../devicetree/bindings/media/i2c/sony,imx412.yaml | 4 ----
> .../devicetree/bindings/media/i2c/toshiba,tc358746.yaml | 5 -----
> 17 files changed, 1 insertion(+), 51 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/media/i2c/alliedvision,alvium-csi2.yaml b/Documentation/devicetree/bindings/media/i2c/alliedvision,alvium-csi2.yaml
> index d3329e991d16..c2ae33532700 100644
> --- a/Documentation/devicetree/bindings/media/i2c/alliedvision,alvium-csi2.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/alliedvision,alvium-csi2.yaml
> @@ -35,8 +35,6 @@ properties:
> unevaluatedProperties: false
>
> properties:
> - link-frequencies: true
> -
> data-lanes:
> minItems: 1
> items:
> diff --git a/Documentation/devicetree/bindings/media/i2c/galaxycore,gc0308.yaml b/Documentation/devicetree/bindings/media/i2c/galaxycore,gc0308.yaml
> index 2bf1a81feaf4..fcf79f4c5a0d 100644
> --- a/Documentation/devicetree/bindings/media/i2c/galaxycore,gc0308.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/galaxycore,gc0308.yaml
> @@ -53,14 +53,6 @@ properties:
> $ref: /schemas/media/video-interfaces.yaml#
> unevaluatedProperties: false
>
> - properties:
> - bus-width: true
> - data-shift: true
> - hsync-active: true
> - vsync-active: true
> - data-active: true
> - pclk-sample: true
> -
> required:
> - bus-width
>
> diff --git a/Documentation/devicetree/bindings/media/i2c/galaxycore,gc2145.yaml b/Documentation/devicetree/bindings/media/i2c/galaxycore,gc2145.yaml
> index 9eac588de0bc..ccac2cb85d57 100644
> --- a/Documentation/devicetree/bindings/media/i2c/galaxycore,gc2145.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/galaxycore,gc2145.yaml
> @@ -58,9 +58,6 @@ properties:
> $ref: /schemas/media/video-interfaces.yaml#
> unevaluatedProperties: false
>
> - properties:
> - 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 a37447256f8d..d806b821dae3 100644
> --- a/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml
> @@ -137,9 +137,6 @@ properties:
> $ref: /schemas/media/video-interfaces.yaml#
> unevaluatedProperties: false
>
> - properties:
> - data-lanes: true
> -
> required:
> - data-lanes
>
> diff --git a/Documentation/devicetree/bindings/media/i2c/maxim,max96712.yaml b/Documentation/devicetree/bindings/media/i2c/maxim,max96712.yaml
> index 26f85151afbd..4b9afc73de62 100644
> --- a/Documentation/devicetree/bindings/media/i2c/maxim,max96712.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/maxim,max96712.yaml
> @@ -67,7 +67,6 @@ properties:
> unevaluatedProperties: false
>
> properties:
> - data-lanes: true
> bus-type:
> enum:
> - 1 # MEDIA_BUS_TYPE_CSI2_CPHY
> diff --git a/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml b/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml
> index 217b08c8cbbd..9ba8a17c62e0 100644
> --- a/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml
> @@ -78,8 +78,6 @@ properties:
> unevaluatedProperties: false
>
> properties:
> - link-frequencies: true
> - data-lanes: true
> bus-type:
> enum:
> - 1 # CSI-2 C-PHY
> diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,og01a1b.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,og01a1b.yaml
> index ca57c01739d2..efdac2e91589 100644
> --- a/Documentation/devicetree/bindings/media/i2c/ovti,og01a1b.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/ovti,og01a1b.yaml
> @@ -64,8 +64,6 @@ properties:
> items:
> enum: [1, 2]
>
> - link-frequencies: true
> -
> required:
> - data-lanes
> - link-frequencies
> diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml
> index 0e1d9c390180..b98260d5e6a3 100644
> --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml
> @@ -81,7 +81,6 @@ properties:
> unevaluatedProperties: false
>
> properties:
> - link-frequencies: true
> ovti,mipi-clock-voltage:
> $ref: /schemas/types.yaml#/definitions/uint32
> description:
> diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov5647.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov5647.yaml
> index 2d7937a372a2..7a05a1eda58d 100644
> --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov5647.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov5647.yaml
> @@ -51,9 +51,6 @@ properties:
> $ref: /schemas/media/video-interfaces.yaml#
> unevaluatedProperties: false
>
> - properties:
> - clock-noncontinuous: true
> -
... Without this, an integrator will need to dive into driver code to
know if non-continuous clock is usable for the device.
> required:
> - compatible
> - reg
> diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov5648.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov5648.yaml
> index 8028c8b107c4..ec53e55b2290 100644
> --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov5648.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov5648.yaml
> @@ -48,8 +48,6 @@ properties:
> unevaluatedProperties: false
>
> properties:
> - link-frequencies: true
> -
> data-lanes:
> minItems: 1
> maxItems: 2
> diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov5675.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov5675.yaml
> index ad07204057f9..90b2c6d35df6 100644
> --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov5675.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov5675.yaml
> @@ -21,6 +21,7 @@ description: |
>
> This chip is programmable through I2C and two-wire SCCB. The sensor output
> is available via CSI-2 serial data output (up to 2-lane).
> + It supports max data transfer of 900 Mbps per lane.
>
> properties:
> compatible:
> @@ -67,9 +68,6 @@ properties:
> minItems: 1
> maxItems: 2
>
> - # Supports max data transfer of 900 Mbps per lane
> - link-frequencies: true
> -
> required:
> - compatible
> - reg
> diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov7251.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov7251.yaml
> index 922996da59b2..0ad271a4bf39 100644
> --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov7251.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov7251.yaml
> @@ -63,8 +63,6 @@ properties:
> data-lanes:
> maxItems: 1
>
> - link-frequencies: true
> -
> required:
> - data-lanes
> - link-frequencies
> diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov8865.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov8865.yaml
> index 320b9aacbb8b..c535a5257a3e 100644
> --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov8865.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov8865.yaml
> @@ -48,8 +48,6 @@ properties:
> unevaluatedProperties: false
>
> properties:
> - link-frequencies: true
> -
> data-lanes:
> minItems: 1
> maxItems: 4
> diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov9282.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov9282.yaml
> index 401c8613f840..20dc0885e30e 100644
> --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov9282.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov9282.yaml
> @@ -53,10 +53,6 @@ properties:
> $ref: /schemas/media/video-interfaces.yaml#
> unevaluatedProperties: false
>
> - properties:
> - data-lanes: true
> - link-frequencies: true
> -
> required:
> - data-lanes
> - link-frequencies
> diff --git a/Documentation/devicetree/bindings/media/i2c/sony,imx334.yaml b/Documentation/devicetree/bindings/media/i2c/sony,imx334.yaml
> index 3842e5130463..e90ebe6a0a24 100644
> --- a/Documentation/devicetree/bindings/media/i2c/sony,imx334.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/sony,imx334.yaml
> @@ -40,10 +40,6 @@ properties:
> $ref: /schemas/media/video-interfaces.yaml#
> unevaluatedProperties: false
>
> - properties:
> - data-lanes: true
> - link-frequencies: true
> -
> required:
> - data-lanes
> - link-frequencies
> diff --git a/Documentation/devicetree/bindings/media/i2c/sony,imx412.yaml b/Documentation/devicetree/bindings/media/i2c/sony,imx412.yaml
> index 5447ab0768a6..dec428d46937 100644
> --- a/Documentation/devicetree/bindings/media/i2c/sony,imx412.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/sony,imx412.yaml
> @@ -52,10 +52,6 @@ properties:
> $ref: /schemas/media/video-interfaces.yaml#
> unevaluatedProperties: false
>
> - properties:
> - data-lanes: true
> - link-frequencies: true
> -
> required:
> - data-lanes
> - link-frequencies
> diff --git a/Documentation/devicetree/bindings/media/i2c/toshiba,tc358746.yaml b/Documentation/devicetree/bindings/media/i2c/toshiba,tc358746.yaml
> index 1c476b635b69..505c6d22ef7c 100644
> --- a/Documentation/devicetree/bindings/media/i2c/toshiba,tc358746.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/toshiba,tc358746.yaml
> @@ -78,8 +78,6 @@ properties:
> unevaluatedProperties: false
>
> properties:
> - hsync-active: true
> - vsync-active: true
> bus-type:
> enum: [ 5, 6 ]
>
> @@ -103,9 +101,6 @@ properties:
> minItems: 1
> maxItems: 4
>
> - clock-noncontinuous: true
> - link-frequencies: true
> -
> required:
> - data-lanes
> - link-frequencies
--
Regards,
Laurent Pinchart