~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/input/azoteq,iqs7222.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Azoteq IQS7222A/B/C/D Capacitive Touch Controller
  8 
  9 maintainers:
 10   - Jeff LaBundy <jeff@labundy.com>
 11 
 12 description: |
 13   The Azoteq IQS7222A, IQS7222B, IQS7222C and IQS7222D are multichannel
 14   capacitive touch controllers that feature additional sensing capabilities.
 15 
 16   Link to datasheets: https://www.azoteq.com/
 17 
 18 properties:
 19   compatible:
 20     enum:
 21       - azoteq,iqs7222a
 22       - azoteq,iqs7222b
 23       - azoteq,iqs7222c
 24       - azoteq,iqs7222d
 25 
 26   reg:
 27     maxItems: 1
 28 
 29   irq-gpios:
 30     maxItems: 1
 31     description:
 32       Specifies the GPIO connected to the device's active-low RDY output.
 33 
 34   reset-gpios:
 35     maxItems: 1
 36     description:
 37       Specifies the GPIO connected to the device's active-low MCLR input. The
 38       device is temporarily held in hardware reset prior to initialization if
 39       this property is present.
 40 
 41   azoteq,max-counts:
 42     $ref: /schemas/types.yaml#/definitions/uint32
 43     enum: [0, 1, 2, 3]
 44     description: |
 45       Specifies the maximum number of conversion periods (counts) that can be
 46       reported as follows:
 47       0: 1023
 48       1: 2047
 49       2: 4095
 50       3: 16384
 51 
 52   azoteq,auto-mode:
 53     $ref: /schemas/types.yaml#/definitions/uint32
 54     enum: [0, 1, 2, 3]
 55     description: |
 56       Specifies the number of conversions to occur before an interrupt is
 57       generated as follows:
 58       0: 4
 59       1: 8
 60       2: 16
 61       3: 32
 62 
 63   azoteq,ati-frac-div-fine:
 64     $ref: /schemas/types.yaml#/definitions/uint32
 65     minimum: 0
 66     maximum: 31
 67     description: Specifies the preloaded ATI fine fractional divider.
 68 
 69   azoteq,ati-frac-div-coarse:
 70     $ref: /schemas/types.yaml#/definitions/uint32
 71     minimum: 0
 72     maximum: 31
 73     description: Specifies the preloaded ATI coarse fractional divider.
 74 
 75   azoteq,ati-comp-select:
 76     $ref: /schemas/types.yaml#/definitions/uint32
 77     minimum: 0
 78     maximum: 1023
 79     description: Specifies the preloaded ATI compensation selection.
 80 
 81   azoteq,lta-beta-lp:
 82     $ref: /schemas/types.yaml#/definitions/uint32
 83     minimum: 0
 84     maximum: 15
 85     description:
 86       Specifies the long-term average filter damping factor to be applied during
 87       low-power mode.
 88 
 89   azoteq,lta-beta-np:
 90     $ref: /schemas/types.yaml#/definitions/uint32
 91     minimum: 0
 92     maximum: 15
 93     description:
 94       Specifies the long-term average filter damping factor to be applied during
 95       normal-power mode.
 96 
 97   azoteq,counts-beta-lp:
 98     $ref: /schemas/types.yaml#/definitions/uint32
 99     minimum: 0
100     maximum: 15
101     description:
102       Specifies the counts filter damping factor to be applied during low-power
103       mode.
104 
105   azoteq,counts-beta-np:
106     $ref: /schemas/types.yaml#/definitions/uint32
107     minimum: 0
108     maximum: 15
109     description:
110       Specifies the counts filter damping factor to be applied during normal-
111       power mode.
112 
113   azoteq,lta-fast-beta-lp:
114     $ref: /schemas/types.yaml#/definitions/uint32
115     minimum: 0
116     maximum: 15
117     description:
118       Specifies the long-term average filter fast damping factor to be applied
119       during low-power mode.
120 
121   azoteq,lta-fast-beta-np:
122     $ref: /schemas/types.yaml#/definitions/uint32
123     minimum: 0
124     maximum: 15
125     description:
126       Specifies the long-term average filter fast damping factor to be applied
127       during normal-power mode.
128 
129   azoteq,timeout-ati-ms:
130     multipleOf: 500
131     minimum: 0
132     maximum: 32767500
133     description:
134       Specifies the delay (in ms) before ATI is retried following an ATI error.
135 
136   azoteq,rate-ati-ms:
137     minimum: 0
138     maximum: 65535
139     description: Specifies the rate (in ms) at which ATI status is evaluated.
140 
141   azoteq,timeout-np-ms:
142     minimum: 0
143     maximum: 65535
144     description:
145       Specifies the length of time (in ms) to wait for an event before moving
146       from normal-power mode to low-power mode.
147 
148   azoteq,rate-np-ms:
149     minimum: 0
150     maximum: 3000
151     description: Specifies the report rate (in ms) during normal-power mode.
152 
153   azoteq,timeout-lp-ms:
154     minimum: 0
155     maximum: 65535
156     description:
157       Specifies the length of time (in ms) to wait for an event before moving
158       from low-power mode to ultra-low-power mode.
159 
160   azoteq,rate-lp-ms:
161     minimum: 0
162     maximum: 3000
163     description: Specifies the report rate (in ms) during low-power mode.
164 
165   azoteq,timeout-ulp-ms:
166     minimum: 0
167     maximum: 65535
168     description:
169       Specifies the rate (in ms) at which channels not regularly sampled during
170       ultra-low-power mode are updated.
171 
172   azoteq,rate-ulp-ms:
173     minimum: 0
174     maximum: 3000
175     description: Specifies the report rate (in ms) during ultra-low-power mode.
176 
177   touchscreen-size-x: true
178   touchscreen-size-y: true
179   touchscreen-inverted-x: true
180   touchscreen-inverted-y: true
181   touchscreen-swapped-x-y: true
182 
183   trackpad:
184     type: object
185     description: Represents all channels associated with the trackpad.
186 
187     properties:
188       azoteq,channel-select:
189         $ref: /schemas/types.yaml#/definitions/uint32-array
190         minItems: 1
191         maxItems: 12
192         items:
193           minimum: 0
194           maximum: 13
195         description:
196           Specifies the order of the channels that participate in the trackpad.
197           Specify 255 to omit a given channel for the purpose of mapping a non-
198           rectangular trackpad.
199 
200       azoteq,num-rows:
201         $ref: /schemas/types.yaml#/definitions/uint32
202         minimum: 1
203         maximum: 12
204         description: Specifies the number of rows that comprise the trackpad.
205 
206       azoteq,num-cols:
207         $ref: /schemas/types.yaml#/definitions/uint32
208         minimum: 1
209         maximum: 12
210         description: Specifies the number of columns that comprise the trackpad.
211 
212       azoteq,top-speed:
213         $ref: /schemas/types.yaml#/definitions/uint32
214         multipleOf: 4
215         minimum: 0
216         maximum: 1020
217         description:
218           Specifies the speed (in coordinates traveled per conversion) after
219           which coordinate filtering is no longer applied.
220 
221       azoteq,bottom-speed:
222         $ref: /schemas/types.yaml#/definitions/uint32
223         minimum: 0
224         maximum: 255
225         description:
226           Specifies the speed (in coordinates traveled per conversion) after
227           which coordinate filtering is linearly reduced.
228 
229       azoteq,use-prox:
230         type: boolean
231         description:
232           Directs the trackpad to respond to the proximity states of the
233           selected channels instead of their corresponding touch states.
234           Note the trackpad cannot report granular coordinates during a
235           state of proximity.
236 
237     patternProperties:
238       "^azoteq,lower-cal-(x|y)$":
239         $ref: /schemas/types.yaml#/definitions/uint32
240         minimum: 0
241         maximum: 255
242         description: Specifies the trackpad's lower starting points.
243 
244       "^azoteq,upper-cal-(x|y)$":
245         $ref: /schemas/types.yaml#/definitions/uint32
246         minimum: 0
247         maximum: 255
248         description: Specifies the trackpad's upper starting points.
249 
250       "^event-(press|tap|(swipe|flick)-(x|y)-(pos|neg))$":
251         type: object
252         $ref: input.yaml#
253         description:
254           Represents a press or gesture event reported by the trackpad. Specify
255           'linux,code' under the press event to report absolute coordinates.
256 
257         properties:
258           linux,code: true
259 
260           azoteq,gesture-angle-tighten:
261             type: boolean
262             description:
263               Limits the tangent of the gesture angle to 0.5 (axial gestures
264               only). If specified in one direction, the effect is applied in
265               either direction.
266 
267           azoteq,gesture-max-ms:
268             multipleOf: 16
269             minimum: 0
270             maximum: 4080
271             description:
272               Specifies the length of time (in ms) within which a tap, swipe
273               or flick gesture must be completed in order to be acknowledged
274               by the device. The number specified for any one swipe or flick
275               gesture applies to all other swipe or flick gestures.
276 
277           azoteq,gesture-min-ms:
278             multipleOf: 16
279             minimum: 0
280             maximum: 4080
281             description:
282               Specifies the length of time (in ms) for which a tap gesture must
283               be held in order to be acknowledged by the device.
284 
285           azoteq,gesture-dist:
286             $ref: /schemas/types.yaml#/definitions/uint32
287             minimum: 0
288             maximum: 65535
289             description:
290               Specifies the distance (in coordinates) across which a swipe or
291               flick gesture must travel in order to be acknowledged by the
292               device. The number specified for any one swipe or flick gesture
293               applies to all remaining swipe or flick gestures.
294 
295               For tap gestures, this property specifies the distance from the
296               original point of contact across which the contact is permitted
297               to travel before the gesture is rejected by the device.
298 
299           azoteq,gpio-select:
300             $ref: /schemas/types.yaml#/definitions/uint32-array
301             minItems: 1
302             maxItems: 3
303             items:
304               minimum: 0
305               maximum: 2
306             description: |
307               Specifies one or more GPIO mapped to the event as follows:
308               0: GPIO0
309               1: GPIO3
310               2: GPIO4
311 
312               Note that although multiple events can be mapped to a single
313               GPIO, they must all be of the same type (proximity, touch or
314               trackpad gesture).
315 
316         additionalProperties: false
317 
318     required:
319       - azoteq,channel-select
320 
321     additionalProperties: false
322 
323 patternProperties:
324   "^cycle-[0-9]$":
325     type: object
326     description: Represents a conversion cycle serving two sensing channels.
327 
328     properties:
329       azoteq,conv-period:
330         $ref: /schemas/types.yaml#/definitions/uint32
331         minimum: 0
332         maximum: 255
333         description: Specifies the cycle's conversion period.
334 
335       azoteq,conv-frac:
336         $ref: /schemas/types.yaml#/definitions/uint32
337         minimum: 0
338         maximum: 255
339         description: Specifies the cycle's conversion frequency fraction.
340 
341       azoteq,tx-enable:
342         $ref: /schemas/types.yaml#/definitions/uint32-array
343         minItems: 1
344         maxItems: 9
345         items:
346           minimum: 0
347           maximum: 8
348         description: Specifies the CTx pin(s) associated with the cycle.
349 
350       azoteq,rx-float-inactive:
351         type: boolean
352         description: Floats any inactive CRx pins instead of grounding them.
353 
354       azoteq,dead-time-enable:
355         type: boolean
356         description:
357           Increases the denominator of the conversion frequency formula by one.
358 
359       azoteq,tx-freq-fosc:
360         type: boolean
361         description:
362           Fixes the conversion frequency to that of the device's core clock.
363 
364       azoteq,vbias-enable:
365         type: boolean
366         description: Enables the bias voltage for use during inductive sensing.
367 
368       azoteq,sense-mode:
369         $ref: /schemas/types.yaml#/definitions/uint32
370         enum: [0, 1, 2, 3]
371         description: |
372           Specifies the cycle's sensing mode as follows:
373           0: None
374           1: Self capacitive
375           2: Mutual capacitive
376           3: Inductive
377 
378           Note that in the case of IQS7222A, cycles 5 and 6 are restricted to
379           Hall-effect sensing.
380 
381       azoteq,iref-enable:
382         type: boolean
383         description:
384           Enables the current reference for use during various sensing modes.
385 
386       azoteq,iref-level:
387         $ref: /schemas/types.yaml#/definitions/uint32
388         minimum: 0
389         maximum: 15
390         description: Specifies the cycle's current reference level.
391 
392       azoteq,iref-trim:
393         $ref: /schemas/types.yaml#/definitions/uint32
394         minimum: 0
395         maximum: 15
396         description: Specifies the cycle's current reference trim.
397 
398     dependencies:
399       azoteq,iref-level: ["azoteq,iref-enable"]
400       azoteq,iref-trim: ["azoteq,iref-enable"]
401 
402     additionalProperties: false
403 
404   "^channel-([0-9]|1[0-9])$":
405     type: object
406     description:
407       Represents a single sensing channel. A channel is active if defined and
408       inactive otherwise.
409 
410       Note that in the case of IQS7222A, channels 10 and 11 are restricted to
411       Hall-effect sensing with events reported on channel 10 only.
412 
413     properties:
414       azoteq,ulp-allow:
415         type: boolean
416         description:
417           Permits the device to enter ultra-low-power mode while the channel
418           lies in a state of touch or proximity.
419 
420       azoteq,ref-select:
421         $ref: /schemas/types.yaml#/definitions/uint32
422         minimum: 0
423         maximum: 9
424         description: Specifies a separate reference channel to be followed.
425 
426       azoteq,ref-weight:
427         $ref: /schemas/types.yaml#/definitions/uint32
428         minimum: 0
429         maximum: 65535
430         description: Specifies the relative weight of the reference channel.
431 
432       azoteq,use-prox:
433         type: boolean
434         description:
435           Activates the reference channel in response to proximity events
436           instead of touch events.
437 
438       azoteq,counts-filt-enable:
439         type: boolean
440         description: Applies counts filtering to the channel.
441 
442       azoteq,ati-band:
443         $ref: /schemas/types.yaml#/definitions/uint32
444         enum: [0, 1, 2, 3]
445         description: |
446           Specifies the channel's ATI band as a fraction of its ATI target as
447           follows:
448           0: 1/16
449           1: 1/8
450           2: 1/4
451           3: 1/2
452 
453       azoteq,global-halt:
454         type: boolean
455         description:
456           Specifies that the channel's long-term average is to freeze if any
457           other participating channel lies in a proximity or touch state.
458 
459       azoteq,invert-enable:
460         type: boolean
461         description:
462           Inverts the polarity of the states reported for proximity and touch
463           events relative to their respective thresholds.
464 
465       azoteq,dual-direction:
466         type: boolean
467         description:
468           Specifies that the channel's long-term average is to freeze in the
469           presence of either increasing or decreasing counts, thereby permit-
470           ting events to be reported in either direction.
471 
472       azoteq,rx-enable:
473         $ref: /schemas/types.yaml#/definitions/uint32-array
474         minItems: 1
475         maxItems: 4
476         items:
477           minimum: 0
478           maximum: 7
479         description: Specifies the CRx pin(s) associated with the channel.
480 
481       azoteq,samp-cap-double:
482         type: boolean
483         description: Doubles the sampling capacitance from 40 pF to 80 pF.
484 
485       azoteq,vref-half:
486         type: boolean
487         description: Halves the discharge threshold from 1.0 V to 0.5 V.
488 
489       azoteq,proj-bias:
490         $ref: /schemas/types.yaml#/definitions/uint32
491         enum: [0, 1, 2, 3]
492         description: |
493           Specifies the bias current applied during mutual (projected)
494           capacitive sensing as follows:
495           0: 2 uA
496           1: 5 uA
497           2: 7 uA
498           3: 10 uA
499 
500       azoteq,ati-target:
501         $ref: /schemas/types.yaml#/definitions/uint32
502         multipleOf: 8
503         minimum: 0
504         maximum: 2040
505         description: Specifies the channel's ATI target.
506 
507       azoteq,ati-base:
508         $ref: /schemas/types.yaml#/definitions/uint32
509         multipleOf: 16
510         minimum: 0
511         maximum: 496
512         description: Specifies the channel's ATI base.
513 
514       azoteq,ati-mode:
515         $ref: /schemas/types.yaml#/definitions/uint32
516         enum: [0, 1, 2, 3, 4, 5]
517         description: |
518           Specifies the channel's ATI mode as follows:
519           0: Disabled
520           1: Compensation
521           2: Compensation divider
522           3: Fine fractional divider
523           4: Coarse fractional divider
524           5: Full
525 
526       azoteq,ati-frac-div-fine:
527         $ref: /schemas/types.yaml#/definitions/uint32
528         minimum: 0
529         maximum: 31
530         description: Specifies the channel's ATI fine fractional divider.
531 
532       azoteq,ati-frac-mult-coarse:
533         $ref: /schemas/types.yaml#/definitions/uint32
534         minimum: 0
535         maximum: 15
536         description: Specifies the channel's ATI coarse fractional multiplier.
537 
538       azoteq,ati-frac-div-coarse:
539         $ref: /schemas/types.yaml#/definitions/uint32
540         minimum: 0
541         maximum: 31
542         description: Specifies the channel's ATI coarse fractional divider.
543 
544       azoteq,ati-comp-div:
545         $ref: /schemas/types.yaml#/definitions/uint32
546         minimum: 0
547         maximum: 31
548         description: Specifies the channel's ATI compensation divider.
549 
550       azoteq,ati-comp-select:
551         $ref: /schemas/types.yaml#/definitions/uint32
552         minimum: 0
553         maximum: 1023
554         description: Specifies the channel's ATI compensation selection.
555 
556       azoteq,debounce-enter:
557         $ref: /schemas/types.yaml#/definitions/uint32
558         minimum: 0
559         maximum: 15
560         description: Specifies the channel's debounce entrance factor.
561 
562       azoteq,debounce-exit:
563         $ref: /schemas/types.yaml#/definitions/uint32
564         minimum: 0
565         maximum: 15
566         description: Specifies the channel's debounce exit factor.
567 
568     patternProperties:
569       "^event-(prox|touch)$":
570         type: object
571         $ref: input.yaml#
572         description:
573           Represents a proximity or touch event reported by the channel.
574 
575         properties:
576           azoteq,gpio-select:
577             $ref: /schemas/types.yaml#/definitions/uint32-array
578             minItems: 1
579             maxItems: 3
580             items:
581               minimum: 0
582               maximum: 2
583             description: |
584               Specifies one or more GPIO mapped to the event as follows:
585               0: GPIO0
586               1: GPIO3
587               2: GPIO4
588 
589               Note that although multiple events can be mapped to a single
590               GPIO, they must all be of the same type (proximity, touch or
591               slider/trackpad gesture).
592 
593           azoteq,thresh:
594             $ref: /schemas/types.yaml#/definitions/uint32
595             description:
596               Specifies the threshold for the event. Valid entries range from
597               0-127 and 0-255 for proximity and touch events, respectively.
598 
599           azoteq,hyst:
600             $ref: /schemas/types.yaml#/definitions/uint32
601             minimum: 0
602             maximum: 255
603             description:
604               Specifies the hysteresis for the event (touch events only).
605 
606           azoteq,timeout-press-ms:
607             multipleOf: 500
608             minimum: 0
609             maximum: 127500
610             description:
611               Specifies the length of time (in ms) to wait before automatically
612               releasing a press event. Specify zero to allow the press state to
613               persist indefinitely.
614 
615               The IQS7222B does not feature channel-specific timeouts; the time-
616               out specified for any one channel applies to all channels.
617 
618           linux,code: true
619 
620           linux,input-type:
621             enum: [1, 5]
622             default: 1
623             description:
624               Specifies whether the event is to be interpreted as a key (1)
625               or a switch (5).
626 
627         additionalProperties: false
628 
629     dependencies:
630       azoteq,ref-weight: ["azoteq,ref-select"]
631       azoteq,use-prox: ["azoteq,ref-select"]
632 
633     additionalProperties: false
634 
635   "^slider-[0-1]$":
636     type: object
637     description: Represents a slider comprising three or four channels.
638 
639     properties:
640       azoteq,channel-select:
641         $ref: /schemas/types.yaml#/definitions/uint32-array
642         minItems: 3
643         maxItems: 4
644         items:
645           minimum: 0
646           maximum: 9
647         description:
648           Specifies the order of the channels that participate in the slider.
649 
650       azoteq,slider-size:
651         $ref: /schemas/types.yaml#/definitions/uint32
652         minimum: 1
653         maximum: 65535
654         description:
655           Specifies the slider's one-dimensional resolution, equal to the
656           maximum coordinate plus one.
657 
658       azoteq,lower-cal:
659         $ref: /schemas/types.yaml#/definitions/uint32
660         minimum: 0
661         maximum: 255
662         description: Specifies the slider's lower starting point.
663 
664       azoteq,upper-cal:
665         $ref: /schemas/types.yaml#/definitions/uint32
666         minimum: 0
667         maximum: 255
668         description: Specifies the slider's upper starting point.
669 
670       azoteq,top-speed:
671         $ref: /schemas/types.yaml#/definitions/uint32
672         minimum: 0
673         maximum: 65535
674         description:
675           Specifies the speed (in coordinates traveled per conversion) after
676           which coordinate filtering is no longer applied.
677 
678       azoteq,bottom-speed:
679         $ref: /schemas/types.yaml#/definitions/uint32
680         minimum: 0
681         maximum: 255
682         description:
683           Specifies the speed (in coordinates traveled per conversion) after
684           which coordinate filtering is linearly reduced.
685 
686       azoteq,bottom-beta:
687         $ref: /schemas/types.yaml#/definitions/uint32
688         minimum: 0
689         maximum: 7
690         description:
691           Specifies the coordinate filter damping factor to be applied
692           while the speed of movement is below that which is specified
693           by azoteq,bottom-speed.
694 
695       azoteq,static-beta:
696         type: boolean
697         description:
698           Applies the coordinate filter damping factor specified by
699           azoteq,bottom-beta regardless of the speed of movement.
700 
701       azoteq,use-prox:
702         type: boolean
703         description:
704           Directs the slider to respond to the proximity states of the selected
705           channels instead of their corresponding touch states. Note the slider
706           cannot report granular coordinates during a state of proximity.
707 
708       linux,axis:
709         $ref: /schemas/types.yaml#/definitions/uint32
710         description:
711           Specifies the absolute axis to which coordinates are mapped. Specify
712           ABS_WHEEL to operate the slider as a wheel (IQS7222C only).
713 
714     patternProperties:
715       "^event-(press|tap|(swipe|flick)-(pos|neg))$":
716         type: object
717         $ref: input.yaml#
718         description:
719           Represents a press or gesture (IQS7222A only) event reported by
720           the slider.
721 
722         properties:
723           linux,code: true
724 
725           azoteq,gesture-max-ms:
726             multipleOf: 16
727             minimum: 0
728             maximum: 4080
729             description:
730               Specifies the length of time (in ms) within which a tap, swipe
731               or flick gesture must be completed in order to be acknowledged
732               by the device. The number specified for any one swipe or flick
733               gesture applies to all remaining swipe or flick gestures.
734 
735           azoteq,gesture-min-ms:
736             multipleOf: 16
737             minimum: 0
738             maximum: 496
739             description:
740               Specifies the length of time (in ms) for which a tap gesture must
741               be held in order to be acknowledged by the device.
742 
743           azoteq,gesture-dist:
744             $ref: /schemas/types.yaml#/definitions/uint32
745             multipleOf: 16
746             minimum: 0
747             maximum: 4080
748             description:
749               Specifies the distance (in coordinates) across which a swipe or
750               flick gesture must travel in order to be acknowledged by the
751               device. The number specified for any one swipe or flick gesture
752               applies to all remaining swipe or flick gestures.
753 
754           azoteq,gpio-select:
755             $ref: /schemas/types.yaml#/definitions/uint32-array
756             minItems: 1
757             maxItems: 3
758             items:
759               minimum: 0
760               maximum: 2
761             description: |
762               Specifies one or more GPIO mapped to the event as follows:
763               0: GPIO0
764               1: GPIO3
765               2: GPIO4
766 
767               Note that although multiple events can be mapped to a single
768               GPIO, they must all be of the same type (proximity, touch or
769               slider gesture).
770 
771         additionalProperties: false
772 
773     required:
774       - azoteq,channel-select
775 
776     additionalProperties: false
777 
778   "^gpio-[0-2]$":
779     type: object
780     description: |
781       Represents a GPIO mapped to one or more events as follows:
782       gpio-0: GPIO0
783       gpio-1: GPIO3
784       gpio-2: GPIO4
785 
786     allOf:
787       - $ref: /schemas/pinctrl/pincfg-node.yaml#
788 
789     properties:
790       drive-open-drain: true
791 
792     additionalProperties: false
793 
794 allOf:
795   - $ref: touchscreen/touchscreen.yaml#
796 
797   - if:
798       properties:
799         compatible:
800           contains:
801             enum:
802               - azoteq,iqs7222a
803               - azoteq,iqs7222b
804               - azoteq,iqs7222c
805 
806     then:
807       properties:
808         touchscreen-size-x: false
809         touchscreen-size-y: false
810         touchscreen-inverted-x: false
811         touchscreen-inverted-y: false
812         touchscreen-swapped-x-y: false
813 
814         trackpad: false
815 
816       patternProperties:
817         "^channel-([0-9]|1[0-9])$":
818           properties:
819             azoteq,counts-filt-enable: false
820 
821   - if:
822       properties:
823         compatible:
824           contains:
825             enum:
826               - azoteq,iqs7222b
827               - azoteq,iqs7222c
828 
829     then:
830       patternProperties:
831         "^channel-([0-9]|1[0-9])$":
832           properties:
833             azoteq,ulp-allow: false
834 
835   - if:
836       properties:
837         compatible:
838           contains:
839             enum:
840               - azoteq,iqs7222b
841               - azoteq,iqs7222d
842 
843     then:
844       patternProperties:
845         "^cycle-[0-9]$":
846           properties:
847             azoteq,iref-enable: false
848 
849         "^channel-([0-9]|1[0-9])$":
850           properties:
851             azoteq,ref-select: false
852 
853         "^slider-[0-1]$": false
854 
855   - if:
856       properties:
857         compatible:
858           contains:
859             const: azoteq,iqs7222b
860 
861     then:
862       patternProperties:
863         "^channel-([0-9]|1[0-9])$":
864           patternProperties:
865             "^event-(prox|touch)$":
866               properties:
867                 azoteq,gpio-select: false
868 
869         "^gpio-[0-2]$": false
870 
871   - if:
872       properties:
873         compatible:
874           contains:
875             const: azoteq,iqs7222a
876 
877     then:
878       patternProperties:
879         "^channel-([0-9]|1[0-9])$":
880           patternProperties:
881             "^event-(prox|touch)$":
882               properties:
883                 azoteq,gpio-select:
884                   maxItems: 1
885                   items:
886                     maximum: 0
887 
888         "^slider-[0-1]$":
889           properties:
890             azoteq,slider-size:
891               multipleOf: 16
892               minimum: 16
893               maximum: 4080
894 
895             azoteq,top-speed:
896               multipleOf: 4
897               maximum: 1020
898 
899           patternProperties:
900             "^event-(press|tap|(swipe|flick)-(pos|neg))$":
901               properties:
902                 azoteq,gpio-select:
903                   maxItems: 1
904                   items:
905                     maximum: 0
906 
907     else:
908       patternProperties:
909         "^slider-[0-1]$":
910           patternProperties:
911             "^event-(press|tap|(swipe|flick)-(pos|neg))$":
912               properties:
913                 azoteq,gesture-max-ms: false
914 
915                 azoteq,gesture-min-ms: false
916 
917                 azoteq,gesture-dist: false
918 
919 required:
920   - compatible
921   - reg
922   - irq-gpios
923 
924 additionalProperties: false
925 
926 examples:
927   - |
928     #include <dt-bindings/gpio/gpio.h>
929     #include <dt-bindings/input/input.h>
930 
931     i2c {
932             #address-cells = <1>;
933             #size-cells = <0>;
934 
935             iqs7222a@44 {
936                     compatible = "azoteq,iqs7222a";
937                     reg = <0x44>;
938                     irq-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
939                     azoteq,lta-beta-lp = <7>;
940                     azoteq,lta-beta-np = <8>;
941                     azoteq,counts-beta-lp = <2>;
942                     azoteq,counts-beta-np = <3>;
943                     azoteq,lta-fast-beta-lp = <3>;
944                     azoteq,lta-fast-beta-np = <4>;
945 
946                     cycle-0 {
947                             azoteq,conv-period = <5>;
948                             azoteq,conv-frac = <127>;
949                             azoteq,tx-enable = <1>, <2>, <4>, <5>;
950                             azoteq,dead-time-enable;
951                             azoteq,sense-mode = <2>;
952                     };
953 
954                     cycle-1 {
955                             azoteq,conv-period = <5>;
956                             azoteq,conv-frac = <127>;
957                             azoteq,tx-enable = <5>;
958                             azoteq,dead-time-enable;
959                             azoteq,sense-mode = <2>;
960                     };
961 
962                     cycle-2 {
963                             azoteq,conv-period = <5>;
964                             azoteq,conv-frac = <127>;
965                             azoteq,tx-enable = <4>;
966                             azoteq,dead-time-enable;
967                             azoteq,sense-mode = <2>;
968                     };
969 
970                     cycle-3 {
971                             azoteq,conv-period = <5>;
972                             azoteq,conv-frac = <127>;
973                             azoteq,tx-enable = <2>;
974                             azoteq,dead-time-enable;
975                             azoteq,sense-mode = <2>;
976                     };
977 
978                     cycle-4 {
979                             azoteq,conv-period = <5>;
980                             azoteq,conv-frac = <127>;
981                             azoteq,tx-enable = <1>;
982                             azoteq,dead-time-enable;
983                             azoteq,sense-mode = <2>;
984                     };
985 
986                     cycle-5 {
987                             azoteq,conv-period = <2>;
988                             azoteq,conv-frac = <0>;
989                     };
990 
991                     cycle-6 {
992                             azoteq,conv-period = <2>;
993                             azoteq,conv-frac = <0>;
994                     };
995 
996                     channel-0 {
997                             azoteq,ulp-allow;
998                             azoteq,global-halt;
999                             azoteq,invert-enable;
1000                             azoteq,rx-enable = <3>;
1001                             azoteq,ati-target = <800>;
1002                             azoteq,ati-base = <208>;
1003                             azoteq,ati-mode = <5>;
1004                     };
1005 
1006                     channel-1 {
1007                             azoteq,global-halt;
1008                             azoteq,invert-enable;
1009                             azoteq,rx-enable = <3>;
1010                             azoteq,ati-target = <496>;
1011                             azoteq,ati-base = <208>;
1012                             azoteq,ati-mode = <5>;
1013                     };
1014 
1015                     channel-2 {
1016                             azoteq,global-halt;
1017                             azoteq,invert-enable;
1018                             azoteq,rx-enable = <3>;
1019                             azoteq,ati-target = <496>;
1020                             azoteq,ati-base = <208>;
1021                             azoteq,ati-mode = <5>;
1022                     };
1023 
1024                     channel-3 {
1025                             azoteq,global-halt;
1026                             azoteq,invert-enable;
1027                             azoteq,rx-enable = <3>;
1028                             azoteq,ati-target = <496>;
1029                             azoteq,ati-base = <208>;
1030                             azoteq,ati-mode = <5>;
1031                     };
1032 
1033                     channel-4 {
1034                             azoteq,global-halt;
1035                             azoteq,invert-enable;
1036                             azoteq,rx-enable = <3>;
1037                             azoteq,ati-target = <496>;
1038                             azoteq,ati-base = <208>;
1039                             azoteq,ati-mode = <5>;
1040                     };
1041 
1042                     channel-5 {
1043                             azoteq,ulp-allow;
1044                             azoteq,global-halt;
1045                             azoteq,invert-enable;
1046                             azoteq,rx-enable = <6>;
1047                             azoteq,ati-target = <800>;
1048                             azoteq,ati-base = <144>;
1049                             azoteq,ati-mode = <5>;
1050                     };
1051 
1052                     channel-6 {
1053                             azoteq,global-halt;
1054                             azoteq,invert-enable;
1055                             azoteq,rx-enable = <6>;
1056                             azoteq,ati-target = <496>;
1057                             azoteq,ati-base = <160>;
1058                             azoteq,ati-mode = <5>;
1059 
1060                             event-touch {
1061                                     linux,code = <KEY_MUTE>;
1062                             };
1063                     };
1064 
1065                     channel-7 {
1066                             azoteq,global-halt;
1067                             azoteq,invert-enable;
1068                             azoteq,rx-enable = <6>;
1069                             azoteq,ati-target = <496>;
1070                             azoteq,ati-base = <160>;
1071                             azoteq,ati-mode = <5>;
1072 
1073                             event-touch {
1074                                     linux,code = <KEY_VOLUMEDOWN>;
1075                             };
1076                     };
1077 
1078                     channel-8 {
1079                             azoteq,global-halt;
1080                             azoteq,invert-enable;
1081                             azoteq,rx-enable = <6>;
1082                             azoteq,ati-target = <496>;
1083                             azoteq,ati-base = <160>;
1084                             azoteq,ati-mode = <5>;
1085 
1086                             event-touch {
1087                                     linux,code = <KEY_VOLUMEUP>;
1088                             };
1089                     };
1090 
1091                     channel-9 {
1092                             azoteq,global-halt;
1093                             azoteq,invert-enable;
1094                             azoteq,rx-enable = <6>;
1095                             azoteq,ati-target = <496>;
1096                             azoteq,ati-base = <160>;
1097                             azoteq,ati-mode = <5>;
1098 
1099                             event-touch {
1100                                     linux,code = <KEY_POWER>;
1101                             };
1102                     };
1103 
1104                     channel-10 {
1105                             azoteq,ulp-allow;
1106                             azoteq,ati-target = <496>;
1107                             azoteq,ati-base = <112>;
1108 
1109                             event-touch {
1110                                     linux,code = <SW_LID>;
1111                                     linux,input-type = <EV_SW>;
1112                             };
1113                     };
1114 
1115                     channel-11 {
1116                             azoteq,ati-target = <496>;
1117                             azoteq,ati-base = <112>;
1118                     };
1119 
1120                     slider-0 {
1121                             azoteq,channel-select = <1>, <2>, <3>, <4>;
1122                             azoteq,slider-size = <4080>;
1123                             azoteq,upper-cal = <50>;
1124                             azoteq,lower-cal = <30>;
1125                             azoteq,top-speed = <200>;
1126                             azoteq,bottom-speed = <1>;
1127                             azoteq,bottom-beta = <3>;
1128 
1129                             event-tap {
1130                                     linux,code = <KEY_PLAYPAUSE>;
1131                                     azoteq,gesture-max-ms = <400>;
1132                                     azoteq,gesture-min-ms = <32>;
1133                             };
1134 
1135                             event-flick-pos {
1136                                     linux,code = <KEY_NEXTSONG>;
1137                                     azoteq,gesture-max-ms = <800>;
1138                                     azoteq,gesture-dist = <800>;
1139                             };
1140 
1141                             event-flick-neg {
1142                                     linux,code = <KEY_PREVIOUSSONG>;
1143                             };
1144                     };
1145             };
1146     };
1147 
1148 ...

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php