mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 18:39:59 +00:00
iio: st-sensors: Update ST Sensor bindings
This adjusts the ST Sensor bindings with the more fine-grained syntax checks that were proposed late in the last kernel cycle and colliding with parallel work. Cc: devicetree@vger.kernel.org Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20210412122331.1631643-1-linus.walleij@linaro.org Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
8bad605065
commit
0cd7114580
1 changed files with 182 additions and 77 deletions
|
@ -6,7 +6,9 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
|||
|
||||
title: STMicroelectronics MEMS sensors
|
||||
|
||||
description: |
|
||||
description: The STMicroelectronics sensor devices are pretty straight-forward
|
||||
I2C or SPI devices, all sharing the same device tree descriptions no matter
|
||||
what type of sensor it is.
|
||||
Note that whilst this covers many STMicro MEMs sensors, some more complex
|
||||
IMUs need their own bindings.
|
||||
The STMicroelectronics sensor devices are pretty straight-forward I2C or
|
||||
|
@ -15,90 +17,178 @@ description: |
|
|||
|
||||
maintainers:
|
||||
- Denis Ciocca <denis.ciocca@st.com>
|
||||
- Linus Walleij <linus.walleij@linaro.org>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
description: |
|
||||
Some values are deprecated.
|
||||
st,lis3lv02d (deprecated, use st,lis3lv02dl-accel)
|
||||
st,lis302dl-spi (deprecated, use st,lis3lv02dl-accel)
|
||||
enum:
|
||||
# Accelerometers
|
||||
- st,lis3lv02d
|
||||
- st,lis302dl-spi
|
||||
- st,lis3lv02dl-accel
|
||||
- st,lsm303dlh-accel
|
||||
- st,lsm303dlhc-accel
|
||||
- st,lis3dh-accel
|
||||
- st,lsm330d-accel
|
||||
- st,lsm330dl-accel
|
||||
- st,lsm330dlc-accel
|
||||
- st,lis331dl-accel
|
||||
- st,lis331dlh-accel
|
||||
- st,lsm303dl-accel
|
||||
- st,lsm303dlm-accel
|
||||
- st,lsm330-accel
|
||||
- st,lsm303agr-accel
|
||||
- st,lis2dh12-accel
|
||||
- st,h3lis331dl-accel
|
||||
- st,lng2dm-accel
|
||||
- st,lis3l02dq
|
||||
- st,lis2dw12
|
||||
- st,lis3dhh
|
||||
- st,lis3de
|
||||
- st,lis2de12
|
||||
- st,lis2hh12
|
||||
# Gyroscopes
|
||||
- st,l3g4200d-gyro
|
||||
- st,lsm330d-gyro
|
||||
- st,lsm330dl-gyro
|
||||
- st,lsm330dlc-gyro
|
||||
- st,l3gd20-gyro
|
||||
- st,l3gd20h-gyro
|
||||
- st,l3g4is-gyro
|
||||
- st,lsm330-gyro
|
||||
- st,lsm9ds0-gyro
|
||||
# Magnetometers
|
||||
- st,lsm303agr-magn
|
||||
- st,lsm303dlh-magn
|
||||
- st,lsm303dlhc-magn
|
||||
- st,lsm303dlm-magn
|
||||
- st,lis3mdl-magn
|
||||
- st,lis2mdl
|
||||
- st,lsm9ds1-magn
|
||||
- st,iis2mdc
|
||||
# Pressure sensors
|
||||
- st,lps001wp-press
|
||||
- st,lps25h-press
|
||||
- st,lps331ap-press
|
||||
- st,lps22hb-press
|
||||
- st,lps33hw
|
||||
- st,lps35hw
|
||||
- st,lps22hh
|
||||
oneOf:
|
||||
- description: STMicroelectronics Accelerometers
|
||||
enum:
|
||||
- st,h3lis331dl-accel
|
||||
- st,lis2de12
|
||||
- st,lis2dw12
|
||||
- st,lis2hh12
|
||||
- st,lis2dh12-accel
|
||||
- st,lis331dl-accel
|
||||
- st,lis331dlh-accel
|
||||
- st,lis3de
|
||||
- st,lis3dh-accel
|
||||
- st,lis3dhh
|
||||
- st,lis3l02dq
|
||||
- st,lis3lv02dl-accel
|
||||
- st,lng2dm-accel
|
||||
- st,lsm303agr-accel
|
||||
- st,lsm303dl-accel
|
||||
- st,lsm303dlh-accel
|
||||
- st,lsm303dlhc-accel
|
||||
- st,lsm303dlm-accel
|
||||
- st,lsm330-accel
|
||||
- st,lsm330d-accel
|
||||
- st,lsm330dl-accel
|
||||
- st,lsm330dlc-accel
|
||||
- description: STMicroelectronics Gyroscopes
|
||||
enum:
|
||||
- st,l3g4200d-gyro
|
||||
- st,l3g4is-gyro
|
||||
- st,l3gd20-gyro
|
||||
- st,l3gd20h-gyro
|
||||
- st,lsm330-gyro
|
||||
- st,lsm330d-gyro
|
||||
- st,lsm330dl-gyro
|
||||
- st,lsm330dlc-gyro
|
||||
- st,lsm9ds0-gyro
|
||||
- description: STMicroelectronics Magnetometers
|
||||
enum:
|
||||
- st,lis2mdl
|
||||
- st,lis3mdl-magn
|
||||
- st,lsm303agr-magn
|
||||
- st,lsm303dlh-magn
|
||||
- st,lsm303dlhc-magn
|
||||
- st,lsm303dlm-magn
|
||||
- st,lsm9ds1-magn
|
||||
- description: STMicroelectronics Pressure Sensors
|
||||
enum:
|
||||
- st,lps001wp-press
|
||||
- st,lps22hb-press
|
||||
- st,lps22hh
|
||||
- st,lps25h-press
|
||||
- st,lps331ap-press
|
||||
- st,lps33hw
|
||||
- st,lps35hw
|
||||
- description: Deprecated bindings
|
||||
enum:
|
||||
- st,lis302dl-spi
|
||||
- st,lis3lv02d
|
||||
deprecated: true
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
description: interrupt line(s) connected to the DRDY line(s) and/or the
|
||||
Intertial interrupt lines INT1 and INT2 if these exist. This means up to
|
||||
three interrupts, and the DRDY must be the first one if it exists on
|
||||
the package. The trigger edge of the interrupts is sometimes software
|
||||
configurable in the hardware so the operating system should parse this
|
||||
flag and set up the trigger edge as indicated in the device tree.
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
vdd-supply: true
|
||||
vddio-supply: true
|
||||
|
||||
st,drdy-int-pin:
|
||||
description: the pin on the package that will be used to signal
|
||||
"data ready" (valid values 1 or 2). This property is not configurable
|
||||
on all sensors.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
Some sensors have multiple possible pins via which they can provide
|
||||
a data ready interrupt. This selects which one.
|
||||
enum:
|
||||
- 1
|
||||
- 2
|
||||
enum: [1, 2]
|
||||
|
||||
drive-open-drain:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
The interrupt/data ready line will be configured as open drain, which
|
||||
is useful if several sensors share the same interrupt line.
|
||||
description: the interrupt/data ready line will be configured
|
||||
as open drain, which is useful if several sensors share the same
|
||||
interrupt line. (This binding is taken from pinctrl.)
|
||||
|
||||
mount-matrix:
|
||||
description: an optional 3x3 mounting rotation matrix.
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
# These have no interrupts
|
||||
- st,lps001wp
|
||||
then:
|
||||
properties:
|
||||
interrupts: false
|
||||
st,drdy-int-pin: false
|
||||
drive-open-drain: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
# These have only DRDY
|
||||
- st,lis2mdl
|
||||
- st,lis3l02dq
|
||||
- st,lis3lv02dl-accel
|
||||
- st,lps22hb-press
|
||||
- st,lps22hh
|
||||
- st,lps25h-press
|
||||
- st,lps33hw
|
||||
- st,lps35hw
|
||||
- st,lsm303agr-magn
|
||||
- st,lsm303dlh-magn
|
||||
- st,lsm303dlhc-magn
|
||||
- st,lsm303dlm-magn
|
||||
then:
|
||||
properties:
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
st,drdy-int-pin: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
# Two intertial interrupts i.e. accelerometer/gyro interrupts
|
||||
- st,h3lis331dl-accel
|
||||
- st,l3g4200d-gyro
|
||||
- st,l3g4is-gyro
|
||||
- st,l3gd20-gyro
|
||||
- st,l3gd20h-gyro
|
||||
- st,lis2de12
|
||||
- st,lis2dw12
|
||||
- st,lis2hh12
|
||||
- st,lis2dh12-accel
|
||||
- st,lis331dl-accel
|
||||
- st,lis331dlh-accel
|
||||
- st,lis3de
|
||||
- st,lis3dh-accel
|
||||
- st,lis3dhh
|
||||
- st,lis3mdl-magn
|
||||
- st,lng2dm-accel
|
||||
- st,lps331ap-press
|
||||
- st,lsm303agr-accel
|
||||
- st,lsm303dlh-accel
|
||||
- st,lsm303dlhc-accel
|
||||
- st,lsm303dlm-accel
|
||||
- st,lsm330-accel
|
||||
- st,lsm330-gyro
|
||||
- st,lsm330d-accel
|
||||
- st,lsm330d-gyro
|
||||
- st,lsm330dl-accel
|
||||
- st,lsm330dl-gyro
|
||||
- st,lsm330dlc-accel
|
||||
- st,lsm330dlc-gyro
|
||||
- st,lsm9ds0-gyro
|
||||
- st,lsm9ds1-magn
|
||||
then:
|
||||
properties:
|
||||
interrupts:
|
||||
maxItems: 2
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
@ -110,15 +200,30 @@ examples:
|
|||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
accelerometer@1d {
|
||||
compatible = "st,lis3lv02dl-accel";
|
||||
reg = <0x1d>;
|
||||
interrupt-parent = <&gpio2>;
|
||||
interrupts = <18 IRQ_TYPE_EDGE_RISING>;
|
||||
pinctrl-0 = <&lis3lv02dl_nhk_mode>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
accelerometer@1c {
|
||||
compatible = "st,lis331dl-accel";
|
||||
reg = <0x1c>;
|
||||
st,drdy-int-pin = <1>;
|
||||
vdd-supply = <&ldo1>;
|
||||
vddio-supply = <&ldo2>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <18 IRQ_TYPE_EDGE_RISING>, <19 IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
};
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
num-cs = <1>;
|
||||
|
||||
l3g4200d: gyroscope@0 {
|
||||
compatible = "st,l3g4200d-gyro";
|
||||
st,drdy-int-pin = <2>;
|
||||
reg = <0>;
|
||||
vdd-supply = <&vcc_io>;
|
||||
vddio-supply = <&vcc_io>;
|
||||
};
|
||||
};
|
||||
...
|
||||
|
|
Loading…
Reference in a new issue