devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/8] dt-bindings: media: i2c: Convert to json-schema
@ 2020-07-15 14:09 Jacopo Mondi
  2020-07-15 14:09 ` [PATCH 1/8] dt-bindings: media: ov5640: " Jacopo Mondi
                   ` (8 more replies)
  0 siblings, 9 replies; 18+ messages in thread
From: Jacopo Mondi @ 2020-07-15 14:09 UTC (permalink / raw)
  To: robh+dt, devicetree, linux-media
  Cc: Jacopo Mondi, mchehab, sakari.ailus, hverkuil-cisco,
	laurent.pinchart, linux-renesas-soc

Convert to json schema the bindings file for the following sensor
drivers:

- ov5640
- ov5645
- ov772x
- mt9v111
- imx214
- imx274
- imx290

On top of the conversion to yaml, rename the files to include the
vendor prefix (I kept this separate as I'm not sure it's actually desired).

The series requires:
[PATCH v3 0/3] dt-bidings: media: ov5647 bindings + small fix
which converts the ov5647 bindings to yaml which I sent separately
as it was already in review.

Individual maintainers Cc-ed for each single patch where available.

Thanks
  j

Jacopo Mondi (8):
  dt-bindings: media: ov5640: Convert to json-schema
  dt-bindings: media: ov5645: Convert to json-schema
  dt-bindings: media: mt9v111: Convert to json-schema
  dt-bindings: media: imx290: Convert to json-schema
  dt-bindings: media: imx274: Convert to json-schema
  dt-bindings: media: imx214: Convert to json-schema
  dt-bindings: media: ov772x: Convert to json-schema
  dt-bindings: media: i2c: Add prefix to yaml bindings

 .../bindings/media/i2c/aptina,mt9v111.txt     |  46 -----
 .../bindings/media/i2c/aptina,mt9v111.yaml    |  87 +++++++++
 .../devicetree/bindings/media/i2c/imx274.txt  |  33 ----
 .../devicetree/bindings/media/i2c/imx290.txt  |  57 ------
 .../devicetree/bindings/media/i2c/ov5640.txt  |  92 ---------
 .../devicetree/bindings/media/i2c/ov5645.txt  |  54 ------
 .../devicetree/bindings/media/i2c/ov772x.txt  |  40 ----
 .../bindings/media/i2c/ovti,ov5640.yaml       | 181 ++++++++++++++++++
 .../bindings/media/i2c/ovti,ov5645.yaml       | 123 ++++++++++++
 .../i2c/{ov5647.yaml => ovti,ov5647.yaml}     |   0
 .../bindings/media/i2c/ovti,ov772x.yaml       |  89 +++++++++
 .../i2c/{ov8856.yaml => ovti,ov8856.yaml}     |   0
 .../bindings/media/i2c/sony,imx214.txt        |  53 -----
 .../bindings/media/i2c/sony,imx214.yaml       | 124 ++++++++++++
 .../i2c/{imx219.yaml => sony,imx219.yaml}     |   0
 .../bindings/media/i2c/sony,imx274.yaml       |  74 +++++++
 .../bindings/media/i2c/sony,imx290.yaml       | 124 ++++++++++++
 MAINTAINERS                                   |  25 ++-
 18 files changed, 819 insertions(+), 383 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.txt
 create mode 100644 Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml
 delete mode 100644 Documentation/devicetree/bindings/media/i2c/imx274.txt
 delete mode 100644 Documentation/devicetree/bindings/media/i2c/imx290.txt
 delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.txt
 delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov5645.txt
 delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov772x.txt
 create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov5640.yaml
 create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov5645.yaml
 rename Documentation/devicetree/bindings/media/i2c/{ov5647.yaml => ovti,ov5647.yaml} (100%)
 create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml
 rename Documentation/devicetree/bindings/media/i2c/{ov8856.yaml => ovti,ov8856.yaml} (100%)
 delete mode 100644 Documentation/devicetree/bindings/media/i2c/sony,imx214.txt
 create mode 100644 Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml
 rename Documentation/devicetree/bindings/media/i2c/{imx219.yaml => sony,imx219.yaml} (100%)
 create mode 100644 Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml
 create mode 100644 Documentation/devicetree/bindings/media/i2c/sony,imx290.yaml

--
2.27.0


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

* [PATCH 1/8] dt-bindings: media: ov5640: Convert to json-schema
  2020-07-15 14:09 [PATCH 0/8] dt-bindings: media: i2c: Convert to json-schema Jacopo Mondi
@ 2020-07-15 14:09 ` Jacopo Mondi
  2020-07-15 17:04   ` Steve Longerbeam
                     ` (2 more replies)
  2020-07-15 14:09 ` [PATCH 2/8] dt-bindings: media: ov5645: " Jacopo Mondi
                   ` (7 subsequent siblings)
  8 siblings, 3 replies; 18+ messages in thread
From: Jacopo Mondi @ 2020-07-15 14:09 UTC (permalink / raw)
  To: robh+dt, devicetree, linux-media
  Cc: Jacopo Mondi, mchehab, sakari.ailus, hverkuil-cisco,
	laurent.pinchart, linux-renesas-soc, Steve Longerbeam

Convert the ov5640 bindings document to json-schema and update
the MAINTAINERS file accordingly.

Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
---
Hi Steve,
  I've added myself as maintainer in the bindings, with your ack
I would be happy to add myself as maintainer or reviewer for this driver
in MAINTAINERS, as I've recently been looking after this driver, mostly
for the MIPI CSI-2 interface part.

Thanks
  j

---
 .../devicetree/bindings/media/i2c/ov5640.txt  |  92 ---------
 .../devicetree/bindings/media/i2c/ov5640.yaml | 181 ++++++++++++++++++
 MAINTAINERS                                   |   1 +
 3 files changed, 182 insertions(+), 92 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.txt
 create mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.yaml

diff --git a/Documentation/devicetree/bindings/media/i2c/ov5640.txt b/Documentation/devicetree/bindings/media/i2c/ov5640.txt
deleted file mode 100644
index c97c2f2da12d..000000000000
--- a/Documentation/devicetree/bindings/media/i2c/ov5640.txt
+++ /dev/null
@@ -1,92 +0,0 @@
-* Omnivision OV5640 MIPI CSI-2 / parallel sensor
-
-Required Properties:
-- compatible: should be "ovti,ov5640"
-- clocks: reference to the xclk input clock.
-- clock-names: should be "xclk".
-- DOVDD-supply: Digital I/O voltage supply, 1.8 volts
-- AVDD-supply: Analog voltage supply, 2.8 volts
-- DVDD-supply: Digital core voltage supply, 1.5 volts
-
-Optional Properties:
-- reset-gpios: reference to the GPIO connected to the reset pin, if any.
-	       This is an active low signal to the OV5640.
-- powerdown-gpios: reference to the GPIO connected to the powerdown pin,
-		   if any. This is an active high signal to the OV5640.
-- rotation: as defined in
-	    Documentation/devicetree/bindings/media/video-interfaces.txt,
-	    valid values are 0 (sensor mounted upright) and 180 (sensor
-	    mounted upside down).
-
-The device node must contain one 'port' child node for its digital output
-video port, in accordance with the video interface bindings defined in
-Documentation/devicetree/bindings/media/video-interfaces.txt.
-
-OV5640 can be connected to a MIPI CSI-2 bus or a parallel bus endpoint.
-
-Endpoint node required properties for CSI-2 connection are:
-- remote-endpoint: a phandle to the bus receiver's endpoint node.
-- clock-lanes: should be set to <0> (clock lane on hardware lane 0)
-- data-lanes: should be set to <1> or <1 2> (one or two CSI-2 lanes supported)
-
-Endpoint node required properties for parallel connection are:
-- remote-endpoint: a phandle to the bus receiver's endpoint node.
-- bus-width: shall be set to <8> for 8 bits parallel bus
-	     or <10> for 10 bits parallel bus
-- data-shift: shall be set to <2> for 8 bits parallel bus
-	      (lines 9:2 are used) or <0> for 10 bits parallel bus
-- hsync-active: active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
-- vsync-active: active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
-- pclk-sample: sample data on rising (1) or falling (0) edge of the pixel clock
-	       signal.
-
-Examples:
-
-&i2c1 {
-	ov5640: camera@3c {
-		compatible = "ovti,ov5640";
-		pinctrl-names = "default";
-		pinctrl-0 = <&pinctrl_ov5640>;
-		reg = <0x3c>;
-		clocks = <&clks IMX6QDL_CLK_CKO>;
-		clock-names = "xclk";
-		DOVDD-supply = <&vgen4_reg>; /* 1.8v */
-		AVDD-supply = <&vgen3_reg>;  /* 2.8v */
-		DVDD-supply = <&vgen2_reg>;  /* 1.5v */
-		powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
-		reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
-		rotation = <180>;
-
-		port {
-			/* MIPI CSI-2 bus endpoint */
-			ov5640_to_mipi_csi2: endpoint {
-				remote-endpoint = <&mipi_csi2_from_ov5640>;
-				clock-lanes = <0>;
-				data-lanes = <1 2>;
-			};
-		};
-	};
-};
-
-&i2c1 {
-	ov5640: camera@3c {
-		compatible = "ovti,ov5640";
-		pinctrl-names = "default";
-		pinctrl-0 = <&pinctrl_ov5640>;
-		reg = <0x3c>;
-		clocks = <&clk_ext_camera>;
-		clock-names = "xclk";
-
-		port {
-			/* Parallel bus endpoint */
-			ov5640_to_parallel: endpoint {
-				remote-endpoint = <&parallel_from_ov5640>;
-				bus-width = <8>;
-				data-shift = <2>; /* lines 9:2 are used */
-				hsync-active = <0>;
-				vsync-active = <0>;
-				pclk-sample = <1>;
-			};
-		};
-	};
-};
diff --git a/Documentation/devicetree/bindings/media/i2c/ov5640.yaml b/Documentation/devicetree/bindings/media/i2c/ov5640.yaml
new file mode 100644
index 000000000000..9c32262a3621
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/ov5640.yaml
@@ -0,0 +1,181 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/ov5640.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Omnivision OV5640 MIPI CSI-2 / parallel sensor
+
+maintainers:
+  - Steve Longerbeam <slongerbeam@gmail.com>
+  - Jacopo Mondi <jacopo@jmondi.org>
+
+description: -|
+  OV5640 is a 5 megapixels image sensor capable of producing images in RBG, RAW,
+  YUV and compressed formats. It features a MIPI CSI-2 and a parallel data
+  interface and an I2C-compatible (CCI) control interface.
+
+properties:
+  compatible:
+    const: ovti,ov5640
+
+  reg:
+    description: I2C device address
+    maxItems: 1
+
+  clocks:
+    description: Reference to the xclk input clock.
+    maxItems: 1
+
+  clock-names:
+    description: Should be "xclk".
+    maxItems: 1
+
+  DOVDD-supply:
+    description: Digital I/O voltage supply, 1.8 volts.
+    maxItems: 1
+
+  AVDD-supply:
+    description: Analog voltage supply, 2.8 volts.
+    maxItems: 1
+
+  DVDD-supply:
+    description: Digital core voltage supply.
+    maxItems: 1
+
+  reset-gpios:
+    description: |
+      Reference to the GPIO connected to the reset pin, if any. This is an
+      active low signal to the OV5640.
+    maxItems: 1
+
+  powerdown-gpios:
+    description: |
+      Reference tot he GPIO connected to the powerdown pin, if any. This is an
+      active high signal to the OV5640.
+    maxItems: 1
+
+  rotation:
+    description: |
+      As defined in Documentation/devicetree/bindings/media/video-interfaces.txt,
+      valid values are 0 (sensor mounted upright) and 180 (sensor mounted upside
+      down).
+
+  port:
+    type: object
+    description: |
+      The device node must contain one 'port' child node for its digital output
+      video port, in accordance with the video interface bindings defined in
+      Documentation/devicetree/bindings/media/video-interfaces.txt.
+
+      OV5640 can be connected to a MIPI CSI-2 bus or a parallel bus endpoint.
+
+    properties:
+      endpoint:
+        type: object
+        properties:
+          remote-endpoint:
+            description: A phandle to the bus receiver's endpoint node.
+
+          clock-lanes:
+            description: Should be set to 0 (clock lane on hardware lane 0).
+
+          data-lanes:
+            description: |
+              Should be set to <1> or <1 2> (one or two CSI-2 lanes supported).
+
+          bus-width:
+            description: |
+              Shall be set to <8> for 8 bits parallel bus or <10> for 10 bits
+              parallel bus.
+
+          data-shift:
+            description: |
+              Shall be set to <2> for 8 bits parallel bus (lines 9:2 are used) or
+              <0> for 10 bits parallel bus.
+
+          hsync-active:
+            description: |
+              Active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
+
+          vsync-active:
+            description: |
+              Active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
+
+          pclk-sample:
+            description: |
+              Sample data on rising (1) or falling (0) edge of the pixel clock
+              signal.
+
+        required:
+          - remote-endpoint
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - DOVDD-supply
+  - AVDD-supply
+  - DVDD-supply
+  - port
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/clock/imx6qdl-clock.h>
+
+    i2c0 {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        camera@3c {
+            compatible = "ovti,ov5640";
+            reg = <0x3c>;
+            clocks = <&clks IMX6QDL_CLK_CKO>;
+            clock-names = "xclk";
+            DOVDD-supply = <&vgen4_reg>; /* 1.8v */
+            AVDD-supply = <&vgen3_reg>;  /* 2.8v */
+            DVDD-supply = <&vgen2_reg>;  /* 1.5v */
+            powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
+            reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
+            rotation = <180>;
+
+            port {
+                ov5640_to_mipi_csi2: endpoint {
+                    remote-endpoint = <&mipi_csi2_from_ov5640>;
+                    clock-lanes = <0>;
+                    data-lanes = <1 2>;
+                };
+            };
+        };
+    };
+
+    i2c1 {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        camera@3c {
+            compatible = "ovti,ov5640";
+            reg = <0x3c>;
+            clocks = <&clks IMX6QDL_CLK_CKO>;
+            clock-names = "xclk";
+            DOVDD-supply = <&vgen4_reg>; /* 1.8v */
+            AVDD-supply = <&vgen3_reg>;  /* 2.8v */
+            DVDD-supply = <&vgen2_reg>;  /* 1.5v */
+            powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
+            reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
+            rotation = <180>;
+
+            port {
+                ov5640_to_parallel: endpoint {
+                    remote-endpoint = <&parallel_from_ov5640>;
+                    bus-width = <8>;
+                };
+            };
+        };
+    };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index c74d25c58e1a..0160d7567ed3 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -12605,6 +12605,7 @@ L:	linux-media@vger.kernel.org
 S:	Maintained
 T:	git git://linuxtv.org/media_tree.git
 F:	drivers/media/i2c/ov5640.c
+F:	Documentation/devicetree/bindings/media/i2c/ov5640.yaml

 OMNIVISION OV5647 SENSOR DRIVER
 M:	Jacopo Mondi <jacopo@jmondi.org>
--
2.27.0


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

* [PATCH 2/8] dt-bindings: media: ov5645: Convert to json-schema
  2020-07-15 14:09 [PATCH 0/8] dt-bindings: media: i2c: Convert to json-schema Jacopo Mondi
  2020-07-15 14:09 ` [PATCH 1/8] dt-bindings: media: ov5640: " Jacopo Mondi
@ 2020-07-15 14:09 ` Jacopo Mondi
  2020-07-15 15:31   ` Manivannan Sadhasivam
  2020-07-15 14:09 ` [PATCH 3/8] dt-bindings: media: mt9v111: " Jacopo Mondi
                   ` (6 subsequent siblings)
  8 siblings, 1 reply; 18+ messages in thread
From: Jacopo Mondi @ 2020-07-15 14:09 UTC (permalink / raw)
  To: robh+dt, devicetree, linux-media
  Cc: Jacopo Mondi, mchehab, sakari.ailus, hverkuil-cisco,
	laurent.pinchart, linux-renesas-soc, Todor Tomov,
	Manivannan Sadhasivam

Convert the ov5645 bindings document to json-schema and update
the MAINTAINERS file accordingly, as the entry was not documented.

Add myself as maintainer for odd fixes only, as I don't have the
sensor to test with.

Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
---

Hello Todor, Manivannan
   I've added in this patch an entry for ov5645 in the MAINTAINERS
file, and I've added myself as maintainers for Odd Fixes only.

As you seem to be the author and committers of this bindings respectively,
would you be interested in maintaining this driver ?

---
 .../devicetree/bindings/media/i2c/ov5645.txt  |  54 --------
 .../devicetree/bindings/media/i2c/ov5645.yaml | 123 ++++++++++++++++++
 MAINTAINERS                                   |   8 ++
 3 files changed, 131 insertions(+), 54 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov5645.txt
 create mode 100644 Documentation/devicetree/bindings/media/i2c/ov5645.yaml

diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.txt b/Documentation/devicetree/bindings/media/i2c/ov5645.txt
deleted file mode 100644
index 72ad992f77be..000000000000
--- a/Documentation/devicetree/bindings/media/i2c/ov5645.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-* Omnivision 1/4-Inch 5Mp CMOS Digital Image Sensor
-
-The Omnivision OV5645 is a 1/4-Inch CMOS active pixel digital image sensor with
-an active array size of 2592H x 1944V. It is programmable through a serial I2C
-interface.
-
-Required Properties:
-- compatible: Value should be "ovti,ov5645".
-- clocks: Reference to the xclk clock.
-- clock-names: Should be "xclk".
-- clock-frequency: Frequency of the xclk clock.
-- enable-gpios: Chip enable GPIO. Polarity is GPIO_ACTIVE_HIGH. This corresponds
-  to the hardware pin PWDNB which is physically active low.
-- reset-gpios: Chip reset GPIO. Polarity is GPIO_ACTIVE_LOW. This corresponds to
-  the hardware pin RESETB.
-- vdddo-supply: Chip digital IO regulator.
-- vdda-supply: Chip analog regulator.
-- vddd-supply: Chip digital core regulator.
-
-The device node must contain one 'port' child node for its digital output
-video port, in accordance with the video interface bindings defined in
-Documentation/devicetree/bindings/media/video-interfaces.txt.
-
-Example:
-
-	&i2c1 {
-		...
-
-		ov5645: ov5645@3c {
-			compatible = "ovti,ov5645";
-			reg = <0x3c>;
-
-			enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
-			reset-gpios = <&gpio5 20 GPIO_ACTIVE_LOW>;
-			pinctrl-names = "default";
-			pinctrl-0 = <&camera_rear_default>;
-
-			clocks = <&clks 200>;
-			clock-names = "xclk";
-			clock-frequency = <24000000>;
-
-			vdddo-supply = <&camera_dovdd_1v8>;
-			vdda-supply = <&camera_avdd_2v8>;
-			vddd-supply = <&camera_dvdd_1v2>;
-
-			port {
-				ov5645_ep: endpoint {
-					clock-lanes = <1>;
-					data-lanes = <0 2>;
-					remote-endpoint = <&csi0_ep>;
-				};
-			};
-		};
-	};
diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.yaml b/Documentation/devicetree/bindings/media/i2c/ov5645.yaml
new file mode 100644
index 000000000000..ff52d0fffb74
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/ov5645.yaml
@@ -0,0 +1,123 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/ov5645.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Omnivision OV5645 1/4 Inch 5Mp CMOS Digital Image Sensor
+
+maintainers:
+  - Jacopo Mondi <jacopo@jmondi.org>
+
+description: -|
+  The Omnivision OV5645 is a 1/4-Inch CMOS active pixel digital image sensor
+  with an active array size of 2592H x 1944V. It is programmable through a
+  serial I2C interface.
+
+properties:
+  compatible:
+    const: ovti,ov5645
+
+  reg:
+    description: I2C device address
+    maxItems: 1
+
+  clocks:
+    description: Reference to the xclk clock.
+    maxItems: 1
+
+  clock-names:
+    description: Should be "xclk".
+    maxItems: 1
+
+  clock-frequency:
+    description: Frequency of the xclk clock.
+
+  enable-gpios:
+    description: |
+      Chip enable GPIO. Polarity is GPIO_ACTIVE_HIGH. This corresponds
+      to the hardware pin PWDNB which is physically active low.
+    maxItems: 1
+
+  reset-gpios:
+    description: |
+      Chip reset GPIO. Polarity is GPIO_ACTIVE_LOW. This corresponds to
+      the hardware pin RESETB.
+    maxItems: 1
+
+  vdddo-supply:
+    description: Chip digital IO regulator.
+    maxItems: 1
+
+  vdda-supply:
+    description: Chip analog regulator.
+    maxItems: 1
+
+  vddd-supply:
+    description: Chip digital core regulator.
+    maxItems: 1
+
+  port:
+    type: object
+    description: |
+      The device node must contain one 'port' child node for its digital output
+      video port, in accordance with the video interface bindings defined in
+      Documentation/devicetree/bindings/media/video-interfaces.txt.
+
+    properties:
+      endpoint:
+        type: object
+        properties:
+          remote-endpoint:
+            description: A phandle to the bus receiver's endpoint node.
+
+        required:
+          - remote-endpoint
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - clock-frequency
+  - vdddo-supply
+  - vdda-supply
+  - vddd-supply
+  - port
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c0 {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        camera@3c {
+            compatible = "ovti,ov5645";
+            reg = <0x3c>;
+
+            enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+            reset-gpios = <&gpio5 20 GPIO_ACTIVE_LOW>;
+
+            clocks = <&clks 200>;
+            clock-names = "xclk";
+            clock-frequency = <24000000>;
+
+            vdddo-supply = <&camera_dovdd_1v8>;
+            vdda-supply = <&camera_avdd_2v8>;
+            vddd-supply = <&camera_dvdd_1v2>;
+
+            port {
+                ov5645_ep: endpoint {
+                    clock-lanes = <1>;
+                    data-lanes = <0 2>;
+                    remote-endpoint = <&csi0_ep>;
+                };
+            };
+        };
+    };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 0160d7567ed3..bf8902ebbe30 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -12607,6 +12607,14 @@ T:	git git://linuxtv.org/media_tree.git
 F:	drivers/media/i2c/ov5640.c
 F:	Documentation/devicetree/bindings/media/i2c/ov5640.yaml

+OMNIVISION OV5645 SENSOR DRIVER
+M:	Jacopo Mondi <jacopo@jmondi.org>
+L:	linux-media@vger.kernel.org
+S:	Odd Fixes
+T:	git git://linuxtv.org/media_tree.git
+F:	drivers/media/i2c/ov5645.c
+F:	Documentation/devicetree/bindings/media/i2c/ov5645.yaml
+
 OMNIVISION OV5647 SENSOR DRIVER
 M:	Jacopo Mondi <jacopo@jmondi.org>
 M:	Dave Stevenson <dave.stevenson@raspberrypi.com>
--
2.27.0


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

* [PATCH 3/8] dt-bindings: media: mt9v111: Convert to json-schema
  2020-07-15 14:09 [PATCH 0/8] dt-bindings: media: i2c: Convert to json-schema Jacopo Mondi
  2020-07-15 14:09 ` [PATCH 1/8] dt-bindings: media: ov5640: " Jacopo Mondi
  2020-07-15 14:09 ` [PATCH 2/8] dt-bindings: media: ov5645: " Jacopo Mondi
@ 2020-07-15 14:09 ` Jacopo Mondi
  2020-07-15 14:09 ` [PATCH 4/8] dt-bindings: media: imx290: " Jacopo Mondi
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Jacopo Mondi @ 2020-07-15 14:09 UTC (permalink / raw)
  To: robh+dt, devicetree, linux-media
  Cc: Jacopo Mondi, mchehab, sakari.ailus, hverkuil-cisco,
	laurent.pinchart, linux-renesas-soc

Convert the mt9v111 bindings document to json-schema and update
the MAINTAINERS file accordingly.

Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
---
 .../bindings/media/i2c/aptina,mt9v111.txt     | 46 ----------
 .../bindings/media/i2c/aptina,mt9v111.yaml    | 87 +++++++++++++++++++
 MAINTAINERS                                   |  2 +-
 3 files changed, 88 insertions(+), 47 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.txt
 create mode 100644 Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml

diff --git a/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.txt b/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.txt
deleted file mode 100644
index bd896e9f67d1..000000000000
--- a/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-* Aptina MT9V111 CMOS sensor
-----------------------------
-
-The Aptina MT9V111 is a 1/4-Inch VGA-format digital image sensor with a core
-based on Aptina MT9V011 sensor and an integrated Image Flow Processor (IFP).
-
-The sensor has an active pixel array of 640x480 pixels and can output a number
-of image resolution and formats controllable through a simple two-wires
-interface.
-
-Required properties:
---------------------
-
-- compatible: shall be "aptina,mt9v111".
-- clocks: reference to the system clock input provider.
-
-Optional properties:
---------------------
-
-- enable-gpios: output enable signal, pin name "OE#". Active low.
-- standby-gpios: low power state control signal, pin name "STANDBY".
-  Active high.
-- reset-gpios: chip reset signal, pin name "RESET#". Active low.
-
-The device node must contain one 'port' child node with one 'endpoint' child
-sub-node for its digital output video port, in accordance with the video
-interface bindings defined in:
-Documentation/devicetree/bindings/media/video-interfaces.txt
-
-Example:
---------
-
-        &i2c1 {
-                camera@48 {
-                        compatible = "aptina,mt9v111";
-                        reg = <0x48>;
-
-                        clocks = <&camera_clk>;
-
-                        port {
-                                mt9v111_out: endpoint {
-                                        remote-endpoint = <&ceu_in>;
-                                };
-                        };
-                };
-        };
diff --git a/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml b/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml
new file mode 100644
index 000000000000..c8c86d959d50
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml
@@ -0,0 +1,87 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/aptina,mt9v111.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Aptina MT9V111 CMOS sensor
+
+maintainers:
+  - Jacopo Mondi <jacopo@jmondi.org>
+
+description: -|
+  The Aptina MT9V111 is a 1/4-Inch VGA-format digital image sensor with a core
+  based on Aptina MT9V011 sensor and an integrated Image Flow Processor (IFP).
+
+  The sensor has an active pixel array of 640x480 pixels and can output a number
+  of image resolution and formats controllable through a simple two-wires
+  interface.
+
+properties:
+  compatible:
+    const: aptina,mt9v111
+
+  reg:
+    description: I2C device address
+    maxItems: 1
+
+  clocks:
+    description: Reference to the system clock provider.
+    maxItems: 1
+
+  enable-gpios:
+    description: Enable signal, pin name "OE#". Active low.
+    maxItems: 1
+
+  standby-gpios:
+    description: Low power state control signal, pin name "STANBY". Active high.
+    maxItems: 1
+
+  reset-gpios:
+    description: Chip reset signal, pin name "RESET#". Active low.
+    maxItems: 1
+
+  port:
+    type: object
+    description: |
+      The device node must contain one 'port' child node for its digital output
+      video port, in accordance with the video interface bindings defined in
+      Documentation/devicetree/bindings/media/video-interfaces.txt.
+
+    properties:
+      endpoint:
+        type: object
+        properties:
+          remote-endpoint:
+            description: A phandle to the bus receiver's endpoint node.
+        required:
+          - remote-endpoint
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - port
+
+examples:
+  - |
+    i2c0 {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        camera@48 {
+            compatible = "aptina,mt9v111";
+            reg = <0x48>;
+            clocks = <&camera_clk>;
+
+            port {
+                mt9v111_out: endpoint {
+                    remote-endpoint = <&ceu_in>;
+                };
+            };
+        };
+    };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index bf8902ebbe30..895fff95fd32 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -11670,7 +11670,7 @@ M:	Jacopo Mondi <jacopo@jmondi.org>
 L:	linux-media@vger.kernel.org
 S:	Maintained
 T:	git git://linuxtv.org/media_tree.git
-F:	Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.txt
+F:	Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml
 F:	drivers/media/i2c/mt9v111.c
 
 MULTIFUNCTION DEVICES (MFD)
-- 
2.27.0


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

* [PATCH 4/8] dt-bindings: media: imx290: Convert to json-schema
  2020-07-15 14:09 [PATCH 0/8] dt-bindings: media: i2c: Convert to json-schema Jacopo Mondi
                   ` (2 preceding siblings ...)
  2020-07-15 14:09 ` [PATCH 3/8] dt-bindings: media: mt9v111: " Jacopo Mondi
@ 2020-07-15 14:09 ` Jacopo Mondi
  2020-07-15 14:09 ` [PATCH 5/8] dt-bindings: media: imx274: " Jacopo Mondi
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Jacopo Mondi @ 2020-07-15 14:09 UTC (permalink / raw)
  To: robh+dt, devicetree, linux-media
  Cc: Jacopo Mondi, mchehab, sakari.ailus, hverkuil-cisco,
	laurent.pinchart, linux-renesas-soc, Manivannan Sadhasivam

Convert the imx290 bindings document to json-schema and update
the MAINTAINERS file accordingly.

Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
---
 .../devicetree/bindings/media/i2c/imx290.txt  |  57 --------
 .../devicetree/bindings/media/i2c/imx290.yaml | 124 ++++++++++++++++++
 MAINTAINERS                                   |   2 +-
 3 files changed, 125 insertions(+), 58 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/media/i2c/imx290.txt
 create mode 100644 Documentation/devicetree/bindings/media/i2c/imx290.yaml

diff --git a/Documentation/devicetree/bindings/media/i2c/imx290.txt b/Documentation/devicetree/bindings/media/i2c/imx290.txt
deleted file mode 100644
index a3cc21410f7c..000000000000
--- a/Documentation/devicetree/bindings/media/i2c/imx290.txt
+++ /dev/null
@@ -1,57 +0,0 @@
-* Sony IMX290 1/2.8-Inch CMOS Image Sensor
-
-The Sony IMX290 is a 1/2.8-Inch CMOS Solid-state image sensor with
-Square Pixel for Color Cameras. It is programmable through I2C and 4-wire
-interfaces. The sensor output is available via CMOS logic parallel SDR output,
-Low voltage LVDS DDR output and CSI-2 serial data output. The CSI-2 bus is the
-default. No bindings have been defined for the other busses.
-
-Required Properties:
-- compatible: Should be "sony,imx290"
-- reg: I2C bus address of the device
-- clocks: Reference to the xclk clock.
-- clock-names: Should be "xclk".
-- clock-frequency: Frequency of the xclk clock in Hz.
-- vdddo-supply: Sensor digital IO regulator.
-- vdda-supply: Sensor analog regulator.
-- vddd-supply: Sensor digital core regulator.
-
-Optional Properties:
-- reset-gpios: Sensor reset GPIO
-
-The imx290 device node should contain one 'port' child node with
-an 'endpoint' subnode. For further reading on port node refer to
-Documentation/devicetree/bindings/media/video-interfaces.txt.
-
-Required Properties on endpoint:
-- data-lanes: check ../video-interfaces.txt
-- link-frequencies: check ../video-interfaces.txt
-- remote-endpoint: check ../video-interfaces.txt
-
-Example:
-	&i2c1 {
-		...
-		imx290: camera-sensor@1a {
-			compatible = "sony,imx290";
-			reg = <0x1a>;
-
-			reset-gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;
-			pinctrl-names = "default";
-			pinctrl-0 = <&camera_rear_default>;
-
-			clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
-			clock-names = "xclk";
-			clock-frequency = <37125000>;
-
-			vdddo-supply = <&camera_vdddo_1v8>;
-			vdda-supply = <&camera_vdda_2v8>;
-			vddd-supply = <&camera_vddd_1v5>;
-
-			port {
-				imx290_ep: endpoint {
-					data-lanes = <1 2 3 4>;
-					link-frequencies = /bits/ 64 <445500000>;
-					remote-endpoint = <&csiphy0_ep>;
-				};
-			};
-		};
diff --git a/Documentation/devicetree/bindings/media/i2c/imx290.yaml b/Documentation/devicetree/bindings/media/i2c/imx290.yaml
new file mode 100644
index 000000000000..f40e349d4b70
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/imx290.yaml
@@ -0,0 +1,124 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/imx290.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sony IMX290 1/2.8-Inch CMOS Image Sensor
+
+maintainers:
+  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
+
+description: -|
+  The Sony IMX290 is a 1/2.8-Inch CMOS Solid-state image sensor with
+  Square Pixel for Color Cameras. It is programmable through I2C and 4-wire
+  interfaces. The sensor output is available via CMOS logic parallel SDR output,
+  Low voltage LVDS DDR output and CSI-2 serial data output. The CSI-2 bus is the
+  default. No bindings have been defined for the other busses.
+
+properties:
+  compatible:
+    const: sony,imx290
+
+  reg:
+    description: I2C device address
+    maxItems: 1
+
+  clocks:
+    description: Reference to the xclk clock.
+    maxItems: 1
+
+  clock-names:
+    description: Should be "xclk".
+    maxItems: 1
+
+  clock-frequency:
+    description: Frequency of the xclk clock in Hz.
+
+  reset-gpios:
+    description: Sensor reset GPIO.
+    maxItems: 1
+
+  vdddo-supply:
+    description: Sensor digital IO regulator.
+    maxItems: 1
+
+  vdda-supply:
+    description: Sensor analog regulator.
+    maxItems: 1
+
+  vddd-supply:
+    description: Sensor digital core regulator.
+    maxItems: 1
+
+  port:
+    type: object
+    description: |
+      The device node must contain one 'port' child node for its digital output
+      video port, in accordance with the video interface bindings defined in
+      Documentation/devicetree/bindings/media/video-interfaces.txt.
+
+    properties:
+      endpoint:
+        type: object
+        properties:
+          remote-endpoint:
+            description: check ../video-interfaces.txt
+
+          data-lanes:
+            description: check ../video-interfaces.txt
+
+          link-frequencies:
+            description: check ../video-interfaces.txt
+
+        required:
+          - remote-endpoint
+          - data-lanes
+          - link-frequencies
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - clock-frequency
+  - vdddo-supply
+  - vdda-supply
+  - vddd-supply
+  - port
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c0 {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        imx290: camera-sensor@1a {
+            compatible = "sony,imx290";
+            reg = <0x1a>;
+
+            reset-gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;
+
+            clocks = <&camera_clk>;
+            clock-names = "xclk";
+            clock-frequency = <37125000>;
+
+            vdddo-supply = <&camera_vdddo_1v8>;
+            vdda-supply = <&camera_vdda_2v8>;
+            vddd-supply = <&camera_vddd_1v5>;
+
+            port {
+                imx290_ep: endpoint {
+                    data-lanes = <1 2 3 4>;
+                    link-frequencies = /bits/ 64 <445500000>;
+                    remote-endpoint = <&csiphy0_ep>;
+                };
+            };
+        };
+    };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 895fff95fd32..8f9b94aaea84 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -15930,7 +15930,7 @@ M:	Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
 L:	linux-media@vger.kernel.org
 S:	Maintained
 T:	git git://linuxtv.org/media_tree.git
-F:	Documentation/devicetree/bindings/media/i2c/imx290.txt
+F:	Documentation/devicetree/bindings/media/i2c/imx290.yaml
 F:	drivers/media/i2c/imx290.c

 SONY IMX319 SENSOR DRIVER
--
2.27.0


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

* [PATCH 5/8] dt-bindings: media: imx274: Convert to json-schema
  2020-07-15 14:09 [PATCH 0/8] dt-bindings: media: i2c: Convert to json-schema Jacopo Mondi
                   ` (3 preceding siblings ...)
  2020-07-15 14:09 ` [PATCH 4/8] dt-bindings: media: imx290: " Jacopo Mondi
@ 2020-07-15 14:09 ` Jacopo Mondi
  2020-07-15 14:09 ` [PATCH 6/8] dt-bindings: media: imx214: " Jacopo Mondi
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Jacopo Mondi @ 2020-07-15 14:09 UTC (permalink / raw)
  To: robh+dt, devicetree, linux-media
  Cc: Jacopo Mondi, mchehab, sakari.ailus, hverkuil-cisco,
	laurent.pinchart, linux-renesas-soc, Leon Luo

Convert the imx274 bindings document to json-schema and update
the MAINTAINERS file accordingly.

Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
---
 .../devicetree/bindings/media/i2c/imx274.txt  | 33 ---------
 .../devicetree/bindings/media/i2c/imx274.yaml | 74 +++++++++++++++++++
 MAINTAINERS                                   |  2 +-
 3 files changed, 75 insertions(+), 34 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/media/i2c/imx274.txt
 create mode 100644 Documentation/devicetree/bindings/media/i2c/imx274.yaml

diff --git a/Documentation/devicetree/bindings/media/i2c/imx274.txt b/Documentation/devicetree/bindings/media/i2c/imx274.txt
deleted file mode 100644
index 80f2e89568e1..000000000000
--- a/Documentation/devicetree/bindings/media/i2c/imx274.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-* Sony 1/2.5-Inch 8.51Mp CMOS Digital Image Sensor
-
-The Sony imx274 is a 1/2.5-inch CMOS active pixel digital image sensor with
-an active array size of 3864H x 2202V. It is programmable through I2C
-interface. The I2C address is fixed to 0x1a as per sensor data sheet.
-Image data is sent through MIPI CSI-2, which is configured as 4 lanes
-at 1440 Mbps.
-
-
-Required Properties:
-- compatible: value should be "sony,imx274" for imx274 sensor
-- reg: I2C bus address of the device
-
-Optional Properties:
-- reset-gpios: Sensor reset GPIO
-
-The imx274 device node should contain one 'port' child node with
-an 'endpoint' subnode. For further reading on port node refer to
-Documentation/devicetree/bindings/media/video-interfaces.txt.
-
-Example:
-	sensor@1a {
-		compatible = "sony,imx274";
-		reg = <0x1a>;
-		#address-cells = <1>;
-		#size-cells = <0>;
-		reset-gpios = <&gpio_sensor 0 0>;
-		port {
-			sensor_out: endpoint {
-				remote-endpoint = <&csiss_in>;
-			};
-		};
-	};
diff --git a/Documentation/devicetree/bindings/media/i2c/imx274.yaml b/Documentation/devicetree/bindings/media/i2c/imx274.yaml
new file mode 100644
index 000000000000..acbc5690cad0
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/imx274.yaml
@@ -0,0 +1,74 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/imx274.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sony 1/2.5-Inch 8.51Mp CMOS Digital Image Sensor
+
+maintainers:
+  - Leon Luo <leonl@leopardimaging.com>
+
+description: -|
+  The Sony imx274 is a 1/2.5-inch CMOS active pixel digital image sensor with
+  an active array size of 3864H x 2202V. It is programmable through I2C
+  interface. The I2C address is fixed to 0x1a as per sensor data sheet.
+  Image data is sent through MIPI CSI-2, which is configured as 4 lanes
+  at 1440 Mbps.
+
+properties:
+  compatible:
+    const: sony,imx274
+
+  reg:
+    description: I2C device address
+    maxItems: 1
+
+  reset-gpios:
+    description: Sensor reset GPIO.
+    maxItems: 1
+
+  port:
+    type: object
+    description: |
+      The device node must contain one 'port' child node for its digital output
+      video port, in accordance with the video interface bindings defined in
+      Documentation/devicetree/bindings/media/video-interfaces.txt.
+
+    properties:
+      endpoint:
+        type: object
+        properties:
+          remote-endpoint:
+            description: A phandle to the bus receiver's endpoint node.
+
+        required:
+          - remote-endpoint
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - port
+
+examples:
+  - |
+    i2c0 {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        imx274: camera-sensor@1a {
+            compatible = "sony,imx274";
+            reg = <0x1a>;
+            reset-gpios = <&gpio_sensor 0 0>;
+
+            port {
+                sensor_out: endpoint {
+                    remote-endpoint = <&csiss_in>;
+                };
+            };
+        };
+    };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 8f9b94aaea84..a30f08ddaead 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -15922,7 +15922,7 @@ M:	Leon Luo <leonl@leopardimaging.com>
 L:	linux-media@vger.kernel.org
 S:	Maintained
 T:	git git://linuxtv.org/media_tree.git
-F:	Documentation/devicetree/bindings/media/i2c/imx274.txt
+F:	Documentation/devicetree/bindings/media/i2c/imx274.yaml
 F:	drivers/media/i2c/imx274.c

 SONY IMX290 SENSOR DRIVER
--
2.27.0


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

* [PATCH 6/8] dt-bindings: media: imx214: Convert to json-schema
  2020-07-15 14:09 [PATCH 0/8] dt-bindings: media: i2c: Convert to json-schema Jacopo Mondi
                   ` (4 preceding siblings ...)
  2020-07-15 14:09 ` [PATCH 5/8] dt-bindings: media: imx274: " Jacopo Mondi
@ 2020-07-15 14:09 ` Jacopo Mondi
  2020-07-15 14:09 ` [PATCH 7/8] dt-bindings: media: ov772x: " Jacopo Mondi
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Jacopo Mondi @ 2020-07-15 14:09 UTC (permalink / raw)
  To: robh+dt, devicetree, linux-media
  Cc: Jacopo Mondi, mchehab, sakari.ailus, hverkuil-cisco,
	laurent.pinchart, linux-renesas-soc, Ricardo Ribalda

Convert the imx214 bindings document to json-schema and update
the MAINTAINERS file accordingly.

Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
---
 .../bindings/media/i2c/sony,imx214.txt        |  53 --------
 .../bindings/media/i2c/sony,imx214.yaml       | 124 ++++++++++++++++++
 MAINTAINERS                                   |   2 +-
 3 files changed, 125 insertions(+), 54 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/media/i2c/sony,imx214.txt
 create mode 100644 Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml

diff --git a/Documentation/devicetree/bindings/media/i2c/sony,imx214.txt b/Documentation/devicetree/bindings/media/i2c/sony,imx214.txt
deleted file mode 100644
index f11f28a5fda4..000000000000
--- a/Documentation/devicetree/bindings/media/i2c/sony,imx214.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-* Sony 1/3.06-Inch 13.13Mp CMOS Digital Image Sensor
-
-The Sony imx214 is a 1/3.06-inch CMOS active pixel digital image sensor with
-an active array size of 4224H x 3200V. It is programmable through an I2C
-interface.
-Image data is sent through MIPI CSI-2, through 2 or 4 lanes at a maximum
-throughput of 1.2Gbps/lane.
-
-
-Required Properties:
-- compatible: Shall be "sony,imx214".
-- reg: I2C bus address of the device. Depending on how the sensor is wired,
-       it shall be <0x10> or <0x1a>;
-- enable-gpios: GPIO descriptor for the enable pin.
-- vdddo-supply: Chip digital IO regulator (1.8V).
-- vdda-supply: Chip analog regulator (2.7V).
-- vddd-supply: Chip digital core regulator (1.12V).
-- clocks: Reference to the xclk clock.
-- clock-frequency: Frequency of the xclk clock.
-
-Optional Properties:
-- flash-leds: See ../video-interfaces.txt
-- lens-focus: See ../video-interfaces.txt
-
-The imx214 device node shall contain one 'port' child node with
-an 'endpoint' subnode. For further reading on port node refer to
-Documentation/devicetree/bindings/media/video-interfaces.txt.
-
-Required Properties on endpoint:
-- data-lanes: check ../video-interfaces.txt
-- link-frequencies: check ../video-interfaces.txt
-- remote-endpoint: check ../video-interfaces.txt
-
-Example:
-
-	camera-sensor@1a {
-		compatible = "sony,imx214";
-		reg = <0x1a>;
-		vdddo-supply = <&pm8994_lvs1>;
-		vddd-supply = <&camera_vddd_1v12>;
-		vdda-supply = <&pm8994_l17>;
-		lens-focus = <&ad5820>;
-		enable-gpios = <&msmgpio 25 GPIO_ACTIVE_HIGH>;
-		clocks = <&mmcc CAMSS_MCLK0_CLK>;
-		clock-frequency = <24000000>;
-		port {
-			imx214_ep: endpoint {
-				data-lanes = <1 2 3 4>;
-				link-frequencies = /bits/ 64 <480000000>;
-				remote-endpoint = <&csiphy0_ep>;
-			};
-		};
-	};
diff --git a/Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml b/Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml
new file mode 100644
index 000000000000..d3e83139b7c7
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml
@@ -0,0 +1,124 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/sony,imx214.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sony 1/3.06-Inch 13.13Mp CMOS Digital Image Sensor
+
+maintainers:
+  - Ricardo Ribalda <ribalda@kernel.org>
+
+description: -|
+  The Sony imx214 is a 1/3.06-inch CMOS active pixel digital image sensor with
+  an active array size of 4224H x 3200V. It is programmable through an I2C
+  interface.  Image data is sent through MIPI CSI-2, through 2 or 4 lanes at a
+  maximum throughput of 1.2Gbps/lane.
+
+properties:
+  compatible:
+    const: sony,imx214
+
+  reg:
+    description: -|
+      I2C device address. Depending on how the sensor is wired, it shall be
+      <0x10> or <0x1a>
+    maxItems: 1
+
+  clocks:
+    description: Reference to the xclk clock.
+    maxItems: 1
+
+  clock-frequency:
+    description: Frequency of the xclk clock in Hz.
+
+  enable-gpios:
+    description: GPIO descriptor for the enable pin.
+    maxItems: 1
+
+  vdddo-supply:
+    description: Chip digital IO regulator (1.8V).
+    maxItems: 1
+
+  vdda-supply:
+    description: Chip analog regulator (2.7V).
+    maxItems: 1
+
+  vddd-supply:
+    description: Chip digital core regulator (1.12V).
+    maxItems: 1
+
+  flash-leds:
+    description: See ../video-interfaces.txt
+
+  lens-focus:
+    description: See ../video-interfaces.txt
+
+  port:
+    type: object
+    description: |
+      The device node must contain one 'port' child node for its digital output
+      video port, in accordance with the video interface bindings defined in
+      Documentation/devicetree/bindings/media/video-interfaces.txt.
+
+    properties:
+      endpoint:
+        type: object
+        properties:
+          remote-endpoint:
+            description: check ../video-interfaces.txt
+
+          data-lanes:
+            description: check ../video-interfaces.txt
+
+          link-frequencies:
+            description: check ../video-interfaces.txt
+
+        required:
+          - remote-endpoint
+          - data-lanes
+          - link-frequencies
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-frequency
+  - enable-gpios
+  - vdddo-supply
+  - vdda-supply
+  - vddd-supply
+  - port
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c0 {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        camera-sensor@1a {
+            compatible = "sony,imx214";
+            reg = <0x1a>;
+            vdddo-supply = <&pm8994_lvs1>;
+            vddd-supply = <&camera_vddd_1v12>;
+            vdda-supply = <&pm8994_l17>;
+            lens-focus = <&ad5820>;
+            enable-gpios = <&msmgpio 25 GPIO_ACTIVE_HIGH>;
+            clocks = <&camera_clk>;
+            clock-frequency = <24000000>;
+
+            port {
+                imx214_ep: endpoint {
+                    data-lanes = <1 2 3 4>;
+                    link-frequencies = /bits/ 64 <480000000>;
+                    remote-endpoint = <&csiphy0_ep>;
+                };
+            };
+        };
+    };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index a30f08ddaead..efd9cc9c44c9 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -15899,7 +15899,7 @@ M:	Ricardo Ribalda <ribalda@kernel.org>
 L:	linux-media@vger.kernel.org
 S:	Maintained
 T:	git git://linuxtv.org/media_tree.git
-F:	Documentation/devicetree/bindings/media/i2c/sony,imx214.txt
+F:	Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml
 F:	drivers/media/i2c/imx214.c

 SONY IMX219 SENSOR DRIVER
--
2.27.0


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

* [PATCH 7/8] dt-bindings: media: ov772x: Convert to json-schema
  2020-07-15 14:09 [PATCH 0/8] dt-bindings: media: i2c: Convert to json-schema Jacopo Mondi
                   ` (5 preceding siblings ...)
  2020-07-15 14:09 ` [PATCH 6/8] dt-bindings: media: imx214: " Jacopo Mondi
@ 2020-07-15 14:09 ` Jacopo Mondi
  2020-07-15 14:09 ` [PATCH 8/8] dt-bindings: media: i2c: Add prefix to yaml bindings Jacopo Mondi
  2020-08-17 15:12 ` [PATCH 0/8] dt-bindings: media: i2c: Convert to json-schema Jacopo Mondi
  8 siblings, 0 replies; 18+ messages in thread
From: Jacopo Mondi @ 2020-07-15 14:09 UTC (permalink / raw)
  To: robh+dt, devicetree, linux-media
  Cc: Jacopo Mondi, mchehab, sakari.ailus, hverkuil-cisco,
	laurent.pinchart, linux-renesas-soc

Convert the ov772x binding document to json-schema and update
the MAINTAINERS file accordingly.

Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
---
 .../devicetree/bindings/media/i2c/ov772x.txt  | 40 ---------
 .../devicetree/bindings/media/i2c/ov772x.yaml | 89 +++++++++++++++++++
 MAINTAINERS                                   |  2 +-
 3 files changed, 90 insertions(+), 41 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov772x.txt
 create mode 100644 Documentation/devicetree/bindings/media/i2c/ov772x.yaml

diff --git a/Documentation/devicetree/bindings/media/i2c/ov772x.txt b/Documentation/devicetree/bindings/media/i2c/ov772x.txt
deleted file mode 100644
index 0b3ede5b8e6a..000000000000
--- a/Documentation/devicetree/bindings/media/i2c/ov772x.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-* Omnivision OV7720/OV7725 CMOS sensor
-
-The Omnivision OV7720/OV7725 sensor supports multiple resolutions output,
-such as VGA, QVGA, and any size scaling down from CIF to 40x30. It also can
-support the YUV422, RGB565/555/444, GRB422 or raw RGB output formats.
-
-Required Properties:
-- compatible: shall be one of
-	"ovti,ov7720"
-	"ovti,ov7725"
-- clocks: reference to the xclk input clock.
-
-Optional Properties:
-- reset-gpios: reference to the GPIO connected to the RSTB pin which is
-  active low, if any.
-- powerdown-gpios: reference to the GPIO connected to the PWDN pin which is
-  active high, if any.
-
-The device node shall contain one 'port' child node with one child 'endpoint'
-subnode for its digital output video port, in accordance with the video
-interface bindings defined in Documentation/devicetree/bindings/media/
-video-interfaces.txt.
-
-Example:
-
-&i2c0 {
-	ov772x: camera@21 {
-		compatible = "ovti,ov7725";
-		reg = <0x21>;
-		reset-gpios = <&axi_gpio_0 0 GPIO_ACTIVE_LOW>;
-		powerdown-gpios = <&axi_gpio_0 1 GPIO_ACTIVE_LOW>;
-		clocks = <&xclk>;
-
-		port {
-			ov772x_0: endpoint {
-				remote-endpoint = <&vcap1_in0>;
-			};
-		};
-	};
-};
diff --git a/Documentation/devicetree/bindings/media/i2c/ov772x.yaml b/Documentation/devicetree/bindings/media/i2c/ov772x.yaml
new file mode 100644
index 000000000000..cb8d68f807c4
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/ov772x.yaml
@@ -0,0 +1,89 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/ov772x.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title:  Omnivision OV7720/OV7725 CMOS sensor
+
+maintainers:
+  - Jacopo Mondi <jacopo@jmondi.org>
+
+description: -|
+  The Omnivision OV7720/OV7725 sensor supports multiple resolutions output,
+  such as VGA, QVGA, and any size scaling down from CIF to 40x30. It also can
+  support the YUV422, RGB565/555/444, GRB422 or raw RGB output formats.
+
+properties:
+  compatible:
+    oneOf:
+      - const: ovti,ov7720
+      - const: ovti,ov7725
+
+  reg:
+    description: I2C device address
+    maxItems: 1
+
+  clocks:
+    description: Reference to the xclk clock.
+    maxItems: 1
+
+  reset-gpios:
+    description: -|
+      Reference to the GPIO connected to the RSTB pin which is active low.
+    maxItems: 1
+
+  powerdown-gpios:
+    description: -|
+      Reference to the GPIO connected to the PWDN pin which is active high.
+    maxItems: 1
+
+  port:
+    type: object
+    description: |
+      The device node must contain one 'port' child node for its digital output
+      video port, in accordance with the video interface bindings defined in
+      Documentation/devicetree/bindings/media/video-interfaces.txt.
+
+    properties:
+      endpoint:
+        type: object
+        properties:
+          remote-endpoint:
+            description: A phandle to the bus receiver's endpoint node.
+
+        required:
+          - remote-endpoint
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - reset-gpios
+  - powerdown-gpios
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c0 {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        ov772x: camera@21 {
+            compatible = "ovti,ov7725";
+            reg = <0x21>;
+            reset-gpios = <&axi_gpio_0 0 GPIO_ACTIVE_LOW>;
+            powerdown-gpios = <&axi_gpio_0 1 GPIO_ACTIVE_LOW>;
+            clocks = <&xclk>;
+
+            port {
+                ov772x_0: endpoint {
+                    remote-endpoint = <&vcap1_in0>;
+                };
+            };
+        };
+    };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index efd9cc9c44c9..b4670904b014 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -12659,7 +12659,7 @@ M:	Jacopo Mondi <jacopo@jmondi.org>
 L:	linux-media@vger.kernel.org
 S:	Odd fixes
 T:	git git://linuxtv.org/media_tree.git
-F:	Documentation/devicetree/bindings/media/i2c/ov772x.txt
+F:	Documentation/devicetree/bindings/media/i2c/ov772x.yaml
 F:	drivers/media/i2c/ov772x.c
 F:	include/media/i2c/ov772x.h
 
-- 
2.27.0


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

* [PATCH 8/8] dt-bindings: media: i2c: Add prefix to yaml bindings
  2020-07-15 14:09 [PATCH 0/8] dt-bindings: media: i2c: Convert to json-schema Jacopo Mondi
                   ` (6 preceding siblings ...)
  2020-07-15 14:09 ` [PATCH 7/8] dt-bindings: media: ov772x: " Jacopo Mondi
@ 2020-07-15 14:09 ` Jacopo Mondi
  2020-08-17 15:12 ` [PATCH 0/8] dt-bindings: media: i2c: Convert to json-schema Jacopo Mondi
  8 siblings, 0 replies; 18+ messages in thread
From: Jacopo Mondi @ 2020-07-15 14:09 UTC (permalink / raw)
  To: robh+dt, devicetree, linux-media
  Cc: Jacopo Mondi, mchehab, sakari.ailus, hverkuil-cisco,
	laurent.pinchart, linux-renesas-soc

Add the vendor prefixes to the DT bindings converted to json-schema
and update the MAINTAINERS file accordingly.

Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
---
 .../media/i2c/{ov5640.yaml => ovti,ov5640.yaml}  |  0
 .../media/i2c/{ov5645.yaml => ovti,ov5645.yaml}  |  0
 .../media/i2c/{ov5647.yaml => ovti,ov5647.yaml}  |  0
 .../media/i2c/{ov772x.yaml => ovti,ov772x.yaml}  |  0
 .../media/i2c/{ov8856.yaml => ovti,ov8856.yaml}  |  0
 .../media/i2c/{imx219.yaml => sony,imx219.yaml}  |  0
 .../media/i2c/{imx274.yaml => sony,imx274.yaml}  |  0
 .../media/i2c/{imx290.yaml => sony,imx290.yaml}  |  0
 MAINTAINERS                                      | 16 ++++++++--------
 9 files changed, 8 insertions(+), 8 deletions(-)
 rename Documentation/devicetree/bindings/media/i2c/{ov5640.yaml => ovti,ov5640.yaml} (100%)
 rename Documentation/devicetree/bindings/media/i2c/{ov5645.yaml => ovti,ov5645.yaml} (100%)
 rename Documentation/devicetree/bindings/media/i2c/{ov5647.yaml => ovti,ov5647.yaml} (100%)
 rename Documentation/devicetree/bindings/media/i2c/{ov772x.yaml => ovti,ov772x.yaml} (100%)
 rename Documentation/devicetree/bindings/media/i2c/{ov8856.yaml => ovti,ov8856.yaml} (100%)
 rename Documentation/devicetree/bindings/media/i2c/{imx219.yaml => sony,imx219.yaml} (100%)
 rename Documentation/devicetree/bindings/media/i2c/{imx274.yaml => sony,imx274.yaml} (100%)
 rename Documentation/devicetree/bindings/media/i2c/{imx290.yaml => sony,imx290.yaml} (100%)

diff --git a/Documentation/devicetree/bindings/media/i2c/ov5640.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov5640.yaml
similarity index 100%
rename from Documentation/devicetree/bindings/media/i2c/ov5640.yaml
rename to Documentation/devicetree/bindings/media/i2c/ovti,ov5640.yaml
diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov5645.yaml
similarity index 100%
rename from Documentation/devicetree/bindings/media/i2c/ov5645.yaml
rename to Documentation/devicetree/bindings/media/i2c/ovti,ov5645.yaml
diff --git a/Documentation/devicetree/bindings/media/i2c/ov5647.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov5647.yaml
similarity index 100%
rename from Documentation/devicetree/bindings/media/i2c/ov5647.yaml
rename to Documentation/devicetree/bindings/media/i2c/ovti,ov5647.yaml
diff --git a/Documentation/devicetree/bindings/media/i2c/ov772x.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml
similarity index 100%
rename from Documentation/devicetree/bindings/media/i2c/ov772x.yaml
rename to Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml
diff --git a/Documentation/devicetree/bindings/media/i2c/ov8856.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov8856.yaml
similarity index 100%
rename from Documentation/devicetree/bindings/media/i2c/ov8856.yaml
rename to Documentation/devicetree/bindings/media/i2c/ovti,ov8856.yaml
diff --git a/Documentation/devicetree/bindings/media/i2c/imx219.yaml b/Documentation/devicetree/bindings/media/i2c/sony,imx219.yaml
similarity index 100%
rename from Documentation/devicetree/bindings/media/i2c/imx219.yaml
rename to Documentation/devicetree/bindings/media/i2c/sony,imx219.yaml
diff --git a/Documentation/devicetree/bindings/media/i2c/imx274.yaml b/Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml
similarity index 100%
rename from Documentation/devicetree/bindings/media/i2c/imx274.yaml
rename to Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml
diff --git a/Documentation/devicetree/bindings/media/i2c/imx290.yaml b/Documentation/devicetree/bindings/media/i2c/sony,imx290.yaml
similarity index 100%
rename from Documentation/devicetree/bindings/media/i2c/imx290.yaml
rename to Documentation/devicetree/bindings/media/i2c/sony,imx290.yaml
diff --git a/MAINTAINERS b/MAINTAINERS
index b4670904b014..546f3c8c248e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -12605,7 +12605,7 @@ L:	linux-media@vger.kernel.org
 S:	Maintained
 T:	git git://linuxtv.org/media_tree.git
 F:	drivers/media/i2c/ov5640.c
-F:	Documentation/devicetree/bindings/media/i2c/ov5640.yaml
+F:	Documentation/devicetree/bindings/media/i2c/ovti,ov5640.yaml
 
 OMNIVISION OV5645 SENSOR DRIVER
 M:	Jacopo Mondi <jacopo@jmondi.org>
@@ -12613,7 +12613,7 @@ L:	linux-media@vger.kernel.org
 S:	Odd Fixes
 T:	git git://linuxtv.org/media_tree.git
 F:	drivers/media/i2c/ov5645.c
-F:	Documentation/devicetree/bindings/media/i2c/ov5645.yaml
+F:	Documentation/devicetree/bindings/media/i2c/ovti,ov5645.yaml
 
 OMNIVISION OV5647 SENSOR DRIVER
 M:	Jacopo Mondi <jacopo@jmondi.org>
@@ -12622,7 +12622,7 @@ L:	linux-media@vger.kernel.org
 S:	Maintained
 T:	git git://linuxtv.org/media_tree.git
 F:	drivers/media/i2c/ov5647.c
-F:	Documentation/devicetree/bindings/media/i2c/ov5647.yaml
+F:	Documentation/devicetree/bindings/media/i2c/ovti,ov5647.yaml
 
 OMNIVISION OV5670 SENSOR DRIVER
 M:	Chiranjeevi Rapolu <chiranjeevi.rapolu@intel.com>
@@ -12659,7 +12659,7 @@ M:	Jacopo Mondi <jacopo@jmondi.org>
 L:	linux-media@vger.kernel.org
 S:	Odd fixes
 T:	git git://linuxtv.org/media_tree.git
-F:	Documentation/devicetree/bindings/media/i2c/ov772x.yaml
+F:	Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml
 F:	drivers/media/i2c/ov772x.c
 F:	include/media/i2c/ov772x.h
 
@@ -12676,7 +12676,7 @@ M:	Dongchun Zhu <dongchun.zhu@mediatek.com>
 L:	linux-media@vger.kernel.org
 S:	Maintained
 T:	git git://linuxtv.org/media_tree.git
-F:	Documentation/devicetree/bindings/media/i2c/ov8856.yaml
+F:	Documentation/devicetree/bindings/media/i2c/ovti,ov8856.yaml
 F:	drivers/media/i2c/ov8856.c
 
 OMNIVISION OV9640 SENSOR DRIVER
@@ -15907,7 +15907,7 @@ M:	Dave Stevenson <dave.stevenson@raspberrypi.com>
 L:	linux-media@vger.kernel.org
 S:	Maintained
 T:	git git://linuxtv.org/media_tree.git
-F:	Documentation/devicetree/bindings/media/i2c/imx219.yaml
+F:	Documentation/devicetree/bindings/media/i2c/sony,imx219.yaml
 F:	drivers/media/i2c/imx219.c
 
 SONY IMX258 SENSOR DRIVER
@@ -15922,7 +15922,7 @@ M:	Leon Luo <leonl@leopardimaging.com>
 L:	linux-media@vger.kernel.org
 S:	Maintained
 T:	git git://linuxtv.org/media_tree.git
-F:	Documentation/devicetree/bindings/media/i2c/imx274.yaml
+F:	Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml
 F:	drivers/media/i2c/imx274.c
 
 SONY IMX290 SENSOR DRIVER
@@ -15930,7 +15930,7 @@ M:	Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
 L:	linux-media@vger.kernel.org
 S:	Maintained
 T:	git git://linuxtv.org/media_tree.git
-F:	Documentation/devicetree/bindings/media/i2c/imx290.yaml
+F:	Documentation/devicetree/bindings/media/i2c/sony,imx290.yaml
 F:	drivers/media/i2c/imx290.c
 
 SONY IMX319 SENSOR DRIVER
-- 
2.27.0


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

* Re: [PATCH 2/8] dt-bindings: media: ov5645: Convert to json-schema
  2020-07-15 14:09 ` [PATCH 2/8] dt-bindings: media: ov5645: " Jacopo Mondi
@ 2020-07-15 15:31   ` Manivannan Sadhasivam
  0 siblings, 0 replies; 18+ messages in thread
From: Manivannan Sadhasivam @ 2020-07-15 15:31 UTC (permalink / raw)
  To: Jacopo Mondi, robh+dt, devicetree, linux-media
  Cc: mchehab, sakari.ailus, hverkuil-cisco, laurent.pinchart,
	linux-renesas-soc, Todor Tomov

Hi Jacopo, 

On 15 July 2020 7:39:45 PM IST, Jacopo Mondi <jacopo+renesas@jmondi.org> wrote:
>Convert the ov5645 bindings document to json-schema and update
>the MAINTAINERS file accordingly, as the entry was not documented.
>
>Add myself as maintainer for odd fixes only, as I don't have the
>sensor to test with.
>
>Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
>---
>
>Hello Todor, Manivannan
>   I've added in this patch an entry for ov5645 in the MAINTAINERS
>file, and I've added myself as maintainers for Odd Fixes only.
>
>As you seem to be the author and committers of this bindings
>respectively,
>would you be interested in maintaining this driver ?

I've worked on this driver in the past. So yeah, feel free to add myself and since Todor has authored the driver, it makes sense to add him too. 

Thanks, 
Mani

>
>---
> .../devicetree/bindings/media/i2c/ov5645.txt  |  54 --------
> .../devicetree/bindings/media/i2c/ov5645.yaml | 123 ++++++++++++++++++
> MAINTAINERS                                   |   8 ++
> 3 files changed, 131 insertions(+), 54 deletions(-)
>delete mode 100644
>Documentation/devicetree/bindings/media/i2c/ov5645.txt
>create mode 100644
>Documentation/devicetree/bindings/media/i2c/ov5645.yaml
>
>diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.txt
>b/Documentation/devicetree/bindings/media/i2c/ov5645.txt
>deleted file mode 100644
>index 72ad992f77be..000000000000
>--- a/Documentation/devicetree/bindings/media/i2c/ov5645.txt
>+++ /dev/null
>@@ -1,54 +0,0 @@
>-* Omnivision 1/4-Inch 5Mp CMOS Digital Image Sensor
>-
>-The Omnivision OV5645 is a 1/4-Inch CMOS active pixel digital image
>sensor with
>-an active array size of 2592H x 1944V. It is programmable through a
>serial I2C
>-interface.
>-
>-Required Properties:
>-- compatible: Value should be "ovti,ov5645".
>-- clocks: Reference to the xclk clock.
>-- clock-names: Should be "xclk".
>-- clock-frequency: Frequency of the xclk clock.
>-- enable-gpios: Chip enable GPIO. Polarity is GPIO_ACTIVE_HIGH. This
>corresponds
>-  to the hardware pin PWDNB which is physically active low.
>-- reset-gpios: Chip reset GPIO. Polarity is GPIO_ACTIVE_LOW. This
>corresponds to
>-  the hardware pin RESETB.
>-- vdddo-supply: Chip digital IO regulator.
>-- vdda-supply: Chip analog regulator.
>-- vddd-supply: Chip digital core regulator.
>-
>-The device node must contain one 'port' child node for its digital
>output
>-video port, in accordance with the video interface bindings defined in
>-Documentation/devicetree/bindings/media/video-interfaces.txt.
>-
>-Example:
>-
>-	&i2c1 {
>-		...
>-
>-		ov5645: ov5645@3c {
>-			compatible = "ovti,ov5645";
>-			reg = <0x3c>;
>-
>-			enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
>-			reset-gpios = <&gpio5 20 GPIO_ACTIVE_LOW>;
>-			pinctrl-names = "default";
>-			pinctrl-0 = <&camera_rear_default>;
>-
>-			clocks = <&clks 200>;
>-			clock-names = "xclk";
>-			clock-frequency = <24000000>;
>-
>-			vdddo-supply = <&camera_dovdd_1v8>;
>-			vdda-supply = <&camera_avdd_2v8>;
>-			vddd-supply = <&camera_dvdd_1v2>;
>-
>-			port {
>-				ov5645_ep: endpoint {
>-					clock-lanes = <1>;
>-					data-lanes = <0 2>;
>-					remote-endpoint = <&csi0_ep>;
>-				};
>-			};
>-		};
>-	};
>diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.yaml
>b/Documentation/devicetree/bindings/media/i2c/ov5645.yaml
>new file mode 100644
>index 000000000000..ff52d0fffb74
>--- /dev/null
>+++ b/Documentation/devicetree/bindings/media/i2c/ov5645.yaml
>@@ -0,0 +1,123 @@
>+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>+%YAML 1.2
>+---
>+$id: http://devicetree.org/schemas/media/i2c/ov5645.yaml#
>+$schema: http://devicetree.org/meta-schemas/core.yaml#
>+
>+title: Omnivision OV5645 1/4 Inch 5Mp CMOS Digital Image Sensor
>+
>+maintainers:
>+  - Jacopo Mondi <jacopo@jmondi.org>
>+
>+description: -|
>+  The Omnivision OV5645 is a 1/4-Inch CMOS active pixel digital image
>sensor
>+  with an active array size of 2592H x 1944V. It is programmable
>through a
>+  serial I2C interface.
>+
>+properties:
>+  compatible:
>+    const: ovti,ov5645
>+
>+  reg:
>+    description: I2C device address
>+    maxItems: 1
>+
>+  clocks:
>+    description: Reference to the xclk clock.
>+    maxItems: 1
>+
>+  clock-names:
>+    description: Should be "xclk".
>+    maxItems: 1
>+
>+  clock-frequency:
>+    description: Frequency of the xclk clock.
>+
>+  enable-gpios:
>+    description: |
>+      Chip enable GPIO. Polarity is GPIO_ACTIVE_HIGH. This corresponds
>+      to the hardware pin PWDNB which is physically active low.
>+    maxItems: 1
>+
>+  reset-gpios:
>+    description: |
>+      Chip reset GPIO. Polarity is GPIO_ACTIVE_LOW. This corresponds
>to
>+      the hardware pin RESETB.
>+    maxItems: 1
>+
>+  vdddo-supply:
>+    description: Chip digital IO regulator.
>+    maxItems: 1
>+
>+  vdda-supply:
>+    description: Chip analog regulator.
>+    maxItems: 1
>+
>+  vddd-supply:
>+    description: Chip digital core regulator.
>+    maxItems: 1
>+
>+  port:
>+    type: object
>+    description: |
>+      The device node must contain one 'port' child node for its
>digital output
>+      video port, in accordance with the video interface bindings
>defined in
>+      Documentation/devicetree/bindings/media/video-interfaces.txt.
>+
>+    properties:
>+      endpoint:
>+        type: object
>+        properties:
>+          remote-endpoint:
>+            description: A phandle to the bus receiver's endpoint
>node.
>+
>+        required:
>+          - remote-endpoint
>+
>+    additionalProperties: false
>+
>+required:
>+  - compatible
>+  - reg
>+  - clocks
>+  - clock-names
>+  - clock-frequency
>+  - vdddo-supply
>+  - vdda-supply
>+  - vddd-supply
>+  - port
>+
>+examples:
>+  - |
>+    #include <dt-bindings/gpio/gpio.h>
>+
>+    i2c0 {
>+        #address-cells = <1>;
>+        #size-cells = <0>;
>+
>+        camera@3c {
>+            compatible = "ovti,ov5645";
>+            reg = <0x3c>;
>+
>+            enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
>+            reset-gpios = <&gpio5 20 GPIO_ACTIVE_LOW>;
>+
>+            clocks = <&clks 200>;
>+            clock-names = "xclk";
>+            clock-frequency = <24000000>;
>+
>+            vdddo-supply = <&camera_dovdd_1v8>;
>+            vdda-supply = <&camera_avdd_2v8>;
>+            vddd-supply = <&camera_dvdd_1v2>;
>+
>+            port {
>+                ov5645_ep: endpoint {
>+                    clock-lanes = <1>;
>+                    data-lanes = <0 2>;
>+                    remote-endpoint = <&csi0_ep>;
>+                };
>+            };
>+        };
>+    };
>+
>+...
>diff --git a/MAINTAINERS b/MAINTAINERS
>index 0160d7567ed3..bf8902ebbe30 100644
>--- a/MAINTAINERS
>+++ b/MAINTAINERS
>@@ -12607,6 +12607,14 @@ T:	git git://linuxtv.org/media_tree.git
> F:	drivers/media/i2c/ov5640.c
> F:	Documentation/devicetree/bindings/media/i2c/ov5640.yaml
>
>+OMNIVISION OV5645 SENSOR DRIVER
>+M:	Jacopo Mondi <jacopo@jmondi.org>
>+L:	linux-media@vger.kernel.org
>+S:	Odd Fixes
>+T:	git git://linuxtv.org/media_tree.git
>+F:	drivers/media/i2c/ov5645.c
>+F:	Documentation/devicetree/bindings/media/i2c/ov5645.yaml
>+
> OMNIVISION OV5647 SENSOR DRIVER
> M:	Jacopo Mondi <jacopo@jmondi.org>
> M:	Dave Stevenson <dave.stevenson@raspberrypi.com>
>--
>2.27.0

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.

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

* Re: [PATCH 1/8] dt-bindings: media: ov5640: Convert to json-schema
  2020-07-15 14:09 ` [PATCH 1/8] dt-bindings: media: ov5640: " Jacopo Mondi
@ 2020-07-15 17:04   ` Steve Longerbeam
  2020-07-16  7:06     ` Jacopo Mondi
  2020-07-16  1:53   ` Laurent Pinchart
  2020-07-16 14:51   ` Rob Herring
  2 siblings, 1 reply; 18+ messages in thread
From: Steve Longerbeam @ 2020-07-15 17:04 UTC (permalink / raw)
  To: Jacopo Mondi, robh+dt, devicetree, linux-media
  Cc: mchehab, sakari.ailus, hverkuil-cisco, laurent.pinchart,
	linux-renesas-soc

Hi Jacopo,

On 7/15/20 7:09 AM, Jacopo Mondi wrote:
> Convert the ov5640 bindings document to json-schema and update
> the MAINTAINERS file accordingly.
>
> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> ---
> Hi Steve,
>    I've added myself as maintainer in the bindings, with your ack
> I would be happy to add myself as maintainer or reviewer for this driver
> in MAINTAINERS, as I've recently been looking after this driver, mostly
> for the MIPI CSI-2 interface part.

Sure that's fine, I have not been involved in this driver at all, except 
for the initial commit. I don't think I should be listed as a MAINTAINER 
of this driver or its bindings either, so feel free to remove my name 
from both.

Steve

>
> Thanks
>    j
>
> ---
>   .../devicetree/bindings/media/i2c/ov5640.txt  |  92 ---------
>   .../devicetree/bindings/media/i2c/ov5640.yaml | 181 ++++++++++++++++++
>   MAINTAINERS                                   |   1 +
>   3 files changed, 182 insertions(+), 92 deletions(-)
>   delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.txt
>   create mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.yaml
>
> diff --git a/Documentation/devicetree/bindings/media/i2c/ov5640.txt b/Documentation/devicetree/bindings/media/i2c/ov5640.txt
> deleted file mode 100644
> index c97c2f2da12d..000000000000
> --- a/Documentation/devicetree/bindings/media/i2c/ov5640.txt
> +++ /dev/null
> @@ -1,92 +0,0 @@
> -* Omnivision OV5640 MIPI CSI-2 / parallel sensor
> -
> -Required Properties:
> -- compatible: should be "ovti,ov5640"
> -- clocks: reference to the xclk input clock.
> -- clock-names: should be "xclk".
> -- DOVDD-supply: Digital I/O voltage supply, 1.8 volts
> -- AVDD-supply: Analog voltage supply, 2.8 volts
> -- DVDD-supply: Digital core voltage supply, 1.5 volts
> -
> -Optional Properties:
> -- reset-gpios: reference to the GPIO connected to the reset pin, if any.
> -	       This is an active low signal to the OV5640.
> -- powerdown-gpios: reference to the GPIO connected to the powerdown pin,
> -		   if any. This is an active high signal to the OV5640.
> -- rotation: as defined in
> -	    Documentation/devicetree/bindings/media/video-interfaces.txt,
> -	    valid values are 0 (sensor mounted upright) and 180 (sensor
> -	    mounted upside down).
> -
> -The device node must contain one 'port' child node for its digital output
> -video port, in accordance with the video interface bindings defined in
> -Documentation/devicetree/bindings/media/video-interfaces.txt.
> -
> -OV5640 can be connected to a MIPI CSI-2 bus or a parallel bus endpoint.
> -
> -Endpoint node required properties for CSI-2 connection are:
> -- remote-endpoint: a phandle to the bus receiver's endpoint node.
> -- clock-lanes: should be set to <0> (clock lane on hardware lane 0)
> -- data-lanes: should be set to <1> or <1 2> (one or two CSI-2 lanes supported)
> -
> -Endpoint node required properties for parallel connection are:
> -- remote-endpoint: a phandle to the bus receiver's endpoint node.
> -- bus-width: shall be set to <8> for 8 bits parallel bus
> -	     or <10> for 10 bits parallel bus
> -- data-shift: shall be set to <2> for 8 bits parallel bus
> -	      (lines 9:2 are used) or <0> for 10 bits parallel bus
> -- hsync-active: active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
> -- vsync-active: active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
> -- pclk-sample: sample data on rising (1) or falling (0) edge of the pixel clock
> -	       signal.
> -
> -Examples:
> -
> -&i2c1 {
> -	ov5640: camera@3c {
> -		compatible = "ovti,ov5640";
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&pinctrl_ov5640>;
> -		reg = <0x3c>;
> -		clocks = <&clks IMX6QDL_CLK_CKO>;
> -		clock-names = "xclk";
> -		DOVDD-supply = <&vgen4_reg>; /* 1.8v */
> -		AVDD-supply = <&vgen3_reg>;  /* 2.8v */
> -		DVDD-supply = <&vgen2_reg>;  /* 1.5v */
> -		powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
> -		reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
> -		rotation = <180>;
> -
> -		port {
> -			/* MIPI CSI-2 bus endpoint */
> -			ov5640_to_mipi_csi2: endpoint {
> -				remote-endpoint = <&mipi_csi2_from_ov5640>;
> -				clock-lanes = <0>;
> -				data-lanes = <1 2>;
> -			};
> -		};
> -	};
> -};
> -
> -&i2c1 {
> -	ov5640: camera@3c {
> -		compatible = "ovti,ov5640";
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&pinctrl_ov5640>;
> -		reg = <0x3c>;
> -		clocks = <&clk_ext_camera>;
> -		clock-names = "xclk";
> -
> -		port {
> -			/* Parallel bus endpoint */
> -			ov5640_to_parallel: endpoint {
> -				remote-endpoint = <&parallel_from_ov5640>;
> -				bus-width = <8>;
> -				data-shift = <2>; /* lines 9:2 are used */
> -				hsync-active = <0>;
> -				vsync-active = <0>;
> -				pclk-sample = <1>;
> -			};
> -		};
> -	};
> -};
> diff --git a/Documentation/devicetree/bindings/media/i2c/ov5640.yaml b/Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> new file mode 100644
> index 000000000000..9c32262a3621
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> @@ -0,0 +1,181 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/media/i2c/ov5640.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Omnivision OV5640 MIPI CSI-2 / parallel sensor
> +
> +maintainers:
> +  - Steve Longerbeam <slongerbeam@gmail.com>
> +  - Jacopo Mondi <jacopo@jmondi.org>
> +
> +description: -|
> +  OV5640 is a 5 megapixels image sensor capable of producing images in RBG, RAW,
> +  YUV and compressed formats. It features a MIPI CSI-2 and a parallel data
> +  interface and an I2C-compatible (CCI) control interface.
> +
> +properties:
> +  compatible:
> +    const: ovti,ov5640
> +
> +  reg:
> +    description: I2C device address
> +    maxItems: 1
> +
> +  clocks:
> +    description: Reference to the xclk input clock.
> +    maxItems: 1
> +
> +  clock-names:
> +    description: Should be "xclk".
> +    maxItems: 1
> +
> +  DOVDD-supply:
> +    description: Digital I/O voltage supply, 1.8 volts.
> +    maxItems: 1
> +
> +  AVDD-supply:
> +    description: Analog voltage supply, 2.8 volts.
> +    maxItems: 1
> +
> +  DVDD-supply:
> +    description: Digital core voltage supply.
> +    maxItems: 1
> +
> +  reset-gpios:
> +    description: |
> +      Reference to the GPIO connected to the reset pin, if any. This is an
> +      active low signal to the OV5640.
> +    maxItems: 1
> +
> +  powerdown-gpios:
> +    description: |
> +      Reference tot he GPIO connected to the powerdown pin, if any. This is an
> +      active high signal to the OV5640.
> +    maxItems: 1
> +
> +  rotation:
> +    description: |
> +      As defined in Documentation/devicetree/bindings/media/video-interfaces.txt,
> +      valid values are 0 (sensor mounted upright) and 180 (sensor mounted upside
> +      down).
> +
> +  port:
> +    type: object
> +    description: |
> +      The device node must contain one 'port' child node for its digital output
> +      video port, in accordance with the video interface bindings defined in
> +      Documentation/devicetree/bindings/media/video-interfaces.txt.
> +
> +      OV5640 can be connected to a MIPI CSI-2 bus or a parallel bus endpoint.
> +
> +    properties:
> +      endpoint:
> +        type: object
> +        properties:
> +          remote-endpoint:
> +            description: A phandle to the bus receiver's endpoint node.
> +
> +          clock-lanes:
> +            description: Should be set to 0 (clock lane on hardware lane 0).
> +
> +          data-lanes:
> +            description: |
> +              Should be set to <1> or <1 2> (one or two CSI-2 lanes supported).
> +
> +          bus-width:
> +            description: |
> +              Shall be set to <8> for 8 bits parallel bus or <10> for 10 bits
> +              parallel bus.
> +
> +          data-shift:
> +            description: |
> +              Shall be set to <2> for 8 bits parallel bus (lines 9:2 are used) or
> +              <0> for 10 bits parallel bus.
> +
> +          hsync-active:
> +            description: |
> +              Active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
> +
> +          vsync-active:
> +            description: |
> +              Active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
> +
> +          pclk-sample:
> +            description: |
> +              Sample data on rising (1) or falling (0) edge of the pixel clock
> +              signal.
> +
> +        required:
> +          - remote-endpoint
> +
> +    additionalProperties: false
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +  - DOVDD-supply
> +  - AVDD-supply
> +  - DVDD-supply
> +  - port
> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +    #include <dt-bindings/clock/imx6qdl-clock.h>
> +
> +    i2c0 {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        camera@3c {
> +            compatible = "ovti,ov5640";
> +            reg = <0x3c>;
> +            clocks = <&clks IMX6QDL_CLK_CKO>;
> +            clock-names = "xclk";
> +            DOVDD-supply = <&vgen4_reg>; /* 1.8v */
> +            AVDD-supply = <&vgen3_reg>;  /* 2.8v */
> +            DVDD-supply = <&vgen2_reg>;  /* 1.5v */
> +            powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
> +            reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
> +            rotation = <180>;
> +
> +            port {
> +                ov5640_to_mipi_csi2: endpoint {
> +                    remote-endpoint = <&mipi_csi2_from_ov5640>;
> +                    clock-lanes = <0>;
> +                    data-lanes = <1 2>;
> +                };
> +            };
> +        };
> +    };
> +
> +    i2c1 {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        camera@3c {
> +            compatible = "ovti,ov5640";
> +            reg = <0x3c>;
> +            clocks = <&clks IMX6QDL_CLK_CKO>;
> +            clock-names = "xclk";
> +            DOVDD-supply = <&vgen4_reg>; /* 1.8v */
> +            AVDD-supply = <&vgen3_reg>;  /* 2.8v */
> +            DVDD-supply = <&vgen2_reg>;  /* 1.5v */
> +            powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
> +            reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
> +            rotation = <180>;
> +
> +            port {
> +                ov5640_to_parallel: endpoint {
> +                    remote-endpoint = <&parallel_from_ov5640>;
> +                    bus-width = <8>;
> +                };
> +            };
> +        };
> +    };
> +
> +...
> diff --git a/MAINTAINERS b/MAINTAINERS
> index c74d25c58e1a..0160d7567ed3 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -12605,6 +12605,7 @@ L:	linux-media@vger.kernel.org
>   S:	Maintained
>   T:	git git://linuxtv.org/media_tree.git
>   F:	drivers/media/i2c/ov5640.c
> +F:	Documentation/devicetree/bindings/media/i2c/ov5640.yaml
>
>   OMNIVISION OV5647 SENSOR DRIVER
>   M:	Jacopo Mondi <jacopo@jmondi.org>
> --
> 2.27.0
>


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

* Re: [PATCH 1/8] dt-bindings: media: ov5640: Convert to json-schema
  2020-07-15 14:09 ` [PATCH 1/8] dt-bindings: media: ov5640: " Jacopo Mondi
  2020-07-15 17:04   ` Steve Longerbeam
@ 2020-07-16  1:53   ` Laurent Pinchart
  2020-07-16  7:04     ` Jacopo Mondi
  2020-07-16  7:52     ` Geert Uytterhoeven
  2020-07-16 14:51   ` Rob Herring
  2 siblings, 2 replies; 18+ messages in thread
From: Laurent Pinchart @ 2020-07-16  1:53 UTC (permalink / raw)
  To: Jacopo Mondi
  Cc: robh+dt, devicetree, linux-media, mchehab, sakari.ailus,
	hverkuil-cisco, linux-renesas-soc, Steve Longerbeam

Hi Jacopo,

Thank you for the patch.

On Wed, Jul 15, 2020 at 04:09:44PM +0200, Jacopo Mondi wrote:
> Convert the ov5640 bindings document to json-schema and update
> the MAINTAINERS file accordingly.
> 
> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> ---
> Hi Steve,
>   I've added myself as maintainer in the bindings, with your ack
> I would be happy to add myself as maintainer or reviewer for this driver
> in MAINTAINERS, as I've recently been looking after this driver, mostly
> for the MIPI CSI-2 interface part.
> 
> Thanks
>   j
> 
> ---
>  .../devicetree/bindings/media/i2c/ov5640.txt  |  92 ---------
>  .../devicetree/bindings/media/i2c/ov5640.yaml | 181 ++++++++++++++++++
>  MAINTAINERS                                   |   1 +
>  3 files changed, 182 insertions(+), 92 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.txt
>  create mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> 
> diff --git a/Documentation/devicetree/bindings/media/i2c/ov5640.txt b/Documentation/devicetree/bindings/media/i2c/ov5640.txt
> deleted file mode 100644
> index c97c2f2da12d..000000000000
> --- a/Documentation/devicetree/bindings/media/i2c/ov5640.txt
> +++ /dev/null
> @@ -1,92 +0,0 @@
> -* Omnivision OV5640 MIPI CSI-2 / parallel sensor
> -
> -Required Properties:
> -- compatible: should be "ovti,ov5640"
> -- clocks: reference to the xclk input clock.
> -- clock-names: should be "xclk".
> -- DOVDD-supply: Digital I/O voltage supply, 1.8 volts
> -- AVDD-supply: Analog voltage supply, 2.8 volts
> -- DVDD-supply: Digital core voltage supply, 1.5 volts
> -
> -Optional Properties:
> -- reset-gpios: reference to the GPIO connected to the reset pin, if any.
> -	       This is an active low signal to the OV5640.
> -- powerdown-gpios: reference to the GPIO connected to the powerdown pin,
> -		   if any. This is an active high signal to the OV5640.
> -- rotation: as defined in
> -	    Documentation/devicetree/bindings/media/video-interfaces.txt,
> -	    valid values are 0 (sensor mounted upright) and 180 (sensor
> -	    mounted upside down).
> -
> -The device node must contain one 'port' child node for its digital output
> -video port, in accordance with the video interface bindings defined in
> -Documentation/devicetree/bindings/media/video-interfaces.txt.
> -
> -OV5640 can be connected to a MIPI CSI-2 bus or a parallel bus endpoint.
> -
> -Endpoint node required properties for CSI-2 connection are:
> -- remote-endpoint: a phandle to the bus receiver's endpoint node.
> -- clock-lanes: should be set to <0> (clock lane on hardware lane 0)
> -- data-lanes: should be set to <1> or <1 2> (one or two CSI-2 lanes supported)
> -
> -Endpoint node required properties for parallel connection are:
> -- remote-endpoint: a phandle to the bus receiver's endpoint node.
> -- bus-width: shall be set to <8> for 8 bits parallel bus
> -	     or <10> for 10 bits parallel bus
> -- data-shift: shall be set to <2> for 8 bits parallel bus
> -	      (lines 9:2 are used) or <0> for 10 bits parallel bus
> -- hsync-active: active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
> -- vsync-active: active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
> -- pclk-sample: sample data on rising (1) or falling (0) edge of the pixel clock
> -	       signal.
> -
> -Examples:
> -
> -&i2c1 {
> -	ov5640: camera@3c {
> -		compatible = "ovti,ov5640";
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&pinctrl_ov5640>;
> -		reg = <0x3c>;
> -		clocks = <&clks IMX6QDL_CLK_CKO>;
> -		clock-names = "xclk";
> -		DOVDD-supply = <&vgen4_reg>; /* 1.8v */
> -		AVDD-supply = <&vgen3_reg>;  /* 2.8v */
> -		DVDD-supply = <&vgen2_reg>;  /* 1.5v */
> -		powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
> -		reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
> -		rotation = <180>;
> -
> -		port {
> -			/* MIPI CSI-2 bus endpoint */
> -			ov5640_to_mipi_csi2: endpoint {
> -				remote-endpoint = <&mipi_csi2_from_ov5640>;
> -				clock-lanes = <0>;
> -				data-lanes = <1 2>;
> -			};
> -		};
> -	};
> -};
> -
> -&i2c1 {
> -	ov5640: camera@3c {
> -		compatible = "ovti,ov5640";
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&pinctrl_ov5640>;
> -		reg = <0x3c>;
> -		clocks = <&clk_ext_camera>;
> -		clock-names = "xclk";
> -
> -		port {
> -			/* Parallel bus endpoint */
> -			ov5640_to_parallel: endpoint {
> -				remote-endpoint = <&parallel_from_ov5640>;
> -				bus-width = <8>;
> -				data-shift = <2>; /* lines 9:2 are used */
> -				hsync-active = <0>;
> -				vsync-active = <0>;
> -				pclk-sample = <1>;
> -			};
> -		};
> -	};
> -};
> diff --git a/Documentation/devicetree/bindings/media/i2c/ov5640.yaml b/Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> new file mode 100644
> index 000000000000..9c32262a3621
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> @@ -0,0 +1,181 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/media/i2c/ov5640.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Omnivision OV5640 MIPI CSI-2 / parallel sensor
> +
> +maintainers:
> +  - Steve Longerbeam <slongerbeam@gmail.com>
> +  - Jacopo Mondi <jacopo@jmondi.org>
> +
> +description: -|
> +  OV5640 is a 5 megapixels image sensor capable of producing images in RBG, RAW,

s/OV5640/The OV5640/
s/RBG/RGB/

> +  YUV and compressed formats. It features a MIPI CSI-2 and a parallel data
> +  interface and an I2C-compatible (CCI) control interface.
> +
> +properties:
> +  compatible:
> +    const: ovti,ov5640
> +
> +  reg:
> +    description: I2C device address
> +    maxItems: 1
> +
> +  clocks:
> +    description: Reference to the xclk input clock.

I'd drop this, it's implied by the clock-names

> +    maxItems: 1
> +
> +  clock-names:
> +    description: Should be "xclk".

This should be replaced with

   const: xclk

> +    maxItems: 1
> +
> +  DOVDD-supply:
> +    description: Digital I/O voltage supply, 1.8 volts.
> +    maxItems: 1
> +
> +  AVDD-supply:
> +    description: Analog voltage supply, 2.8 volts.
> +    maxItems: 1
> +
> +  DVDD-supply:
> +    description: Digital core voltage supply.
> +    maxItems: 1
> +
> +  reset-gpios:
> +    description: |
> +      Reference to the GPIO connected to the reset pin, if any. This is an
> +      active low signal to the OV5640.
> +    maxItems: 1
> +
> +  powerdown-gpios:
> +    description: |
> +      Reference tot he GPIO connected to the powerdown pin, if any. This is an
> +      active high signal to the OV5640.
> +    maxItems: 1
> +
> +  rotation:
> +    description: |
> +      As defined in Documentation/devicetree/bindings/media/video-interfaces.txt,
> +      valid values are 0 (sensor mounted upright) and 180 (sensor mounted upside
> +      down).

The second sentence should be replaced with
  enum:
    - 0
    - 180

> +
> +  port:
> +    type: object
> +    description: |
> +      The device node must contain one 'port' child node for its digital output
> +      video port, in accordance with the video interface bindings defined in
> +      Documentation/devicetree/bindings/media/video-interfaces.txt.
> +
> +      OV5640 can be connected to a MIPI CSI-2 bus or a parallel bus endpoint.
> +
> +    properties:
> +      endpoint:
> +        type: object
> +        properties:
> +          remote-endpoint:
> +            description: A phandle to the bus receiver's endpoint node.
> +
> +          clock-lanes:
> +            description: Should be set to 0 (clock lane on hardware lane 0).

The description of most of these properties should also be replaced with
yaml schema rules. Ideally there should also be constraints that tell
which properties can be specified together. For instance here's the
corresponding rules from the MT9M114 DT binding (not upstream yet).

  # See ../video-interfaces.txt for more details
  port:
    type: object
    properties:
      endpoint:
        type: object
        properties:
          bus-type:
            enum: [4, 5, 6]

          clock-lanes:
            items:
              - const: 0

          data-lanes:
            items:
              - const: 1

          bus-width:
            items:
              - const: 8

          hsync-active:
            items:
              - const: 1

          vsync-active:
            items:
              - const: 1

        required:
          - bus-type

        allOf:
          - if:
              properties:
                bus-type:
                  const: 4
            then:
              properties:
                bus-width: false
                hsync-active: false
                vsync-active: false

          - if:
              properties:
                bus-type:
                  const: 5
            then:
              properties:
                clock-lanes: false
                data-lanes: false

          - if:
              properties:
                bus-type:
                  const: 6
            then:
              properties:
                clock-lanes: false
                data-lanes: false
                hsync-active: false
                vsync-active: false

        unevaluatedProperties: false

These comments apply to other patches in this series.

> +
> +          data-lanes:
> +            description: |
> +              Should be set to <1> or <1 2> (one or two CSI-2 lanes supported).
> +
> +          bus-width:
> +            description: |
> +              Shall be set to <8> for 8 bits parallel bus or <10> for 10 bits
> +              parallel bus.
> +
> +          data-shift:
> +            description: |
> +              Shall be set to <2> for 8 bits parallel bus (lines 9:2 are used) or
> +              <0> for 10 bits parallel bus.
> +
> +          hsync-active:
> +            description: |
> +              Active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
> +
> +          vsync-active:
> +            description: |
> +              Active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
> +
> +          pclk-sample:
> +            description: |
> +              Sample data on rising (1) or falling (0) edge of the pixel clock
> +              signal.
> +
> +        required:
> +          - remote-endpoint
> +
> +    additionalProperties: false
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +  - DOVDD-supply
> +  - AVDD-supply
> +  - DVDD-supply
> +  - port
> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +    #include <dt-bindings/clock/imx6qdl-clock.h>
> +
> +    i2c0 {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        camera@3c {
> +            compatible = "ovti,ov5640";
> +            reg = <0x3c>;
> +            clocks = <&clks IMX6QDL_CLK_CKO>;
> +            clock-names = "xclk";
> +            DOVDD-supply = <&vgen4_reg>; /* 1.8v */
> +            AVDD-supply = <&vgen3_reg>;  /* 2.8v */
> +            DVDD-supply = <&vgen2_reg>;  /* 1.5v */
> +            powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
> +            reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
> +            rotation = <180>;
> +
> +            port {
> +                ov5640_to_mipi_csi2: endpoint {
> +                    remote-endpoint = <&mipi_csi2_from_ov5640>;
> +                    clock-lanes = <0>;
> +                    data-lanes = <1 2>;
> +                };
> +            };
> +        };
> +    };
> +
> +    i2c1 {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        camera@3c {
> +            compatible = "ovti,ov5640";
> +            reg = <0x3c>;
> +            clocks = <&clks IMX6QDL_CLK_CKO>;
> +            clock-names = "xclk";
> +            DOVDD-supply = <&vgen4_reg>; /* 1.8v */
> +            AVDD-supply = <&vgen3_reg>;  /* 2.8v */
> +            DVDD-supply = <&vgen2_reg>;  /* 1.5v */
> +            powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
> +            reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
> +            rotation = <180>;
> +
> +            port {
> +                ov5640_to_parallel: endpoint {
> +                    remote-endpoint = <&parallel_from_ov5640>;
> +                    bus-width = <8>;
> +                };
> +            };
> +        };
> +    };
> +
> +...
> diff --git a/MAINTAINERS b/MAINTAINERS
> index c74d25c58e1a..0160d7567ed3 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -12605,6 +12605,7 @@ L:	linux-media@vger.kernel.org
>  S:	Maintained
>  T:	git git://linuxtv.org/media_tree.git
>  F:	drivers/media/i2c/ov5640.c
> +F:	Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> 
>  OMNIVISION OV5647 SENSOR DRIVER
>  M:	Jacopo Mondi <jacopo@jmondi.org>

-- 
Regards,

Laurent Pinchart

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

* Re: [PATCH 1/8] dt-bindings: media: ov5640: Convert to json-schema
  2020-07-16  1:53   ` Laurent Pinchart
@ 2020-07-16  7:04     ` Jacopo Mondi
  2020-07-16 13:08       ` Laurent Pinchart
  2020-07-16  7:52     ` Geert Uytterhoeven
  1 sibling, 1 reply; 18+ messages in thread
From: Jacopo Mondi @ 2020-07-16  7:04 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: Jacopo Mondi, robh+dt, devicetree, linux-media, mchehab,
	sakari.ailus, hverkuil-cisco, linux-renesas-soc,
	Steve Longerbeam

Hi Laurent,

On Thu, Jul 16, 2020 at 04:53:23AM +0300, Laurent Pinchart wrote:
> Hi Jacopo,
>
> Thank you for the patch.
>
> On Wed, Jul 15, 2020 at 04:09:44PM +0200, Jacopo Mondi wrote:
> > Convert the ov5640 bindings document to json-schema and update
> > the MAINTAINERS file accordingly.
> >
> > Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> > ---
> > Hi Steve,
> >   I've added myself as maintainer in the bindings, with your ack
> > I would be happy to add myself as maintainer or reviewer for this driver
> > in MAINTAINERS, as I've recently been looking after this driver, mostly
> > for the MIPI CSI-2 interface part.
> >
> > Thanks
> >   j
> >
> > ---
> >  .../devicetree/bindings/media/i2c/ov5640.txt  |  92 ---------
> >  .../devicetree/bindings/media/i2c/ov5640.yaml | 181 ++++++++++++++++++
> >  MAINTAINERS                                   |   1 +
> >  3 files changed, 182 insertions(+), 92 deletions(-)
> >  delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.txt
> >  create mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/media/i2c/ov5640.txt b/Documentation/devicetree/bindings/media/i2c/ov5640.txt
> > deleted file mode 100644
> > index c97c2f2da12d..000000000000
> > --- a/Documentation/devicetree/bindings/media/i2c/ov5640.txt
> > +++ /dev/null
> > @@ -1,92 +0,0 @@
> > -* Omnivision OV5640 MIPI CSI-2 / parallel sensor
> > -
> > -Required Properties:
> > -- compatible: should be "ovti,ov5640"
> > -- clocks: reference to the xclk input clock.
> > -- clock-names: should be "xclk".
> > -- DOVDD-supply: Digital I/O voltage supply, 1.8 volts
> > -- AVDD-supply: Analog voltage supply, 2.8 volts
> > -- DVDD-supply: Digital core voltage supply, 1.5 volts
> > -
> > -Optional Properties:
> > -- reset-gpios: reference to the GPIO connected to the reset pin, if any.
> > -	       This is an active low signal to the OV5640.
> > -- powerdown-gpios: reference to the GPIO connected to the powerdown pin,
> > -		   if any. This is an active high signal to the OV5640.
> > -- rotation: as defined in
> > -	    Documentation/devicetree/bindings/media/video-interfaces.txt,
> > -	    valid values are 0 (sensor mounted upright) and 180 (sensor
> > -	    mounted upside down).
> > -
> > -The device node must contain one 'port' child node for its digital output
> > -video port, in accordance with the video interface bindings defined in
> > -Documentation/devicetree/bindings/media/video-interfaces.txt.
> > -
> > -OV5640 can be connected to a MIPI CSI-2 bus or a parallel bus endpoint.
> > -
> > -Endpoint node required properties for CSI-2 connection are:
> > -- remote-endpoint: a phandle to the bus receiver's endpoint node.
> > -- clock-lanes: should be set to <0> (clock lane on hardware lane 0)
> > -- data-lanes: should be set to <1> or <1 2> (one or two CSI-2 lanes supported)
> > -
> > -Endpoint node required properties for parallel connection are:
> > -- remote-endpoint: a phandle to the bus receiver's endpoint node.
> > -- bus-width: shall be set to <8> for 8 bits parallel bus
> > -	     or <10> for 10 bits parallel bus
> > -- data-shift: shall be set to <2> for 8 bits parallel bus
> > -	      (lines 9:2 are used) or <0> for 10 bits parallel bus
> > -- hsync-active: active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
> > -- vsync-active: active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
> > -- pclk-sample: sample data on rising (1) or falling (0) edge of the pixel clock
> > -	       signal.
> > -
> > -Examples:
> > -
> > -&i2c1 {
> > -	ov5640: camera@3c {
> > -		compatible = "ovti,ov5640";
> > -		pinctrl-names = "default";
> > -		pinctrl-0 = <&pinctrl_ov5640>;
> > -		reg = <0x3c>;
> > -		clocks = <&clks IMX6QDL_CLK_CKO>;
> > -		clock-names = "xclk";
> > -		DOVDD-supply = <&vgen4_reg>; /* 1.8v */
> > -		AVDD-supply = <&vgen3_reg>;  /* 2.8v */
> > -		DVDD-supply = <&vgen2_reg>;  /* 1.5v */
> > -		powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
> > -		reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
> > -		rotation = <180>;
> > -
> > -		port {
> > -			/* MIPI CSI-2 bus endpoint */
> > -			ov5640_to_mipi_csi2: endpoint {
> > -				remote-endpoint = <&mipi_csi2_from_ov5640>;
> > -				clock-lanes = <0>;
> > -				data-lanes = <1 2>;
> > -			};
> > -		};
> > -	};
> > -};
> > -
> > -&i2c1 {
> > -	ov5640: camera@3c {
> > -		compatible = "ovti,ov5640";
> > -		pinctrl-names = "default";
> > -		pinctrl-0 = <&pinctrl_ov5640>;
> > -		reg = <0x3c>;
> > -		clocks = <&clk_ext_camera>;
> > -		clock-names = "xclk";
> > -
> > -		port {
> > -			/* Parallel bus endpoint */
> > -			ov5640_to_parallel: endpoint {
> > -				remote-endpoint = <&parallel_from_ov5640>;
> > -				bus-width = <8>;
> > -				data-shift = <2>; /* lines 9:2 are used */
> > -				hsync-active = <0>;
> > -				vsync-active = <0>;
> > -				pclk-sample = <1>;
> > -			};
> > -		};
> > -	};
> > -};
> > diff --git a/Documentation/devicetree/bindings/media/i2c/ov5640.yaml b/Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> > new file mode 100644
> > index 000000000000..9c32262a3621
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> > @@ -0,0 +1,181 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/media/i2c/ov5640.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Omnivision OV5640 MIPI CSI-2 / parallel sensor
> > +
> > +maintainers:
> > +  - Steve Longerbeam <slongerbeam@gmail.com>
> > +  - Jacopo Mondi <jacopo@jmondi.org>
> > +
> > +description: -|
> > +  OV5640 is a 5 megapixels image sensor capable of producing images in RBG, RAW,
>
> s/OV5640/The OV5640/
> s/RBG/RGB/
>

Ups, will fix

> > +  YUV and compressed formats. It features a MIPI CSI-2 and a parallel data
> > +  interface and an I2C-compatible (CCI) control interface.
> > +
> > +properties:
> > +  compatible:
> > +    const: ovti,ov5640
> > +
> > +  reg:
> > +    description: I2C device address
> > +    maxItems: 1
> > +
> > +  clocks:
> > +    description: Reference to the xclk input clock.
>
> I'd drop this, it's implied by the clock-names
>
> > +    maxItems: 1
> > +
> > +  clock-names:
> > +    description: Should be "xclk".
>
> This should be replaced with
>
>    const: xclk
>

Ack for both

> > +    maxItems: 1
> > +
> > +  DOVDD-supply:
> > +    description: Digital I/O voltage supply, 1.8 volts.
> > +    maxItems: 1
> > +
> > +  AVDD-supply:
> > +    description: Analog voltage supply, 2.8 volts.
> > +    maxItems: 1
> > +
> > +  DVDD-supply:
> > +    description: Digital core voltage supply.
> > +    maxItems: 1
> > +
> > +  reset-gpios:
> > +    description: |
> > +      Reference to the GPIO connected to the reset pin, if any. This is an
> > +      active low signal to the OV5640.
> > +    maxItems: 1
> > +
> > +  powerdown-gpios:
> > +    description: |
> > +      Reference tot he GPIO connected to the powerdown pin, if any. This is an
> > +      active high signal to the OV5640.
> > +    maxItems: 1
> > +
> > +  rotation:
> > +    description: |
> > +      As defined in Documentation/devicetree/bindings/media/video-interfaces.txt,
> > +      valid values are 0 (sensor mounted upright) and 180 (sensor mounted upside
> > +      down).
>
> The second sentence should be replaced with
>   enum:
>     - 0
>     - 180
>

I copied this from the existing bindings, but I was a bit skeptical in
first place. Support being limited to 0 and 180 only is a driver
implementation constraint, there's nothing that prevents you from
mounting the sensor 90deg rotated. Should the supported values be
mentioned in the bindings at all for this property ?

> > +
> > +  port:
> > +    type: object
> > +    description: |
> > +      The device node must contain one 'port' child node for its digital output
> > +      video port, in accordance with the video interface bindings defined in
> > +      Documentation/devicetree/bindings/media/video-interfaces.txt.
> > +
> > +      OV5640 can be connected to a MIPI CSI-2 bus or a parallel bus endpoint.
> > +
> > +    properties:
> > +      endpoint:
> > +        type: object
> > +        properties:
> > +          remote-endpoint:
> > +            description: A phandle to the bus receiver's endpoint node.
> > +
> > +          clock-lanes:
> > +            description: Should be set to 0 (clock lane on hardware lane 0).
>
> The description of most of these properties should also be replaced with
> yaml schema rules. Ideally there should also be constraints that tell
> which properties can be specified together. For instance here's the
> corresponding rules from the MT9M114 DT binding (not upstream yet).
>
>   # See ../video-interfaces.txt for more details
>   port:
>     type: object
>     properties:
>       endpoint:
>         type: object
>         properties:
>           bus-type:
>             enum: [4, 5, 6]

               ^ this

Initially I considered switching on the bus type to be able to use an
if construct like you shown below. But that would make the property
mandatory, something that would break old DTB. Now, I used the word
"break" and not "break compatibility" as the driver would still
support old DTB, as it does not enforce that property being specified.
But it would make old DTS invalid from a dt-schema validation point of
view. Do we care about maintaining old DTS valid with new schema ?

>
>           clock-lanes:
>             items:
>               - const: 0
>
>           data-lanes:
>             items:
>               - const: 1
>
>           bus-width:
>             items:
>               - const: 8
>
>           hsync-active:
>             items:
>               - const: 1
>
>           vsync-active:
>             items:
>               - const: 1
>
>         required:
>           - bus-type
>
>         allOf:
>           - if:
>               properties:
>                 bus-type:
>                   const: 4
>             then:
>               properties:
>                 bus-width: false
>                 hsync-active: false
>                 vsync-active: false
>
>           - if:
>               properties:
>                 bus-type:
>                   const: 5
>             then:
>               properties:
>                 clock-lanes: false
>                 data-lanes: false
>
>           - if:
>               properties:
>                 bus-type:
>                   const: 6
>             then:
>               properties:
>                 clock-lanes: false
>                 data-lanes: false
>                 hsync-active: false
>                 vsync-active: false
>
>         unevaluatedProperties: false
>
> These comments apply to other patches in this series.
>
> > +
> > +          data-lanes:
> > +            description: |
> > +              Should be set to <1> or <1 2> (one or two CSI-2 lanes supported).
> > +
> > +          bus-width:
> > +            description: |
> > +              Shall be set to <8> for 8 bits parallel bus or <10> for 10 bits
> > +              parallel bus.
> > +
> > +          data-shift:
> > +            description: |
> > +              Shall be set to <2> for 8 bits parallel bus (lines 9:2 are used) or
> > +              <0> for 10 bits parallel bus.

All of these 'supported values' should be expressed with a schema, I agree.

Thanks
  j

> > +
> > +          hsync-active:
> > +            description: |
> > +              Active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
> > +
> > +          vsync-active:
> > +            description: |
> > +              Active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
> > +
> > +          pclk-sample:
> > +            description: |
> > +              Sample data on rising (1) or falling (0) edge of the pixel clock
> > +              signal.
> > +
> > +        required:
> > +          - remote-endpoint
> > +
> > +    additionalProperties: false
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - clocks
> > +  - clock-names
> > +  - DOVDD-supply
> > +  - AVDD-supply
> > +  - DVDD-supply
> > +  - port
> > +
> > +examples:
> > +  - |
> > +    #include <dt-bindings/gpio/gpio.h>
> > +    #include <dt-bindings/clock/imx6qdl-clock.h>
> > +
> > +    i2c0 {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        camera@3c {
> > +            compatible = "ovti,ov5640";
> > +            reg = <0x3c>;
> > +            clocks = <&clks IMX6QDL_CLK_CKO>;
> > +            clock-names = "xclk";
> > +            DOVDD-supply = <&vgen4_reg>; /* 1.8v */
> > +            AVDD-supply = <&vgen3_reg>;  /* 2.8v */
> > +            DVDD-supply = <&vgen2_reg>;  /* 1.5v */
> > +            powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
> > +            reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
> > +            rotation = <180>;
> > +
> > +            port {
> > +                ov5640_to_mipi_csi2: endpoint {
> > +                    remote-endpoint = <&mipi_csi2_from_ov5640>;
> > +                    clock-lanes = <0>;
> > +                    data-lanes = <1 2>;
> > +                };
> > +            };
> > +        };
> > +    };
> > +
> > +    i2c1 {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        camera@3c {
> > +            compatible = "ovti,ov5640";
> > +            reg = <0x3c>;
> > +            clocks = <&clks IMX6QDL_CLK_CKO>;
> > +            clock-names = "xclk";
> > +            DOVDD-supply = <&vgen4_reg>; /* 1.8v */
> > +            AVDD-supply = <&vgen3_reg>;  /* 2.8v */
> > +            DVDD-supply = <&vgen2_reg>;  /* 1.5v */
> > +            powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
> > +            reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
> > +            rotation = <180>;
> > +
> > +            port {
> > +                ov5640_to_parallel: endpoint {
> > +                    remote-endpoint = <&parallel_from_ov5640>;
> > +                    bus-width = <8>;
> > +                };
> > +            };
> > +        };
> > +    };
> > +
> > +...
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index c74d25c58e1a..0160d7567ed3 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -12605,6 +12605,7 @@ L:	linux-media@vger.kernel.org
> >  S:	Maintained
> >  T:	git git://linuxtv.org/media_tree.git
> >  F:	drivers/media/i2c/ov5640.c
> > +F:	Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> >
> >  OMNIVISION OV5647 SENSOR DRIVER
> >  M:	Jacopo Mondi <jacopo@jmondi.org>
>
> --
> Regards,
>
> Laurent Pinchart

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

* Re: [PATCH 1/8] dt-bindings: media: ov5640: Convert to json-schema
  2020-07-15 17:04   ` Steve Longerbeam
@ 2020-07-16  7:06     ` Jacopo Mondi
  0 siblings, 0 replies; 18+ messages in thread
From: Jacopo Mondi @ 2020-07-16  7:06 UTC (permalink / raw)
  To: Steve Longerbeam
  Cc: Jacopo Mondi, robh+dt, devicetree, linux-media, mchehab,
	sakari.ailus, hverkuil-cisco, laurent.pinchart,
	linux-renesas-soc

Hi Steve,

On Wed, Jul 15, 2020 at 10:04:04AM -0700, Steve Longerbeam wrote:
> Hi Jacopo,
>
> On 7/15/20 7:09 AM, Jacopo Mondi wrote:
> > Convert the ov5640 bindings document to json-schema and update
> > the MAINTAINERS file accordingly.
> >
> > Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> > ---
> > Hi Steve,
> >    I've added myself as maintainer in the bindings, with your ack
> > I would be happy to add myself as maintainer or reviewer for this driver
> > in MAINTAINERS, as I've recently been looking after this driver, mostly
> > for the MIPI CSI-2 interface part.
>
> Sure that's fine, I have not been involved in this driver at all, except for
> the initial commit. I don't think I should be listed as a MAINTAINER of this
> driver or its bindings either, so feel free to remove my name from both.
>

I was suggesting adding myself to the list of maintainers/reviewer,
not replacing you :) Hope that's not what you intended.

But in case you don't want to be bothered with this rather old driver
anymore, I could drop your name from there.

Thanks
  j

> Steve
>
> >
> > Thanks
> >    j
> >
> > ---
> >   .../devicetree/bindings/media/i2c/ov5640.txt  |  92 ---------
> >   .../devicetree/bindings/media/i2c/ov5640.yaml | 181 ++++++++++++++++++
> >   MAINTAINERS                                   |   1 +
> >   3 files changed, 182 insertions(+), 92 deletions(-)
> >   delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.txt
> >   create mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/media/i2c/ov5640.txt b/Documentation/devicetree/bindings/media/i2c/ov5640.txt
> > deleted file mode 100644
> > index c97c2f2da12d..000000000000
> > --- a/Documentation/devicetree/bindings/media/i2c/ov5640.txt
> > +++ /dev/null
> > @@ -1,92 +0,0 @@
> > -* Omnivision OV5640 MIPI CSI-2 / parallel sensor
> > -
> > -Required Properties:
> > -- compatible: should be "ovti,ov5640"
> > -- clocks: reference to the xclk input clock.
> > -- clock-names: should be "xclk".
> > -- DOVDD-supply: Digital I/O voltage supply, 1.8 volts
> > -- AVDD-supply: Analog voltage supply, 2.8 volts
> > -- DVDD-supply: Digital core voltage supply, 1.5 volts
> > -
> > -Optional Properties:
> > -- reset-gpios: reference to the GPIO connected to the reset pin, if any.
> > -	       This is an active low signal to the OV5640.
> > -- powerdown-gpios: reference to the GPIO connected to the powerdown pin,
> > -		   if any. This is an active high signal to the OV5640.
> > -- rotation: as defined in
> > -	    Documentation/devicetree/bindings/media/video-interfaces.txt,
> > -	    valid values are 0 (sensor mounted upright) and 180 (sensor
> > -	    mounted upside down).
> > -
> > -The device node must contain one 'port' child node for its digital output
> > -video port, in accordance with the video interface bindings defined in
> > -Documentation/devicetree/bindings/media/video-interfaces.txt.
> > -
> > -OV5640 can be connected to a MIPI CSI-2 bus or a parallel bus endpoint.
> > -
> > -Endpoint node required properties for CSI-2 connection are:
> > -- remote-endpoint: a phandle to the bus receiver's endpoint node.
> > -- clock-lanes: should be set to <0> (clock lane on hardware lane 0)
> > -- data-lanes: should be set to <1> or <1 2> (one or two CSI-2 lanes supported)
> > -
> > -Endpoint node required properties for parallel connection are:
> > -- remote-endpoint: a phandle to the bus receiver's endpoint node.
> > -- bus-width: shall be set to <8> for 8 bits parallel bus
> > -	     or <10> for 10 bits parallel bus
> > -- data-shift: shall be set to <2> for 8 bits parallel bus
> > -	      (lines 9:2 are used) or <0> for 10 bits parallel bus
> > -- hsync-active: active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
> > -- vsync-active: active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
> > -- pclk-sample: sample data on rising (1) or falling (0) edge of the pixel clock
> > -	       signal.
> > -
> > -Examples:
> > -
> > -&i2c1 {
> > -	ov5640: camera@3c {
> > -		compatible = "ovti,ov5640";
> > -		pinctrl-names = "default";
> > -		pinctrl-0 = <&pinctrl_ov5640>;
> > -		reg = <0x3c>;
> > -		clocks = <&clks IMX6QDL_CLK_CKO>;
> > -		clock-names = "xclk";
> > -		DOVDD-supply = <&vgen4_reg>; /* 1.8v */
> > -		AVDD-supply = <&vgen3_reg>;  /* 2.8v */
> > -		DVDD-supply = <&vgen2_reg>;  /* 1.5v */
> > -		powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
> > -		reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
> > -		rotation = <180>;
> > -
> > -		port {
> > -			/* MIPI CSI-2 bus endpoint */
> > -			ov5640_to_mipi_csi2: endpoint {
> > -				remote-endpoint = <&mipi_csi2_from_ov5640>;
> > -				clock-lanes = <0>;
> > -				data-lanes = <1 2>;
> > -			};
> > -		};
> > -	};
> > -};
> > -
> > -&i2c1 {
> > -	ov5640: camera@3c {
> > -		compatible = "ovti,ov5640";
> > -		pinctrl-names = "default";
> > -		pinctrl-0 = <&pinctrl_ov5640>;
> > -		reg = <0x3c>;
> > -		clocks = <&clk_ext_camera>;
> > -		clock-names = "xclk";
> > -
> > -		port {
> > -			/* Parallel bus endpoint */
> > -			ov5640_to_parallel: endpoint {
> > -				remote-endpoint = <&parallel_from_ov5640>;
> > -				bus-width = <8>;
> > -				data-shift = <2>; /* lines 9:2 are used */
> > -				hsync-active = <0>;
> > -				vsync-active = <0>;
> > -				pclk-sample = <1>;
> > -			};
> > -		};
> > -	};
> > -};
> > diff --git a/Documentation/devicetree/bindings/media/i2c/ov5640.yaml b/Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> > new file mode 100644
> > index 000000000000..9c32262a3621
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> > @@ -0,0 +1,181 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/media/i2c/ov5640.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Omnivision OV5640 MIPI CSI-2 / parallel sensor
> > +
> > +maintainers:
> > +  - Steve Longerbeam <slongerbeam@gmail.com>
> > +  - Jacopo Mondi <jacopo@jmondi.org>
> > +
> > +description: -|
> > +  OV5640 is a 5 megapixels image sensor capable of producing images in RBG, RAW,
> > +  YUV and compressed formats. It features a MIPI CSI-2 and a parallel data
> > +  interface and an I2C-compatible (CCI) control interface.
> > +
> > +properties:
> > +  compatible:
> > +    const: ovti,ov5640
> > +
> > +  reg:
> > +    description: I2C device address
> > +    maxItems: 1
> > +
> > +  clocks:
> > +    description: Reference to the xclk input clock.
> > +    maxItems: 1
> > +
> > +  clock-names:
> > +    description: Should be "xclk".
> > +    maxItems: 1
> > +
> > +  DOVDD-supply:
> > +    description: Digital I/O voltage supply, 1.8 volts.
> > +    maxItems: 1
> > +
> > +  AVDD-supply:
> > +    description: Analog voltage supply, 2.8 volts.
> > +    maxItems: 1
> > +
> > +  DVDD-supply:
> > +    description: Digital core voltage supply.
> > +    maxItems: 1
> > +
> > +  reset-gpios:
> > +    description: |
> > +      Reference to the GPIO connected to the reset pin, if any. This is an
> > +      active low signal to the OV5640.
> > +    maxItems: 1
> > +
> > +  powerdown-gpios:
> > +    description: |
> > +      Reference tot he GPIO connected to the powerdown pin, if any. This is an
> > +      active high signal to the OV5640.
> > +    maxItems: 1
> > +
> > +  rotation:
> > +    description: |
> > +      As defined in Documentation/devicetree/bindings/media/video-interfaces.txt,
> > +      valid values are 0 (sensor mounted upright) and 180 (sensor mounted upside
> > +      down).
> > +
> > +  port:
> > +    type: object
> > +    description: |
> > +      The device node must contain one 'port' child node for its digital output
> > +      video port, in accordance with the video interface bindings defined in
> > +      Documentation/devicetree/bindings/media/video-interfaces.txt.
> > +
> > +      OV5640 can be connected to a MIPI CSI-2 bus or a parallel bus endpoint.
> > +
> > +    properties:
> > +      endpoint:
> > +        type: object
> > +        properties:
> > +          remote-endpoint:
> > +            description: A phandle to the bus receiver's endpoint node.
> > +
> > +          clock-lanes:
> > +            description: Should be set to 0 (clock lane on hardware lane 0).
> > +
> > +          data-lanes:
> > +            description: |
> > +              Should be set to <1> or <1 2> (one or two CSI-2 lanes supported).
> > +
> > +          bus-width:
> > +            description: |
> > +              Shall be set to <8> for 8 bits parallel bus or <10> for 10 bits
> > +              parallel bus.
> > +
> > +          data-shift:
> > +            description: |
> > +              Shall be set to <2> for 8 bits parallel bus (lines 9:2 are used) or
> > +              <0> for 10 bits parallel bus.
> > +
> > +          hsync-active:
> > +            description: |
> > +              Active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
> > +
> > +          vsync-active:
> > +            description: |
> > +              Active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
> > +
> > +          pclk-sample:
> > +            description: |
> > +              Sample data on rising (1) or falling (0) edge of the pixel clock
> > +              signal.
> > +
> > +        required:
> > +          - remote-endpoint
> > +
> > +    additionalProperties: false
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - clocks
> > +  - clock-names
> > +  - DOVDD-supply
> > +  - AVDD-supply
> > +  - DVDD-supply
> > +  - port
> > +
> > +examples:
> > +  - |
> > +    #include <dt-bindings/gpio/gpio.h>
> > +    #include <dt-bindings/clock/imx6qdl-clock.h>
> > +
> > +    i2c0 {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        camera@3c {
> > +            compatible = "ovti,ov5640";
> > +            reg = <0x3c>;
> > +            clocks = <&clks IMX6QDL_CLK_CKO>;
> > +            clock-names = "xclk";
> > +            DOVDD-supply = <&vgen4_reg>; /* 1.8v */
> > +            AVDD-supply = <&vgen3_reg>;  /* 2.8v */
> > +            DVDD-supply = <&vgen2_reg>;  /* 1.5v */
> > +            powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
> > +            reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
> > +            rotation = <180>;
> > +
> > +            port {
> > +                ov5640_to_mipi_csi2: endpoint {
> > +                    remote-endpoint = <&mipi_csi2_from_ov5640>;
> > +                    clock-lanes = <0>;
> > +                    data-lanes = <1 2>;
> > +                };
> > +            };
> > +        };
> > +    };
> > +
> > +    i2c1 {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        camera@3c {
> > +            compatible = "ovti,ov5640";
> > +            reg = <0x3c>;
> > +            clocks = <&clks IMX6QDL_CLK_CKO>;
> > +            clock-names = "xclk";
> > +            DOVDD-supply = <&vgen4_reg>; /* 1.8v */
> > +            AVDD-supply = <&vgen3_reg>;  /* 2.8v */
> > +            DVDD-supply = <&vgen2_reg>;  /* 1.5v */
> > +            powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
> > +            reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
> > +            rotation = <180>;
> > +
> > +            port {
> > +                ov5640_to_parallel: endpoint {
> > +                    remote-endpoint = <&parallel_from_ov5640>;
> > +                    bus-width = <8>;
> > +                };
> > +            };
> > +        };
> > +    };
> > +
> > +...
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index c74d25c58e1a..0160d7567ed3 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -12605,6 +12605,7 @@ L:	linux-media@vger.kernel.org
> >   S:	Maintained
> >   T:	git git://linuxtv.org/media_tree.git
> >   F:	drivers/media/i2c/ov5640.c
> > +F:	Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> >
> >   OMNIVISION OV5647 SENSOR DRIVER
> >   M:	Jacopo Mondi <jacopo@jmondi.org>
> > --
> > 2.27.0
> >
>

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

* Re: [PATCH 1/8] dt-bindings: media: ov5640: Convert to json-schema
  2020-07-16  1:53   ` Laurent Pinchart
  2020-07-16  7:04     ` Jacopo Mondi
@ 2020-07-16  7:52     ` Geert Uytterhoeven
  1 sibling, 0 replies; 18+ messages in thread
From: Geert Uytterhoeven @ 2020-07-16  7:52 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: Jacopo Mondi, Rob Herring,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Linux Media Mailing List, Mauro Carvalho Chehab, Sakari Ailus,
	Hans Verkuil, Linux-Renesas, Steve Longerbeam

On Thu, Jul 16, 2020 at 3:54 AM Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> On Wed, Jul 15, 2020 at 04:09:44PM +0200, Jacopo Mondi wrote:
> > Convert the ov5640 bindings document to json-schema and update

> > +  rotation:
> > +    description: |
> > +      As defined in Documentation/devicetree/bindings/media/video-interfaces.txt,
> > +      valid values are 0 (sensor mounted upright) and 180 (sensor mounted upside
> > +      down).
>
> The second sentence should be replaced with
>   enum:
>     - 0
>     - 180

Or (ignoring Jacopo's later comment):

    enum: [ 0, 180 ]

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

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

* Re: [PATCH 1/8] dt-bindings: media: ov5640: Convert to json-schema
  2020-07-16  7:04     ` Jacopo Mondi
@ 2020-07-16 13:08       ` Laurent Pinchart
  0 siblings, 0 replies; 18+ messages in thread
From: Laurent Pinchart @ 2020-07-16 13:08 UTC (permalink / raw)
  To: Jacopo Mondi
  Cc: Jacopo Mondi, robh+dt, devicetree, linux-media, mchehab,
	sakari.ailus, hverkuil-cisco, linux-renesas-soc,
	Steve Longerbeam

Hi Jacopo,

On Thu, Jul 16, 2020 at 09:04:33AM +0200, Jacopo Mondi wrote:
> On Thu, Jul 16, 2020 at 04:53:23AM +0300, Laurent Pinchart wrote:
> > On Wed, Jul 15, 2020 at 04:09:44PM +0200, Jacopo Mondi wrote:
> > > Convert the ov5640 bindings document to json-schema and update
> > > the MAINTAINERS file accordingly.
> > >
> > > Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> > > ---
> > > Hi Steve,
> > >   I've added myself as maintainer in the bindings, with your ack
> > > I would be happy to add myself as maintainer or reviewer for this driver
> > > in MAINTAINERS, as I've recently been looking after this driver, mostly
> > > for the MIPI CSI-2 interface part.
> > >
> > > ---
> > >  .../devicetree/bindings/media/i2c/ov5640.txt  |  92 ---------
> > >  .../devicetree/bindings/media/i2c/ov5640.yaml | 181 ++++++++++++++++++
> > >  MAINTAINERS                                   |   1 +
> > >  3 files changed, 182 insertions(+), 92 deletions(-)
> > >  delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.txt
> > >  create mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/media/i2c/ov5640.txt b/Documentation/devicetree/bindings/media/i2c/ov5640.txt
> > > deleted file mode 100644
> > > index c97c2f2da12d..000000000000
> > > --- a/Documentation/devicetree/bindings/media/i2c/ov5640.txt
> > > +++ /dev/null
> > > @@ -1,92 +0,0 @@
> > > -* Omnivision OV5640 MIPI CSI-2 / parallel sensor
> > > -
> > > -Required Properties:
> > > -- compatible: should be "ovti,ov5640"
> > > -- clocks: reference to the xclk input clock.
> > > -- clock-names: should be "xclk".
> > > -- DOVDD-supply: Digital I/O voltage supply, 1.8 volts
> > > -- AVDD-supply: Analog voltage supply, 2.8 volts
> > > -- DVDD-supply: Digital core voltage supply, 1.5 volts
> > > -
> > > -Optional Properties:
> > > -- reset-gpios: reference to the GPIO connected to the reset pin, if any.
> > > -	       This is an active low signal to the OV5640.
> > > -- powerdown-gpios: reference to the GPIO connected to the powerdown pin,
> > > -		   if any. This is an active high signal to the OV5640.
> > > -- rotation: as defined in
> > > -	    Documentation/devicetree/bindings/media/video-interfaces.txt,
> > > -	    valid values are 0 (sensor mounted upright) and 180 (sensor
> > > -	    mounted upside down).
> > > -
> > > -The device node must contain one 'port' child node for its digital output
> > > -video port, in accordance with the video interface bindings defined in
> > > -Documentation/devicetree/bindings/media/video-interfaces.txt.
> > > -
> > > -OV5640 can be connected to a MIPI CSI-2 bus or a parallel bus endpoint.
> > > -
> > > -Endpoint node required properties for CSI-2 connection are:
> > > -- remote-endpoint: a phandle to the bus receiver's endpoint node.
> > > -- clock-lanes: should be set to <0> (clock lane on hardware lane 0)
> > > -- data-lanes: should be set to <1> or <1 2> (one or two CSI-2 lanes supported)
> > > -
> > > -Endpoint node required properties for parallel connection are:
> > > -- remote-endpoint: a phandle to the bus receiver's endpoint node.
> > > -- bus-width: shall be set to <8> for 8 bits parallel bus
> > > -	     or <10> for 10 bits parallel bus
> > > -- data-shift: shall be set to <2> for 8 bits parallel bus
> > > -	      (lines 9:2 are used) or <0> for 10 bits parallel bus
> > > -- hsync-active: active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
> > > -- vsync-active: active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
> > > -- pclk-sample: sample data on rising (1) or falling (0) edge of the pixel clock
> > > -	       signal.
> > > -
> > > -Examples:
> > > -
> > > -&i2c1 {
> > > -	ov5640: camera@3c {
> > > -		compatible = "ovti,ov5640";
> > > -		pinctrl-names = "default";
> > > -		pinctrl-0 = <&pinctrl_ov5640>;
> > > -		reg = <0x3c>;
> > > -		clocks = <&clks IMX6QDL_CLK_CKO>;
> > > -		clock-names = "xclk";
> > > -		DOVDD-supply = <&vgen4_reg>; /* 1.8v */
> > > -		AVDD-supply = <&vgen3_reg>;  /* 2.8v */
> > > -		DVDD-supply = <&vgen2_reg>;  /* 1.5v */
> > > -		powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
> > > -		reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
> > > -		rotation = <180>;
> > > -
> > > -		port {
> > > -			/* MIPI CSI-2 bus endpoint */
> > > -			ov5640_to_mipi_csi2: endpoint {
> > > -				remote-endpoint = <&mipi_csi2_from_ov5640>;
> > > -				clock-lanes = <0>;
> > > -				data-lanes = <1 2>;
> > > -			};
> > > -		};
> > > -	};
> > > -};
> > > -
> > > -&i2c1 {
> > > -	ov5640: camera@3c {
> > > -		compatible = "ovti,ov5640";
> > > -		pinctrl-names = "default";
> > > -		pinctrl-0 = <&pinctrl_ov5640>;
> > > -		reg = <0x3c>;
> > > -		clocks = <&clk_ext_camera>;
> > > -		clock-names = "xclk";
> > > -
> > > -		port {
> > > -			/* Parallel bus endpoint */
> > > -			ov5640_to_parallel: endpoint {
> > > -				remote-endpoint = <&parallel_from_ov5640>;
> > > -				bus-width = <8>;
> > > -				data-shift = <2>; /* lines 9:2 are used */
> > > -				hsync-active = <0>;
> > > -				vsync-active = <0>;
> > > -				pclk-sample = <1>;
> > > -			};
> > > -		};
> > > -	};
> > > -};
> > > diff --git a/Documentation/devicetree/bindings/media/i2c/ov5640.yaml b/Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> > > new file mode 100644
> > > index 000000000000..9c32262a3621
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> > > @@ -0,0 +1,181 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/media/i2c/ov5640.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Omnivision OV5640 MIPI CSI-2 / parallel sensor
> > > +
> > > +maintainers:
> > > +  - Steve Longerbeam <slongerbeam@gmail.com>
> > > +  - Jacopo Mondi <jacopo@jmondi.org>
> > > +
> > > +description: -|
> > > +  OV5640 is a 5 megapixels image sensor capable of producing images in RBG, RAW,
> >
> > s/OV5640/The OV5640/
> > s/RBG/RGB/
> >
> 
> Ups, will fix
> 
> > > +  YUV and compressed formats. It features a MIPI CSI-2 and a parallel data
> > > +  interface and an I2C-compatible (CCI) control interface.
> > > +
> > > +properties:
> > > +  compatible:
> > > +    const: ovti,ov5640
> > > +
> > > +  reg:
> > > +    description: I2C device address
> > > +    maxItems: 1
> > > +
> > > +  clocks:
> > > +    description: Reference to the xclk input clock.
> >
> > I'd drop this, it's implied by the clock-names
> >
> > > +    maxItems: 1
> > > +
> > > +  clock-names:
> > > +    description: Should be "xclk".
> >
> > This should be replaced with
> >
> >    const: xclk
> >
> 
> Ack for both
> 
> > > +    maxItems: 1
> > > +
> > > +  DOVDD-supply:
> > > +    description: Digital I/O voltage supply, 1.8 volts.
> > > +    maxItems: 1
> > > +
> > > +  AVDD-supply:
> > > +    description: Analog voltage supply, 2.8 volts.
> > > +    maxItems: 1
> > > +
> > > +  DVDD-supply:
> > > +    description: Digital core voltage supply.
> > > +    maxItems: 1
> > > +
> > > +  reset-gpios:
> > > +    description: |
> > > +      Reference to the GPIO connected to the reset pin, if any. This is an
> > > +      active low signal to the OV5640.
> > > +    maxItems: 1
> > > +
> > > +  powerdown-gpios:
> > > +    description: |
> > > +      Reference tot he GPIO connected to the powerdown pin, if any. This is an
> > > +      active high signal to the OV5640.
> > > +    maxItems: 1
> > > +
> > > +  rotation:
> > > +    description: |
> > > +      As defined in Documentation/devicetree/bindings/media/video-interfaces.txt,
> > > +      valid values are 0 (sensor mounted upright) and 180 (sensor mounted upside
> > > +      down).
> >
> > The second sentence should be replaced with
> >   enum:
> >     - 0
> >     - 180
> >
> 
> I copied this from the existing bindings, but I was a bit skeptical in
> first place. Support being limited to 0 and 180 only is a driver
> implementation constraint, there's nothing that prevents you from
> mounting the sensor 90deg rotated. Should the supported values be
> mentioned in the bindings at all for this property ?

You're right, it doesn't belong here. My point was that constraints
should be described with rules instead of text. I'd drop the rule in a
separate patch, or at least explain it clearly in the commit message.

> > > +
> > > +  port:
> > > +    type: object
> > > +    description: |
> > > +      The device node must contain one 'port' child node for its digital output
> > > +      video port, in accordance with the video interface bindings defined in
> > > +      Documentation/devicetree/bindings/media/video-interfaces.txt.
> > > +
> > > +      OV5640 can be connected to a MIPI CSI-2 bus or a parallel bus endpoint.
> > > +
> > > +    properties:
> > > +      endpoint:
> > > +        type: object
> > > +        properties:
> > > +          remote-endpoint:
> > > +            description: A phandle to the bus receiver's endpoint node.
> > > +
> > > +          clock-lanes:
> > > +            description: Should be set to 0 (clock lane on hardware lane 0).
> >
> > The description of most of these properties should also be replaced with
> > yaml schema rules. Ideally there should also be constraints that tell
> > which properties can be specified together. For instance here's the
> > corresponding rules from the MT9M114 DT binding (not upstream yet).
> >
> >   # See ../video-interfaces.txt for more details
> >   port:
> >     type: object
> >     properties:
> >       endpoint:
> >         type: object
> >         properties:
> >           bus-type:
> >             enum: [4, 5, 6]
> 
>                ^ this
> 
> Initially I considered switching on the bus type to be able to use an
> if construct like you shown below. But that would make the property
> mandatory, something that would break old DTB. Now, I used the word
> "break" and not "break compatibility" as the driver would still
> support old DTB, as it does not enforce that property being specified.
> But it would make old DTS invalid from a dt-schema validation point of
> view. Do we care about maintaining old DTS valid with new schema ?

Not to my knowledge, no. We should of course fix the in-tree device tree
sources to add the property, but anything out of tree, especially in
binary form, can fail to validate as long as the drivers don't break
binary compatibility.

> >
> >           clock-lanes:
> >             items:
> >               - const: 0
> >
> >           data-lanes:
> >             items:
> >               - const: 1
> >
> >           bus-width:
> >             items:
> >               - const: 8
> >
> >           hsync-active:
> >             items:
> >               - const: 1
> >
> >           vsync-active:
> >             items:
> >               - const: 1
> >
> >         required:
> >           - bus-type
> >
> >         allOf:
> >           - if:
> >               properties:
> >                 bus-type:
> >                   const: 4
> >             then:
> >               properties:
> >                 bus-width: false
> >                 hsync-active: false
> >                 vsync-active: false
> >
> >           - if:
> >               properties:
> >                 bus-type:
> >                   const: 5
> >             then:
> >               properties:
> >                 clock-lanes: false
> >                 data-lanes: false
> >
> >           - if:
> >               properties:
> >                 bus-type:
> >                   const: 6
> >             then:
> >               properties:
> >                 clock-lanes: false
> >                 data-lanes: false
> >                 hsync-active: false
> >                 vsync-active: false
> >
> >         unevaluatedProperties: false
> >
> > These comments apply to other patches in this series.
> >
> > > +
> > > +          data-lanes:
> > > +            description: |
> > > +              Should be set to <1> or <1 2> (one or two CSI-2 lanes supported).
> > > +
> > > +          bus-width:
> > > +            description: |
> > > +              Shall be set to <8> for 8 bits parallel bus or <10> for 10 bits
> > > +              parallel bus.
> > > +
> > > +          data-shift:
> > > +            description: |
> > > +              Shall be set to <2> for 8 bits parallel bus (lines 9:2 are used) or
> > > +              <0> for 10 bits parallel bus.
> 
> All of these 'supported values' should be expressed with a schema, I agree.
> 
> > > +
> > > +          hsync-active:
> > > +            description: |
> > > +              Active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
> > > +
> > > +          vsync-active:
> > > +            description: |
> > > +              Active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
> > > +
> > > +          pclk-sample:
> > > +            description: |
> > > +              Sample data on rising (1) or falling (0) edge of the pixel clock
> > > +              signal.
> > > +
> > > +        required:
> > > +          - remote-endpoint
> > > +
> > > +    additionalProperties: false
> > > +
> > > +required:
> > > +  - compatible
> > > +  - reg
> > > +  - clocks
> > > +  - clock-names
> > > +  - DOVDD-supply
> > > +  - AVDD-supply
> > > +  - DVDD-supply
> > > +  - port
> > > +
> > > +examples:
> > > +  - |
> > > +    #include <dt-bindings/gpio/gpio.h>
> > > +    #include <dt-bindings/clock/imx6qdl-clock.h>
> > > +
> > > +    i2c0 {
> > > +        #address-cells = <1>;
> > > +        #size-cells = <0>;
> > > +
> > > +        camera@3c {
> > > +            compatible = "ovti,ov5640";
> > > +            reg = <0x3c>;
> > > +            clocks = <&clks IMX6QDL_CLK_CKO>;
> > > +            clock-names = "xclk";
> > > +            DOVDD-supply = <&vgen4_reg>; /* 1.8v */
> > > +            AVDD-supply = <&vgen3_reg>;  /* 2.8v */
> > > +            DVDD-supply = <&vgen2_reg>;  /* 1.5v */
> > > +            powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
> > > +            reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
> > > +            rotation = <180>;
> > > +
> > > +            port {
> > > +                ov5640_to_mipi_csi2: endpoint {
> > > +                    remote-endpoint = <&mipi_csi2_from_ov5640>;
> > > +                    clock-lanes = <0>;
> > > +                    data-lanes = <1 2>;
> > > +                };
> > > +            };
> > > +        };
> > > +    };
> > > +
> > > +    i2c1 {
> > > +        #address-cells = <1>;
> > > +        #size-cells = <0>;
> > > +
> > > +        camera@3c {
> > > +            compatible = "ovti,ov5640";
> > > +            reg = <0x3c>;
> > > +            clocks = <&clks IMX6QDL_CLK_CKO>;
> > > +            clock-names = "xclk";
> > > +            DOVDD-supply = <&vgen4_reg>; /* 1.8v */
> > > +            AVDD-supply = <&vgen3_reg>;  /* 2.8v */
> > > +            DVDD-supply = <&vgen2_reg>;  /* 1.5v */
> > > +            powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
> > > +            reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
> > > +            rotation = <180>;
> > > +
> > > +            port {
> > > +                ov5640_to_parallel: endpoint {
> > > +                    remote-endpoint = <&parallel_from_ov5640>;
> > > +                    bus-width = <8>;
> > > +                };
> > > +            };
> > > +        };
> > > +    };
> > > +
> > > +...
> > > diff --git a/MAINTAINERS b/MAINTAINERS
> > > index c74d25c58e1a..0160d7567ed3 100644
> > > --- a/MAINTAINERS
> > > +++ b/MAINTAINERS
> > > @@ -12605,6 +12605,7 @@ L:	linux-media@vger.kernel.org
> > >  S:	Maintained
> > >  T:	git git://linuxtv.org/media_tree.git
> > >  F:	drivers/media/i2c/ov5640.c
> > > +F:	Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> > >
> > >  OMNIVISION OV5647 SENSOR DRIVER
> > >  M:	Jacopo Mondi <jacopo@jmondi.org>

-- 
Regards,

Laurent Pinchart

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

* Re: [PATCH 1/8] dt-bindings: media: ov5640: Convert to json-schema
  2020-07-15 14:09 ` [PATCH 1/8] dt-bindings: media: ov5640: " Jacopo Mondi
  2020-07-15 17:04   ` Steve Longerbeam
  2020-07-16  1:53   ` Laurent Pinchart
@ 2020-07-16 14:51   ` Rob Herring
  2 siblings, 0 replies; 18+ messages in thread
From: Rob Herring @ 2020-07-16 14:51 UTC (permalink / raw)
  To: Jacopo Mondi
  Cc: hverkuil-cisco, laurent.pinchart, linux-media, linux-renesas-soc,
	Steve Longerbeam, sakari.ailus, devicetree, mchehab, robh+dt

On Wed, 15 Jul 2020 16:09:44 +0200, Jacopo Mondi wrote:
> Convert the ov5640 bindings document to json-schema and update
> the MAINTAINERS file accordingly.
> 
> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> ---
> Hi Steve,
>   I've added myself as maintainer in the bindings, with your ack
> I would be happy to add myself as maintainer or reviewer for this driver
> in MAINTAINERS, as I've recently been looking after this driver, mostly
> for the MIPI CSI-2 interface part.
> 
> Thanks
>   j
> 
> ---
>  .../devicetree/bindings/media/i2c/ov5640.txt  |  92 ---------
>  .../devicetree/bindings/media/i2c/ov5640.yaml | 181 ++++++++++++++++++
>  MAINTAINERS                                   |   1 +
>  3 files changed, 182 insertions(+), 92 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.txt
>  create mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.yaml
> 


My bot found errors running 'make dt_binding_check' on your patch:

/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/media/ti,cal.example.dt.yaml: camera-sensor@3c: 'DOVDD-supply' is a required property
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/media/ti,cal.example.dt.yaml: camera-sensor@3c: 'AVDD-supply' is a required property
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/media/ti,cal.example.dt.yaml: camera-sensor@3c: 'DVDD-supply' is a required property


See https://patchwork.ozlabs.org/patch/1329566

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure dt-schema is up to date:

pip3 install git+https://github.com/devicetree-org/dt-schema.git@master --upgrade

Please check and re-submit.


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

* Re: [PATCH 0/8] dt-bindings: media: i2c: Convert to json-schema
  2020-07-15 14:09 [PATCH 0/8] dt-bindings: media: i2c: Convert to json-schema Jacopo Mondi
                   ` (7 preceding siblings ...)
  2020-07-15 14:09 ` [PATCH 8/8] dt-bindings: media: i2c: Add prefix to yaml bindings Jacopo Mondi
@ 2020-08-17 15:12 ` Jacopo Mondi
  8 siblings, 0 replies; 18+ messages in thread
From: Jacopo Mondi @ 2020-08-17 15:12 UTC (permalink / raw)
  To: Jacopo Mondi
  Cc: robh+dt, devicetree, linux-media, mchehab, sakari.ailus,
	hverkuil-cisco, laurent.pinchart, linux-renesas-soc

Hello
   Mauro, Hans or Sakari (whoever maintains the media patchwork
instance), could you mark patches in this series as super-seded,
as I will re-send them out for each individual sensor ?

Thanks
   j

On Wed, Jul 15, 2020 at 04:09:43PM +0200, Jacopo Mondi wrote:
> Convert to json schema the bindings file for the following sensor
> drivers:
>
> - ov5640
> - ov5645
> - ov772x
> - mt9v111
> - imx214
> - imx274
> - imx290
>
> On top of the conversion to yaml, rename the files to include the
> vendor prefix (I kept this separate as I'm not sure it's actually desired).
>
> The series requires:
> [PATCH v3 0/3] dt-bidings: media: ov5647 bindings + small fix
> which converts the ov5647 bindings to yaml which I sent separately
> as it was already in review.
>
> Individual maintainers Cc-ed for each single patch where available.
>
> Thanks
>   j
>
> Jacopo Mondi (8):
>   dt-bindings: media: ov5640: Convert to json-schema
>   dt-bindings: media: ov5645: Convert to json-schema
>   dt-bindings: media: mt9v111: Convert to json-schema
>   dt-bindings: media: imx290: Convert to json-schema
>   dt-bindings: media: imx274: Convert to json-schema
>   dt-bindings: media: imx214: Convert to json-schema
>   dt-bindings: media: ov772x: Convert to json-schema
>   dt-bindings: media: i2c: Add prefix to yaml bindings
>
>  .../bindings/media/i2c/aptina,mt9v111.txt     |  46 -----
>  .../bindings/media/i2c/aptina,mt9v111.yaml    |  87 +++++++++
>  .../devicetree/bindings/media/i2c/imx274.txt  |  33 ----
>  .../devicetree/bindings/media/i2c/imx290.txt  |  57 ------
>  .../devicetree/bindings/media/i2c/ov5640.txt  |  92 ---------
>  .../devicetree/bindings/media/i2c/ov5645.txt  |  54 ------
>  .../devicetree/bindings/media/i2c/ov772x.txt  |  40 ----
>  .../bindings/media/i2c/ovti,ov5640.yaml       | 181 ++++++++++++++++++
>  .../bindings/media/i2c/ovti,ov5645.yaml       | 123 ++++++++++++
>  .../i2c/{ov5647.yaml => ovti,ov5647.yaml}     |   0
>  .../bindings/media/i2c/ovti,ov772x.yaml       |  89 +++++++++
>  .../i2c/{ov8856.yaml => ovti,ov8856.yaml}     |   0
>  .../bindings/media/i2c/sony,imx214.txt        |  53 -----
>  .../bindings/media/i2c/sony,imx214.yaml       | 124 ++++++++++++
>  .../i2c/{imx219.yaml => sony,imx219.yaml}     |   0
>  .../bindings/media/i2c/sony,imx274.yaml       |  74 +++++++
>  .../bindings/media/i2c/sony,imx290.yaml       | 124 ++++++++++++
>  MAINTAINERS                                   |  25 ++-
>  18 files changed, 819 insertions(+), 383 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.txt
>  create mode 100644 Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml
>  delete mode 100644 Documentation/devicetree/bindings/media/i2c/imx274.txt
>  delete mode 100644 Documentation/devicetree/bindings/media/i2c/imx290.txt
>  delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.txt
>  delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov5645.txt
>  delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov772x.txt
>  create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov5640.yaml
>  create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov5645.yaml
>  rename Documentation/devicetree/bindings/media/i2c/{ov5647.yaml => ovti,ov5647.yaml} (100%)
>  create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml
>  rename Documentation/devicetree/bindings/media/i2c/{ov8856.yaml => ovti,ov8856.yaml} (100%)
>  delete mode 100644 Documentation/devicetree/bindings/media/i2c/sony,imx214.txt
>  create mode 100644 Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml
>  rename Documentation/devicetree/bindings/media/i2c/{imx219.yaml => sony,imx219.yaml} (100%)
>  create mode 100644 Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml
>  create mode 100644 Documentation/devicetree/bindings/media/i2c/sony,imx290.yaml
>
> --
> 2.27.0
>

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

end of thread, other threads:[~2020-08-17 15:09 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-15 14:09 [PATCH 0/8] dt-bindings: media: i2c: Convert to json-schema Jacopo Mondi
2020-07-15 14:09 ` [PATCH 1/8] dt-bindings: media: ov5640: " Jacopo Mondi
2020-07-15 17:04   ` Steve Longerbeam
2020-07-16  7:06     ` Jacopo Mondi
2020-07-16  1:53   ` Laurent Pinchart
2020-07-16  7:04     ` Jacopo Mondi
2020-07-16 13:08       ` Laurent Pinchart
2020-07-16  7:52     ` Geert Uytterhoeven
2020-07-16 14:51   ` Rob Herring
2020-07-15 14:09 ` [PATCH 2/8] dt-bindings: media: ov5645: " Jacopo Mondi
2020-07-15 15:31   ` Manivannan Sadhasivam
2020-07-15 14:09 ` [PATCH 3/8] dt-bindings: media: mt9v111: " Jacopo Mondi
2020-07-15 14:09 ` [PATCH 4/8] dt-bindings: media: imx290: " Jacopo Mondi
2020-07-15 14:09 ` [PATCH 5/8] dt-bindings: media: imx274: " Jacopo Mondi
2020-07-15 14:09 ` [PATCH 6/8] dt-bindings: media: imx214: " Jacopo Mondi
2020-07-15 14:09 ` [PATCH 7/8] dt-bindings: media: ov772x: " Jacopo Mondi
2020-07-15 14:09 ` [PATCH 8/8] dt-bindings: media: i2c: Add prefix to yaml bindings Jacopo Mondi
2020-08-17 15:12 ` [PATCH 0/8] dt-bindings: media: i2c: Convert to json-schema Jacopo Mondi

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).