dt-bindings: yaml conversion of i2c-gate and IIO users
Subsystems (6)
Jonathan Cameron
maintainercover 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
Jonathan Cameron
maintainerPATCH 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.
--- .../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
@@ -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
Rob Herring
maintainerRe: [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.
Signed-off-by Jonathan Cameron <[email protected]>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@@ -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@@ -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
Jonathan Cameron
maintainerPATCH 2/3 dt-bindings:iio:imu:invensense,mpu6050: txt to yaml conversion
In reply to Jonathan CameronFrom: 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.
--- .../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
@@ -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
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
Signed-off-by Jonathan Cameron <[email protected]>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@@ -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@@ -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
Jonathan Cameron
maintainerPATCH 3/3 dt-bindings:iio:gyro:invensense,mpu3050: txt to yaml format conversion.
In reply to Jonathan CameronFrom: 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
@@ -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
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
Signed-off-by Jonathan Cameron <[email protected]>Cc Linus Walleij <[email protected]>--- .../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@@ -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@@ -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
Re: [PATCH 3/3] dt-bindings:iio:gyro:invensense,mpu3050: txt to yaml format conversion.
In reply to Jonathan CameronQuoted 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.Signed-off-by Jonathan Cameron <[email protected]>Cc Linus Walleij <[email protected]>
Sweet! Thanks for the help.
Yours,
Linus Walleij