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