xref: /freebsd/sys/contrib/device-tree/Bindings/iio/imu/bosch,bmi160.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/iio/imu/bosch,bmi160.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Bosch BMI160
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Jonathan Cameron <jic23@kernel.org>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |
13c66ec88fSEmmanuel Vadot  Inertial Measurement Unit with Accelerometer, Gyroscope and externally
14c66ec88fSEmmanuel Vadot  connectable Magnetometer
15c66ec88fSEmmanuel Vadot  https://www.bosch-sensortec.com/bst/products/all_products/bmi160
16c66ec88fSEmmanuel Vadot
17c66ec88fSEmmanuel Vadotproperties:
18c66ec88fSEmmanuel Vadot  compatible:
19*0e8011faSEmmanuel Vadot    oneOf:
20*0e8011faSEmmanuel Vadot      - const: bosch,bmi160
21*0e8011faSEmmanuel Vadot      - items:
22*0e8011faSEmmanuel Vadot          - const: bosch,bmi120
23*0e8011faSEmmanuel Vadot          - const: bosch,bmi160
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadot  reg:
26c66ec88fSEmmanuel Vadot    maxItems: 1
27c66ec88fSEmmanuel Vadot
28c66ec88fSEmmanuel Vadot  interrupts:
29c66ec88fSEmmanuel Vadot    maxItems: 1
30c66ec88fSEmmanuel Vadot
31c66ec88fSEmmanuel Vadot  interrupt-names:
32c66ec88fSEmmanuel Vadot    enum:
33c66ec88fSEmmanuel Vadot      - INT1
34c66ec88fSEmmanuel Vadot      - INT2
35c66ec88fSEmmanuel Vadot    description: |
36c66ec88fSEmmanuel Vadot      set to "INT1" if INT1 pin should be used as interrupt input, set
37c66ec88fSEmmanuel Vadot      to "INT2" if INT2 pin should be used instead
38c66ec88fSEmmanuel Vadot
39c66ec88fSEmmanuel Vadot  drive-open-drain:
40c66ec88fSEmmanuel Vadot    description: |
41c66ec88fSEmmanuel Vadot      set if the specified interrupt pin should be configured as
42c66ec88fSEmmanuel Vadot      open drain. If not set, defaults to push-pull.
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel Vadot  vdd-supply:
45c66ec88fSEmmanuel Vadot    description: provide VDD power to the sensor.
46c66ec88fSEmmanuel Vadot
47c66ec88fSEmmanuel Vadot  vddio-supply:
48c66ec88fSEmmanuel Vadot    description: provide VDD IO power to the sensor.
49c66ec88fSEmmanuel Vadot
50c66ec88fSEmmanuel Vadot  mount-matrix:
51c66ec88fSEmmanuel Vadot    description: an optional 3x3 mounting rotation matrix
52c66ec88fSEmmanuel Vadot
53c66ec88fSEmmanuel Vadotrequired:
54c66ec88fSEmmanuel Vadot  - compatible
55c66ec88fSEmmanuel Vadot  - reg
56c66ec88fSEmmanuel Vadot
577ef62cebSEmmanuel VadotallOf:
587ef62cebSEmmanuel Vadot  - $ref: /schemas/spi/spi-peripheral-props.yaml#
597ef62cebSEmmanuel Vadot
607ef62cebSEmmanuel VadotunevaluatedProperties: false
616be33864SEmmanuel Vadot
62c66ec88fSEmmanuel Vadotexamples:
63c66ec88fSEmmanuel Vadot  - |
64c66ec88fSEmmanuel Vadot    // Example for I2C
65c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
66c66ec88fSEmmanuel Vadot    i2c {
67c66ec88fSEmmanuel Vadot        #address-cells = <1>;
68c66ec88fSEmmanuel Vadot        #size-cells = <0>;
69c66ec88fSEmmanuel Vadot
70c66ec88fSEmmanuel Vadot        bmi160@68 {
71c66ec88fSEmmanuel Vadot            compatible = "bosch,bmi160";
72c66ec88fSEmmanuel Vadot            reg = <0x68>;
73c66ec88fSEmmanuel Vadot            vdd-supply = <&pm8916_l17>;
74c66ec88fSEmmanuel Vadot            vddio-supply = <&pm8916_l6>;
75c66ec88fSEmmanuel Vadot            interrupt-parent = <&gpio4>;
76c66ec88fSEmmanuel Vadot            interrupts = <12 IRQ_TYPE_EDGE_RISING>;
77c66ec88fSEmmanuel Vadot            interrupt-names = "INT1";
78c66ec88fSEmmanuel Vadot            mount-matrix = "0", "1", "0",
79c66ec88fSEmmanuel Vadot                           "-1", "0", "0",
80c66ec88fSEmmanuel Vadot                           "0", "0", "1";
81c66ec88fSEmmanuel Vadot        };
82c66ec88fSEmmanuel Vadot    };
83c66ec88fSEmmanuel Vadot  - |
84c66ec88fSEmmanuel Vadot    // Example for SPI
85c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
86c66ec88fSEmmanuel Vadot    spi {
87c66ec88fSEmmanuel Vadot        #address-cells = <1>;
88c66ec88fSEmmanuel Vadot        #size-cells = <0>;
89c66ec88fSEmmanuel Vadot
90c66ec88fSEmmanuel Vadot        bmi160@0 {
91c66ec88fSEmmanuel Vadot            compatible = "bosch,bmi160";
92c66ec88fSEmmanuel Vadot            reg = <0>;
93c66ec88fSEmmanuel Vadot            spi-max-frequency = <10000000>;
94c66ec88fSEmmanuel Vadot            interrupt-parent = <&gpio2>;
95c66ec88fSEmmanuel Vadot            interrupts = <12 IRQ_TYPE_EDGE_RISING>;
96c66ec88fSEmmanuel Vadot            interrupt-names = "INT2";
97c66ec88fSEmmanuel Vadot        };
98c66ec88fSEmmanuel Vadot    };
99