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 7title: Azoteq IQS7222A/B/C Capacitive Touch Controller 8 9maintainers: 10 - Jeff LaBundy <jeff@labundy.com> 11 12description: | 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 18properties: 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 176patternProperties: 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 required: 477 - linux,code 478 479 additionalProperties: false 480 481 dependencies: 482 azoteq,ref-weight: ["azoteq,ref-select"] 483 azoteq,use-prox: ["azoteq,ref-select"] 484 485 additionalProperties: false 486 487 "^slider-[0-1]$": 488 type: object 489 description: Represents a slider comprising three or four channels. 490 491 properties: 492 azoteq,channel-select: 493 $ref: /schemas/types.yaml#/definitions/uint32-array 494 minItems: 3 495 maxItems: 4 496 items: 497 minimum: 0 498 maximum: 9 499 description: 500 Specifies the order of the channels that participate in the slider. 501 502 azoteq,slider-size: 503 $ref: /schemas/types.yaml#/definitions/uint32 504 minimum: 0 505 maximum: 65535 506 description: 507 Specifies the slider's one-dimensional resolution, equal to the 508 maximum coordinate plus one. 509 510 azoteq,lower-cal: 511 $ref: /schemas/types.yaml#/definitions/uint32 512 minimum: 0 513 maximum: 255 514 description: Specifies the slider's lower starting point. 515 516 azoteq,upper-cal: 517 $ref: /schemas/types.yaml#/definitions/uint32 518 minimum: 0 519 maximum: 255 520 description: Specifies the slider's upper starting point. 521 522 azoteq,top-speed: 523 $ref: /schemas/types.yaml#/definitions/uint32 524 minimum: 0 525 maximum: 65535 526 description: 527 Specifies the speed of movement after which coordinate filtering is 528 no longer applied. 529 530 azoteq,bottom-speed: 531 $ref: /schemas/types.yaml#/definitions/uint32 532 minimum: 0 533 maximum: 255 534 description: 535 Specifies the speed of movement after which coordinate filtering is 536 linearly reduced. 537 538 azoteq,bottom-beta: 539 $ref: /schemas/types.yaml#/definitions/uint32 540 minimum: 0 541 maximum: 7 542 description: 543 Specifies the coordinate filter damping factor to be applied 544 while the speed of movement is below that which is specified 545 by azoteq,bottom-speed. 546 547 azoteq,static-beta: 548 type: boolean 549 description: 550 Applies the coordinate filter damping factor specified by 551 azoteq,bottom-beta regardless of the speed of movement. 552 553 azoteq,use-prox: 554 type: boolean 555 description: 556 Directs the slider to respond to the proximity states of the selected 557 channels instead of their corresponding touch states. Note the slider 558 cannot report granular coordinates during a state of proximity. 559 560 linux,axis: 561 $ref: /schemas/types.yaml#/definitions/uint32 562 description: 563 Specifies the absolute axis to which coordinates are mapped. Specify 564 ABS_WHEEL to operate the slider as a wheel (IQS7222C only). 565 566 patternProperties: 567 "^event-(press|tap|(swipe|flick)-(pos|neg))$": 568 type: object 569 $ref: input.yaml# 570 description: 571 Represents a press or gesture (IQS7222A only) event reported by 572 the slider. 573 574 properties: 575 linux,code: true 576 577 azoteq,gesture-max-ms: 578 multipleOf: 4 579 minimum: 0 580 maximum: 1020 581 description: 582 Specifies the length of time (in ms) within which a tap, swipe 583 or flick gesture must be completed in order to be acknowledged 584 by the device. The number specified for any one swipe or flick 585 gesture applies to all remaining swipe or flick gestures. 586 587 azoteq,gesture-min-ms: 588 multipleOf: 4 589 minimum: 0 590 maximum: 124 591 description: 592 Specifies the length of time (in ms) for which a tap gesture must 593 be held in order to be acknowledged by the device. 594 595 azoteq,gesture-dist: 596 $ref: /schemas/types.yaml#/definitions/uint32 597 multipleOf: 16 598 minimum: 0 599 maximum: 4080 600 description: 601 Specifies the distance across which a swipe or flick gesture must 602 travel in order to be acknowledged by the device. The number spec- 603 ified for any one swipe or flick gesture applies to all remaining 604 swipe or flick gestures. 605 606 azoteq,gpio-select: 607 $ref: /schemas/types.yaml#/definitions/uint32-array 608 minItems: 1 609 maxItems: 3 610 items: 611 minimum: 0 612 maximum: 2 613 description: | 614 Specifies one or more GPIO mapped to the event as follows: 615 0: GPIO0 616 1: GPIO3 (IQS7222C only) 617 2: GPIO4 (IQS7222C only) 618 619 Note that although multiple events can be mapped to a single 620 GPIO, they must all be of the same type (proximity, touch or 621 slider gesture). 622 623 required: 624 - linux,code 625 626 additionalProperties: false 627 628 required: 629 - azoteq,channel-select 630 631 additionalProperties: false 632 633 "^gpio-[0-2]$": 634 type: object 635 description: | 636 Represents a GPIO mapped to one or more events as follows: 637 gpio-0: GPIO0 638 gpio-1: GPIO3 (IQS7222C only) 639 gpio-2: GPIO4 (IQS7222C only) 640 641 allOf: 642 - $ref: ../pinctrl/pincfg-node.yaml# 643 644 properties: 645 drive-open-drain: true 646 647 additionalProperties: false 648 649allOf: 650 - if: 651 properties: 652 compatible: 653 contains: 654 const: azoteq,iqs7222b 655 656 then: 657 patternProperties: 658 "^cycle-[0-9]$": 659 properties: 660 azoteq,iref-enable: false 661 662 "^channel-([0-9]|1[0-9])$": 663 properties: 664 azoteq,ref-select: false 665 666 patternProperties: 667 "^event-(prox|touch)$": 668 properties: 669 azoteq,gpio-select: false 670 671 "^slider-[0-1]$": false 672 673 "^gpio-[0-2]$": false 674 675 - if: 676 properties: 677 compatible: 678 contains: 679 const: azoteq,iqs7222a 680 681 then: 682 patternProperties: 683 "^channel-([0-9]|1[0-9])$": 684 patternProperties: 685 "^event-(prox|touch)$": 686 properties: 687 azoteq,gpio-select: 688 maxItems: 1 689 items: 690 maximum: 0 691 692 "^slider-[0-1]$": 693 properties: 694 azoteq,slider-size: 695 multipleOf: 16 696 maximum: 4080 697 698 azoteq,top-speed: 699 multipleOf: 4 700 maximum: 1020 701 702 patternProperties: 703 "^event-(press|tap|(swipe|flick)-(pos|neg))$": 704 properties: 705 azoteq,gpio-select: 706 maxItems: 1 707 items: 708 maximum: 0 709 710 else: 711 patternProperties: 712 "^channel-([0-9]|1[0-9])$": 713 properties: 714 azoteq,ulp-allow: false 715 716 "^slider-[0-1]$": 717 patternProperties: 718 "^event-(press|tap|(swipe|flick)-(pos|neg))$": 719 properties: 720 azoteq,gesture-max-ms: false 721 722 azoteq,gesture-min-ms: false 723 724 azoteq,gesture-dist: false 725 726required: 727 - compatible 728 - reg 729 - irq-gpios 730 731additionalProperties: false 732 733examples: 734 - | 735 #include <dt-bindings/gpio/gpio.h> 736 #include <dt-bindings/input/input.h> 737 738 i2c { 739 #address-cells = <1>; 740 #size-cells = <0>; 741 742 iqs7222a@44 { 743 compatible = "azoteq,iqs7222a"; 744 reg = <0x44>; 745 irq-gpios = <&gpio 4 GPIO_ACTIVE_LOW>; 746 azoteq,lta-beta-lp = <7>; 747 azoteq,lta-beta-np = <8>; 748 azoteq,counts-beta-lp = <2>; 749 azoteq,counts-beta-np = <3>; 750 azoteq,lta-fast-beta-lp = <3>; 751 azoteq,lta-fast-beta-np = <4>; 752 753 cycle-0 { 754 azoteq,conv-period = <5>; 755 azoteq,conv-frac = <127>; 756 azoteq,tx-enable = <1>, <2>, <4>, <5>; 757 azoteq,dead-time-enable; 758 azoteq,sense-mode = <2>; 759 }; 760 761 cycle-1 { 762 azoteq,conv-period = <5>; 763 azoteq,conv-frac = <127>; 764 azoteq,tx-enable = <5>; 765 azoteq,dead-time-enable; 766 azoteq,sense-mode = <2>; 767 }; 768 769 cycle-2 { 770 azoteq,conv-period = <5>; 771 azoteq,conv-frac = <127>; 772 azoteq,tx-enable = <4>; 773 azoteq,dead-time-enable; 774 azoteq,sense-mode = <2>; 775 }; 776 777 cycle-3 { 778 azoteq,conv-period = <5>; 779 azoteq,conv-frac = <127>; 780 azoteq,tx-enable = <2>; 781 azoteq,dead-time-enable; 782 azoteq,sense-mode = <2>; 783 }; 784 785 cycle-4 { 786 azoteq,conv-period = <5>; 787 azoteq,conv-frac = <127>; 788 azoteq,tx-enable = <1>; 789 azoteq,dead-time-enable; 790 azoteq,sense-mode = <2>; 791 }; 792 793 cycle-5 { 794 azoteq,conv-period = <2>; 795 azoteq,conv-frac = <0>; 796 }; 797 798 cycle-6 { 799 azoteq,conv-period = <2>; 800 azoteq,conv-frac = <0>; 801 }; 802 803 channel-0 { 804 azoteq,ulp-allow; 805 azoteq,global-halt; 806 azoteq,invert-enable; 807 azoteq,rx-enable = <3>; 808 azoteq,ati-target = <800>; 809 azoteq,ati-base = <208>; 810 azoteq,ati-mode = <5>; 811 }; 812 813 channel-1 { 814 azoteq,global-halt; 815 azoteq,invert-enable; 816 azoteq,rx-enable = <3>; 817 azoteq,ati-target = <496>; 818 azoteq,ati-base = <208>; 819 azoteq,ati-mode = <5>; 820 }; 821 822 channel-2 { 823 azoteq,global-halt; 824 azoteq,invert-enable; 825 azoteq,rx-enable = <3>; 826 azoteq,ati-target = <496>; 827 azoteq,ati-base = <208>; 828 azoteq,ati-mode = <5>; 829 }; 830 831 channel-3 { 832 azoteq,global-halt; 833 azoteq,invert-enable; 834 azoteq,rx-enable = <3>; 835 azoteq,ati-target = <496>; 836 azoteq,ati-base = <208>; 837 azoteq,ati-mode = <5>; 838 }; 839 840 channel-4 { 841 azoteq,global-halt; 842 azoteq,invert-enable; 843 azoteq,rx-enable = <3>; 844 azoteq,ati-target = <496>; 845 azoteq,ati-base = <208>; 846 azoteq,ati-mode = <5>; 847 }; 848 849 channel-5 { 850 azoteq,ulp-allow; 851 azoteq,global-halt; 852 azoteq,invert-enable; 853 azoteq,rx-enable = <6>; 854 azoteq,ati-target = <800>; 855 azoteq,ati-base = <144>; 856 azoteq,ati-mode = <5>; 857 }; 858 859 channel-6 { 860 azoteq,global-halt; 861 azoteq,invert-enable; 862 azoteq,rx-enable = <6>; 863 azoteq,ati-target = <496>; 864 azoteq,ati-base = <160>; 865 azoteq,ati-mode = <5>; 866 867 event-touch { 868 linux,code = <KEY_MUTE>; 869 }; 870 }; 871 872 channel-7 { 873 azoteq,global-halt; 874 azoteq,invert-enable; 875 azoteq,rx-enable = <6>; 876 azoteq,ati-target = <496>; 877 azoteq,ati-base = <160>; 878 azoteq,ati-mode = <5>; 879 880 event-touch { 881 linux,code = <KEY_VOLUMEDOWN>; 882 }; 883 }; 884 885 channel-8 { 886 azoteq,global-halt; 887 azoteq,invert-enable; 888 azoteq,rx-enable = <6>; 889 azoteq,ati-target = <496>; 890 azoteq,ati-base = <160>; 891 azoteq,ati-mode = <5>; 892 893 event-touch { 894 linux,code = <KEY_VOLUMEUP>; 895 }; 896 }; 897 898 channel-9 { 899 azoteq,global-halt; 900 azoteq,invert-enable; 901 azoteq,rx-enable = <6>; 902 azoteq,ati-target = <496>; 903 azoteq,ati-base = <160>; 904 azoteq,ati-mode = <5>; 905 906 event-touch { 907 linux,code = <KEY_POWER>; 908 }; 909 }; 910 911 channel-10 { 912 azoteq,ulp-allow; 913 azoteq,ati-target = <496>; 914 azoteq,ati-base = <112>; 915 916 event-touch { 917 linux,code = <SW_LID>; 918 linux,input-type = <EV_SW>; 919 }; 920 }; 921 922 channel-11 { 923 azoteq,ati-target = <496>; 924 azoteq,ati-base = <112>; 925 }; 926 927 slider-0 { 928 azoteq,channel-select = <1>, <2>, <3>, <4>; 929 azoteq,slider-size = <4080>; 930 azoteq,upper-cal = <50>; 931 azoteq,lower-cal = <30>; 932 azoteq,top-speed = <200>; 933 azoteq,bottom-speed = <1>; 934 azoteq,bottom-beta = <3>; 935 936 event-tap { 937 linux,code = <KEY_PLAYPAUSE>; 938 azoteq,gesture-max-ms = <600>; 939 azoteq,gesture-min-ms = <24>; 940 }; 941 942 event-flick-pos { 943 linux,code = <KEY_NEXTSONG>; 944 azoteq,gesture-max-ms = <600>; 945 azoteq,gesture-dist = <816>; 946 }; 947 948 event-flick-neg { 949 linux,code = <KEY_PREVIOUSSONG>; 950 }; 951 }; 952 }; 953 }; 954 955... 956