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