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)?$":
453 Represents a proximity, touch or deep-touch event reported by the
454 channel in response to a decrease in counts. Node names suffixed with
455 '-alt' instead correspond to an increase in counts.
457 By default, the long-term average tracks an increase in counts such
458 that only events corresponding to a decrease in counts are reported
459 (refer to the datasheet for more information).
461 Specify 'azoteq,dual-direction' to freeze the long-term average when
462 the counts increase or decrease such that events of either direction
463 can be reported. Alternatively, specify 'azoteq,invert-enable' to in-
464 vert the polarity of the states reported by the channel.
466 Complementary events (e.g. event-touch and event-touch-alt) can both
467 be present and specify different key or switch codes, but not differ-
468 ent thresholds or hysteresis (if applicable).
470 Proximity events are unavailable in the case of the Hall channel, and
471 deep-touch events are only available for the generic channels. Unless
472 otherwise specified, default values are a function of the channel and
477 $ref: /schemas/types.yaml#/definitions/uint32
480 description: Specifies the threshold for the event.
483 $ref: /schemas/types.yaml#/definitions/uint32
487 Specifies the hysteresis for the event (touch and deep-touch
491 $ref: /schemas/types.yaml#/definitions/uint32
492 description: Numeric key or switch code associated with the event.
495 $ref: /schemas/types.yaml#/definitions/uint32
498 Specifies whether the event is to be interpreted as a key (1) or
499 a switch (5). By default, Hall-channel events are interpreted as
500 switches and all others are interpreted as keys.
503 linux,input-type: ["linux,code"]
505 additionalProperties: false
508 azoteq,assoc-weight: ["azoteq,assoc-select"]
510 additionalProperties: false
512 "^trackpad-3x[2-3]$":
515 Represents all channels associated with the trackpad. The channels are
516 collectively active if the trackpad is defined and inactive otherwise.
522 Prevents the trackpad channels from participating in an ATI event
523 that is manually triggered during initialization.
525 azoteq,reseed-disable:
528 Prevents the trackpad channels from being reseeded if the long-term
529 average timeout (defined in 'azoteq,timeout-lta') expires.
531 azoteq,meas-cap-decrease:
534 Decreases the internal measurement capacitance from 60 pF to 15 pF.
537 $ref: /schemas/types.yaml#/definitions/uint32
541 Specifies how inactive CRX pins are to be terminated as follows:
547 description: Inverts the polarity of the trackpad's touch state.
549 azoteq,dual-direction:
552 Specifies that the trackpad's long-term averages are to freeze in
553 the presence of either increasing or decreasing counts, thereby
554 permitting events to be reported in either direction.
558 description: Disables raw count filtering for the trackpad channels.
561 $ref: /schemas/types.yaml#/definitions/uint32
565 Specifies the trackpad's ATI mode as follows:
572 $ref: /schemas/types.yaml#/definitions/uint32-array
578 default: [45, 45, 45, 45, 45, 45, 45, 45, 45]
579 description: Specifies each individual trackpad channel's ATI base.
582 $ref: /schemas/types.yaml#/definitions/uint32
587 description: Specifies the trackpad's ATI target.
590 $ref: /schemas/types.yaml#/definitions/uint32
595 Specifies the degree to which the trackpad's charge cycle time is to
596 be increased, with 0 representing no increase.
599 $ref: /schemas/types.yaml#/definitions/uint32
603 Specifies the bias current applied during projected-capacitance
611 $ref: /schemas/types.yaml#/definitions/uint32
615 Specifies the trackpad's sensing frequency as follows (parenthesized
616 numbers represent the frequency if 'azoteq,clk-div' is present):
622 azoteq,ati-band-tighten:
625 Tightens the ATI band from 1/8 to 1/16 of the desired target.
628 $ref: /schemas/types.yaml#/definitions/uint32-array
634 default: [0, 0, 0, 0, 0, 0, 0, 0, 0]
636 Specifies each individual trackpad channel's touch threshold.
639 $ref: /schemas/types.yaml#/definitions/uint32
643 description: Specifies the trackpad's touch hysteresis.
646 $ref: /schemas/types.yaml#/definitions/uint32
647 enum: [0, 1, 2, 3, 4, 5, 6, 7]
650 Specifies the update rate of the trackpad's long-term average during
651 ultra-low-power mode as follows:
661 azoteq,filt-str-trackpad:
662 $ref: /schemas/types.yaml#/definitions/uint32
665 description: Specifies the trackpad coordinate filter strength.
667 azoteq,filt-str-np-cnt:
668 $ref: /schemas/types.yaml#/definitions/uint32
672 Specifies the raw count filter strength during normal-power mode.
674 azoteq,filt-str-lp-cnt:
675 $ref: /schemas/types.yaml#/definitions/uint32
679 Specifies the raw count filter strength during low-power mode.
682 $ref: /schemas/types.yaml#/definitions/uint32-array
686 Specifies the numeric keycodes associated with each available gesture
687 in the following order (enter 0 for unused gestures):
688 0: Positive flick or swipe in X direction
689 1: Negative flick or swipe in X direction
690 2: Positive flick or swipe in Y direction
691 3: Negative flick or swipe in Y direction
695 azoteq,gesture-swipe:
698 Directs the device to interpret axial gestures as a swipe (finger
699 remains on trackpad) instead of a flick (finger leaves trackpad).
701 azoteq,timeout-tap-ms:
707 Specifies the length of time (in ms) within which a trackpad touch
708 must be released in order to be interpreted as a tap.
710 azoteq,timeout-swipe-ms:
716 Specifies the length of time (in ms) within which an axial gesture
717 must be completed in order to be interpreted as a flick or swipe.
720 $ref: /schemas/types.yaml#/definitions/uint32
725 Specifies the number of points across which an axial gesture must
726 travel in order to be interpreted as a flick or swipe.
729 azoteq,gesture-swipe: ["linux,keycodes"]
730 azoteq,timeout-tap-ms: ["linux,keycodes"]
731 azoteq,timeout-swipe-ms: ["linux,keycodes"]
732 azoteq,thresh-swipe: ["linux,keycodes"]
734 additionalProperties: false
743 additionalProperties: false
747 #include <dt-bindings/input/input.h>
748 #include <dt-bindings/interrupt-controller/irq.h>
751 #address-cells = <1>;
755 #address-cells = <1>;
758 compatible = "azoteq,iqs626a";
760 interrupt-parent = <&gpio>;
761 interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
763 azoteq,rate-np-ms = <16>;
764 azoteq,rate-lp-ms = <160>;
766 azoteq,timeout-pwr-ms = <2560>;
767 azoteq,timeout-lta-ms = <32768>;
770 azoteq,meas-cap-decrease;
772 azoteq,ati-base = <75>;
773 azoteq,ati-target = <1024>;
775 azoteq,rx-enable = <2>, <3>, <4>,
779 linux,code = <KEY_POWER>;
784 azoteq,filt-str-np-cnt = <1>;
785 azoteq,filt-str-lp-cnt = <1>;
788 azoteq,thresh = <35>, <40>, <40>,
792 azoteq,ati-mode = <3>;
793 azoteq,ati-base = <195>, <195>, <195>,
796 azoteq,ati-target = <512>;
798 azoteq,proj-bias = <1>;
799 azoteq,sense-freq = <2>;
801 linux,keycodes = <KEY_VOLUMEUP>,
808 azoteq,gesture-swipe;
809 azoteq,timeout-swipe-ms = <800>;
810 azoteq,timeout-tap-ms = <400>;
811 azoteq,thresh-swipe = <40>;
815 * Preserve the default register settings for
816 * the temperature-tracking channel leveraged
817 * by reset user interface (RUI) 1.
819 * Scalar properties (e.g. ATI mode) are left
820 * untouched by simply omitting them; boolean
821 * properties must be specified explicitly as
825 azoteq,reseed-disable;
826 azoteq,meas-cap-decrease;
827 azoteq,dual-direction;
829 azoteq,static-enable;
833 azoteq,reseed-disable;
834 azoteq,meas-cap-decrease;
837 linux,code = <SW_LID>;