14a30238ec
The original bindings was listing the length of the interrupts as either 1 or 2, depending on the setup. This is also what is enforced by the top level schema. However, that is further constrained with an if clause that require exactly two interrupts, even though it might not make sense on those devices or in some setups. Let's remove the clause entirely. Cc: Denis Ciocca <denis.ciocca@st.com> Cc: Lars-Peter Clausen <lars@metafoo.de> Fixes: 0cd71145803d ("iio: st-sensors: Update ST Sensor bindings") Signed-off-by: Maxime Ripard <maxime@cerno.tech> Reviewed-by: Rob Herring <robh@kernel.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20210721140424.725744-16-maxime@cerno.tech Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
192 lines
5.2 KiB
YAML
192 lines
5.2 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/iio/st,st-sensors.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: STMicroelectronics MEMS sensors
|
|
|
|
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
|
|
SPI devices, all sharing the same device tree descriptions no matter what
|
|
type of sensor it is.
|
|
|
|
maintainers:
|
|
- Denis Ciocca <denis.ciocca@st.com>
|
|
- Linus Walleij <linus.walleij@linaro.org>
|
|
|
|
properties:
|
|
compatible:
|
|
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: IMUs
|
|
enum:
|
|
- st,lsm9ds0-imu
|
|
- 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
|
|
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. (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
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
i2c {
|
|
#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>;
|
|
};
|
|
};
|
|
...
|