Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml
26308 views
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
...
1149
1150