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