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
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
573 description: Specifies the trackpad's ATI target.
576 $ref: /schemas/types.yaml#/definitions/uint32
581 Specifies the degree to which the trackpad's charge cycle time is to
582 be increased, with 0 representing no increase.
585 $ref: /schemas/types.yaml#/definitions/uint32
589 Specifies the bias current applied during projected-capacitance
597 $ref: /schemas/types.yaml#/definitions/uint32
601 Specifies the trackpad's sensing frequency as follows (parenthesized
602 numbers represent the frequency if 'azoteq,clk-div' is present):
608 azoteq,ati-band-tighten:
611 Tightens the ATI band from 1/8 to 1/16 of the desired target.
614 $ref: /schemas/types.yaml#/definitions/uint32
618 description: Specifies the trackpad's touch hysteresis.
621 $ref: /schemas/types.yaml#/definitions/uint32
622 enum: [0, 1, 2, 3, 4, 5, 6, 7]
625 Specifies the update rate of the trackpad's long-term average during
626 ultra-low-power mode as follows:
636 azoteq,filt-str-trackpad:
637 $ref: /schemas/types.yaml#/definitions/uint32
640 description: Specifies the trackpad coordinate filter strength.
642 azoteq,filt-str-np-cnt:
643 $ref: /schemas/types.yaml#/definitions/uint32
647 Specifies the raw count filter strength during normal-power mode.
649 azoteq,filt-str-lp-cnt:
650 $ref: /schemas/types.yaml#/definitions/uint32
654 Specifies the raw count filter strength during low-power mode.
660 Specifies the numeric keycodes associated with each available gesture
661 in the following order (enter 0 for unused gestures):
662 0: Positive flick or swipe in X direction
663 1: Negative flick or swipe in X direction
664 2: Positive flick or swipe in Y direction
665 3: Negative flick or swipe in Y direction
669 azoteq,gesture-swipe:
672 Directs the device to interpret axial gestures as a swipe (finger
673 remains on trackpad) instead of a flick (finger leaves trackpad).
675 azoteq,timeout-tap-ms:
681 Specifies the length of time (in ms) within which a trackpad touch
682 must be released in order to be interpreted as a tap.
684 azoteq,timeout-swipe-ms:
690 Specifies the length of time (in ms) within which an axial gesture
691 must be completed in order to be interpreted as a flick or swipe.
694 $ref: /schemas/types.yaml#/definitions/uint32
699 Specifies the number of points across which an axial gesture must
700 travel in order to be interpreted as a flick or swipe.
705 description: Represents a single trackpad channel.
709 $ref: /schemas/types.yaml#/definitions/uint32
713 description: Specifies the threshold for the channel.
716 $ref: /schemas/types.yaml#/definitions/uint32
720 description: Specifies the channel's ATI base.
722 additionalProperties: false
725 azoteq,gesture-swipe: ["linux,keycodes"]
726 azoteq,timeout-tap-ms: ["linux,keycodes"]
727 azoteq,timeout-swipe-ms: ["linux,keycodes"]
728 azoteq,thresh-swipe: ["linux,keycodes"]
730 additionalProperties: false
739 additionalProperties: false
743 #include <dt-bindings/input/input.h>
744 #include <dt-bindings/interrupt-controller/irq.h>
747 #address-cells = <1>;
751 #address-cells = <1>;
754 compatible = "azoteq,iqs626a";
756 interrupt-parent = <&gpio>;
757 interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
759 azoteq,rate-np-ms = <16>;
760 azoteq,rate-lp-ms = <160>;
762 azoteq,timeout-pwr-ms = <2560>;
763 azoteq,timeout-lta-ms = <32768>;
766 azoteq,meas-cap-decrease;
768 azoteq,ati-base = <75>;
769 azoteq,ati-target = <1024>;
771 azoteq,rx-enable = <2>, <3>, <4>,
775 linux,code = <KEY_POWER>;
780 azoteq,filt-str-np-cnt = <1>;
781 azoteq,filt-str-lp-cnt = <1>;
785 azoteq,ati-mode = <3>;
786 azoteq,ati-target = <512>;
788 azoteq,proj-bias = <1>;
789 azoteq,sense-freq = <2>;
791 linux,keycodes = <KEY_VOLUMEUP>,
798 azoteq,gesture-swipe;
799 azoteq,timeout-swipe-ms = <800>;
800 azoteq,timeout-tap-ms = <400>;
801 azoteq,thresh-swipe = <40>;
804 azoteq,thresh = <35>;
805 azoteq,ati-base = <195>;
809 azoteq,thresh = <40>;
810 azoteq,ati-base = <195>;
814 azoteq,thresh = <40>;
815 azoteq,ati-base = <195>;
819 azoteq,thresh = <38>;
820 azoteq,ati-base = <195>;
824 azoteq,thresh = <33>;
825 azoteq,ati-base = <195>;
829 azoteq,thresh = <38>;
830 azoteq,ati-base = <195>;
834 azoteq,thresh = <35>;
835 azoteq,ati-base = <195>;
839 azoteq,thresh = <35>;
840 azoteq,ati-base = <195>;
844 azoteq,thresh = <35>;
845 azoteq,ati-base = <195>;
850 * Preserve the default register settings for
851 * the temperature-tracking channel leveraged
852 * by reset user interface (RUI) 1.
854 * Scalar properties (e.g. ATI mode) are left
855 * untouched by simply omitting them; boolean
856 * properties must be specified explicitly as
860 azoteq,reseed-disable;
861 azoteq,meas-cap-decrease;
862 azoteq,dual-direction;
864 azoteq,static-enable;
868 azoteq,reseed-disable;
869 azoteq,meas-cap-decrease;
872 linux,code = <SW_LID>;