diff mbox series

RFC: dt-binding: media: document ON Semi AR0521 sensor bindings

Message ID m3o8fjs02a.fsf@t19.piap.pl (mailing list archive)
State New, archived
Headers show
Series RFC: dt-binding: media: document ON Semi AR0521 sensor bindings | expand

Commit Message

Krzysztof Hałasa March 16, 2021, 1:25 p.m. UTC
This file documents DT bindings for the AR0521 camera sensor driver.

Signed-off-by: Krzysztof Halasa <khalasa@piap.pl>

Comments

Laurent Pinchart March 16, 2021, 7:04 p.m. UTC | #1
Hi Krzysztof,

Thank you for the patch.

On Tue, Mar 16, 2021 at 02:25:01PM +0100, Krzysztof Hałasa wrote:
> This file documents DT bindings for the AR0521 camera sensor driver.
> 
> Signed-off-by: Krzysztof Halasa <khalasa@piap.pl>
> 
> diff --git a/Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml b/Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml
> new file mode 100644
> index 000000000000..f649d4cbcb37
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml
> @@ -0,0 +1,76 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/media/i2c/onnn,ar0521.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: ON Semiconductor AR0521 MIPI CSI-2 sensor
> +
> +maintainers:
> +  - Krzysztof Halasa <khalasa@piap.pl>
> +
> +description: |-
> +  The AR0521 is a raw CMOS image sensor with MIPI CSI-2 and
> +  I2C-compatible control interface.
> +
> +properties:
> +  compatible:
> +    const: on-semi,ar0521

That's not the correct prefix for ON Semiconductor. See
Documentation/devicetree/bindings/vendor-prefixes.yaml. Or just the name
of this file :-)

> +
> +  reg:
> +    description: I2C bus address of the sensor device

You can drop this, it's implicit for I2C devices.

> +    maxItems: 1
> +
> +  clocks:
> +    description: reference to the xclk clock
> +    maxItems: 1
> +
> +  clock-names:
> +    const: xclk
> +
> +  reset-gpios:
> +    description: active low reset GPIO
> +    maxItems: 1
> +
> +  port:
> +    type: object
> +    description: |
> +      Output video port: 1, 2 or 4 lanes. See ../video-interfaces.txt.

You can use the OF graph and video interfaces schema, see commit
066a94e28a23 in mainline.

> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +  - port
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +    #include <dt-bindings/clock/imx6qdl-clock.h>
> +
> +    i2c {
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +
> +            ar0521: camera-sensor@36 {
> +                    compatible = "onnn,ar0521";
> +                    reg = <0x36>;
> +                    pinctrl-names = "default";
> +                    pinctrl-0 = <&pinctrl_mipi_camera>;
> +
> +                    clocks = <&clks IMX6QDL_CLK_CKO>;
> +                    clock-names = "xclk";
> +
> +                    reset-gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
> +
> +                    port {
> +                           mipi_camera_to_mipi_csi2: endpoint {
> +                                    remote-endpoint = <&mipi_csi2_in>;
> +                                    data-lanes = <1 2 3 4>;
> +                            };
> +                    };
> +            };
> +    };
Krzysztof Hałasa March 17, 2021, 5:08 a.m. UTC | #2
Laurent,

Laurent Pinchart <laurent.pinchart@ideasonboard.com> writes:

>> +    const: on-semi,ar0521
>
> That's not the correct prefix for ON Semiconductor. See
> Documentation/devicetree/bindings/vendor-prefixes.yaml. Or just the name
> of this file :-)

Right, just missed this one. Thanks for the comments.
Krzysztof Hałasa March 30, 2021, 9:17 a.m. UTC | #3
Laurent Pinchart <laurent.pinchart@ideasonboard.com> writes:

>> +  reg:
>> +    description: I2C bus address of the sensor device
>
> You can drop this, it's implicit for I2C devices.

Do you mean just dropping these two lines (and MaxItems: 1), and leaving
"reg" in "required" and in the example? E.g.:
...
required:
  - compatible
  - reg
  - clocks
  - clock-names
  - port

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/clock/imx6qdl-clock.h>

    i2c {
            #address-cells = <1>;
            #size-cells = <0>;

            ar0521: camera-sensor@36 {
                    compatible = "onnn,ar0521";
                    reg = <0x36>;
                    pinctrl-names = "default";

...

It protests with:

Documentation/devicetree/bindings/media/i2c/onnn,ar0521.example.dt.yaml:
camera-sensor@36: 'reg' does not match any of the regexes: 'pinctrl-[0-9]+'
        From schema: /usr/src/linux/imx6/Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml

Thus I'm currently leaving it as is.
Laurent Pinchart March 30, 2021, 9:57 a.m. UTC | #4
Hi Krzysztof,

On Tue, Mar 30, 2021 at 11:17:54AM +0200, Krzysztof Hałasa wrote:
> Laurent Pinchart <laurent.pinchart@ideasonboard.com> writes:
> 
> >> +  reg:
> >> +    description: I2C bus address of the sensor device
> >
> > You can drop this, it's implicit for I2C devices.
> 
> Do you mean just dropping these two lines (and MaxItems: 1), and leaving
> "reg" in "required" and in the example? E.g.:

I meant dropping the description, sorry. You need to keep

  reg:
    maxItems: 1

> ...
> required:
>   - compatible
>   - reg
>   - clocks
>   - clock-names
>   - port
> 
> additionalProperties: false
> 
> examples:
>   - |
>     #include <dt-bindings/gpio/gpio.h>
>     #include <dt-bindings/clock/imx6qdl-clock.h>
> 
>     i2c {
>             #address-cells = <1>;
>             #size-cells = <0>;
> 
>             ar0521: camera-sensor@36 {
>                     compatible = "onnn,ar0521";
>                     reg = <0x36>;
>                     pinctrl-names = "default";
> 
> ...
> 
> It protests with:
> 
> Documentation/devicetree/bindings/media/i2c/onnn,ar0521.example.dt.yaml:
> camera-sensor@36: 'reg' does not match any of the regexes: 'pinctrl-[0-9]+'
>         From schema: /usr/src/linux/imx6/Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml
> 
> Thus I'm currently leaving it as is.
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml b/Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml
new file mode 100644
index 000000000000..f649d4cbcb37
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml
@@ -0,0 +1,76 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/onnn,ar0521.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ON Semiconductor AR0521 MIPI CSI-2 sensor
+
+maintainers:
+  - Krzysztof Halasa <khalasa@piap.pl>
+
+description: |-
+  The AR0521 is a raw CMOS image sensor with MIPI CSI-2 and
+  I2C-compatible control interface.
+
+properties:
+  compatible:
+    const: on-semi,ar0521
+
+  reg:
+    description: I2C bus address of the sensor device
+    maxItems: 1
+
+  clocks:
+    description: reference to the xclk clock
+    maxItems: 1
+
+  clock-names:
+    const: xclk
+
+  reset-gpios:
+    description: active low reset GPIO
+    maxItems: 1
+
+  port:
+    type: object
+    description: |
+      Output video port: 1, 2 or 4 lanes. See ../video-interfaces.txt.
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - port
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/clock/imx6qdl-clock.h>
+
+    i2c {
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            ar0521: camera-sensor@36 {
+                    compatible = "onnn,ar0521";
+                    reg = <0x36>;
+                    pinctrl-names = "default";
+                    pinctrl-0 = <&pinctrl_mipi_camera>;
+
+                    clocks = <&clks IMX6QDL_CLK_CKO>;
+                    clock-names = "xclk";
+
+                    reset-gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
+
+                    port {
+                           mipi_camera_to_mipi_csi2: endpoint {
+                                    remote-endpoint = <&mipi_csi2_in>;
+                                    data-lanes = <1 2 3 4>;
+                            };
+                    };
+            };
+    };