1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/iio/st,st-sensors.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: STMicroelectronics MEMS sensors 8 9description: The STMicroelectronics sensor devices are pretty straight-forward 10 I2C or SPI devices, all sharing the same device tree descriptions no matter 11 what type of sensor it is. 12 Note that whilst this covers many STMicro MEMs sensors, some more complex 13 IMUs need their own bindings. 14 The STMicroelectronics sensor devices are pretty straight-forward I2C or 15 SPI devices, all sharing the same device tree descriptions no matter what 16 type of sensor it is. 17 18maintainers: 19 - Denis Ciocca <denis.ciocca@st.com> 20 - Linus Walleij <linus.walleij@linaro.org> 21 22properties: 23 compatible: 24 oneOf: 25 - description: STMicroelectronics Accelerometers 26 enum: 27 - st,h3lis331dl-accel 28 - st,lis2de12 29 - st,lis2dw12 30 - st,lis2hh12 31 - st,lis2dh12-accel 32 - st,lis302dl 33 - st,lis331dl-accel 34 - st,lis331dlh-accel 35 - st,lis3de 36 - st,lis3dh-accel 37 - st,lis3dhh 38 - st,lis3l02dq 39 - st,lis3lv02dl-accel 40 - st,lng2dm-accel 41 - st,lsm303agr-accel 42 - st,lsm303c-accel 43 - st,lsm303dl-accel 44 - st,lsm303dlh-accel 45 - st,lsm303dlhc-accel 46 - st,lsm303dlm-accel 47 - st,lsm330-accel 48 - st,lsm330d-accel 49 - st,lsm330dl-accel 50 - st,lsm330dlc-accel 51 - description: Silan Accelerometers 52 enum: 53 - silan,sc7a20 54 - description: STMicroelectronics Gyroscopes 55 enum: 56 - st,l3g4200d-gyro 57 - st,l3g4is-gyro 58 - st,l3gd20-gyro 59 - st,l3gd20h-gyro 60 - st,lsm330-gyro 61 - st,lsm330d-gyro 62 - st,lsm330dl-gyro 63 - st,lsm330dlc-gyro 64 - st,lsm9ds0-gyro 65 - description: STMicroelectronics Magnetometers 66 enum: 67 - st,lis2mdl 68 - st,lis3mdl-magn 69 - st,lsm303agr-magn 70 - st,lsm303c-magn 71 - st,lsm303dlh-magn 72 - st,lsm303dlhc-magn 73 - st,lsm303dlm-magn 74 - st,lsm9ds1-magn 75 - description: STMicroelectronics Pressure Sensors 76 enum: 77 - st,lps001wp-press 78 - st,lps22df 79 - st,lps22hb-press 80 - st,lps22hh 81 - st,lps25h-press 82 - st,lps331ap-press 83 - st,lps33hw 84 - st,lps35hw 85 - description: IMUs 86 enum: 87 - st,lsm9ds0-imu 88 - description: Deprecated bindings 89 enum: 90 - st,lis302dl-spi 91 - st,lis3lv02d 92 deprecated: true 93 94 reg: 95 maxItems: 1 96 97 interrupts: 98 description: interrupt line(s) connected to the DRDY line(s) and/or the 99 Intertial interrupt lines INT1 and INT2 if these exist. This means up to 100 three interrupts, and the DRDY must be the first one if it exists on 101 the package. The trigger edge of the interrupts is sometimes software 102 configurable in the hardware so the operating system should parse this 103 flag and set up the trigger edge as indicated in the device tree. 104 minItems: 1 105 maxItems: 2 106 107 vdd-supply: true 108 vddio-supply: true 109 110 st,drdy-int-pin: 111 description: the pin on the package that will be used to signal 112 "data ready" (valid values 1 or 2). This property is not configurable 113 on all sensors. 114 $ref: /schemas/types.yaml#/definitions/uint32 115 enum: [1, 2] 116 117 drive-open-drain: 118 $ref: /schemas/types.yaml#/definitions/flag 119 description: the interrupt/data ready line will be configured 120 as open drain, which is useful if several sensors share the same 121 interrupt line. (This binding is taken from pinctrl.) 122 123 mount-matrix: 124 description: an optional 3x3 mounting rotation matrix. 125 126allOf: 127 - if: 128 properties: 129 compatible: 130 enum: 131 # These have no interrupts 132 - st,lps001wp 133 then: 134 properties: 135 interrupts: false 136 st,drdy-int-pin: false 137 drive-open-drain: false 138 139 - if: 140 properties: 141 compatible: 142 enum: 143 # These have only DRDY 144 - st,lis2mdl 145 - st,lis3l02dq 146 - st,lis3lv02dl-accel 147 - st,lps22df 148 - st,lps22hb-press 149 - st,lps22hh 150 - st,lps25h-press 151 - st,lps33hw 152 - st,lps35hw 153 - st,lsm303agr-magn 154 - st,lsm303dlh-magn 155 - st,lsm303dlhc-magn 156 - st,lsm303dlm-magn 157 then: 158 properties: 159 interrupts: 160 maxItems: 1 161 st,drdy-int-pin: false 162 163required: 164 - compatible 165 - reg 166 167additionalProperties: false 168 169examples: 170 - | 171 #include <dt-bindings/interrupt-controller/irq.h> 172 i2c { 173 #address-cells = <1>; 174 #size-cells = <0>; 175 176 accelerometer@1c { 177 compatible = "st,lis331dl-accel"; 178 reg = <0x1c>; 179 st,drdy-int-pin = <1>; 180 vdd-supply = <&ldo1>; 181 vddio-supply = <&ldo2>; 182 interrupt-parent = <&gpio>; 183 interrupts = <18 IRQ_TYPE_EDGE_RISING>, <19 IRQ_TYPE_EDGE_RISING>; 184 }; 185 }; 186 spi { 187 #address-cells = <1>; 188 #size-cells = <0>; 189 num-cs = <1>; 190 191 l3g4200d: gyroscope@0 { 192 compatible = "st,l3g4200d-gyro"; 193 st,drdy-int-pin = <2>; 194 reg = <0>; 195 vdd-supply = <&vcc_io>; 196 vddio-supply = <&vcc_io>; 197 }; 198 }; 199... 200