All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] dt-bindings: yaml conversion of i2c-gate and IIO users
@ 2020-11-28 17:33 Jonathan Cameron
  2020-11-28 17:33 ` [PATCH v2 1/3] dt-bindings:i2c:i2c-gate: txt to yaml conversion Jonathan Cameron
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Jonathan Cameron @ 2020-11-28 17:33 UTC (permalink / raw)
  To: linux-iio, devicetree, linux-i2c
  Cc: Rob Herring, Wolfram Sang, Peter Rosin, Jonathan Cameron

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Part of general move of all IIO bindings over to yaml.

Chances since v1.
As Rob suggested, I've move the 2 users over to directly referencing
i2c-controller.yaml.

For the i2c-gate.yaml patch itself, I've kept it on the basis it provides
some central docs of what an i2c-gate actually is.  Now it basically
just provides the node name and reference to i2c-controller.yaml

I've retained Rob's Reviewed-by on basis changes were ones he suggested and
fairly minor in scope.

Now the two IIO patches are separate from the i2c-gate one we can
take them via diferent trees without any problems so unless any issues
come up I'll pick up the two IIO patches in a few days time.

Jonathan Cameron (3):
  dt-bindings:i2c:i2c-gate: txt to yaml conversion
  dt-bindings:iio:imu:invensense,mpu6050: txt to yaml conversion
  dt-bindings:iio:gyro:invensense,mpu3050: txt to yaml format
    conversion.

 .../devicetree/bindings/i2c/i2c-gate.txt      |  41 -------
 .../devicetree/bindings/i2c/i2c-gate.yaml     |  39 +++++++
 .../iio/gyroscope/invensense,mpu3050.txt      |  45 --------
 .../iio/gyroscope/invensense,mpu3050.yaml     |  70 ++++++++++++
 .../bindings/iio/imu/inv_mpu6050.txt          |  67 ------------
 .../bindings/iio/imu/invensense,mpu6050.yaml  | 103 ++++++++++++++++++
 6 files changed, 212 insertions(+), 153 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-gate.txt
 create mode 100644 Documentation/devicetree/bindings/i2c/i2c-gate.yaml
 delete mode 100644 Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.txt
 create mode 100644 Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.yaml
 delete mode 100644 Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt
 create mode 100644 Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml

-- 
2.29.2


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

* [PATCH v2 1/3] dt-bindings:i2c:i2c-gate: txt to yaml conversion
  2020-11-28 17:33 [PATCH v2 0/3] dt-bindings: yaml conversion of i2c-gate and IIO users Jonathan Cameron
@ 2020-11-28 17:33 ` Jonathan Cameron
  2020-12-08 21:31   ` Rob Herring
  2020-11-28 17:33 ` [PATCH v2 2/3] dt-bindings:iio:imu:invensense,mpu6050: " Jonathan Cameron
  2020-11-28 17:33 ` [PATCH v2 3/3] dt-bindings:iio:gyro:invensense,mpu3050: txt to yaml format conversion Jonathan Cameron
  2 siblings, 1 reply; 7+ messages in thread
From: Jonathan Cameron @ 2020-11-28 17:33 UTC (permalink / raw)
  To: linux-iio, devicetree, linux-i2c
  Cc: Rob Herring, Wolfram Sang, Peter Rosin, Jonathan Cameron, Wolfram Sang

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

This file provides very little in the way of actual schema but
does provide a convenient intro to what an i2c-gate node actually
represents.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Peter Rosin <peda@axentia.se>
Cc: Wolfram Sang <wsa@the-dreams.de>
Link: https://lore.kernel.org/r/20201031181801.742585-2-jic23@kernel.org
---
 .../devicetree/bindings/i2c/i2c-gate.txt      | 41 -------------------
 .../devicetree/bindings/i2c/i2c-gate.yaml     | 39 ++++++++++++++++++
 2 files changed, 39 insertions(+), 41 deletions(-)

diff --git a/Documentation/devicetree/bindings/i2c/i2c-gate.txt b/Documentation/devicetree/bindings/i2c/i2c-gate.txt
deleted file mode 100644
index 1846d236e656..000000000000
--- a/Documentation/devicetree/bindings/i2c/i2c-gate.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-An i2c gate is useful to e.g. reduce the digital noise for RF tuners connected
-to the i2c bus. Gates are similar to arbitrators in that you need to perform
-some kind of operation to access the i2c bus past the arbitrator/gate, but
-there are no competing masters to consider for gates and therefore there is
-no arbitration happening for gates.
-
-Common i2c gate properties.
-
-- i2c-gate child node
-
-Required properties for the i2c-gate child node:
-- #address-cells = <1>;
-- #size-cells = <0>;
-
-Optional properties for i2c-gate child node:
-- Child nodes conforming to i2c bus binding
-
-
-Example :
-
-	/*
-	   An Invensense mpu9150 at address 0x68 featuring an on-chip Asahi
-	   Kasei ak8975 compass behind a gate.
-	 */
-
-	mpu9150@68 {
-		compatible = "invensense,mpu9150";
-		reg = <0x68>;
-		interrupt-parent = <&gpio1>;
-		interrupts = <18 1>;
-
-		i2c-gate {
-			#address-cells = <1>;
-			#size-cells = <0>;
-
-			ax8975@c {
-				compatible = "ak,ak8975";
-				reg = <0x0c>;
-			};
-		};
-	};
diff --git a/Documentation/devicetree/bindings/i2c/i2c-gate.yaml b/Documentation/devicetree/bindings/i2c/i2c-gate.yaml
new file mode 100644
index 000000000000..66472f12a7e2
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/i2c-gate.yaml
@@ -0,0 +1,39 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/i2c/i2c-gate.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Common i2c gate properties
+
+maintainers:
+  - Peter Rosin <peda@axentia.se>
+
+description: |
+  An i2c gate is useful to e.g. reduce the digital noise for RF tuners connected
+  to the i2c bus. Gates are similar to arbitrators in that you need to perform
+  some kind of operation to access the i2c bus past the arbitrator/gate, but
+  there are no competing masters to consider for gates and therefore there is
+  no arbitration happening for gates.
+
+allOf:
+  - $ref: /schemas/i2c/i2c-controller.yaml
+
+properties:
+  $nodename:
+    const: i2c-gate
+
+additionalProperties: true
+
+examples:
+  - |
+    i2c-gate {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        ak8975@c {
+            compatible = "ak,ak8975";
+            reg = <0x0c>;
+        };
+    };
+...
+
-- 
2.29.2


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

* [PATCH v2 2/3] dt-bindings:iio:imu:invensense,mpu6050: txt to yaml conversion
  2020-11-28 17:33 [PATCH v2 0/3] dt-bindings: yaml conversion of i2c-gate and IIO users Jonathan Cameron
  2020-11-28 17:33 ` [PATCH v2 1/3] dt-bindings:i2c:i2c-gate: txt to yaml conversion Jonathan Cameron
@ 2020-11-28 17:33 ` Jonathan Cameron
  2020-12-13 13:19   ` Jonathan Cameron
  2020-11-28 17:33 ` [PATCH v2 3/3] dt-bindings:iio:gyro:invensense,mpu3050: txt to yaml format conversion Jonathan Cameron
  2 siblings, 1 reply; 7+ messages in thread
From: Jonathan Cameron @ 2020-11-28 17:33 UTC (permalink / raw)
  To: linux-iio, devicetree, linux-i2c
  Cc: Rob Herring, Wolfram Sang, Peter Rosin, Jonathan Cameron,
	Rob Herring, Jean-Baptiste Maneyrol, Wolfram Sang

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

As Rob Herring suggested, this no long requires the explicit
i2c-gate binding, but instead just used i2c-controller.yaml
directly.

2 prior examples combinded into one as a single example can show
all of the binding elements as long as the right part is selected.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Cc: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
Cc: Wolfram Sang <wsa@the-dreams.de>
Cc: Peter Rosin <peda@axentia.se>
Link: https://lore.kernel.org/r/20201031181801.742585-3-jic23@kernel.org
---
 .../bindings/iio/imu/inv_mpu6050.txt          |  67 ------------
 .../bindings/iio/imu/invensense,mpu6050.yaml  | 103 ++++++++++++++++++
 2 files changed, 103 insertions(+), 67 deletions(-)

diff --git a/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt b/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt
deleted file mode 100644
index f2f64749e818..000000000000
--- a/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-InvenSense MPU-6050 Six-Axis (Gyro + Accelerometer) MEMS MotionTracking Device
-
-http://www.invensense.com/mems/gyro/mpu6050.html
-
-Required properties:
- - compatible : should be one of
-		"invensense,mpu6000"
-		"invensense,mpu6050"
- 		"invensense,mpu6500"
-		"invensense,mpu6515"
-		"invensense,mpu9150"
-		"invensense,mpu9250"
-		"invensense,mpu9255"
-		"invensense,icm20608"
-		"invensense,icm20609"
-		"invensense,icm20689"
-		"invensense,icm20602"
-		"invensense,icm20690"
-		"invensense,iam20680"
- - reg : the I2C address of the sensor
- - interrupts: interrupt mapping for IRQ. It should be configured with flags
-   IRQ_TYPE_LEVEL_HIGH, IRQ_TYPE_EDGE_RISING, IRQ_TYPE_LEVEL_LOW or
-   IRQ_TYPE_EDGE_FALLING.
-
-  Refer to interrupt-controller/interrupts.txt for generic interrupt client node
-  bindings.
-
-Optional properties:
- - vdd-supply: regulator phandle for VDD supply
- - vddio-supply: regulator phandle for VDDIO supply
- - mount-matrix: an optional 3x3 mounting rotation matrix
- - i2c-gate node.  These devices also support an auxiliary i2c bus.  This is
-   simple enough to be described using the i2c-gate binding. See
-   i2c/i2c-gate.txt for more details.
-
-Example:
-	mpu6050@68 {
-		compatible = "invensense,mpu6050";
-		reg = <0x68>;
-		interrupt-parent = <&gpio1>;
-		interrupts = <18 IRQ_TYPE_EDGE_RISING>;
-		mount-matrix = "-0.984807753012208",  /* x0 */
-		               "0",                   /* y0 */
-		               "-0.173648177666930",  /* z0 */
-		               "0",                   /* x1 */
-		               "-1",                  /* y1 */
-		               "0",                   /* z1 */
-		               "-0.173648177666930",  /* x2 */
-		               "0",                   /* y2 */
-		               "0.984807753012208";   /* z2 */
-	};
-
-
-	mpu9250@68 {
-		compatible = "invensense,mpu9250";
-		reg = <0x68>;
-		interrupt-parent = <&gpio3>;
-		interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;
-		i2c-gate {
-			#address-cells = <1>;
-			#size-cells = <0>;
-			ax8975@c {
-				compatible = "ak,ak8975";
-				reg = <0x0c>;
-			};
-		};
-	};
diff --git a/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml b/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml
new file mode 100644
index 000000000000..9268b6ca2afe
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml
@@ -0,0 +1,103 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/imu/invensense,mpu6050.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: InvenSense MPU-6050 Six-Axis (Gyro + Accelerometer) MEMS MotionTracking Device
+
+maintainers:
+  - Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
+
+description: |
+  These devices support both I2C and SPI bus interfaces.
+
+properties:
+  compatible:
+    enum:
+      - invensense,iam20680
+      - invensense,icm20608
+      - invensense,icm20609
+      - invensense,icm20689
+      - invensense,icm20602
+      - invensense,icm20690
+      - invensense,mpu6000
+      - invensense,mpu6050
+      - invensense,mpu6500
+      - invensense,mpu6515
+      - invensense,mpu9150
+      - invensense,mpu9250
+      - invensense,mpu9255
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  spi-max-frequency: true
+
+  vdd-supply: true
+  vddio-supply: true
+
+  mount-matrix: true
+
+  i2c-gate:
+    $ref: /schemas/i2c/i2c-controller.yaml
+    unevaluatedProperties: false
+    description: |
+      These devices also support an auxiliary i2c bus via an i2c-gate.
+
+allOf:
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              enum:
+                - invensense,mpu9150
+                - invensense,mpu9250
+                - invensense,mpu9255
+    then:
+      properties:
+        i2c-gate: false
+
+additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        imu@68 {
+            compatible = "invensense,mpu9250";
+            reg = <0x68>;
+            interrupt-parent = <&gpio3>;
+            interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;
+            mount-matrix = "-0.984807753012208",  /* x0 */
+                           "0",                   /* y0 */
+                           "-0.173648177666930",  /* z0 */
+                           "0",                   /* x1 */
+                           "-1",                  /* y1 */
+                           "0",                   /* z1 */
+                           "-0.173648177666930",  /* x2 */
+                           "0",                   /* y2 */
+                           "0.984807753012208";   /* z2 */
+            i2c-gate {
+                #address-cells = <1>;
+                #size-cells = <0>;
+                magnetometer@c {
+                    compatible = "ak,ak8975";
+                    reg = <0x0c>;
+                };
+            };
+        };
+    };
+...
-- 
2.29.2


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

* [PATCH v2 3/3] dt-bindings:iio:gyro:invensense,mpu3050: txt to yaml format conversion.
  2020-11-28 17:33 [PATCH v2 0/3] dt-bindings: yaml conversion of i2c-gate and IIO users Jonathan Cameron
  2020-11-28 17:33 ` [PATCH v2 1/3] dt-bindings:i2c:i2c-gate: txt to yaml conversion Jonathan Cameron
  2020-11-28 17:33 ` [PATCH v2 2/3] dt-bindings:iio:imu:invensense,mpu6050: " Jonathan Cameron
@ 2020-11-28 17:33 ` Jonathan Cameron
  2020-12-13 13:20   ` Jonathan Cameron
  2 siblings, 1 reply; 7+ messages in thread
From: Jonathan Cameron @ 2020-11-28 17:33 UTC (permalink / raw)
  To: linux-iio, devicetree, linux-i2c
  Cc: Rob Herring, Wolfram Sang, Peter Rosin, Jonathan Cameron,
	Linus Walleij, Rob Herring

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Very similar to the mpu6050 binding.
Only unusual element is the i2c-gate section.
Example tweaked a little to include a real device behind the gate.

As Rob Herring suggested, dropped use of explicit i2c-gate yaml
binding in favour of just using the i2c-controller.yaml binding
directly.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20201031181801.742585-4-jic23@kernel.org
---
 .../iio/gyroscope/invensense,mpu3050.txt      | 45 ------------
 .../iio/gyroscope/invensense,mpu3050.yaml     | 70 +++++++++++++++++++
 2 files changed, 70 insertions(+), 45 deletions(-)

diff --git a/Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.txt b/Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.txt
deleted file mode 100644
index 233fe207aded..000000000000
--- a/Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-Invensense MPU-3050 Gyroscope device tree bindings
-
-Required properties:
-  - compatible : should be "invensense,mpu3050"
-  - reg : the I2C address of the sensor
-
-Optional properties:
-  - interrupts : interrupt mapping for the trigger interrupt from the
-    internal oscillator. The following IRQ modes are supported:
-    IRQ_TYPE_EDGE_RISING, IRQ_TYPE_EDGE_FALLING, IRQ_TYPE_LEVEL_HIGH and
-    IRQ_TYPE_LEVEL_LOW. The driver should detect and configure the hardware
-    for the desired interrupt type.
-  - vdd-supply : supply regulator for the main power voltage.
-  - vlogic-supply : supply regulator for the signal voltage.
-  - mount-matrix : see iio/mount-matrix.txt
-
-Optional subnodes:
-  - The MPU-3050 will pass through and forward the I2C signals from the
-    incoming I2C bus, alternatively drive traffic to a slave device (usually
-    an accelerometer) on its own initiative. Therefore is supports a subnode
-    i2c gate node. For details see: i2c/i2c-gate.txt
-
-Example:
-
-mpu3050@68 {
-	compatible = "invensense,mpu3050";
-	reg = <0x68>;
-	interrupt-parent = <&foo>;
-	interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
-	vdd-supply = <&bar>;
-	vlogic-supply = <&baz>;
-
-	/* External I2C interface */
-	i2c-gate {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		fnord@18 {
-			compatible = "fnord";
-			reg = <0x18>;
-			interrupt-parent = <&foo>;
-			interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
-		};
-	};
-};
diff --git a/Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.yaml b/Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.yaml
new file mode 100644
index 000000000000..7e2accc3d5ce
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.yaml
@@ -0,0 +1,70 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/gyroscope/invensense,mpu3050.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Invensense MPU-3050 Gyroscope
+
+maintainers:
+  - Linus Walleij <linus.walleij@linaro.org>
+
+properties:
+  compatible:
+    const: invensense,mpu3050
+
+  reg:
+    maxItems: 1
+
+  vdd-supply: true
+
+  vlogic-supply: true
+
+  interrupts:
+    minItems: 1
+    description:
+      Interrupt mapping for the trigger interrupt from the internal oscillator.
+
+  mount-matrix: true
+
+  i2c-gate:
+    $ref: /schemas/i2c/i2c-controller.yaml
+    unevaluatedProperties: false
+    description: |
+      The MPU-3050 will pass through and forward the I2C signals from the
+      incoming I2C bus, alternatively drive traffic to a slave device (usually
+      an accelerometer) on its own initiative. Therefore is supports an
+      i2c-gate subnode.
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        gyroscope@68 {
+            compatible = "invensense,mpu3050";
+            reg = <0x68>;
+            interrupt-parent = <&foo>;
+            interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
+            vdd-supply = <&bar>;
+            vlogic-supply = <&baz>;
+
+            i2c-gate {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                magnetometer@c {
+                    compatible = "ak,ak8975";
+                    reg = <0x0c>;
+                };
+            };
+        };
+    };
+...
-- 
2.29.2


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

* Re: [PATCH v2 1/3] dt-bindings:i2c:i2c-gate: txt to yaml conversion
  2020-11-28 17:33 ` [PATCH v2 1/3] dt-bindings:i2c:i2c-gate: txt to yaml conversion Jonathan Cameron
@ 2020-12-08 21:31   ` Rob Herring
  0 siblings, 0 replies; 7+ messages in thread
From: Rob Herring @ 2020-12-08 21:31 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: linux-iio, Jonathan Cameron, devicetree, Peter Rosin,
	Wolfram Sang, Wolfram Sang, linux-i2c, Rob Herring

On Sat, 28 Nov 2020 17:33:41 +0000, Jonathan Cameron wrote:
> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> 
> This file provides very little in the way of actual schema but
> does provide a convenient intro to what an i2c-gate node actually
> represents.
> 
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Cc: Peter Rosin <peda@axentia.se>
> Cc: Wolfram Sang <wsa@the-dreams.de>
> Link: https://lore.kernel.org/r/20201031181801.742585-2-jic23@kernel.org
> ---
>  .../devicetree/bindings/i2c/i2c-gate.txt      | 41 -------------------
>  .../devicetree/bindings/i2c/i2c-gate.yaml     | 39 ++++++++++++++++++
>  2 files changed, 39 insertions(+), 41 deletions(-)
> 

Applied, thanks!

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

* Re: [PATCH v2 2/3] dt-bindings:iio:imu:invensense,mpu6050: txt to yaml conversion
  2020-11-28 17:33 ` [PATCH v2 2/3] dt-bindings:iio:imu:invensense,mpu6050: " Jonathan Cameron
@ 2020-12-13 13:19   ` Jonathan Cameron
  0 siblings, 0 replies; 7+ messages in thread
From: Jonathan Cameron @ 2020-12-13 13:19 UTC (permalink / raw)
  To: linux-iio, devicetree, linux-i2c
  Cc: Rob Herring, Wolfram Sang, Peter Rosin, Jonathan Cameron,
	Rob Herring, Jean-Baptiste Maneyrol, Wolfram Sang

On Sat, 28 Nov 2020 17:33:42 +0000
Jonathan Cameron <jic23@kernel.org> wrote:

> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> 
> As Rob Herring suggested, this no long requires the explicit
> i2c-gate binding, but instead just used i2c-controller.yaml
> directly.
> 
> 2 prior examples combinded into one as a single example can show
> all of the binding elements as long as the right part is selected.
> 
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Reviewed-by: Rob Herring <robh@kernel.org>
> Cc: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
> Cc: Wolfram Sang <wsa@the-dreams.de>
> Cc: Peter Rosin <peda@axentia.se>
> Link: https://lore.kernel.org/r/20201031181801.742585-3-jic23@kernel.org
Applied to the togreg branch of iio.git


> ---
>  .../bindings/iio/imu/inv_mpu6050.txt          |  67 ------------
>  .../bindings/iio/imu/invensense,mpu6050.yaml  | 103 ++++++++++++++++++
>  2 files changed, 103 insertions(+), 67 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt b/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt
> deleted file mode 100644
> index f2f64749e818..000000000000
> --- a/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt
> +++ /dev/null
> @@ -1,67 +0,0 @@
> -InvenSense MPU-6050 Six-Axis (Gyro + Accelerometer) MEMS MotionTracking Device
> -
> -http://www.invensense.com/mems/gyro/mpu6050.html
> -
> -Required properties:
> - - compatible : should be one of
> -		"invensense,mpu6000"
> -		"invensense,mpu6050"
> - 		"invensense,mpu6500"
> -		"invensense,mpu6515"
> -		"invensense,mpu9150"
> -		"invensense,mpu9250"
> -		"invensense,mpu9255"
> -		"invensense,icm20608"
> -		"invensense,icm20609"
> -		"invensense,icm20689"
> -		"invensense,icm20602"
> -		"invensense,icm20690"
> -		"invensense,iam20680"
> - - reg : the I2C address of the sensor
> - - interrupts: interrupt mapping for IRQ. It should be configured with flags
> -   IRQ_TYPE_LEVEL_HIGH, IRQ_TYPE_EDGE_RISING, IRQ_TYPE_LEVEL_LOW or
> -   IRQ_TYPE_EDGE_FALLING.
> -
> -  Refer to interrupt-controller/interrupts.txt for generic interrupt client node
> -  bindings.
> -
> -Optional properties:
> - - vdd-supply: regulator phandle for VDD supply
> - - vddio-supply: regulator phandle for VDDIO supply
> - - mount-matrix: an optional 3x3 mounting rotation matrix
> - - i2c-gate node.  These devices also support an auxiliary i2c bus.  This is
> -   simple enough to be described using the i2c-gate binding. See
> -   i2c/i2c-gate.txt for more details.
> -
> -Example:
> -	mpu6050@68 {
> -		compatible = "invensense,mpu6050";
> -		reg = <0x68>;
> -		interrupt-parent = <&gpio1>;
> -		interrupts = <18 IRQ_TYPE_EDGE_RISING>;
> -		mount-matrix = "-0.984807753012208",  /* x0 */
> -		               "0",                   /* y0 */
> -		               "-0.173648177666930",  /* z0 */
> -		               "0",                   /* x1 */
> -		               "-1",                  /* y1 */
> -		               "0",                   /* z1 */
> -		               "-0.173648177666930",  /* x2 */
> -		               "0",                   /* y2 */
> -		               "0.984807753012208";   /* z2 */
> -	};
> -
> -
> -	mpu9250@68 {
> -		compatible = "invensense,mpu9250";
> -		reg = <0x68>;
> -		interrupt-parent = <&gpio3>;
> -		interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;
> -		i2c-gate {
> -			#address-cells = <1>;
> -			#size-cells = <0>;
> -			ax8975@c {
> -				compatible = "ak,ak8975";
> -				reg = <0x0c>;
> -			};
> -		};
> -	};
> diff --git a/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml b/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml
> new file mode 100644
> index 000000000000..9268b6ca2afe
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml
> @@ -0,0 +1,103 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/imu/invensense,mpu6050.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: InvenSense MPU-6050 Six-Axis (Gyro + Accelerometer) MEMS MotionTracking Device
> +
> +maintainers:
> +  - Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
> +
> +description: |
> +  These devices support both I2C and SPI bus interfaces.
> +
> +properties:
> +  compatible:
> +    enum:
> +      - invensense,iam20680
> +      - invensense,icm20608
> +      - invensense,icm20609
> +      - invensense,icm20689
> +      - invensense,icm20602
> +      - invensense,icm20690
> +      - invensense,mpu6000
> +      - invensense,mpu6050
> +      - invensense,mpu6500
> +      - invensense,mpu6515
> +      - invensense,mpu9150
> +      - invensense,mpu9250
> +      - invensense,mpu9255
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  spi-max-frequency: true
> +
> +  vdd-supply: true
> +  vddio-supply: true
> +
> +  mount-matrix: true
> +
> +  i2c-gate:
> +    $ref: /schemas/i2c/i2c-controller.yaml
> +    unevaluatedProperties: false
> +    description: |
> +      These devices also support an auxiliary i2c bus via an i2c-gate.
> +
> +allOf:
> +  - if:
> +      not:
> +        properties:
> +          compatible:
> +            contains:
> +              enum:
> +                - invensense,mpu9150
> +                - invensense,mpu9250
> +                - invensense,mpu9255
> +    then:
> +      properties:
> +        i2c-gate: false
> +
> +additionalProperties: false
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        imu@68 {
> +            compatible = "invensense,mpu9250";
> +            reg = <0x68>;
> +            interrupt-parent = <&gpio3>;
> +            interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;
> +            mount-matrix = "-0.984807753012208",  /* x0 */
> +                           "0",                   /* y0 */
> +                           "-0.173648177666930",  /* z0 */
> +                           "0",                   /* x1 */
> +                           "-1",                  /* y1 */
> +                           "0",                   /* z1 */
> +                           "-0.173648177666930",  /* x2 */
> +                           "0",                   /* y2 */
> +                           "0.984807753012208";   /* z2 */
> +            i2c-gate {
> +                #address-cells = <1>;
> +                #size-cells = <0>;
> +                magnetometer@c {
> +                    compatible = "ak,ak8975";
> +                    reg = <0x0c>;
> +                };
> +            };
> +        };
> +    };
> +...


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

* Re: [PATCH v2 3/3] dt-bindings:iio:gyro:invensense,mpu3050: txt to yaml format conversion.
  2020-11-28 17:33 ` [PATCH v2 3/3] dt-bindings:iio:gyro:invensense,mpu3050: txt to yaml format conversion Jonathan Cameron
@ 2020-12-13 13:20   ` Jonathan Cameron
  0 siblings, 0 replies; 7+ messages in thread
From: Jonathan Cameron @ 2020-12-13 13:20 UTC (permalink / raw)
  To: linux-iio, devicetree, linux-i2c
  Cc: Rob Herring, Wolfram Sang, Peter Rosin, Jonathan Cameron,
	Linus Walleij, Rob Herring

On Sat, 28 Nov 2020 17:33:43 +0000
Jonathan Cameron <jic23@kernel.org> wrote:

> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> 
> Very similar to the mpu6050 binding.
> Only unusual element is the i2c-gate section.
> Example tweaked a little to include a real device behind the gate.
> 
> As Rob Herring suggested, dropped use of explicit i2c-gate yaml
> binding in favour of just using the i2c-controller.yaml binding
> directly.
> 
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
> Reviewed-by: Rob Herring <robh@kernel.org>
> Link: https://lore.kernel.org/r/20201031181801.742585-4-jic23@kernel.org
Applied.

Thanks,

Jonathan

> ---
>  .../iio/gyroscope/invensense,mpu3050.txt      | 45 ------------
>  .../iio/gyroscope/invensense,mpu3050.yaml     | 70 +++++++++++++++++++
>  2 files changed, 70 insertions(+), 45 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.txt b/Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.txt
> deleted file mode 100644
> index 233fe207aded..000000000000
> --- a/Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.txt
> +++ /dev/null
> @@ -1,45 +0,0 @@
> -Invensense MPU-3050 Gyroscope device tree bindings
> -
> -Required properties:
> -  - compatible : should be "invensense,mpu3050"
> -  - reg : the I2C address of the sensor
> -
> -Optional properties:
> -  - interrupts : interrupt mapping for the trigger interrupt from the
> -    internal oscillator. The following IRQ modes are supported:
> -    IRQ_TYPE_EDGE_RISING, IRQ_TYPE_EDGE_FALLING, IRQ_TYPE_LEVEL_HIGH and
> -    IRQ_TYPE_LEVEL_LOW. The driver should detect and configure the hardware
> -    for the desired interrupt type.
> -  - vdd-supply : supply regulator for the main power voltage.
> -  - vlogic-supply : supply regulator for the signal voltage.
> -  - mount-matrix : see iio/mount-matrix.txt
> -
> -Optional subnodes:
> -  - The MPU-3050 will pass through and forward the I2C signals from the
> -    incoming I2C bus, alternatively drive traffic to a slave device (usually
> -    an accelerometer) on its own initiative. Therefore is supports a subnode
> -    i2c gate node. For details see: i2c/i2c-gate.txt
> -
> -Example:
> -
> -mpu3050@68 {
> -	compatible = "invensense,mpu3050";
> -	reg = <0x68>;
> -	interrupt-parent = <&foo>;
> -	interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
> -	vdd-supply = <&bar>;
> -	vlogic-supply = <&baz>;
> -
> -	/* External I2C interface */
> -	i2c-gate {
> -		#address-cells = <1>;
> -		#size-cells = <0>;
> -
> -		fnord@18 {
> -			compatible = "fnord";
> -			reg = <0x18>;
> -			interrupt-parent = <&foo>;
> -			interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
> -		};
> -	};
> -};
> diff --git a/Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.yaml b/Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.yaml
> new file mode 100644
> index 000000000000..7e2accc3d5ce
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.yaml
> @@ -0,0 +1,70 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/gyroscope/invensense,mpu3050.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Invensense MPU-3050 Gyroscope
> +
> +maintainers:
> +  - Linus Walleij <linus.walleij@linaro.org>
> +
> +properties:
> +  compatible:
> +    const: invensense,mpu3050
> +
> +  reg:
> +    maxItems: 1
> +
> +  vdd-supply: true
> +
> +  vlogic-supply: true
> +
> +  interrupts:
> +    minItems: 1
> +    description:
> +      Interrupt mapping for the trigger interrupt from the internal oscillator.
> +
> +  mount-matrix: true
> +
> +  i2c-gate:
> +    $ref: /schemas/i2c/i2c-controller.yaml
> +    unevaluatedProperties: false
> +    description: |
> +      The MPU-3050 will pass through and forward the I2C signals from the
> +      incoming I2C bus, alternatively drive traffic to a slave device (usually
> +      an accelerometer) on its own initiative. Therefore is supports an
> +      i2c-gate subnode.
> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +        gyroscope@68 {
> +            compatible = "invensense,mpu3050";
> +            reg = <0x68>;
> +            interrupt-parent = <&foo>;
> +            interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
> +            vdd-supply = <&bar>;
> +            vlogic-supply = <&baz>;
> +
> +            i2c-gate {
> +                #address-cells = <1>;
> +                #size-cells = <0>;
> +
> +                magnetometer@c {
> +                    compatible = "ak,ak8975";
> +                    reg = <0x0c>;
> +                };
> +            };
> +        };
> +    };
> +...


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

end of thread, other threads:[~2020-12-13 13:21 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-28 17:33 [PATCH v2 0/3] dt-bindings: yaml conversion of i2c-gate and IIO users Jonathan Cameron
2020-11-28 17:33 ` [PATCH v2 1/3] dt-bindings:i2c:i2c-gate: txt to yaml conversion Jonathan Cameron
2020-12-08 21:31   ` Rob Herring
2020-11-28 17:33 ` [PATCH v2 2/3] dt-bindings:iio:imu:invensense,mpu6050: " Jonathan Cameron
2020-12-13 13:19   ` Jonathan Cameron
2020-11-28 17:33 ` [PATCH v2 3/3] dt-bindings:iio:gyro:invensense,mpu3050: txt to yaml format conversion Jonathan Cameron
2020-12-13 13:20   ` Jonathan Cameron

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.