Lines Matching +full:channel +full:- +full:0
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
3 ---
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
10 - Jeff LaBundy <jeff@labundy.com>
13 - $ref: input.yaml#
16 The Azoteq IQS269A is an 8-channel capacitive touch controller that features
17 additional Hall-effect and inductive sensing capabilities.
24 - azoteq,iqs269a
25 - azoteq,iqs269a-00
26 - azoteq,iqs269a-d0
34 "#address-cells":
37 "#size-cells":
38 const: 0
40 azoteq,hall-enable:
43 Enables Hall-effect sensing on channels 6 and 7. In this case, keycodes
44 assigned to channel 6 are ignored and keycodes assigned to channel 7 are
45 interpreted as switch codes. Refer to the datasheet for requirements im-
46 posed on channels 6 and 7 by Hall-effect sensing.
48 azoteq,suspend-mode:
50 enum: [0, 1, 2, 3]
51 default: 0
54 0: Automatic (same as normal runtime, i.e. suspend/resume disabled)
56 2: Ultra-low power (channel 0 proximity sensing)
59 azoteq,clk-div:
63 azoteq,ulp-update:
65 minimum: 0
68 description: Specifies the ultra-low-power mode update rate.
70 azoteq,reseed-offset:
73 Applies an 8-count offset to all long-term averages upon either ATI or
76 azoteq,filt-str-lp-lta:
78 enum: [0, 1, 2, 3]
79 default: 0
81 Specifies the long-term average filter strength during low-power mode.
83 azoteq,filt-str-lp-cnt:
85 enum: [0, 1, 2, 3]
86 default: 0
88 Specifies the raw count filter strength during low-power mode.
90 azoteq,filt-str-np-lta:
92 enum: [0, 1, 2, 3]
93 default: 0
95 Specifies the long-term average filter strength during normal-power mode.
97 azoteq,filt-str-np-cnt:
99 enum: [0, 1, 2, 3]
100 default: 0
102 Specifies the raw count filter strength during normal-power mode.
104 azoteq,rate-np-ms:
105 minimum: 0
108 description: Specifies the report rate (in ms) during normal-power mode.
110 azoteq,rate-lp-ms:
111 minimum: 0
114 description: Specifies the report rate (in ms) during low-power mode.
116 azoteq,rate-ulp-ms:
118 minimum: 0
121 description: Specifies the report rate (in ms) during ultra-low-power mode.
123 azoteq,timeout-pwr-ms:
125 minimum: 0
129 Specifies the length of time (in ms) to wait for an event during normal-
130 power mode before transitioning to low-power mode.
132 azoteq,timeout-lta-ms:
134 minimum: 0
138 Specifies the length of time (in ms) to wait before resetting the long-
142 azoteq,ati-band-disable:
146 azoteq,ati-lp-only:
148 description: Limits automatic ATI to low-power mode.
150 azoteq,ati-band-tighten:
154 azoteq,filt-disable:
158 azoteq,gpio3-select:
160 minimum: 0
162 default: 0
164 Selects the channel for which the GPIO3 pin represents touch state.
166 azoteq,dual-direction:
169 Specifies that long-term averages are to freeze in the presence of either
173 azoteq,tx-freq:
175 enum: [0, 1, 2, 3]
176 default: 0
178 Specifies the inductive sensing excitation frequency as follows (paren-
179 thesized numbers represent the frequency if 'azoteq,clk-div' is present):
180 0: 16 MHz (4 MHz)
185 azoteq,global-cap-increase:
189 azoteq,reseed-select:
191 enum: [0, 1, 2, 3]
192 default: 0
195 long-term average) of an associated channel as follows:
196 0: None
201 azoteq,tracking-enable:
207 azoteq,filt-str-slider:
209 enum: [0, 1, 2, 3]
213 azoteq,touch-hold-ms:
219 Specifies the length of time (in ms) for which the channel selected by
220 'azoteq,gpio3-select' must be held in a state of touch in order for an
221 approximately 60-ms pulse to be asserted on the GPIO4 pin.
228 the following order (enter 0 for unused gestures):
229 0: Slider 0 tap
230 1: Slider 0 hold
231 2: Slider 0 positive flick or swipe
232 3: Slider 0 negative flick or swipe
238 azoteq,gesture-swipe:
244 azoteq,timeout-tap-ms:
246 minimum: 0
254 azoteq,timeout-swipe-ms:
256 minimum: 0
261 completed in order to be interpreted as a flick or swipe. Default and max-
265 azoteq,thresh-swipe:
267 minimum: 0
275 azoteq,gesture-swipe: ["linux,keycodes"]
276 azoteq,timeout-tap-ms: ["linux,keycodes"]
277 azoteq,timeout-swipe-ms: ["linux,keycodes"]
278 azoteq,thresh-swipe: ["linux,keycodes"]
281 "^channel@[0-7]$":
284 Represents a single sensing channel. A channel is active if defined and
289 minimum: 0
291 description: Index of the channel.
293 azoteq,reseed-disable:
296 Prevents the channel from being reseeded if the long-term average
297 timeout (defined in 'azoteq,timeout-lta') expires.
299 azoteq,blocking-enable:
301 description: Specifies that the channel is a blocking channel.
303 azoteq,slider0-select:
305 description: Specifies that the channel participates in slider 0.
307 azoteq,slider1-select:
309 description: Specifies that the channel participates in slider 1.
311 azoteq,rx-enable:
312 $ref: /schemas/types.yaml#/definitions/uint32-array
316 minimum: 0
319 Specifies the CRX pin(s) associated with the channel. By default, only
320 the CRX pin corresponding to the channel's index is enabled (e.g. CRX0
321 for channel 0).
323 azoteq,tx-enable:
324 $ref: /schemas/types.yaml#/definitions/uint32-array
328 minimum: 0
330 default: [0, 1, 2, 3, 4, 5, 6, 7]
331 description: Specifies the TX pin(s) associated with the channel.
333 azoteq,meas-cap-decrease:
338 azoteq,rx-float-inactive:
342 azoteq,local-cap-size:
344 enum: [0, 1, 2]
345 default: 0
347 Specifies the capacitance to be added to the channel as follows:
348 0: None
349 1: Global adder (based on 'azoteq,global-cap-increase')
352 azoteq,invert-enable:
356 deep-touch events relative to their respective thresholds.
358 azoteq,proj-bias:
360 enum: [0, 1, 2, 3]
363 Specifies the bias current applied during projected-capacitance
365 0: 2.5 uA
370 azoteq,sense-mode:
372 enum: [0, 1, 9, 14, 15]
373 default: 0
375 Specifies the channel's sensing mode as follows:
376 0: Self capacitance
382 azoteq,sense-freq:
384 enum: [0, 1, 2, 3]
387 Specifies the channel's sensing frequency as follows (parenthesized
388 numbers represent the frequency if 'azoteq,clk-div' is present):
389 0: 4 MHz (1 MHz)
394 azoteq,static-enable:
396 description: Enables the static front-end for the channel.
398 azoteq,ati-mode:
400 enum: [0, 1, 2, 3]
403 Specifies the channel's ATI mode as follows:
404 0: Disabled
405 1: Semi-partial
409 azoteq,ati-base:
413 description: Specifies the channel's ATI base.
415 azoteq,ati-target:
418 minimum: 0
421 description: Specifies the channel's ATI target.
423 azoteq,assoc-select:
424 $ref: /schemas/types.yaml#/definitions/uint32-array
428 minimum: 0
431 Specifies the associated channels for which the channel serves as a
432 reference channel. By default, no channels are selected.
434 azoteq,assoc-weight:
436 minimum: 0
438 default: 0
440 Specifies the channel's impact weight if it acts as an associated
441 channel (0 = 0% impact, 255 = 200% impact).
444 "^event-prox(-alt)?$":
448 Represents a proximity event reported by the channel in response to
449 a decrease in counts. Node names suffixed with '-alt' instead corre-
452 By default, the long-term average tracks an increase in counts such
456 Specify 'azoteq,dual-direction' to freeze the long-term average when
458 can be reported. Alternatively, specify 'azoteq,invert-enable' to in-
459 vert the polarity of the states reported by the channel.
461 Complementary events (e.g. event-touch and event-touch-alt) can both
462 be present and specify different key or switch codes, but not differ-
468 minimum: 0
477 "^event-touch(-alt)?$":
480 description: Represents a touch event reported by the channel.
485 minimum: 0
492 minimum: 0
501 "^event-deep(-alt)?$":
504 description: Represents a deep-touch event reported by the channel.
509 minimum: 0
516 minimum: 0
518 default: 0
526 - reg
535 - azoteq,iqs269a-d0
538 "^channel@[0-7]$":
540 azoteq,slider1-select: false
543 azoteq,touch-hold-ms: false
546 - compatible
547 - reg
548 - interrupts
549 - "#address-cells"
550 - "#size-cells"
555 - |
556 #include <dt-bindings/input/input.h>
557 #include <dt-bindings/interrupt-controller/irq.h>
560 #address-cells = <1>;
561 #size-cells = <0>;
564 #address-cells = <1>;
565 #size-cells = <0>;
568 reg = <0x44>;
569 interrupt-parent = <&gpio>;
572 azoteq,hall-enable;
573 azoteq,suspend-mode = <2>;
580 azoteq,timeout-tap-ms = <400>;
581 azoteq,timeout-swipe-ms = <800>;
583 channel@0 {
584 reg = <0x0>;
586 event-prox {
591 channel@1 {
592 reg = <0x1>;
593 azoteq,slider0-select;
596 channel@2 {
597 reg = <0x2>;
598 azoteq,slider0-select;
601 channel@3 {
602 reg = <0x3>;
603 azoteq,slider0-select;
606 channel@4 {
607 reg = <0x4>;
608 azoteq,slider0-select;
611 channel@5 {
612 reg = <0x5>;
613 azoteq,slider0-select;
616 channel@6 {
617 reg = <0x6>;
618 azoteq,invert-enable;
619 azoteq,static-enable;
620 azoteq,reseed-disable;
621 azoteq,rx-enable = <0>;
622 azoteq,sense-freq = <0x0>;
623 azoteq,sense-mode = <0xE>;
624 azoteq,ati-mode = <0x0>;
625 azoteq,ati-base = <200>;
626 azoteq,ati-target = <320>;
629 channel@7 {
630 reg = <0x7>;
631 azoteq,invert-enable;
632 azoteq,static-enable;
633 azoteq,reseed-disable;
634 azoteq,rx-enable = <0>, <6>;
635 azoteq,sense-freq = <0x0>;
636 azoteq,sense-mode = <0xE>;
637 azoteq,ati-mode = <0x3>;
638 azoteq,ati-base = <200>;
639 azoteq,ati-target = <320>;
641 event-touch {