162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/iio/st,st-sensors.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: STMicroelectronics MEMS sensors 862306a36Sopenharmony_ci 962306a36Sopenharmony_cidescription: The STMicroelectronics sensor devices are pretty straight-forward 1062306a36Sopenharmony_ci I2C or SPI devices, all sharing the same device tree descriptions no matter 1162306a36Sopenharmony_ci what type of sensor it is. 1262306a36Sopenharmony_ci Note that whilst this covers many STMicro MEMs sensors, some more complex 1362306a36Sopenharmony_ci IMUs need their own bindings. 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_cimaintainers: 1662306a36Sopenharmony_ci - Denis Ciocca <denis.ciocca@st.com> 1762306a36Sopenharmony_ci - Linus Walleij <linus.walleij@linaro.org> 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciproperties: 2062306a36Sopenharmony_ci compatible: 2162306a36Sopenharmony_ci oneOf: 2262306a36Sopenharmony_ci - description: STMicroelectronics Accelerometers 2362306a36Sopenharmony_ci enum: 2462306a36Sopenharmony_ci - st,h3lis331dl-accel 2562306a36Sopenharmony_ci - st,lis2de12 2662306a36Sopenharmony_ci - st,lis2dw12 2762306a36Sopenharmony_ci - st,lis2hh12 2862306a36Sopenharmony_ci - st,lis2dh12-accel 2962306a36Sopenharmony_ci - st,lis302dl 3062306a36Sopenharmony_ci - st,lis331dl-accel 3162306a36Sopenharmony_ci - st,lis331dlh-accel 3262306a36Sopenharmony_ci - st,lis3de 3362306a36Sopenharmony_ci - st,lis3dh-accel 3462306a36Sopenharmony_ci - st,lis3dhh 3562306a36Sopenharmony_ci - st,lis3l02dq 3662306a36Sopenharmony_ci - st,lis3lv02dl-accel 3762306a36Sopenharmony_ci - st,lng2dm-accel 3862306a36Sopenharmony_ci - st,lsm303agr-accel 3962306a36Sopenharmony_ci - st,lsm303c-accel 4062306a36Sopenharmony_ci - st,lsm303dl-accel 4162306a36Sopenharmony_ci - st,lsm303dlh-accel 4262306a36Sopenharmony_ci - st,lsm303dlhc-accel 4362306a36Sopenharmony_ci - st,lsm303dlm-accel 4462306a36Sopenharmony_ci - st,lsm330-accel 4562306a36Sopenharmony_ci - st,lsm330d-accel 4662306a36Sopenharmony_ci - st,lsm330dl-accel 4762306a36Sopenharmony_ci - st,lsm330dlc-accel 4862306a36Sopenharmony_ci - items: 4962306a36Sopenharmony_ci - const: st,iis328dq 5062306a36Sopenharmony_ci - const: st,h3lis331dl-accel 5162306a36Sopenharmony_ci - description: Silan Accelerometers 5262306a36Sopenharmony_ci enum: 5362306a36Sopenharmony_ci - silan,sc7a20 5462306a36Sopenharmony_ci - description: STMicroelectronics Gyroscopes 5562306a36Sopenharmony_ci enum: 5662306a36Sopenharmony_ci - st,l3g4200d-gyro 5762306a36Sopenharmony_ci - st,l3g4is-gyro 5862306a36Sopenharmony_ci - st,l3gd20-gyro 5962306a36Sopenharmony_ci - st,l3gd20h-gyro 6062306a36Sopenharmony_ci - st,lsm330-gyro 6162306a36Sopenharmony_ci - st,lsm330d-gyro 6262306a36Sopenharmony_ci - st,lsm330dl-gyro 6362306a36Sopenharmony_ci - st,lsm330dlc-gyro 6462306a36Sopenharmony_ci - st,lsm9ds0-gyro 6562306a36Sopenharmony_ci - description: STMicroelectronics Magnetometers 6662306a36Sopenharmony_ci enum: 6762306a36Sopenharmony_ci - st,lis2mdl 6862306a36Sopenharmony_ci - st,lis3mdl-magn 6962306a36Sopenharmony_ci - st,lsm303agr-magn 7062306a36Sopenharmony_ci - st,lsm303c-magn 7162306a36Sopenharmony_ci - st,lsm303dlh-magn 7262306a36Sopenharmony_ci - st,lsm303dlhc-magn 7362306a36Sopenharmony_ci - st,lsm303dlm-magn 7462306a36Sopenharmony_ci - st,lsm9ds1-magn 7562306a36Sopenharmony_ci - description: STMicroelectronics Pressure Sensors 7662306a36Sopenharmony_ci enum: 7762306a36Sopenharmony_ci - st,lps001wp-press 7862306a36Sopenharmony_ci - st,lps22df 7962306a36Sopenharmony_ci - st,lps22hb-press 8062306a36Sopenharmony_ci - st,lps22hh 8162306a36Sopenharmony_ci - st,lps25h-press 8262306a36Sopenharmony_ci - st,lps331ap-press 8362306a36Sopenharmony_ci - st,lps33hw 8462306a36Sopenharmony_ci - st,lps35hw 8562306a36Sopenharmony_ci - description: IMUs 8662306a36Sopenharmony_ci enum: 8762306a36Sopenharmony_ci - st,lsm303d-imu 8862306a36Sopenharmony_ci - st,lsm9ds0-imu 8962306a36Sopenharmony_ci - description: Deprecated bindings 9062306a36Sopenharmony_ci enum: 9162306a36Sopenharmony_ci - st,lis302dl-spi 9262306a36Sopenharmony_ci - st,lis3lv02d 9362306a36Sopenharmony_ci deprecated: true 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci reg: 9662306a36Sopenharmony_ci maxItems: 1 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ci interrupts: 9962306a36Sopenharmony_ci description: interrupt line(s) connected to the DRDY line(s) and/or the 10062306a36Sopenharmony_ci Inertial interrupt lines INT1 and INT2 if these exist. This means up to 10162306a36Sopenharmony_ci three interrupts, and the DRDY must be the first one if it exists on 10262306a36Sopenharmony_ci the package. The trigger edge of the interrupts is sometimes software 10362306a36Sopenharmony_ci configurable in the hardware so the operating system should parse this 10462306a36Sopenharmony_ci flag and set up the trigger edge as indicated in the device tree. 10562306a36Sopenharmony_ci minItems: 1 10662306a36Sopenharmony_ci maxItems: 2 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci vdd-supply: true 10962306a36Sopenharmony_ci vddio-supply: true 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ci st,drdy-int-pin: 11262306a36Sopenharmony_ci description: the pin on the package that will be used to signal 11362306a36Sopenharmony_ci "data ready" (valid values 1 or 2). This property is not configurable 11462306a36Sopenharmony_ci on all sensors. 11562306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 11662306a36Sopenharmony_ci enum: [1, 2] 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ci drive-open-drain: 11962306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/flag 12062306a36Sopenharmony_ci description: the interrupt/data ready line will be configured 12162306a36Sopenharmony_ci as open drain, which is useful if several sensors share the same 12262306a36Sopenharmony_ci interrupt line. (This binding is taken from pinctrl.) 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ci mount-matrix: 12562306a36Sopenharmony_ci description: an optional 3x3 mounting rotation matrix. 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_ciallOf: 12862306a36Sopenharmony_ci - if: 12962306a36Sopenharmony_ci properties: 13062306a36Sopenharmony_ci compatible: 13162306a36Sopenharmony_ci enum: 13262306a36Sopenharmony_ci # These have no interrupts 13362306a36Sopenharmony_ci - st,lps001wp 13462306a36Sopenharmony_ci then: 13562306a36Sopenharmony_ci properties: 13662306a36Sopenharmony_ci interrupts: false 13762306a36Sopenharmony_ci st,drdy-int-pin: false 13862306a36Sopenharmony_ci drive-open-drain: false 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_ci - if: 14162306a36Sopenharmony_ci properties: 14262306a36Sopenharmony_ci compatible: 14362306a36Sopenharmony_ci enum: 14462306a36Sopenharmony_ci # These have only DRDY 14562306a36Sopenharmony_ci - st,lis2mdl 14662306a36Sopenharmony_ci - st,lis3l02dq 14762306a36Sopenharmony_ci - st,lis3lv02dl-accel 14862306a36Sopenharmony_ci - st,lps22df 14962306a36Sopenharmony_ci - st,lps22hb-press 15062306a36Sopenharmony_ci - st,lps22hh 15162306a36Sopenharmony_ci - st,lps25h-press 15262306a36Sopenharmony_ci - st,lps33hw 15362306a36Sopenharmony_ci - st,lps35hw 15462306a36Sopenharmony_ci - st,lsm303agr-magn 15562306a36Sopenharmony_ci - st,lsm303dlh-magn 15662306a36Sopenharmony_ci - st,lsm303dlhc-magn 15762306a36Sopenharmony_ci - st,lsm303dlm-magn 15862306a36Sopenharmony_ci then: 15962306a36Sopenharmony_ci properties: 16062306a36Sopenharmony_ci interrupts: 16162306a36Sopenharmony_ci maxItems: 1 16262306a36Sopenharmony_ci st,drdy-int-pin: false 16362306a36Sopenharmony_ci 16462306a36Sopenharmony_cirequired: 16562306a36Sopenharmony_ci - compatible 16662306a36Sopenharmony_ci - reg 16762306a36Sopenharmony_ci 16862306a36Sopenharmony_ciadditionalProperties: false 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ciexamples: 17162306a36Sopenharmony_ci - | 17262306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 17362306a36Sopenharmony_ci i2c { 17462306a36Sopenharmony_ci #address-cells = <1>; 17562306a36Sopenharmony_ci #size-cells = <0>; 17662306a36Sopenharmony_ci 17762306a36Sopenharmony_ci accelerometer@1c { 17862306a36Sopenharmony_ci compatible = "st,lis331dl-accel"; 17962306a36Sopenharmony_ci reg = <0x1c>; 18062306a36Sopenharmony_ci st,drdy-int-pin = <1>; 18162306a36Sopenharmony_ci vdd-supply = <&ldo1>; 18262306a36Sopenharmony_ci vddio-supply = <&ldo2>; 18362306a36Sopenharmony_ci interrupt-parent = <&gpio>; 18462306a36Sopenharmony_ci interrupts = <18 IRQ_TYPE_EDGE_RISING>, <19 IRQ_TYPE_EDGE_RISING>; 18562306a36Sopenharmony_ci }; 18662306a36Sopenharmony_ci }; 18762306a36Sopenharmony_ci spi { 18862306a36Sopenharmony_ci #address-cells = <1>; 18962306a36Sopenharmony_ci #size-cells = <0>; 19062306a36Sopenharmony_ci num-cs = <1>; 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ci l3g4200d: gyroscope@0 { 19362306a36Sopenharmony_ci compatible = "st,l3g4200d-gyro"; 19462306a36Sopenharmony_ci st,drdy-int-pin = <2>; 19562306a36Sopenharmony_ci reg = <0>; 19662306a36Sopenharmony_ci vdd-supply = <&vcc_io>; 19762306a36Sopenharmony_ci vddio-supply = <&vcc_io>; 19862306a36Sopenharmony_ci }; 19962306a36Sopenharmony_ci }; 20062306a36Sopenharmony_ci... 201