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