13910c580SJonathan Albrieux# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
23910c580SJonathan Albrieux%YAML 1.2
33910c580SJonathan Albrieux---
43910c580SJonathan Albrieux$id: http://devicetree.org/schemas/iio/imu/bosch,bmi160.yaml#
53910c580SJonathan Albrieux$schema: http://devicetree.org/meta-schemas/core.yaml#
63910c580SJonathan Albrieux
73910c580SJonathan Albrieuxtitle: Bosch BMI160
83910c580SJonathan Albrieux
93910c580SJonathan Albrieuxmaintainers:
103910c580SJonathan Albrieux  - Jonathan Cameron <jic23@kernel.org>
113910c580SJonathan Albrieux
123910c580SJonathan Albrieuxdescription: |
133910c580SJonathan Albrieux  Inertial Measurement Unit with Accelerometer, Gyroscope and externally
143910c580SJonathan Albrieux  connectable Magnetometer
153910c580SJonathan Albrieux  https://www.bosch-sensortec.com/bst/products/all_products/bmi160
163910c580SJonathan Albrieux
173910c580SJonathan Albrieuxproperties:
183910c580SJonathan Albrieux  compatible:
193910c580SJonathan Albrieux    const: bosch,bmi160
203910c580SJonathan Albrieux
213910c580SJonathan Albrieux  reg:
223910c580SJonathan Albrieux    maxItems: 1
233910c580SJonathan Albrieux
243910c580SJonathan Albrieux  interrupts:
253910c580SJonathan Albrieux    maxItems: 1
263910c580SJonathan Albrieux
273910c580SJonathan Albrieux  interrupt-names:
283910c580SJonathan Albrieux    enum:
293910c580SJonathan Albrieux      - INT1
303910c580SJonathan Albrieux      - INT2
313910c580SJonathan Albrieux    description: |
323910c580SJonathan Albrieux      set to "INT1" if INT1 pin should be used as interrupt input, set
333910c580SJonathan Albrieux      to "INT2" if INT2 pin should be used instead
343910c580SJonathan Albrieux
353910c580SJonathan Albrieux  drive-open-drain:
363910c580SJonathan Albrieux    description: |
373910c580SJonathan Albrieux      set if the specified interrupt pin should be configured as
383910c580SJonathan Albrieux      open drain. If not set, defaults to push-pull.
393910c580SJonathan Albrieux
406e84d0ccSJonathan Albrieux  vdd-supply:
416e84d0ccSJonathan Albrieux    description: provide VDD power to the sensor.
426e84d0ccSJonathan Albrieux
436e84d0ccSJonathan Albrieux  vddio-supply:
446e84d0ccSJonathan Albrieux    description: provide VDD IO power to the sensor.
456e84d0ccSJonathan Albrieux
466e84d0ccSJonathan Albrieux  mount-matrix:
476e84d0ccSJonathan Albrieux    description: an optional 3x3 mounting rotation matrix
486e84d0ccSJonathan Albrieux
493910c580SJonathan Albrieuxrequired:
503910c580SJonathan Albrieux  - compatible
513910c580SJonathan Albrieux  - reg
523910c580SJonathan Albrieux
53*8d98a8c6SKrzysztof KozlowskiallOf:
54*8d98a8c6SKrzysztof Kozlowski  - $ref: /schemas/spi/spi-peripheral-props.yaml#
55*8d98a8c6SKrzysztof Kozlowski
56*8d98a8c6SKrzysztof KozlowskiunevaluatedProperties: false
576fdc6e23SRob Herring
583910c580SJonathan Albrieuxexamples:
593910c580SJonathan Albrieux  - |
603910c580SJonathan Albrieux    // Example for I2C
613910c580SJonathan Albrieux    #include <dt-bindings/interrupt-controller/irq.h>
623910c580SJonathan Albrieux    i2c {
633910c580SJonathan Albrieux        #address-cells = <1>;
643910c580SJonathan Albrieux        #size-cells = <0>;
653910c580SJonathan Albrieux
663910c580SJonathan Albrieux        bmi160@68 {
673910c580SJonathan Albrieux            compatible = "bosch,bmi160";
683910c580SJonathan Albrieux            reg = <0x68>;
696e84d0ccSJonathan Albrieux            vdd-supply = <&pm8916_l17>;
706e84d0ccSJonathan Albrieux            vddio-supply = <&pm8916_l6>;
713910c580SJonathan Albrieux            interrupt-parent = <&gpio4>;
723910c580SJonathan Albrieux            interrupts = <12 IRQ_TYPE_EDGE_RISING>;
733910c580SJonathan Albrieux            interrupt-names = "INT1";
746e84d0ccSJonathan Albrieux            mount-matrix = "0", "1", "0",
756e84d0ccSJonathan Albrieux                           "-1", "0", "0",
766e84d0ccSJonathan Albrieux                           "0", "0", "1";
773910c580SJonathan Albrieux        };
783910c580SJonathan Albrieux    };
793910c580SJonathan Albrieux  - |
803910c580SJonathan Albrieux    // Example for SPI
813910c580SJonathan Albrieux    #include <dt-bindings/interrupt-controller/irq.h>
823910c580SJonathan Albrieux    spi {
833910c580SJonathan Albrieux        #address-cells = <1>;
843910c580SJonathan Albrieux        #size-cells = <0>;
853910c580SJonathan Albrieux
863910c580SJonathan Albrieux        bmi160@0 {
873910c580SJonathan Albrieux            compatible = "bosch,bmi160";
883910c580SJonathan Albrieux            reg = <0>;
893910c580SJonathan Albrieux            spi-max-frequency = <10000000>;
903910c580SJonathan Albrieux            interrupt-parent = <&gpio2>;
913910c580SJonathan Albrieux            interrupts = <12 IRQ_TYPE_EDGE_RISING>;
923910c580SJonathan Albrieux            interrupt-names = "INT2";
933910c580SJonathan Albrieux        };
943910c580SJonathan Albrieux    };
95