1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/input/iqs269a.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Azoteq IQS269A Capacitive Touch Controller
10 - Jeff LaBundy <jeff@labundy.com>
13 The Azoteq IQS269A is an 8-channel capacitive touch controller that features
14 additional Hall-effect and inductive sensing capabilities.
16 Link to datasheet: https://www.azoteq.com/
37 Enables Hall-effect sensing on channels 6 and 7. In this case, keycodes
38 assigned to channel 6 are ignored and keycodes assigned to channel 7 are
39 interpreted as switch codes. Refer to the datasheet for requirements im-
40 posed on channels 6 and 7 by Hall-effect sensing.
43 $ref: /schemas/types.yaml#/definitions/uint32
47 Specifies the power mode during suspend as follows:
48 0: Automatic (same as normal runtime, i.e. suspend/resume disabled)
49 1: Low power (all sensing at a reduced reporting rate)
50 2: Ultra-low power (channel 0 proximity sensing)
55 description: Divides the device's core clock by a factor of 4.
58 $ref: /schemas/types.yaml#/definitions/uint32
62 description: Specifies the ultra-low-power mode update rate.
67 Applies an 8-count offset to all long-term averages upon either ATI or
70 azoteq,filt-str-lp-lta:
71 $ref: /schemas/types.yaml#/definitions/uint32
75 Specifies the long-term average filter strength during low-power mode.
77 azoteq,filt-str-lp-cnt:
78 $ref: /schemas/types.yaml#/definitions/uint32
82 Specifies the raw count filter strength during low-power mode.
84 azoteq,filt-str-np-lta:
85 $ref: /schemas/types.yaml#/definitions/uint32
89 Specifies the long-term average filter strength during normal-power mode.
91 azoteq,filt-str-np-cnt:
92 $ref: /schemas/types.yaml#/definitions/uint32
96 Specifies the raw count filter strength during normal-power mode.
102 description: Specifies the report rate (in ms) during normal-power mode.
108 description: Specifies the report rate (in ms) during low-power mode.
115 description: Specifies the report rate (in ms) during ultra-low-power mode.
117 azoteq,timeout-pwr-ms:
123 Specifies the length of time (in ms) to wait for an event during normal-
124 power mode before transitioning to low-power mode.
126 azoteq,timeout-lta-ms:
132 Specifies the length of time (in ms) to wait before resetting the long-
133 term average of all channels. Specify the maximum timeout to disable it
136 azoteq,ati-band-disable:
138 description: Disables the ATI band check.
142 description: Limits automatic ATI to low-power mode.
144 azoteq,ati-band-tighten:
146 description: Tightens the ATI band from 1/8 to 1/16 of the desired target.
150 description: Disables all raw count filtering.
153 $ref: /schemas/types.yaml#/definitions/uint32
158 Selects the channel for which the GPIO3 pin represents touch state.
160 azoteq,dual-direction:
163 Specifies that long-term averages are to freeze in the presence of either
164 increasing or decreasing counts, thereby permitting events to be reported
168 $ref: /schemas/types.yaml#/definitions/uint32
172 Specifies the inductive sensing excitation frequency as follows (paren-
173 thesized numbers represent the frequency if 'azoteq,clk-div' is present):
179 azoteq,global-cap-increase:
181 description: Increases the global capacitance adder from 0.5 pF to 1.5 pF.
183 azoteq,reseed-select:
184 $ref: /schemas/types.yaml#/definitions/uint32
188 Specifies the event(s) that prompt the device to reseed (i.e. reset the
189 long-term average) of an associated channel as follows:
192 2: Proximity or touch
193 3: Proximity, touch or deep touch
195 azoteq,tracking-enable:
198 Enables all associated channels to track their respective reference
201 azoteq,filt-str-slider:
202 $ref: /schemas/types.yaml#/definitions/uint32
205 description: Specifies the slider coordinate filter strength.
211 Represents a single sensing channel. A channel is active if defined and
218 description: Index of the channel.
220 azoteq,reseed-disable:
223 Prevents the channel from being reseeded if the long-term average
224 timeout (defined in 'azoteq,timeout-lta') expires.
226 azoteq,blocking-enable:
228 description: Specifies that the channel is a blocking channel.
230 azoteq,slider0-select:
232 description: Specifies that the channel participates in slider 0.
234 azoteq,slider1-select:
236 description: Specifies that the channel participates in slider 1.
239 $ref: /schemas/types.yaml#/definitions/uint32-array
246 Specifies the CRX pin(s) associated with the channel. By default, only
247 the CRX pin corresponding to the channel's index is enabled (e.g. CRX0
251 $ref: /schemas/types.yaml#/definitions/uint32-array
257 default: [0, 1, 2, 3, 4, 5, 6, 7]
258 description: Specifies the TX pin(s) associated with the channel.
260 azoteq,meas-cap-decrease:
263 Decreases the internal measurement capacitance from 60 pF to 15 pF.
265 azoteq,rx-float-inactive:
267 description: Floats any inactive CRX pins instead of grounding them.
269 azoteq,local-cap-size:
270 $ref: /schemas/types.yaml#/definitions/uint32
274 Specifies the capacitance to be added to the channel as follows:
276 1: Global adder (based on 'azoteq,global-cap-increase')
277 2: Global adder + 0.5 pF
279 azoteq,invert-enable:
282 Inverts the polarity of the states reported for proximity, touch and
283 deep-touch events relative to their respective thresholds.
286 $ref: /schemas/types.yaml#/definitions/uint32
290 Specifies the bias current applied during projected-capacitance
298 $ref: /schemas/types.yaml#/definitions/uint32
299 enum: [0, 1, 9, 14, 15]
302 Specifies the channel's sensing mode as follows:
304 1: Projected capacitance
305 9: Self or mutual inductance
310 $ref: /schemas/types.yaml#/definitions/uint32
314 Specifies the channel's sensing frequency as follows (parenthesized
315 numbers represent the frequency if 'azoteq,clk-div' is present):
321 azoteq,static-enable:
323 description: Enables the static front-end for the channel.
326 $ref: /schemas/types.yaml#/definitions/uint32
330 Specifies the channel's ATI mode as follows:
337 $ref: /schemas/types.yaml#/definitions/uint32
338 enum: [75, 100, 150, 200]
340 description: Specifies the channel's ATI base.
343 $ref: /schemas/types.yaml#/definitions/uint32
348 description: Specifies the channel's ATI target.
351 $ref: /schemas/types.yaml#/definitions/uint32-array
358 Specifies the associated channels for which the channel serves as a
359 reference channel. By default, no channels are selected.
362 $ref: /schemas/types.yaml#/definitions/uint32
367 Specifies the channel's impact weight if it acts as an associated
368 channel (0 = 0% impact, 255 = 200% impact).
371 "^event-prox(-alt)?$":
374 Represents a proximity event reported by the channel in response to
375 a decrease in counts. Node names suffixed with '-alt' instead corre-
376 spond to an increase in counts.
378 By default, the long-term average tracks an increase in counts such
379 that only events corresponding to a decrease in counts are reported
380 (refer to the datasheet for more information).
382 Specify 'azoteq,dual-direction' to freeze the long-term average when
383 the counts increase or decrease such that events of either direction
384 can be reported. Alternatively, specify 'azoteq,invert-enable' to in-
385 vert the polarity of the states reported by the channel.
387 Complementary events (e.g. event-touch and event-touch-alt) can both
388 be present and specify different key or switch codes, but not differ-
389 ent thresholds or hysteresis (if applicable).
393 $ref: /schemas/types.yaml#/definitions/uint32
397 description: Specifies the threshold for the event.
400 $ref: /schemas/types.yaml#/definitions/uint32
401 description: Numeric key or switch code associated with the event.
403 additionalProperties: false
405 "^event-touch(-alt)?$":
407 description: Represents a touch event reported by the channel.
411 $ref: /schemas/types.yaml#/definitions/uint32
415 description: Specifies the threshold for the event.
418 $ref: /schemas/types.yaml#/definitions/uint32
422 description: Specifies the hysteresis for the event.
425 $ref: /schemas/types.yaml#/definitions/uint32
426 description: Numeric key or switch code associated with the event.
428 additionalProperties: false
430 "^event-deep(-alt)?$":
432 description: Represents a deep-touch event reported by the channel.
436 $ref: /schemas/types.yaml#/definitions/uint32
440 description: Specifies the threshold for the event.
443 $ref: /schemas/types.yaml#/definitions/uint32
447 description: Specifies the hysteresis for the event.
450 $ref: /schemas/types.yaml#/definitions/uint32
451 description: Numeric key or switch code associated with the event.
453 additionalProperties: false
458 additionalProperties: false
467 additionalProperties: false
471 #include <dt-bindings/input/input.h>
472 #include <dt-bindings/interrupt-controller/irq.h>
475 #address-cells = <1>;
479 #address-cells = <1>;
482 compatible = "azoteq,iqs269a";
484 interrupt-parent = <&gpio>;
485 interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
488 azoteq,suspend-mode = <2>;
494 linux,code = <KEY_POWER>;
500 azoteq,slider0-select;
505 azoteq,slider0-select;
510 azoteq,slider0-select;
515 azoteq,slider0-select;
520 azoteq,slider0-select;
525 azoteq,invert-enable;
526 azoteq,static-enable;
527 azoteq,reseed-disable;
528 azoteq,rx-enable = <0>;
529 azoteq,sense-freq = <0x0>;
530 azoteq,sense-mode = <0xE>;
531 azoteq,ati-mode = <0x0>;
532 azoteq,ati-base = <200>;
533 azoteq,ati-target = <320>;
538 azoteq,invert-enable;
539 azoteq,static-enable;
540 azoteq,reseed-disable;
541 azoteq,rx-enable = <0>, <6>;
542 azoteq,sense-freq = <0x0>;
543 azoteq,sense-mode = <0xE>;
544 azoteq,ati-mode = <0x3>;
545 azoteq,ati-base = <200>;
546 azoteq,ati-target = <320>;
549 linux,code = <SW_LID>;