~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/mfd/st,stmpe.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/mfd/st,stmpe.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: STMicroelectonics Port Expander (STMPE)
  8 
  9 description: STMicroelectronics Port Expander (STMPE) is a series of slow
 10   bus controllers for various expanded peripherals such as GPIO, keypad,
 11   touchscreen, ADC, PWM or rotator. It can contain one or several different
 12   peripherals connected to SPI or I2C.
 13 
 14 maintainers:
 15   - Linus Walleij <linus.walleij@linaro.org>
 16 
 17 allOf:
 18   - $ref: /schemas/spi/spi-peripheral-props.yaml#
 19 
 20 properties:
 21   compatible:
 22     enum:
 23       - st,stmpe601
 24       - st,stmpe801
 25       - st,stmpe811
 26       - st,stmpe1600
 27       - st,stmpe1601
 28       - st,stmpe2401
 29       - st,stmpe2403
 30 
 31   reg:
 32     maxItems: 1
 33 
 34   interrupts:
 35     maxItems: 1
 36 
 37   vcc-supply: true
 38 
 39   vio-supply: true
 40 
 41   reset-gpios:
 42     maxItems: 1
 43 
 44   wakeup-source: true
 45 
 46   st,autosleep-timeout:
 47     $ref: /schemas/types.yaml#/definitions/uint32
 48     enum: [ 4, 16, 32, 64, 128, 256, 512, 1024 ]
 49     description: Time idle before going to automatic sleep to save power
 50 
 51   st,sample-time:
 52     $ref: /schemas/types.yaml#/definitions/uint32
 53     enum: [ 0, 1, 2, 3, 4, 5, 6 ]
 54     description: |
 55       Sample time per iteration
 56       0 = 36 clock ticks
 57       1 = 44 clock ticks
 58       2 = 56 clock ticks
 59       3 = 64 clock ticks
 60       4 = 80 clock ticks - recommended
 61       5 = 96 clock ticks
 62       6 = 124 clock ticks
 63 
 64   st,mod-12b:
 65     $ref: /schemas/types.yaml#/definitions/uint32
 66     enum: [ 0, 1 ]
 67     description: ADC bit mode 0 = 10bit ADC, 1 = 12bit ADC
 68 
 69   st,ref-sel:
 70     $ref: /schemas/types.yaml#/definitions/uint32
 71     enum: [ 0, 1 ]
 72     description: ADC reference source 0 = internal, 1 = external
 73 
 74   st,adc-freq:
 75     $ref: /schemas/types.yaml#/definitions/uint32
 76     enum: [ 0, 1, 2, 3 ]
 77     description: |
 78       ADC clock speed
 79       0 = 1.625 MHz
 80       1 = 3.25 MHz
 81       2, 3 = 6.5 MHz
 82 
 83   adc:
 84     type: object
 85     $ref: /schemas/iio/adc/st,stmpe-adc.yaml#
 86 
 87   gpio:
 88     type: object
 89     $ref: /schemas/gpio/st,stmpe-gpio.yaml#
 90 
 91   keyboard-controller:
 92     type: object
 93     $ref: /schemas/input/matrix-keymap.yaml#
 94 
 95     unevaluatedProperties: false
 96 
 97     properties:
 98       compatible:
 99         const: st,stmpe-keypad
100 
101       debounce-interval:
102         description: Debouncing interval in milliseconds
103         $ref: /schemas/types.yaml#/definitions/uint32
104 
105       st,no-autorepeat:
106         description: If present, the keys will not autorepeat when pressed
107         $ref: /schemas/types.yaml#/definitions/flag
108 
109       st,scan-count:
110         description: Scanning cycles elapsed before key data is updated
111         $ref: /schemas/types.yaml#/definitions/uint32
112 
113     required:
114       - compatible
115       - linux,keymap
116 
117   pwm:
118     type: object
119     $ref: /schemas/pwm/pwm.yaml#
120 
121     unevaluatedProperties: false
122 
123     properties:
124       compatible:
125         const: st,stmpe-pwm
126 
127       "#pwm-cells":
128         const: 2
129 
130   touchscreen:
131     type: object
132     $ref: /schemas/input/touchscreen/touchscreen.yaml#
133 
134     unevaluatedProperties: false
135 
136     properties:
137       compatible:
138         const: st,stmpe-ts
139 
140       st,ave-ctrl:
141         $ref: /schemas/types.yaml#/definitions/uint32
142         enum: [ 0, 1, 2, 3 ]
143         description: |
144           Sample average control
145           0 = 1 sample
146           1 = 2 samples
147           2 = 4 samples
148           3 = 8 samples
149 
150       st,touch-det-delay:
151         $ref: /schemas/types.yaml#/definitions/uint32
152         enum: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
153         description: |
154           Touch detection delay
155           0 = 10 us
156           1 = 50 us
157           2 = 100 us
158           3 = 500 us - recommended
159           4 = 1 ms
160           5 = 5 ms
161           6 = 10 ms
162           7 = 50 ms
163 
164       st,settling:
165         $ref: /schemas/types.yaml#/definitions/uint32
166         enum: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
167         description: |
168           Panel driver settling time
169           0 = 10 us
170           1 = 100 us
171           2 = 500 us - recommended
172           3 = 1 ms
173           4 = 5 ms
174           5 = 10 ms
175           6 = 50 ms
176           7 = 100 ms
177 
178       st,fraction-z:
179         $ref: /schemas/types.yaml#/definitions/uint32
180         enum: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
181         description: Length of the fractional part in z, recommended is 7
182           (fraction-z ([0..7]) = Count of the fractional part)
183 
184       st,i-drive:
185         $ref: /schemas/types.yaml#/definitions/uint32
186         enum: [ 0, 1 ]
187         description: |
188           current limit value of the touchscreen drivers
189           0 = 20 mA (typical 35 mA max)
190           1 = 50 mA (typical 80 mA max)
191 
192     required:
193       - compatible
194 
195 additionalProperties: false
196 
197 required:
198   - compatible
199   - reg
200   - interrupts
201 
202 examples:
203   - |
204     #include <dt-bindings/gpio/gpio.h>
205     #include <dt-bindings/interrupt-controller/irq.h>
206     #include <dt-bindings/input/input.h>
207     i2c {
208       #address-cells = <1>;
209       #size-cells = <0>;
210 
211       port-expander@43 {
212         compatible = "st,stmpe2401";
213         reg = <0x43>;
214         reset-gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
215         interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
216         interrupt-parent = <&gpio>;
217         vcc-supply = <&db8500_vsmps2_reg>;
218         vio-supply = <&db8500_vsmps2_reg>;
219         wakeup-source;
220         st,autosleep-timeout = <1024>;
221 
222         gpio {
223           compatible = "st,stmpe-gpio";
224           gpio-controller;
225           #gpio-cells = <2>;
226           interrupt-controller;
227           #interrupt-cells = <2>;
228           st,norequest-mask = <0xf0f002>;
229         };
230 
231         keyboard-controller {
232           compatible = "st,stmpe-keypad";
233           debounce-interval = <64>;
234           st,scan-count = <8>;
235           st,no-autorepeat;
236           keypad,num-rows = <8>;
237           keypad,num-columns = <8>;
238           linux,keymap = <
239               MATRIX_KEY(0x00, 0x00, KEY_1)
240               MATRIX_KEY(0x00, 0x01, KEY_2)
241               MATRIX_KEY(0x00, 0x02, KEY_3)
242               MATRIX_KEY(0x00, 0x03, KEY_4)
243               MATRIX_KEY(0x00, 0x04, KEY_5)
244               MATRIX_KEY(0x00, 0x05, KEY_6)
245               MATRIX_KEY(0x00, 0x06, KEY_7)
246               MATRIX_KEY(0x00, 0x07, KEY_8)
247               MATRIX_KEY(0x00, 0x08, KEY_9)
248               MATRIX_KEY(0x00, 0x09, KEY_0)
249           >;
250         };
251 
252         pwm {
253           compatible = "st,stmpe-pwm";
254           #pwm-cells = <2>;
255         };
256       };
257 
258       port-expander@41 {
259         compatible = "st,stmpe811";
260         reg = <0x41>;
261         interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
262         interrupt-parent = <&gpio>;
263         st,adc-freq = <1>;
264         st,mod-12b = <1>;
265         st,ref-sel = <0>;
266         st,sample-time = <4>;
267 
268         adc {
269           compatible = "st,stmpe-adc";
270           st,norequest-mask = <0x0f>;
271           #io-channel-cells = <1>;
272         };
273 
274         gpio {
275           compatible = "st,stmpe-gpio";
276           gpio-controller;
277           #gpio-cells = <2>;
278           interrupt-controller;
279           #interrupt-cells = <2>;
280         };
281 
282         pwm {
283           compatible = "st,stmpe-pwm";
284           #pwm-cells = <2>;
285         };
286 
287         touchscreen {
288           compatible = "st,stmpe-ts";
289           st,ave-ctrl = <3>;
290           st,touch-det-delay = <5>;
291           st,settling = <3>;
292           st,fraction-z = <7>;
293           st,i-drive = <1>;
294         };
295       };
296     };
297 ...

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php