# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/imu/bosch,bmi270.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Bosch BMI270 6-Axis IMU

maintainers:
  - Alex Lanzano <lanzano.alex@gmail.com>

description: |
  BMI270 is a 6-axis inertial measurement unit that can measure acceleration and
  angular velocity. The sensor also supports configurable interrupt events such
  as motion, step counter, and wrist motion gestures. The sensor can communicate
  I2C or SPI.
  https://www.bosch-sensortec.com/products/motion-sensors/imus/bmi270/

properties:
  compatible:
    const: bosch,bmi270

  reg:
    maxItems: 1

  vdd-supply: true
  vddio-supply: true

  interrupts:
    minItems: 1
    maxItems: 2

  interrupt-names:
    minItems: 1
    maxItems: 2
    items:
      enum:
        - INT1
        - INT2

  drive-open-drain:
    description:
      set if the specified interrupt pins should be configured as
      open drain. If not set, defaults to push-pull.

  mount-matrix:
    description:
      an optional 3x3 mounting rotation matrix.

required:
  - compatible
  - reg
  - vdd-supply
  - vddio-supply

allOf:
  - $ref: /schemas/spi/spi-peripheral-props.yaml#

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        imu@68 {
            compatible = "bosch,bmi270";
            reg = <0x68>;
            vdd-supply = <&vdd>;
            vddio-supply = <&vddio>;
            interrupt-parent = <&gpio1>;
            interrupts = <16 IRQ_TYPE_EDGE_RISING>;
            interrupt-names = "INT1";
        };
    };
