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