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 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 643allOf: 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 721required: 722 - compatible 723 - reg 724 - irq-gpios 725 726additionalProperties: false 727 728examples: 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... 951