44$id : http://devicetree.org/schemas/input/azoteq,iqs7222.yaml#
55$schema : http://devicetree.org/meta-schemas/core.yaml#
66
7- title : Azoteq IQS7222A/B/C Capacitive Touch Controller
7+ title : Azoteq IQS7222A/B/C/D Capacitive Touch Controller
88
99maintainers :
1010 - Jeff LaBundy <jeff@labundy.com>
1111
1212description : |
13- The Azoteq IQS7222A, IQS7222B and IQS7222C are multichannel capacitive touch
14- controllers that feature additional sensing capabilities.
13+ The Azoteq IQS7222A, IQS7222B, IQS7222C and IQS7222D are multichannel
14+ capacitive touch controllers that feature additional sensing capabilities.
1515
1616 Link to datasheets: https://www.azoteq.com/
1717
@@ -21,6 +21,7 @@ properties:
2121 - azoteq,iqs7222a
2222 - azoteq,iqs7222b
2323 - azoteq,iqs7222c
24+ - azoteq,iqs7222d
2425
2526 reg :
2627 maxItems : 1
@@ -173,6 +174,152 @@ properties:
173174 maximum : 3000
174175 description : Specifies the report rate (in ms) during ultra-low-power mode.
175176
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+
176323patternProperties :
177324 " ^cycle-[0-9]$ " :
178325 type : object
@@ -288,6 +435,10 @@ patternProperties:
288435 Activates the reference channel in response to proximity events
289436 instead of touch events.
290437
438+ azoteq,counts-filt-enable :
439+ type : boolean
440+ description : Applies counts filtering to the channel.
441+
291442 azoteq,ati-band :
292443 $ref : /schemas/types.yaml#/definitions/uint32
293444 enum : [0, 1, 2, 3]
@@ -432,12 +583,12 @@ patternProperties:
432583 description : |
433584 Specifies one or more GPIO mapped to the event as follows:
434585 0: GPIO0
435- 1: GPIO3 (IQS7222C only)
436- 2: GPIO4 (IQS7222C only)
586+ 1: GPIO3
587+ 2: GPIO4
437588
438589 Note that although multiple events can be mapped to a single
439590 GPIO, they must all be of the same type (proximity, touch or
440- slider gesture).
591+ slider/trackpad gesture).
441592
442593 azoteq,thresh :
443594 $ref : /schemas/types.yaml#/definitions/uint32
@@ -521,16 +672,16 @@ patternProperties:
521672 minimum : 0
522673 maximum : 65535
523674 description :
524- Specifies the speed of movement after which coordinate filtering is
525- no longer applied.
675+ Specifies the speed (in coordinates traveled per conversion) after
676+ which coordinate filtering is no longer applied.
526677
527678 azoteq,bottom-speed :
528679 $ref : /schemas/types.yaml#/definitions/uint32
529680 minimum : 0
530681 maximum : 255
531682 description :
532- Specifies the speed of movement after which coordinate filtering is
533- linearly reduced.
683+ Specifies the speed (in coordinates traveled per conversion) after
684+ which coordinate filtering is linearly reduced.
534685
535686 azoteq,bottom-beta :
536687 $ref : /schemas/types.yaml#/definitions/uint32
@@ -595,10 +746,10 @@ patternProperties:
595746 minimum : 0
596747 maximum : 4080
597748 description :
598- Specifies the distance across which a swipe or flick gesture must
599- travel in order to be acknowledged by the device. The number spec-
600- ified for any one swipe or flick gesture applies to all remaining
601- swipe or flick gestures.
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.
602753
603754 azoteq,gpio-select :
604755 $ref : /schemas/types.yaml#/definitions/uint32-array
@@ -610,8 +761,8 @@ patternProperties:
610761 description : |
611762 Specifies one or more GPIO mapped to the event as follows:
612763 0: GPIO0
613- 1: GPIO3 (IQS7222C only)
614- 2: GPIO4 (IQS7222C only)
764+ 1: GPIO3
765+ 2: GPIO4
615766
616767 Note that although multiple events can be mapped to a single
617768 GPIO, they must all be of the same type (proximity, touch or
@@ -629,8 +780,8 @@ patternProperties:
629780 description : |
630781 Represents a GPIO mapped to one or more events as follows:
631782 gpio-0: GPIO0
632- gpio-1: GPIO3 (IQS7222C only)
633- gpio-2: GPIO4 (IQS7222C only)
783+ gpio-1: GPIO3
784+ gpio-2: GPIO4
634785
635786 allOf :
636787 - $ref : ../pinctrl/pincfg-node.yaml#
@@ -641,11 +792,53 @@ patternProperties:
641792 additionalProperties : false
642793
643794allOf :
795+ - $ref : touchscreen/touchscreen.yaml#
796+
644797 - if :
645798 properties :
646799 compatible :
647800 contains :
648- const : azoteq,iqs7222b
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
649842
650843 then :
651844 patternProperties :
@@ -657,13 +850,22 @@ allOf:
657850 properties :
658851 azoteq,ref-select : false
659852
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])$ " :
660864 patternProperties :
661865 " ^event-(prox|touch)$ " :
662866 properties :
663867 azoteq,gpio-select : false
664868
665- " ^slider-[0-1]$ " : false
666-
667869 " ^gpio-[0-2]$ " : false
668870
669871 - if :
@@ -704,10 +906,6 @@ allOf:
704906
705907 else :
706908 patternProperties :
707- " ^channel-([0-9]|1[0-9])$ " :
708- properties :
709- azoteq,ulp-allow : false
710-
711909 " ^slider-[0-1]$ " :
712910 patternProperties :
713911 " ^event-(press|tap|(swipe|flick)-(pos|neg))$ " :
0 commit comments