Skip to contentSkip to conversation

dt-bindings: yaml conversion of i2c-gate and IIO users

PATCH Superseded Jonathan Cameron 3 participants 8 messages Oct 31, 2020 – Nov 3, 2020

Subsystems (6)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Jonathan Cameron

author maintainer
#0 lore raw

cover dt-bindings: yaml conversion of i2c-gate and IIO users

From: Jonathan Cameron <[email protected]>

As part of a general effort to convert all IIO bindings over to yaml, we need to handle those that specify an i2c-gate.
As such this also includes conversion of the base i2c-gate binding which is then referenced by the i2c binding files.

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     |  52 +++++++++
 .../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  | 105 ++++++++++++++++++
 6 files changed, 227 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
Signature · 1 line
2.28.0
author maintainer
#1 lore raw

PATCH 1/3 dt-bindings:i2c:i2c-gate: txt to yaml conversion

From: Jonathan Cameron <[email protected]>

Needed to reference from the invensense,mpu6050 yaml binding.

Cc Peter Rosin <[email protected]>
Cc Wolfram Sang <[email protected]>
---
 .../devicetree/bindings/i2c/i2c-gate.txt      | 41 ---------------
 .../devicetree/bindings/i2c/i2c-gate.yaml     | 52 +++++++++++++++++++
 2 files changed, 52 insertions(+), 41 deletions(-)
Documentation/devicetree/bindings/i2c/i2c-gate.txt deleted +0 -41
deleted file mode 100644
index 1846d236e656..000000000000
@@ -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>;
-			};
-		};
-	};
Documentation/devicetree/bindings/i2c/i2c-gate.yaml new file +52 -0

52 lines not on this page · raw message

Signature · 1 line
2.28.0
maintainer
#2 lore raw

Re: [PATCH 1/3] dt-bindings:i2c:i2c-gate: txt to yaml conversion

Quoted 88 lines · Jonathan Cameron

From: Jonathan Cameron <[email protected]>

Needed to reference from the invensense,mpu6050 yaml binding.

Cc Peter Rosin <[email protected]>
Cc Wolfram Sang <[email protected]>
---
 .../devicetree/bindings/i2c/i2c-gate.txt      | 41 ---------------
 .../devicetree/bindings/i2c/i2c-gate.yaml     | 52 +++++++++++++++++++
 2 files changed, 52 insertions(+), 41 deletions(-)
Documentation/devicetree/bindings/i2c/i2c-gate.txt deleted +0 -41
deleted file mode 100644
index 1846d236e656..000000000000
@@ -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>;
-			};
-		};
-	};
Documentation/devicetree/bindings/i2c/i2c-gate.yaml new file +23 -0
new file mode 100644
index 000000000000..29aa0690ed9a
@@ -0,0 +1,52 @@
+# 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 <[email protected]>
+
+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.
+
+properties:
+  $nodename:
+    const: i2c-gate
+
+  "#address-cells":

Documentation/devicetree/bindings/i2c/i2c-gate.yaml line 33

Quoted 10 lines
Documentation/devicetree/bindings/i2c/i2c-gate.yaml new file +10 -0
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+patternProperties:
+  "^[a-zA-Z][a-zA-Z0-9,+\\-._]{0,63}@[0-9a-fA-F]+$":
+    type: object
+    description: |
+      Child nodes for i2c devices behind the gate.

So reference i2c-controller.yaml. With that, you only need $nodename.

Quoted 22 lines
Documentation/devicetree/bindings/i2c/i2c-gate.yaml new file +19 -0
+
+required:
+  - "#address-cells"
+  - "#size-cells"
+
+additionalProperties: true
+
+examples:
+  - |
+    i2c-gate {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        ak8975@c {
+            compatible = "ak,ak8975";
+            reg = <0x0c>;
+        };
+    };
+...
+
Signature · 1 line
2.28.0
author maintainer
#3 lore raw

PATCH 2/3 dt-bindings:iio:imu:invensense,mpu6050: txt to yaml conversion

In reply to Jonathan Cameron

From: Jonathan Cameron <[email protected]>

Relies on the patch to convert i2c-gate over to yaml.

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.

I don't know if there is a simple way to exclude i2c-gate if the master interface is SPI.

Cc Jean-Baptiste Maneyrol <[email protected]>
Cc Wolfram Sang <[email protected]>
Cc Peter Rosin <[email protected]>
---
 .../bindings/iio/imu/inv_mpu6050.txt          |  67 -----------
 .../bindings/iio/imu/invensense,mpu6050.yaml  | 105 ++++++++++++++++++
 2 files changed, 105 insertions(+), 67 deletions(-)
Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt deleted +0 -67
deleted file mode 100644
index f2f64749e818..000000000000
@@ -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>;
-			};
-		};
-	};
Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml new file +105 -0

105 lines not on this page · raw message

Signature · 1 line
2.28.0
maintainer Reviewed-by on v1 2/3
#4 lore raw

Re: [PATCH 2/3] dt-bindings:iio:imu:invensense,mpu6050: txt to yaml conversion

Quoted 9 lines · Jonathan Cameron

From: Jonathan Cameron <[email protected]>

Relies on the patch to convert i2c-gate over to yaml.

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.

I don't know if there is a simple way to exclude i2c-gate if the master interface is SPI.

Not currently.

Quoted 8 lines
Cc Jean-Baptiste Maneyrol <[email protected]>
Cc Wolfram Sang <[email protected]>
Cc Peter Rosin <[email protected]>
---
 .../bindings/iio/imu/inv_mpu6050.txt          |  67 -----------
 .../bindings/iio/imu/invensense,mpu6050.yaml  | 105 ++++++++++++++++++
 2 files changed, 105 insertions(+), 67 deletions(-)

However, ...

Quoted 116 lines
Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt deleted +0 -67
deleted file mode 100644
index f2f64749e818..000000000000
@@ -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>;
-			};
-		};
-	};
Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml new file +36 -0
new file mode 100644
index 000000000000..f640d161773c
@@ -0,0 +1,105 @@
+# 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 <[email protected]>
+
+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

Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml line 46

Quoted 10 lines
Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml new file +10 -0
+
+  spi-max-frequency: true
+
+  vdd-supply: true
+  vddio-supply: true
+
+  mount-matrix: true
+
+  i2c-gate:
+    $ref: "../../i2c/i2c-gate.yaml"

Though really I think we could just get rid of i2c-gate. We set the name here, so having it doesn't add much over just including i2c-controller.yaml here.

Quoted 62 lines
Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml new file +59 -0
+    unevaluatedProperties: false
+    description: |
+      These devices also support an auxiliary i2c bus.  This is
+      simple enough to be described using the i2c-gate binding.
+      Only possible if using an I2C interface to the host.
+
+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>;
+                };
+            };
+        };
+    };
+...
Signature · 1 line
2.28.0
author maintainer
#5 lore raw

PATCH 3/3 dt-bindings:iio:gyro:invensense,mpu3050: txt to yaml format conversion.

In reply to Jonathan Cameron

From: Jonathan Cameron <[email protected]>

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.

---
 .../iio/gyroscope/invensense,mpu3050.txt      | 45 ------------
 .../iio/gyroscope/invensense,mpu3050.yaml     | 70 +++++++++++++++++++
 2 files changed, 70 insertions(+), 45 deletions(-)
Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.txt deleted +0 -45
deleted file mode 100644
index 233fe207aded..000000000000
@@ -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>;
-		};
-	};
-};
Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.yaml new file +70 -0

70 lines not on this page · raw message

Signature · 1 line
2.28.0
maintainer Reviewed-by on v1 3/3
#6 lore raw

Re: [PATCH 3/3] dt-bindings:iio:gyro:invensense,mpu3050: txt to yaml format conversion.

Quoted 6 lines · Jonathan Cameron

From: Jonathan Cameron <[email protected]>

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.

Quoted 6 lines
---
 .../iio/gyroscope/invensense,mpu3050.txt      | 45 ------------
 .../iio/gyroscope/invensense,mpu3050.yaml     | 70 +++++++++++++++++++
 2 files changed, 70 insertions(+), 45 deletions(-)
Quoted 130 lines
Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.txt deleted +0 -45
deleted file mode 100644
index 233fe207aded..000000000000
@@ -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>;
-		};
-	};
-};
Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.yaml new file +70 -0
new file mode 100644
index 000000000000..b0a476afb656
@@ -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 <[email protected]>
+
+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: "../../i2c/i2c-gate.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 a subnode
+      i2c gate node.
+
+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>;
+                };
+            };
+        };
+    };
+...
Signature · 1 line
2.28.0
Reviewed-by on v1 3/3
#7 lore raw

Re: [PATCH 3/3] dt-bindings:iio:gyro:invensense,mpu3050: txt to yaml format conversion.

In reply to Jonathan Cameron
Quoted 8 lines · Jonathan Cameron

From: Jonathan Cameron <[email protected]>

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.

Sweet! Thanks for the help.

Yours,
Linus Walleij