[PATCH v1 1/2] media: dt-bindings: i2c: toshiba,et8ek8: Convert to DT schema

Alex Tran posted 2 patches 1 month, 2 weeks ago
[PATCH v1 1/2] media: dt-bindings: i2c: toshiba,et8ek8: Convert to DT schema
Posted by Alex Tran 1 month, 2 weeks ago
Convert binding for toshiba,et8ek8 from TXT to YAML format.
Update MAINTAINERS file accordingly.

Signed-off-by: Alex Tran <alex.t.tran@gmail.com>
---
 .../bindings/media/i2c/toshiba,et8ek8.txt     | 55 -----------
 .../bindings/media/i2c/toshiba,et8ek8.yaml    | 91 +++++++++++++++++++
 MAINTAINERS                                   |  1 +
 3 files changed, 92 insertions(+), 55 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/media/i2c/toshiba,et8ek8.txt
 create mode 100644 Documentation/devicetree/bindings/media/i2c/toshiba,et8ek8.yaml

diff --git a/Documentation/devicetree/bindings/media/i2c/toshiba,et8ek8.txt b/Documentation/devicetree/bindings/media/i2c/toshiba,et8ek8.txt
deleted file mode 100644
index 8d8e40c56872..000000000000
--- a/Documentation/devicetree/bindings/media/i2c/toshiba,et8ek8.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-Toshiba et8ek8 5MP sensor
-
-Toshiba et8ek8 5MP sensor is an image sensor found in Nokia N900 device
-
-More detailed documentation can be found in
-Documentation/devicetree/bindings/media/video-interfaces.txt .
-
-
-Mandatory properties
---------------------
-
-- compatible: "toshiba,et8ek8"
-- reg: I2C address (0x3e, or an alternative address)
-- vana-supply: Analogue voltage supply (VANA), 2.8 volts
-- clocks: External clock to the sensor
-- reset-gpios: XSHUTDOWN GPIO. The XSHUTDOWN signal is active low. The sensor
-  is in hardware standby mode when the signal is in the low state.
-
-
-Optional properties
--------------------
-
-- flash-leds: See ../video-interfaces.txt
-- lens-focus: See ../video-interfaces.txt
-
-
-Endpoint node mandatory properties
-----------------------------------
-
-- remote-endpoint: A phandle to the bus receiver's endpoint node.
-
-
-Example
--------
-
-&i2c3 {
-	clock-frequency = <400000>;
-
-	cam1: camera@3e {
-		compatible = "toshiba,et8ek8";
-		reg = <0x3e>;
-		vana-supply = <&vaux4>;
-
-		clocks = <&isp 0>;
-		assigned-clocks = <&isp 0>;
-		assigned-clock-rates = <9600000>;
-
-		reset-gpio = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 */
-		port {
-			csi_cam1: endpoint {
-				remote-endpoint = <&csi_out1>;
-			};
-		};
-	};
-};
diff --git a/Documentation/devicetree/bindings/media/i2c/toshiba,et8ek8.yaml b/Documentation/devicetree/bindings/media/i2c/toshiba,et8ek8.yaml
new file mode 100644
index 000000000000..68a8134df8fc
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/toshiba,et8ek8.yaml
@@ -0,0 +1,91 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/toshiba,et8ek8.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Toshiba et8ek8 5MP sensor
+
+maintainers:
+  - Pavel Machek <pavel@ucw.cz>
+  - Sakari Ailus <sakari.ailus@iki.fi>
+
+description:
+  Toshiba et8ek8 5MP sensor is an image sensor found in Nokia N900 device
+
+properties:
+  compatible:
+    const: toshiba,et8ek8
+
+  reg:
+    description:
+      I2C address (0x3e, or an alternative address)
+    maxItems: 1
+
+  vana-supply:
+    description:
+      Analogue voltage supply (VANA), 2.8 volts
+
+  clocks:
+    description:
+      External clock to the sensor
+    maxItems: 1
+
+  reset-gpios:
+    description:
+      XSHUTDOWN GPIO. The XSHUTDOWN signal is active low. The sensor
+      is in hardware standby mode when the signal is in the low state.
+    maxItems: 1
+
+  flash-leds:
+    $ref: /schemas/media/video-interfaces.yaml#
+
+  lens-focus:
+    $ref: /schemas/media/video-interfaces.yaml#
+
+  port:
+    $ref: /schemas/graph.yaml#/$defs/port-base
+    additionalProperties: false
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          remote-endpoint: true
+
+required:
+  - compatible
+  - reg
+  - vana-supply
+  - clocks
+  - reset-gpios
+  - port
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        camera@3e {
+            compatible = "toshiba,et8ek8";
+            reg = <0x3e>;
+            vana-supply = <&vaux4>;
+            clocks = <&isp 0>;
+            assigned-clocks = <&isp 0>;
+            assigned-clock-rates = <9600000>;
+            reset-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>;
+
+            port {
+                csi_cam1: endpoint {
+                    remote-endpoint = <&csi_out1>;
+                };
+            };
+        };
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index dc731d37c8fe..50722537d548 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -18582,6 +18582,7 @@ M:	Sakari Ailus <sakari.ailus@iki.fi>
 L:	linux-media@vger.kernel.org
 S:	Maintained
 F:	Documentation/devicetree/bindings/media/i2c/adi,ad5820.yaml
+F:	Documentation/devicetree/bindings/media/i2c/toshiba,et8ek8.yaml
 F:	drivers/media/i2c/ad5820.c
 F:	drivers/media/i2c/et8ek8
 
-- 
2.51.0
Re: [PATCH v1 1/2] media: dt-bindings: i2c: toshiba,et8ek8: Convert to DT schema
Posted by Krzysztof Kozlowski 1 month, 2 weeks ago
On Sat, Dec 20, 2025 at 02:03:24PM -0800, Alex Tran wrote:
> diff --git a/Documentation/devicetree/bindings/media/i2c/toshiba,et8ek8.yaml b/Documentation/devicetree/bindings/media/i2c/toshiba,et8ek8.yaml
> new file mode 100644
> index 000000000000..68a8134df8fc
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/i2c/toshiba,et8ek8.yaml
> @@ -0,0 +1,91 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/media/i2c/toshiba,et8ek8.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Toshiba et8ek8 5MP sensor
> +
> +maintainers:
> +  - Pavel Machek <pavel@ucw.cz>
> +  - Sakari Ailus <sakari.ailus@iki.fi>
> +
> +description:
> +  Toshiba et8ek8 5MP sensor is an image sensor found in Nokia N900 device
> +
> +properties:
> +  compatible:
> +    const: toshiba,et8ek8
> +
> +  reg:
> +    description:
> +      I2C address (0x3e, or an alternative address)
> +    maxItems: 1
> +
> +  vana-supply:
> +    description:
> +      Analogue voltage supply (VANA), 2.8 volts
> +
> +  clocks:
> +    description:
> +      External clock to the sensor

If there is going to be new version: drop description, obvious.

> +    maxItems: 1
> +
> +  reset-gpios:
> +    description:
> +      XSHUTDOWN GPIO. The XSHUTDOWN signal is active low. The sensor
> +      is in hardware standby mode when the signal is in the low state.
> +    maxItems: 1
> +
> +  flash-leds:
> +    $ref: /schemas/media/video-interfaces.yaml#

This and...

> +
> +  lens-focus:
> +    $ref: /schemas/media/video-interfaces.yaml#

... this are weird. LEDs are not video interfaces, for sure. lens focus
shouldn't be video interface, either.

You also miss unevaluatedProps there.

This needs careful fixing/rewriting, with explanation in commit msg.


> +
> +  port:
> +    $ref: /schemas/graph.yaml#/$defs/port-base
> +    additionalProperties: false
> +
> +    properties:
> +      endpoint:
> +        $ref: /schemas/media/video-interfaces.yaml#
> +        unevaluatedProperties: false
> +
> +        properties:
> +          remote-endpoint: true

Drop, pointless.


> +
> +required:
> +  - compatible
> +  - reg
> +  - vana-supply
> +  - clocks
> +  - reset-gpios
> +  - port
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        camera@3e {
> +            compatible = "toshiba,et8ek8";
> +            reg = <0x3e>;
> +            vana-supply = <&vaux4>;
> +            clocks = <&isp 0>;
> +            assigned-clocks = <&isp 0>;
> +            assigned-clock-rates = <9600000>;
> +            reset-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>;
> +
> +            port {
> +                csi_cam1: endpoint {
> +                    remote-endpoint = <&csi_out1>;
> +                };

Please make the example complete - missing flash-leds and lens-focus. If
you provided them, you would see your binding is not correct.


Best regards,
Krzysztof
Re: [PATCH v1 1/2] media: dt-bindings: i2c: toshiba,et8ek8: Convert to DT schema
Posted by Alex Tran 1 month, 2 weeks ago
> > +    maxItems: 1
> > +
> > +  reset-gpios:
> > +    description:
> > +      XSHUTDOWN GPIO. The XSHUTDOWN signal is active low. The sensor
> > +      is in hardware standby mode when the signal is in the low state.
> > +    maxItems: 1
> > +
> > +  flash-leds:
> > +    $ref: /schemas/media/video-interfaces.yaml#
>
> This and...
>
> > +
> > +  lens-focus:
> > +    $ref: /schemas/media/video-interfaces.yaml#
>
> ... this are weird. LEDs are not video interfaces, for sure. lens focus
> shouldn't be video interface, either.
>
> You also miss unevaluatedProps there.
>
> This needs careful fixing/rewriting, with explanation in commit msg.
>

My mistake. The correct schema reference for these 2 should be video
interface devices.

-- 
Yours,
Alex Tran
Re: [PATCH v1 1/2] media: dt-bindings: i2c: toshiba,et8ek8: Convert to DT schema
Posted by Krzysztof Kozlowski 1 month, 2 weeks ago
On 24/12/2025 22:07, Alex Tran wrote:
>>> +    maxItems: 1
>>> +
>>> +  reset-gpios:
>>> +    description:
>>> +      XSHUTDOWN GPIO. The XSHUTDOWN signal is active low. The sensor
>>> +      is in hardware standby mode when the signal is in the low state.
>>> +    maxItems: 1
>>> +
>>> +  flash-leds:
>>> +    $ref: /schemas/media/video-interfaces.yaml#
>>
>> This and...
>>
>>> +
>>> +  lens-focus:
>>> +    $ref: /schemas/media/video-interfaces.yaml#
>>
>> ... this are weird. LEDs are not video interfaces, for sure. lens focus
>> shouldn't be video interface, either.
>>
>> You also miss unevaluatedProps there.
>>
>> This needs careful fixing/rewriting, with explanation in commit msg.
>>
> 
> My mistake. The correct schema reference for these 2 should be video
> interface devices.

No. LEDs are not video interface devices, either. LEDs are LEDs.

Best regards,
Krzysztof