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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Oct 31, 2020 at 06:18:00PM +0000, Jonathan Cameron wrote:
> From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> 
> 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.

> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> Cc: Jean-Baptiste Maneyrol <jmaneyrol@xxxxxxxxxxxxxx>
> Cc: Wolfram Sang <wsa@xxxxxxxxxxxxx>
> Cc: Peter Rosin <peda@xxxxxxxxxx>
> ---
>  .../bindings/iio/imu/inv_mpu6050.txt          |  67 -----------
>  .../bindings/iio/imu/invensense,mpu6050.yaml  | 105 ++++++++++++++++++
>  2 files changed, 105 insertions(+), 67 deletions(-)

Reviewed-by: Rob Herring <robh@xxxxxxxxxx>

However, ...

> 
> 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..f640d161773c
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml
> @@ -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 <jmaneyrol@xxxxxxxxxxxxxx>
> +
> +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: "../../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.

> +    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>;
> +                };
> +            };
> +        };
> +    };
> +...
> -- 
> 2.28.0
> 



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux