phone-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/3] Improvements for OmniVision OV2685
@ 2023-03-21 18:03 Luca Weiss
  2023-03-21 18:03 ` [PATCH v3 1/3] media: dt-bindings: media: rkisp1: complete ov2685 example Luca Weiss
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Luca Weiss @ 2023-03-21 18:03 UTC (permalink / raw)
  To: ~postmarketos/upstreaming, phone-devel, Mauro Carvalho Chehab,
	Rob Herring, Krzysztof Kozlowski, Shunqian Zheng, Jacopo Mondi
  Cc: linux-media, devicetree, linux-kernel, Luca Weiss

Convert the bindings to dt-schema. Then make the reset gpio optional in
the driver.

Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
---
Changes in v3:
- Drop applied patches
- Fix rockchip bindings example
- Add dt-bindings patch from separate series
- Link to v2: https://lore.kernel.org/r/20230129-ov2685-improvements-v2-0-210400f2b63e@z3ntu.xyz

Changes in v2:
- 3/4: Reserve more space for v4l2 handler for the new controls (Jacopo)
- Pick up tags
- Link to v1: https://lore.kernel.org/r/20230129-ov2685-improvements-v1-0-f281bd49399c@z3ntu.xyz

---
Luca Weiss (3):
      media: dt-bindings: media: rkisp1: complete ov2685 example
      media: dt-bindings: ov2685: convert to dtschema
      media: i2c: ov2685: Make reset gpio optional

 .../devicetree/bindings/media/i2c/ov2685.txt       |  41 ---------
 .../devicetree/bindings/media/i2c/ovti,ov2685.yaml | 101 +++++++++++++++++++++
 .../devicetree/bindings/media/rockchip-isp1.yaml   |  19 ++--
 MAINTAINERS                                        |   1 +
 drivers/media/i2c/ov2685.c                         |   2 +-
 5 files changed, 116 insertions(+), 48 deletions(-)
---
base-commit: f3594f0204b756638267242e26d9de611435c3ba
change-id: 20230129-ov2685-improvements-b03bdcf1c290

Best regards,
-- 
Luca Weiss <luca@z3ntu.xyz>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v3 1/3] media: dt-bindings: media: rkisp1: complete ov2685 example
  2023-03-21 18:03 [PATCH v3 0/3] Improvements for OmniVision OV2685 Luca Weiss
@ 2023-03-21 18:03 ` Luca Weiss
  2023-03-22  7:34   ` Krzysztof Kozlowski
  2023-03-21 18:03 ` [PATCH v3 2/3] media: dt-bindings: ov2685: convert to dtschema Luca Weiss
  2023-03-21 18:03 ` [PATCH v3 3/3] media: i2c: ov2685: Make reset gpio optional Luca Weiss
  2 siblings, 1 reply; 6+ messages in thread
From: Luca Weiss @ 2023-03-21 18:03 UTC (permalink / raw)
  To: ~postmarketos/upstreaming, phone-devel, Mauro Carvalho Chehab,
	Rob Herring, Krzysztof Kozlowski, Shunqian Zheng, Jacopo Mondi
  Cc: linux-media, devicetree, linux-kernel, Luca Weiss

With the upcoming conversion of ov2685 to dt-schema let's complete the
example so validation succeeds. At the same time fix the indentation of
the port node in this example.

Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
---
 .../devicetree/bindings/media/rockchip-isp1.yaml      | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/Documentation/devicetree/bindings/media/rockchip-isp1.yaml b/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
index b3661d7d43572..0bad7e6401486 100644
--- a/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
+++ b/Documentation/devicetree/bindings/media/rockchip-isp1.yaml
@@ -212,12 +212,19 @@ examples:
                 compatible = "ovti,ov2685";
                 reg = <0x3c>;
 
-                  port {
-                      ucam_out: endpoint {
-                          remote-endpoint = <&mipi_in_ucam>;
-                          data-lanes = <1>;
-                      };
-                  };
+                clocks = <&cru SCLK_TESTCLKOUT1>;
+                clock-names = "xvclk";
+
+                avdd-supply = <&pp2800_cam>;
+                dovdd-supply = <&pp1800>;
+                dvdd-supply = <&pp1800>;
+
+                port {
+                    ucam_out: endpoint {
+                        remote-endpoint = <&mipi_in_ucam>;
+                        data-lanes = <1>;
+                    };
+                };
             };
         };
     };

-- 
2.40.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v3 2/3] media: dt-bindings: ov2685: convert to dtschema
  2023-03-21 18:03 [PATCH v3 0/3] Improvements for OmniVision OV2685 Luca Weiss
  2023-03-21 18:03 ` [PATCH v3 1/3] media: dt-bindings: media: rkisp1: complete ov2685 example Luca Weiss
@ 2023-03-21 18:03 ` Luca Weiss
  2023-03-22  7:36   ` Krzysztof Kozlowski
  2023-03-21 18:03 ` [PATCH v3 3/3] media: i2c: ov2685: Make reset gpio optional Luca Weiss
  2 siblings, 1 reply; 6+ messages in thread
From: Luca Weiss @ 2023-03-21 18:03 UTC (permalink / raw)
  To: ~postmarketos/upstreaming, phone-devel, Mauro Carvalho Chehab,
	Rob Herring, Krzysztof Kozlowski, Shunqian Zheng, Jacopo Mondi
  Cc: linux-media, devicetree, linux-kernel, Luca Weiss

Convert the text-based dt-bindings to yaml.

Changes from original txt:
* Take wording for various properties from other yaml bindings, this
  removes e.g. volt amount from schema since it isn't really relevant
  and the datasheet is a better source.
* Don't make reset-gpios a required property since it can be tied to
  DOVDD instead.

Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
---
 .../devicetree/bindings/media/i2c/ov2685.txt       |  41 ---------
 .../devicetree/bindings/media/i2c/ovti,ov2685.yaml | 101 +++++++++++++++++++++
 MAINTAINERS                                        |   1 +
 3 files changed, 102 insertions(+), 41 deletions(-)

diff --git a/Documentation/devicetree/bindings/media/i2c/ov2685.txt b/Documentation/devicetree/bindings/media/i2c/ov2685.txt
deleted file mode 100644
index 625c4a8c0d53d..0000000000000
--- a/Documentation/devicetree/bindings/media/i2c/ov2685.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-* Omnivision OV2685 MIPI CSI-2 sensor
-
-Required Properties:
-- compatible: shall be "ovti,ov2685"
-- clocks: reference to the xvclk input clock
-- clock-names: shall be "xvclk"
-- avdd-supply: Analog voltage supply, 2.8 volts
-- dovdd-supply: Digital I/O voltage supply, 1.8 volts
-- dvdd-supply: Digital core voltage supply, 1.8 volts
-- reset-gpios: Low active reset gpio
-
-The device node shall contain one 'port' child node with an
-'endpoint' subnode for its digital output video port,
-in accordance with the video interface bindings defined in
-Documentation/devicetree/bindings/media/video-interfaces.txt.
-The endpoint optional property 'data-lanes' shall be "<1>".
-
-Example:
-&i2c7 {
-	ov2685: camera-sensor@3c {
-		compatible = "ovti,ov2685";
-		reg = <0x3c>;
-		pinctrl-names = "default";
-		pinctrl-0 = <&clk_24m_cam>;
-
-		clocks = <&cru SCLK_TESTCLKOUT1>;
-		clock-names = "xvclk";
-
-		avdd-supply = <&pp2800_cam>;
-		dovdd-supply = <&pp1800>;
-		dvdd-supply = <&pp1800>;
-		reset-gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
-
-		port {
-			ucam_out: endpoint {
-				remote-endpoint = <&mipi_in_ucam>;
-				data-lanes = <1>;
-			};
-		};
-	};
-};
diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov2685.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov2685.yaml
new file mode 100644
index 0000000000000..c53bee4a1025e
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov2685.yaml
@@ -0,0 +1,101 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/ovti,ov2685.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: OmniVision OV2685 Image Sensor
+
+maintainers:
+  - Shunqian Zheng <zhengsq@rock-chips.com>
+
+properties:
+  compatible:
+    const: ovti,ov2685
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: XVCLK clock
+
+  clock-names:
+    items:
+      - const: xvclk
+
+  dvdd-supply:
+    description: Digital Domain Power Supply
+
+  avdd-supply:
+    description: Analog Domain Power Supply
+
+  dovdd-supply:
+    description: I/O Domain Power Supply
+
+  reset-gpios:
+    maxItems: 1
+    description: Reset Pin GPIO Control (active low)
+
+  port:
+    description: MIPI CSI-2 transmitter port
+    $ref: /schemas/graph.yaml#/$defs/port-base
+    additionalProperties: false
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          data-lanes:
+            maxItems: 1
+
+        required:
+          - data-lanes
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - dvdd-supply
+  - avdd-supply
+  - dovdd-supply
+  - port
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/rk3399-cru.h>
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c7 {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        ov2685: camera-sensor@3c {
+            compatible = "ovti,ov2685";
+            reg = <0x3c>;
+            pinctrl-names = "default";
+            pinctrl-0 = <&clk_24m_cam>;
+
+            clocks = <&cru SCLK_TESTCLKOUT1>;
+            clock-names = "xvclk";
+
+            avdd-supply = <&pp2800_cam>;
+            dovdd-supply = <&pp1800>;
+            dvdd-supply = <&pp1800>;
+            reset-gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
+
+            port {
+                ucam_out: endpoint {
+                    remote-endpoint = <&mipi_in_ucam>;
+                    data-lanes = <1>;
+                };
+            };
+        };
+    };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 8ea325040f355..5904f47756fe1 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -15410,6 +15410,7 @@ M:	Shunqian Zheng <zhengsq@rock-chips.com>
 L:	linux-media@vger.kernel.org
 S:	Maintained
 T:	git git://linuxtv.org/media_tree.git
+F:	Documentation/devicetree/bindings/media/i2c/ovti,ov2685.yaml
 F:	drivers/media/i2c/ov2685.c
 
 OMNIVISION OV2740 SENSOR DRIVER

-- 
2.40.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v3 3/3] media: i2c: ov2685: Make reset gpio optional
  2023-03-21 18:03 [PATCH v3 0/3] Improvements for OmniVision OV2685 Luca Weiss
  2023-03-21 18:03 ` [PATCH v3 1/3] media: dt-bindings: media: rkisp1: complete ov2685 example Luca Weiss
  2023-03-21 18:03 ` [PATCH v3 2/3] media: dt-bindings: ov2685: convert to dtschema Luca Weiss
@ 2023-03-21 18:03 ` Luca Weiss
  2 siblings, 0 replies; 6+ messages in thread
From: Luca Weiss @ 2023-03-21 18:03 UTC (permalink / raw)
  To: ~postmarketos/upstreaming, phone-devel, Mauro Carvalho Chehab,
	Rob Herring, Krzysztof Kozlowski, Shunqian Zheng, Jacopo Mondi
  Cc: linux-media, devicetree, linux-kernel, Luca Weiss

In some setups XSHUTDOWN is connected to DOVDD when it's unused,
therefore treat the reset gpio as optional.

Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
---
 drivers/media/i2c/ov2685.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/i2c/ov2685.c b/drivers/media/i2c/ov2685.c
index fdf3e06133302..f119a93e7c647 100644
--- a/drivers/media/i2c/ov2685.c
+++ b/drivers/media/i2c/ov2685.c
@@ -807,7 +807,7 @@ static int ov2685_probe(struct i2c_client *client)
 	if (clk_get_rate(ov2685->xvclk) != OV2685_XVCLK_FREQ)
 		dev_warn(dev, "xvclk mismatched, modes are based on 24MHz\n");
 
-	ov2685->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
+	ov2685->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
 	if (IS_ERR(ov2685->reset_gpio)) {
 		dev_err(dev, "Failed to get reset-gpios\n");
 		return -EINVAL;

-- 
2.40.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v3 1/3] media: dt-bindings: media: rkisp1: complete ov2685 example
  2023-03-21 18:03 ` [PATCH v3 1/3] media: dt-bindings: media: rkisp1: complete ov2685 example Luca Weiss
@ 2023-03-22  7:34   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2023-03-22  7:34 UTC (permalink / raw)
  To: Luca Weiss, ~postmarketos/upstreaming, phone-devel,
	Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
	Shunqian Zheng, Jacopo Mondi
  Cc: linux-media, devicetree, linux-kernel

On 21/03/2023 19:03, Luca Weiss wrote:
> With the upcoming conversion of ov2685 to dt-schema let's complete the
> example so validation succeeds. At the same time fix the indentation of
> the port node in this example.
> 
> Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
> ---
>  .../devicetree/bindings/media/rockchip-isp1.yaml      | 19 +++++++++++++------


Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v3 2/3] media: dt-bindings: ov2685: convert to dtschema
  2023-03-21 18:03 ` [PATCH v3 2/3] media: dt-bindings: ov2685: convert to dtschema Luca Weiss
@ 2023-03-22  7:36   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2023-03-22  7:36 UTC (permalink / raw)
  To: Luca Weiss, ~postmarketos/upstreaming, phone-devel,
	Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
	Shunqian Zheng, Jacopo Mondi
  Cc: linux-media, devicetree, linux-kernel

On 21/03/2023 19:03, Luca Weiss wrote:
> Convert the text-based dt-bindings to yaml.
> 

Thank you for your patch. There is something to discuss/improve.

> +  - Shunqian Zheng <zhengsq@rock-chips.com>
> +
> +properties:
> +  compatible:
> +    const: ovti,ov2685
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    items:
> +      - description: XVCLK clock
> +
> +  clock-names:
> +    items:
> +      - const: xvclk
> +
> +  dvdd-supply:
> +    description: Digital Domain Power Supply
> +
> +  avdd-supply:
> +    description: Analog Domain Power Supply
> +
> +  dovdd-supply:
> +    description: I/O Domain Power Supply
> +
> +  reset-gpios:
> +    maxItems: 1
> +    description: Reset Pin GPIO Control (active low)
> +
> +  port:
> +    description: MIPI CSI-2 transmitter port
> +    $ref: /schemas/graph.yaml#/$defs/port-base
> +    additionalProperties: false
> +
> +    properties:
> +      endpoint:
> +        $ref: /schemas/media/video-interfaces.yaml#
> +        unevaluatedProperties: false
> +
> +        properties:
> +          data-lanes:
> +            maxItems: 1
> +
> +        required:
> +          - data-lanes
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +  - dvdd-supply
> +  - avdd-supply
> +  - dovdd-supply
> +  - port
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/rk3399-cru.h>
> +    #include <dt-bindings/gpio/gpio.h>
> +
> +    i2c7 {

i2c

With above:

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-03-22  7:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-21 18:03 [PATCH v3 0/3] Improvements for OmniVision OV2685 Luca Weiss
2023-03-21 18:03 ` [PATCH v3 1/3] media: dt-bindings: media: rkisp1: complete ov2685 example Luca Weiss
2023-03-22  7:34   ` Krzysztof Kozlowski
2023-03-21 18:03 ` [PATCH v3 2/3] media: dt-bindings: ov2685: convert to dtschema Luca Weiss
2023-03-22  7:36   ` Krzysztof Kozlowski
2023-03-21 18:03 ` [PATCH v3 3/3] media: i2c: ov2685: Make reset gpio optional Luca Weiss

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).