Commit 74978747 authored by Jonathan Cameron's avatar Jonathan Cameron
Browse files

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



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: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20201128173343.390165-4-jic23@kernel.org
parent 44fd8813
Loading
Loading
Loading
Loading
+0 −45
Original line number Diff line number Diff line
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>;
		};
	};
};
+70 −0
Original line number Diff line number Diff line
# 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>;
                };
            };
        };
    };
...