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