1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/input/iqs626a.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Azoteq IQS626A Capacitive Touch Controller
10 - Jeff LaBundy <jeff@labundy.com>
13 The Azoteq IQS626A is a 14-channel capacitive touch controller that features
14 additional Hall-effect and inductive sensing capabilities.
16 Link to datasheet: https://www.azoteq.com/
19 - $ref: touchscreen/touchscreen.yaml#
38 $ref: /schemas/types.yaml#/definitions/uint32
42 Specifies the power mode during suspend as follows:
43 0: Automatic (same as normal runtime, i.e. suspend/resume disabled)
44 1: Low power (all sensing at a reduced reporting rate)
45 2: Ultra-low power (ULP channel proximity sensing)
50 description: Divides the device's core clock by a factor of 4.
55 Permits the device to automatically enter ultra-low-power mode from low-
59 $ref: /schemas/types.yaml#/definitions/uint32
60 enum: [0, 1, 2, 3, 4, 5, 6, 7]
63 Specifies the rate at which the trackpad, generic and Hall channels are
64 updated during ultra-low-power mode as follows:
74 azoteq,ati-band-disable:
76 description: Disables the ATI band check.
80 description: Limits automatic ATI to low-power mode.
83 $ref: /schemas/types.yaml#/definitions/uint32
84 enum: [0, 1, 2, 3, 4, 5, 6, 7]
87 Selects the channel or group of channels for which the GPIO3 pin
88 represents touch state as follows:
99 $ref: /schemas/types.yaml#/definitions/uint32
103 Specifies the event(s) that prompt the device to reseed (i.e. reset the
104 long-term average) of an associated channel as follows:
107 2: Proximity or touch
108 3: Proximity, touch or deep touch
110 azoteq,thresh-extend:
112 description: Multiplies all touch and deep-touch thresholds by 4.
114 azoteq,tracking-enable:
117 Enables all associated channels to track their respective reference
120 azoteq,reseed-offset:
123 Applies an 8-count offset to all long-term averages upon either ATI or
130 description: Specifies the report rate (in ms) during normal-power mode.
136 description: Specifies the report rate (in ms) during low-power mode.
143 description: Specifies the report rate (in ms) during ultra-low-power mode.
145 azoteq,timeout-pwr-ms:
151 Specifies the length of time (in ms) to wait for an event before moving
152 from normal-power mode to low-power mode, or (if 'azoteq,ulp-enable' is
153 present) from low-power mode to ultra-low-power mode.
155 azoteq,timeout-lta-ms:
161 Specifies the length of time (in ms) to wait before resetting the long-
162 term average of all channels. Specify the maximum timeout to disable it
165 touchscreen-inverted-x: true
166 touchscreen-inverted-y: true
167 touchscreen-swapped-x-y: true
170 "^ulp-0|generic-[0-2]|hall$":
173 Represents a single sensing channel. A channel is active if defined and
180 Prevents the channel from participating in an ATI event that is
181 manually triggered during initialization.
183 azoteq,reseed-disable:
186 Prevents the channel from being reseeded if the long-term average
187 timeout (defined in 'azoteq,timeout-lta') expires.
189 azoteq,meas-cap-decrease:
192 Decreases the internal measurement capacitance from 60 pF to 15 pF.
195 $ref: /schemas/types.yaml#/definitions/uint32
199 Specifies how inactive CRX pins are to be terminated as follows:
202 2: VREG (generic channels only)
207 Enables linearization of the channel's counts (generic and Hall
208 channels) or inverts the polarity of the channel's proximity or
209 touch states (ULP channel).
211 azoteq,dual-direction:
214 Specifies that the channel's long-term average is to freeze in the
215 presence of either increasing or decreasing counts, thereby permit-
216 ting events to be reported in either direction.
220 description: Disables raw count filtering for the channel.
223 $ref: /schemas/types.yaml#/definitions/uint32
226 Specifies the channel's ATI mode as follows:
232 The default value is a function of the channel and the device's reset
233 user interface (RUI); reference the datasheet for further information
234 about the available RUI options.
237 $ref: /schemas/types.yaml#/definitions/uint32
238 enum: [75, 100, 150, 200]
240 Specifies the channel's ATI base. The default value is a function
241 of the channel and the device's RUI.
244 $ref: /schemas/types.yaml#/definitions/uint32
249 Specifies the channel's ATI target. The default value is a function
250 of the channel and the device's RUI.
253 $ref: /schemas/types.yaml#/definitions/uint32
258 Specifies the degree to which the channel's charge cycle time is to
259 be increased, with 0 representing no increase. The maximum value is
260 limited to 4 in the case of the ULP channel, and the property is un-
261 available entirely in the case of the Hall channel.
264 $ref: /schemas/types.yaml#/definitions/uint32
268 Specifies the bias current applied during projected-capacitance
275 This property is unavailable in the case of the Hall channel.
278 $ref: /schemas/types.yaml#/definitions/uint32
281 Specifies the channel's sensing frequency as follows (parenthesized
282 numbers represent the frequency if 'azoteq,clk-div' is present):
288 This property is unavailable in the case of the Hall channel. The
289 default value is a function of the channel and the device's RUI.
291 azoteq,ati-band-tighten:
294 Tightens the ATI band from 1/8 to 1/16 of the desired target (ULP and
295 generic channels only).
299 description: Enables projected-capacitance sensing (ULP channel only).
301 azoteq,filt-str-np-cnt:
302 $ref: /schemas/types.yaml#/definitions/uint32
306 Specifies the raw count filter strength during normal-power mode (ULP
307 and generic channels only).
309 azoteq,filt-str-lp-cnt:
310 $ref: /schemas/types.yaml#/definitions/uint32
314 Specifies the raw count filter strength during low-power mode (ULP and
315 generic channels only).
317 azoteq,filt-str-np-lta:
318 $ref: /schemas/types.yaml#/definitions/uint32
322 Specifies the long-term average filter strength during normal-power
323 mode (ULP and generic channels only).
325 azoteq,filt-str-lp-lta:
326 $ref: /schemas/types.yaml#/definitions/uint32
330 Specifies the long-term average filter strength during low-power mode
331 (ULP and generic channels only).
334 $ref: /schemas/types.yaml#/definitions/uint32-array
341 Specifies the CRX pin(s) associated with the channel.
343 This property is unavailable in the case of the Hall channel. The
344 default value is a function of the channel and the device's RUI.
347 $ref: /schemas/types.yaml#/definitions/uint32-array
354 Specifies the TX pin(s) associated with the channel.
356 This property is unavailable in the case of the Hall channel. The
357 default value is a function of the channel and the device's RUI.
359 azoteq,local-cap-size:
360 $ref: /schemas/types.yaml#/definitions/uint32
361 enum: [0, 1, 2, 3, 4]
364 Specifies the capacitance to be added to the channel as follows:
371 This property is unavailable in the case of the ULP or Hall channels.
374 $ref: /schemas/types.yaml#/definitions/uint32
375 enum: [0, 1, 8, 9, 12, 14, 15]
377 Specifies the channel's sensing mode as follows:
379 1: Projected capacitance
386 This property is unavailable in the case of the ULP or Hall channels.
387 The default value is a function of the channel and the device's RUI.
390 $ref: /schemas/types.yaml#/definitions/uint32
394 Specifies the inductive sensing excitation frequency as follows
395 (parenthesized numbers represent the frequency if 'azoteq,clk-div'
402 This property is unavailable in the case of the ULP or Hall channels.
404 azoteq,invert-enable:
407 Inverts the polarity of the states reported for proximity, touch and
408 deep-touch events relative to their respective thresholds (generic
414 Disables compensation for the channel (generic channels only).
416 azoteq,static-enable:
419 Enables the static front-end for the channel (generic channels only).
422 $ref: /schemas/types.yaml#/definitions/string-array
435 Specifies the associated channels for which the channel serves as a
436 reference channel. By default, no channels are selected. This prop-
437 erty is only available for the generic channels.
440 $ref: /schemas/types.yaml#/definitions/uint32
445 Specifies the channel's impact weight if it acts as an associated
446 channel (0 = 0% impact, 255 = 200% impact). This property is only
447 available for the generic channels.
450 "^event-(prox|touch|deep)(-alt)?$":
454 Represents a proximity, touch or deep-touch event reported by the
455 channel in response to a decrease in counts. Node names suffixed with
456 '-alt' instead correspond to an increase in counts.
458 By default, the long-term average tracks an increase in counts such
459 that only events corresponding to a decrease in counts are reported
460 (refer to the datasheet for more information).
462 Specify 'azoteq,dual-direction' to freeze the long-term average when
463 the counts increase or decrease such that events of either direction
464 can be reported. Alternatively, specify 'azoteq,invert-enable' to in-
465 vert the polarity of the states reported by the channel.
467 Complementary events (e.g. event-touch and event-touch-alt) can both
468 be present and specify different key or switch codes, but not differ-
469 ent thresholds or hysteresis (if applicable).
471 Proximity events are unavailable in the case of the Hall channel, and
472 deep-touch events are only available for the generic channels. Unless
473 otherwise specified, default values are a function of the channel and
478 $ref: /schemas/types.yaml#/definitions/uint32
481 description: Specifies the threshold for the event.
484 $ref: /schemas/types.yaml#/definitions/uint32
488 Specifies the hysteresis for the event (touch and deep-touch
496 Specifies whether the event is to be interpreted as a key (1) or
497 a switch (5). By default, Hall-channel events are interpreted as
498 switches and all others are interpreted as keys.
500 additionalProperties: false
503 azoteq,assoc-weight: ["azoteq,assoc-select"]
505 additionalProperties: false
507 "^trackpad-3x[2-3]$":
511 Represents all channels associated with the trackpad. The channels are
512 collectively active if the trackpad is defined and inactive otherwise.
518 Prevents the trackpad channels from participating in an ATI event
519 that is manually triggered during initialization.
521 azoteq,reseed-disable:
524 Prevents the trackpad channels from being reseeded if the long-term
525 average timeout (defined in 'azoteq,timeout-lta') expires.
527 azoteq,meas-cap-decrease:
530 Decreases the internal measurement capacitance from 60 pF to 15 pF.
533 $ref: /schemas/types.yaml#/definitions/uint32
537 Specifies how inactive CRX pins are to be terminated as follows:
543 description: Inverts the polarity of the trackpad's touch state.
545 azoteq,dual-direction:
548 Specifies that the trackpad's long-term averages are to freeze in
549 the presence of either increasing or decreasing counts, thereby
550 permitting events to be reported in either direction.
554 description: Disables raw count filtering for the trackpad channels.
557 $ref: /schemas/types.yaml#/definitions/uint32
561 Specifies the trackpad's ATI mode as follows:
568 $ref: /schemas/types.yaml#/definitions/uint32-array
574 default: [45, 45, 45, 45, 45, 45, 45, 45, 45]
575 description: Specifies each individual trackpad channel's ATI base.
578 $ref: /schemas/types.yaml#/definitions/uint32
583 description: Specifies the trackpad's ATI target.
586 $ref: /schemas/types.yaml#/definitions/uint32
591 Specifies the degree to which the trackpad's charge cycle time is to
592 be increased, with 0 representing no increase.
595 $ref: /schemas/types.yaml#/definitions/uint32
599 Specifies the bias current applied during projected-capacitance
607 $ref: /schemas/types.yaml#/definitions/uint32
611 Specifies the trackpad's sensing frequency as follows (parenthesized
612 numbers represent the frequency if 'azoteq,clk-div' is present):
618 azoteq,ati-band-tighten:
621 Tightens the ATI band from 1/8 to 1/16 of the desired target.
624 $ref: /schemas/types.yaml#/definitions/uint32-array
630 default: [0, 0, 0, 0, 0, 0, 0, 0, 0]
632 Specifies each individual trackpad channel's touch threshold.
635 $ref: /schemas/types.yaml#/definitions/uint32
639 description: Specifies the trackpad's touch hysteresis.
642 $ref: /schemas/types.yaml#/definitions/uint32
643 enum: [0, 1, 2, 3, 4, 5, 6, 7]
646 Specifies the update rate of the trackpad's long-term average during
647 ultra-low-power mode as follows:
657 azoteq,filt-str-trackpad:
658 $ref: /schemas/types.yaml#/definitions/uint32
661 description: Specifies the trackpad coordinate filter strength.
663 azoteq,filt-str-np-cnt:
664 $ref: /schemas/types.yaml#/definitions/uint32
668 Specifies the raw count filter strength during normal-power mode.
670 azoteq,filt-str-lp-cnt:
671 $ref: /schemas/types.yaml#/definitions/uint32
675 Specifies the raw count filter strength during low-power mode.
681 Specifies the numeric keycodes associated with each available gesture
682 in the following order (enter 0 for unused gestures):
683 0: Positive flick or swipe in X direction
684 1: Negative flick or swipe in X direction
685 2: Positive flick or swipe in Y direction
686 3: Negative flick or swipe in Y direction
690 azoteq,gesture-swipe:
693 Directs the device to interpret axial gestures as a swipe (finger
694 remains on trackpad) instead of a flick (finger leaves trackpad).
696 azoteq,timeout-tap-ms:
702 Specifies the length of time (in ms) within which a trackpad touch
703 must be released in order to be interpreted as a tap.
705 azoteq,timeout-swipe-ms:
711 Specifies the length of time (in ms) within which an axial gesture
712 must be completed in order to be interpreted as a flick or swipe.
715 $ref: /schemas/types.yaml#/definitions/uint32
720 Specifies the number of points across which an axial gesture must
721 travel in order to be interpreted as a flick or swipe.
724 azoteq,gesture-swipe: ["linux,keycodes"]
725 azoteq,timeout-tap-ms: ["linux,keycodes"]
726 azoteq,timeout-swipe-ms: ["linux,keycodes"]
727 azoteq,thresh-swipe: ["linux,keycodes"]
729 additionalProperties: false
738 additionalProperties: false
742 #include <dt-bindings/input/input.h>
743 #include <dt-bindings/interrupt-controller/irq.h>
746 #address-cells = <1>;
750 #address-cells = <1>;
753 compatible = "azoteq,iqs626a";
755 interrupt-parent = <&gpio>;
756 interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
758 azoteq,rate-np-ms = <16>;
759 azoteq,rate-lp-ms = <160>;
761 azoteq,timeout-pwr-ms = <2560>;
762 azoteq,timeout-lta-ms = <32768>;
765 azoteq,meas-cap-decrease;
767 azoteq,ati-base = <75>;
768 azoteq,ati-target = <1024>;
770 azoteq,rx-enable = <2>, <3>, <4>,
774 linux,code = <KEY_POWER>;
779 azoteq,filt-str-np-cnt = <1>;
780 azoteq,filt-str-lp-cnt = <1>;
783 azoteq,thresh = <35>, <40>, <40>,
787 azoteq,ati-mode = <3>;
788 azoteq,ati-base = <195>, <195>, <195>,
791 azoteq,ati-target = <512>;
793 azoteq,proj-bias = <1>;
794 azoteq,sense-freq = <2>;
796 linux,keycodes = <KEY_VOLUMEUP>,
803 azoteq,gesture-swipe;
804 azoteq,timeout-swipe-ms = <800>;
805 azoteq,timeout-tap-ms = <400>;
806 azoteq,thresh-swipe = <40>;
810 * Preserve the default register settings for
811 * the temperature-tracking channel leveraged
812 * by reset user interface (RUI) 1.
814 * Scalar properties (e.g. ATI mode) are left
815 * untouched by simply omitting them; boolean
816 * properties must be specified explicitly as
820 azoteq,reseed-disable;
821 azoteq,meas-cap-decrease;
822 azoteq,dual-direction;
824 azoteq,static-enable;
828 azoteq,reseed-disable;
829 azoteq,meas-cap-decrease;
832 linux,code = <SW_LID>;