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