Skip to contentSkip to conversation

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

RFC Superseded Krzysztof Hałasa 4 participants 7 messages Jul 21, 2021 – Jul 30, 2021

Subsystems (3)

v3 of 5 Superseded Latest is v5 →

lore
Share & tools
lore

Krzysztof Hałasa

author maintainer
#0 lore raw

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

This file documents DT bindings for the AR0521 camera sensor driver.

---
Changes from v2:
- changed "xclk" to "extclk"
- power regulator names etc.
- video output port properties
- cosmetics
- UTF-8 experiments :-)

Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml new file +108 -0
new file mode 100644
index 000000000000..785bae61bb5e
@@ -0,0 +1,108 @@
+# 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 Hałasa <[email protected]>
+
+description: |-
+  The AR0521 is a raw CMOS image sensor with MIPI CSI-2 and
+  I2C-compatible control interface.
+
+properties:
+  compatible:
+    const: onnn,ar0521
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: extclk
+
+  vaa-supply:
+    description:
+      Definition of the regulator used as analog (2.7 V) voltage supply.
+
+  vdd-supply:
+    description:
+      Definition of the regulator used as digital core (1.2 V) voltage supply.
+
+  vdd_io-supply:
+    description:
+      Definition of the regulator used as digital I/O (1.8 V) voltage supply.
+
+  reset-gpios:
+    description: reset GPIO, usually active low
+    maxItems: 1
+
+  port:
+    $ref: /schemas/graph.yaml#/properties/port
+    description: |
+      Video output port.
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#
+
+        properties:
+          data-lanes:
+            anyOf:
+              - items:
+                  - const: 1
+              - items:
+                  - const: 1
+                  - const: 2
+              - items:
+                  - const: 1
+                  - const: 2
+                  - const: 3
+                  - const: 4
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - vaa-supply
+  - vdd-supply
+  - vdd_io-supply
+  - 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 = "extclk";
+                    reset-gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
+                    vaa-supply = <&reg_2p7v>;
+                    vdd-supply = <&reg_1p2v>;
+                    vdd_io-supply = <&reg_1p8v>;
+
+                    port {
+                           mipi_camera_to_mipi_csi2: endpoint {
+                                    remote-endpoint = <&mipi_csi2_in>;
+                                    data-lanes = <1 2 3 4>;
+                            };
+                    };
+            };
+    };
Signature · 5 lines
Krzysztof "Chris" Hałasa

Sieć Badawcza Łukasiewicz
Przemysłowy Instytut Automatyki i Pomiarów PIAP
Al. Jerozolimskie 202, 02-486 Warszawa
maintainer
#1 lore raw
Quoted 53 lines · Krzysztof Hałasa

This file documents DT bindings for the AR0521 camera sensor driver.

---
Changes from v2:
- changed "xclk" to "extclk"
- power regulator names etc.
- video output port properties
- cosmetics
- UTF-8 experiments :-)

Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml new file +36 -0
new file mode 100644
index 000000000000..785bae61bb5e
@@ -0,0 +1,108 @@
+# 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 Hałasa <[email protected]>
+
+description: |-
+  The AR0521 is a raw CMOS image sensor with MIPI CSI-2 and
+  I2C-compatible control interface.
+
+properties:
+  compatible:
+    const: onnn,ar0521
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: extclk
+
+  vaa-supply:
+    description:
+      Definition of the regulator used as analog (2.7 V) voltage supply.
+
+  vdd-supply:
+    description:
+      Definition of the regulator used as digital core (1.2 V) voltage supply.
+

Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml line 46

Quoted 10 lines
Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml new file +10 -0
+  vdd_io-supply:
+    description:
+      Definition of the regulator used as digital I/O (1.8 V) voltage supply.
+
+  reset-gpios:
+    description: reset GPIO, usually active low
+    maxItems: 1
+
+  port:
+    $ref: /schemas/graph.yaml#/properties/port

$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false

Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml line 52

Quoted 6 lines
Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml new file +6 -0
+    description: |
+      Video output port.
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#

unevaluatedProperties: false

Quoted 64 lines
Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml new file +56 -0
+
+        properties:
+          data-lanes:
+            anyOf:
+              - items:
+                  - const: 1
+              - items:
+                  - const: 1
+                  - const: 2
+              - items:
+                  - const: 1
+                  - const: 2
+                  - const: 3
+                  - const: 4
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - vaa-supply
+  - vdd-supply
+  - vdd_io-supply
+  - 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 = "extclk";
+                    reset-gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
+                    vaa-supply = <&reg_2p7v>;
+                    vdd-supply = <&reg_1p2v>;
+                    vdd_io-supply = <&reg_1p8v>;
+
+                    port {
+                           mipi_camera_to_mipi_csi2: endpoint {
+                                    remote-endpoint = <&mipi_csi2_in>;
+                                    data-lanes = <1 2 3 4>;
+                            };
+                    };
+            };
+    };
Signature · 6 lines
-- 
Krzysztof "Chris" Hałasa

Sieć Badawcza Łukasiewicz
Przemysłowy Instytut Automatyki i Pomiarów PIAP
Al. Jerozolimskie 202, 02-486 Warszawa
Reviewed-by on v3 1/1
#2 lore raw
In reply to Krzysztof Hałasa

Hi Krzysztof,

(CC'ing Sakari Ailus)

Thank you for the patch.

Quoted 73 lines · Krzysztof Hałasa

This file documents DT bindings for the AR0521 camera sensor driver.

---
Changes from v2:
- changed "xclk" to "extclk"
- power regulator names etc.
- video output port properties
- cosmetics
- UTF-8 experiments :-)

Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml new file +56 -0
new file mode 100644
index 000000000000..785bae61bb5e
@@ -0,0 +1,108 @@
+# 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 Hałasa <[email protected]>
+
+description: |-
+  The AR0521 is a raw CMOS image sensor with MIPI CSI-2 and
+  I2C-compatible control interface.
+
+properties:
+  compatible:
+    const: onnn,ar0521
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: extclk
+
+  vaa-supply:
+    description:
+      Definition of the regulator used as analog (2.7 V) voltage supply.
+
+  vdd-supply:
+    description:
+      Definition of the regulator used as digital core (1.2 V) voltage supply.
+
+  vdd_io-supply:
+    description:
+      Definition of the regulator used as digital I/O (1.8 V) voltage supply.
+
+  reset-gpios:
+    description: reset GPIO, usually active low
+    maxItems: 1
+
+  port:
+    $ref: /schemas/graph.yaml#/properties/port
+    description: |
+      Video output port.
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#
+
+        properties:
+          data-lanes:
+            anyOf:

Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml line 66

Quoted 10 lines
Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml new file +10 -0
+              - items:
+                  - const: 1
+              - items:
+                  - const: 1
+                  - const: 2
+              - items:
+                  - const: 1
+                  - const: 2
+                  - const: 3
+                  - const: 4

As the sensor also supports an HiSPi output, I would add the bus-type property:

data-lanes:
const: 4

Sakari, what do you think ? This way we won't have to rely on an implicit default when (and if) the kernel gets support for HiSPi.

With or without this change, and with Rob's comments addressed,

Thank you for not giving up :-)

Quoted 43 lines
Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml new file +42 -0
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - vaa-supply
+  - vdd-supply
+  - vdd_io-supply
+  - 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 = "extclk";
+                    reset-gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
+                    vaa-supply = <&reg_2p7v>;
+                    vdd-supply = <&reg_1p2v>;
+                    vdd_io-supply = <&reg_1p8v>;
+
+                    port {
+                           mipi_camera_to_mipi_csi2: endpoint {
+                                    remote-endpoint = <&mipi_csi2_in>;
+                                    data-lanes = <1 2 3 4>;
+                            };
+                    };
+            };
+    };
Signature · 3 lines
Regards,

Laurent Pinchart
author maintainer
#3 lore raw

Hi Laurent,

Quoted 14 lines · Laurent Pinchart

Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml line 66

Quoted 13 lines
Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml new file +13 -0
+        properties:
+          data-lanes:
+            anyOf:
+              - items:
+                  - const: 1
+              - items:
+                  - const: 1
+                  - const: 2
+              - items:
+                  - const: 1
+                  - const: 2
+                  - const: 3
+                  - const: 4
Quoted 5 lines

As the sensor also supports an HiSPi output, I would add the bus-type property:

data-lanes:
const: 4

Is there any example of this? I'm not sure how should it it look like. Something like the following?

properties:
data-lanes:
anyOf:
- items:
- const: 1
- items:
- const: 1
- const: 2
- items:
- const: 1
- const: 2
- const: 3
- const: 4
bus-type:
data-lanes:
const: 4

And... HiSPi would need additional code in the driver. And preferably some testing. I think I'd prefer to have DT and the driver staying in some sort of sync. Also, I'm uncertain about the syntax and the meaning of such, apparently redundant, construct. Nor about its relation to HiSPi. An example would be welcome.

Signature · 5 lines
Krzysztof "Chris" Hałasa

Sieć Badawcza Łukasiewicz
Przemysłowy Instytut Automatyki i Pomiarów PIAP
Al. Jerozolimskie 202, 02-486 Warszawa
#4 lore raw

Hi Krzysztof,

Quoted 27 lines · Krzysztof Hałasa

Hi Laurent,

Quoted 14 lines · Laurent Pinchart

Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml line 66

Quoted 13 lines
Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml new file +13 -0
+        properties:
+          data-lanes:
+            anyOf:
+              - items:
+                  - const: 1
+              - items:
+                  - const: 1
+                  - const: 2
+              - items:
+                  - const: 1
+                  - const: 2
+                  - const: 3
+                  - const: 4
Quoted 5 lines

As the sensor also supports an HiSPi output, I would add the bus-type property:

data-lanes:
const: 4

Is there any example of this? I'm not sure how should it it look like. Something like the following?

Quoted 16 lines

properties:
data-lanes:
anyOf:
- items:
- const: 1
- items:
- const: 1
- const: 2
- items:
- const: 1
- const: 2
- const: 3
- const: 4
bus-type:
data-lanes:
const: 4

I think Laurent meant:

bus-type:
const: 4

This way the bindings can be later amended with HiSPi support without relying on defaults. Albeit the other busses in practice almost never end up being used even if supported, apart from the standard BT.601, BT.656 and CSI-2.

Either way is fine IMO.

Quoted 6 lines

And... HiSPi would need additional code in the driver. And preferably some testing. I think I'd prefer to have DT and the driver staying in some sort of sync. Also, I'm uncertain about the syntax and the meaning of such, apparently redundant, construct. Nor about its relation to HiSPi. An example would be welcome.

No need to add support for the driver.

Signature · 1 line
Sakari Ailus
author maintainer
#5 lore raw

Hi Sakari,

Quoted 11 lines · Sakari Ailus

I think Laurent meant:

bus-type:
const: 4

This way the bindings can be later amended with HiSPi support without relying on defaults. Albeit the other busses in practice almost never end up being used even if supported, apart from the standard BT.601, BT.656 and CSI-2.

Either way is fine IMO.

Ok, so I'll leave it as is (apart from Rob's additions/changes).

Quoted 1 line

No need to add support for the driver.

Ok.

Thanks.

Signature · 5 lines
Krzysztof "Chris" Hałasa

Sieć Badawcza Łukasiewicz
Przemysłowy Instytut Automatyki i Pomiarów PIAP
Al. Jerozolimskie 202, 02-486 Warszawa
author maintainer
#6 lore raw
In reply to Sakari Ailus

Sakari, Laurent,

Quoted 4 lines · Sakari Ailus

I think Laurent meant:

bus-type:
const: 4

Ok I found what it means :-)

Signature · 5 lines
Krzysztof "Chris" Hałasa

Sieć Badawcza Łukasiewicz
Przemysłowy Instytut Automatyki i Pomiarów PIAP
Al. Jerozolimskie 202, 02-486 Warszawa