1a9aa4686SJonathan Cameron# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2a9aa4686SJonathan Cameron%YAML 1.2 3a9aa4686SJonathan Cameron--- 4a9aa4686SJonathan Cameron$id: http://devicetree.org/schemas/iio/st,st-sensors.yaml# 5a9aa4686SJonathan Cameron$schema: http://devicetree.org/meta-schemas/core.yaml# 6a9aa4686SJonathan Cameron 7a9aa4686SJonathan Camerontitle: STMicroelectronics MEMS sensors 8a9aa4686SJonathan Cameron 90cd71145SLinus Walleijdescription: The STMicroelectronics sensor devices are pretty straight-forward 100cd71145SLinus Walleij I2C or SPI devices, all sharing the same device tree descriptions no matter 110cd71145SLinus Walleij what type of sensor it is. 12a9aa4686SJonathan Cameron Note that whilst this covers many STMicro MEMs sensors, some more complex 13a9aa4686SJonathan Cameron IMUs need their own bindings. 14a9aa4686SJonathan Cameron 15a9aa4686SJonathan Cameronmaintainers: 16a9aa4686SJonathan Cameron - Denis Ciocca <denis.ciocca@st.com> 170cd71145SLinus Walleij - Linus Walleij <linus.walleij@linaro.org> 18a9aa4686SJonathan Cameron 19a9aa4686SJonathan Cameronproperties: 20a9aa4686SJonathan Cameron compatible: 210cd71145SLinus Walleij oneOf: 220cd71145SLinus Walleij - description: STMicroelectronics Accelerometers 23a9aa4686SJonathan Cameron enum: 240cd71145SLinus Walleij - st,h3lis331dl-accel 250cd71145SLinus Walleij - st,lis2de12 260cd71145SLinus Walleij - st,lis2dw12 270cd71145SLinus Walleij - st,lis2hh12 280cd71145SLinus Walleij - st,lis2dh12-accel 29ce92d674SSicelo A. Mhlongo - st,lis302dl 300cd71145SLinus Walleij - st,lis331dl-accel 310cd71145SLinus Walleij - st,lis331dlh-accel 320cd71145SLinus Walleij - st,lis3de 330cd71145SLinus Walleij - st,lis3dh-accel 340cd71145SLinus Walleij - st,lis3dhh 350cd71145SLinus Walleij - st,lis3l02dq 36a9aa4686SJonathan Cameron - st,lis3lv02dl-accel 370cd71145SLinus Walleij - st,lng2dm-accel 380cd71145SLinus Walleij - st,lsm303agr-accel 394aaf3e40SStephan Gerhold - st,lsm303c-accel 400cd71145SLinus Walleij - st,lsm303dl-accel 41a9aa4686SJonathan Cameron - st,lsm303dlh-accel 42a9aa4686SJonathan Cameron - st,lsm303dlhc-accel 430cd71145SLinus Walleij - st,lsm303dlm-accel 440cd71145SLinus Walleij - st,lsm330-accel 45a9aa4686SJonathan Cameron - st,lsm330d-accel 46a9aa4686SJonathan Cameron - st,lsm330dl-accel 47a9aa4686SJonathan Cameron - st,lsm330dlc-accel 48f9dbd94bSStefan Wahren - items: 49f9dbd94bSStefan Wahren - const: st,iis328dq 50f9dbd94bSStefan Wahren - const: st,h3lis331dl-accel 51cb432e7dSSamuel Holland - description: Silan Accelerometers 52cb432e7dSSamuel Holland enum: 53cb432e7dSSamuel Holland - silan,sc7a20 540cd71145SLinus Walleij - description: STMicroelectronics Gyroscopes 550cd71145SLinus Walleij enum: 56a9aa4686SJonathan Cameron - st,l3g4200d-gyro 570cd71145SLinus Walleij - st,l3g4is-gyro 580cd71145SLinus Walleij - st,l3gd20-gyro 590cd71145SLinus Walleij - st,l3gd20h-gyro 600cd71145SLinus Walleij - st,lsm330-gyro 61a9aa4686SJonathan Cameron - st,lsm330d-gyro 62a9aa4686SJonathan Cameron - st,lsm330dl-gyro 63a9aa4686SJonathan Cameron - st,lsm330dlc-gyro 64a9aa4686SJonathan Cameron - st,lsm9ds0-gyro 650cd71145SLinus Walleij - description: STMicroelectronics Magnetometers 660cd71145SLinus Walleij enum: 670cd71145SLinus Walleij - st,lis2mdl 680cd71145SLinus Walleij - st,lis3mdl-magn 69a9aa4686SJonathan Cameron - st,lsm303agr-magn 704aaf3e40SStephan Gerhold - st,lsm303c-magn 71a9aa4686SJonathan Cameron - st,lsm303dlh-magn 72a9aa4686SJonathan Cameron - st,lsm303dlhc-magn 73a9aa4686SJonathan Cameron - st,lsm303dlm-magn 74a9aa4686SJonathan Cameron - st,lsm9ds1-magn 750cd71145SLinus Walleij - description: STMicroelectronics Pressure Sensors 760cd71145SLinus Walleij enum: 77a9aa4686SJonathan Cameron - st,lps001wp-press 78b4027837SMartyn Welch - st,lps22df 790cd71145SLinus Walleij - st,lps22hb-press 800cd71145SLinus Walleij - st,lps22hh 81a9aa4686SJonathan Cameron - st,lps25h-press 82a9aa4686SJonathan Cameron - st,lps331ap-press 83a9aa4686SJonathan Cameron - st,lps33hw 84a9aa4686SJonathan Cameron - st,lps35hw 858cd40131SAndy Shevchenko - description: IMUs 868cd40131SAndy Shevchenko enum: 87773aa06dSMarius Hoch - st,lsm303d-imu 888cd40131SAndy Shevchenko - st,lsm9ds0-imu 890cd71145SLinus Walleij - description: Deprecated bindings 900cd71145SLinus Walleij enum: 910cd71145SLinus Walleij - st,lis302dl-spi 920cd71145SLinus Walleij - st,lis3lv02d 930cd71145SLinus Walleij deprecated: true 94a9aa4686SJonathan Cameron 95a9aa4686SJonathan Cameron reg: 96a9aa4686SJonathan Cameron maxItems: 1 97a9aa4686SJonathan Cameron 98a9aa4686SJonathan Cameron interrupts: 990cd71145SLinus Walleij description: interrupt line(s) connected to the DRDY line(s) and/or the 100*47aab533SBjorn Helgaas Inertial interrupt lines INT1 and INT2 if these exist. This means up to 1010cd71145SLinus Walleij three interrupts, and the DRDY must be the first one if it exists on 1020cd71145SLinus Walleij the package. The trigger edge of the interrupts is sometimes software 1030cd71145SLinus Walleij configurable in the hardware so the operating system should parse this 1040cd71145SLinus Walleij flag and set up the trigger edge as indicated in the device tree. 105a9aa4686SJonathan Cameron minItems: 1 1060cd71145SLinus Walleij maxItems: 2 107a9aa4686SJonathan Cameron 108a9aa4686SJonathan Cameron vdd-supply: true 109a9aa4686SJonathan Cameron vddio-supply: true 110a9aa4686SJonathan Cameron 111a9aa4686SJonathan Cameron st,drdy-int-pin: 1120cd71145SLinus Walleij description: the pin on the package that will be used to signal 1130cd71145SLinus Walleij "data ready" (valid values 1 or 2). This property is not configurable 1140cd71145SLinus Walleij on all sensors. 115a9aa4686SJonathan Cameron $ref: /schemas/types.yaml#/definitions/uint32 1160cd71145SLinus Walleij enum: [1, 2] 117a9aa4686SJonathan Cameron 118a9aa4686SJonathan Cameron drive-open-drain: 119a9aa4686SJonathan Cameron $ref: /schemas/types.yaml#/definitions/flag 1200cd71145SLinus Walleij description: the interrupt/data ready line will be configured 1210cd71145SLinus Walleij as open drain, which is useful if several sensors share the same 1220cd71145SLinus Walleij interrupt line. (This binding is taken from pinctrl.) 1230cd71145SLinus Walleij 1240cd71145SLinus Walleij mount-matrix: 1250cd71145SLinus Walleij description: an optional 3x3 mounting rotation matrix. 1260cd71145SLinus Walleij 1270cd71145SLinus WalleijallOf: 1280cd71145SLinus Walleij - if: 1290cd71145SLinus Walleij properties: 1300cd71145SLinus Walleij compatible: 1310cd71145SLinus Walleij enum: 1320cd71145SLinus Walleij # These have no interrupts 1330cd71145SLinus Walleij - st,lps001wp 1340cd71145SLinus Walleij then: 1350cd71145SLinus Walleij properties: 1360cd71145SLinus Walleij interrupts: false 1370cd71145SLinus Walleij st,drdy-int-pin: false 1380cd71145SLinus Walleij drive-open-drain: false 1390cd71145SLinus Walleij 1400cd71145SLinus Walleij - if: 1410cd71145SLinus Walleij properties: 1420cd71145SLinus Walleij compatible: 1430cd71145SLinus Walleij enum: 1440cd71145SLinus Walleij # These have only DRDY 1450cd71145SLinus Walleij - st,lis2mdl 1460cd71145SLinus Walleij - st,lis3l02dq 1470cd71145SLinus Walleij - st,lis3lv02dl-accel 148b4027837SMartyn Welch - st,lps22df 1490cd71145SLinus Walleij - st,lps22hb-press 1500cd71145SLinus Walleij - st,lps22hh 1510cd71145SLinus Walleij - st,lps25h-press 1520cd71145SLinus Walleij - st,lps33hw 1530cd71145SLinus Walleij - st,lps35hw 1540cd71145SLinus Walleij - st,lsm303agr-magn 1550cd71145SLinus Walleij - st,lsm303dlh-magn 1560cd71145SLinus Walleij - st,lsm303dlhc-magn 1570cd71145SLinus Walleij - st,lsm303dlm-magn 1580cd71145SLinus Walleij then: 1590cd71145SLinus Walleij properties: 1600cd71145SLinus Walleij interrupts: 1610cd71145SLinus Walleij maxItems: 1 1620cd71145SLinus Walleij st,drdy-int-pin: false 1630cd71145SLinus Walleij 164a9aa4686SJonathan Cameronrequired: 165a9aa4686SJonathan Cameron - compatible 166a9aa4686SJonathan Cameron - reg 167a9aa4686SJonathan Cameron 168a9aa4686SJonathan CameronadditionalProperties: false 169a9aa4686SJonathan Cameron 170a9aa4686SJonathan Cameronexamples: 171a9aa4686SJonathan Cameron - | 172a9aa4686SJonathan Cameron #include <dt-bindings/interrupt-controller/irq.h> 173a9aa4686SJonathan Cameron i2c { 174a9aa4686SJonathan Cameron #address-cells = <1>; 175a9aa4686SJonathan Cameron #size-cells = <0>; 1760cd71145SLinus Walleij 1770cd71145SLinus Walleij accelerometer@1c { 1780cd71145SLinus Walleij compatible = "st,lis331dl-accel"; 1790cd71145SLinus Walleij reg = <0x1c>; 1800cd71145SLinus Walleij st,drdy-int-pin = <1>; 1810cd71145SLinus Walleij vdd-supply = <&ldo1>; 1820cd71145SLinus Walleij vddio-supply = <&ldo2>; 1830cd71145SLinus Walleij interrupt-parent = <&gpio>; 1840cd71145SLinus Walleij interrupts = <18 IRQ_TYPE_EDGE_RISING>, <19 IRQ_TYPE_EDGE_RISING>; 1850cd71145SLinus Walleij }; 1860cd71145SLinus Walleij }; 1870cd71145SLinus Walleij spi { 1880cd71145SLinus Walleij #address-cells = <1>; 1890cd71145SLinus Walleij #size-cells = <0>; 1900cd71145SLinus Walleij num-cs = <1>; 1910cd71145SLinus Walleij 1920cd71145SLinus Walleij l3g4200d: gyroscope@0 { 1930cd71145SLinus Walleij compatible = "st,l3g4200d-gyro"; 1940cd71145SLinus Walleij st,drdy-int-pin = <2>; 1950cd71145SLinus Walleij reg = <0>; 1960cd71145SLinus Walleij vdd-supply = <&vcc_io>; 1970cd71145SLinus Walleij vddio-supply = <&vcc_io>; 198a9aa4686SJonathan Cameron }; 199a9aa4686SJonathan Cameron }; 200a9aa4686SJonathan Cameron... 201