Documentation / devicetree / bindings / input / iqs626a.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/input/iqs626a.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Azoteq IQS626A Capacitive Touch Controller

maintainers:
  - Jeff LaBundy <jeff@labundy.com>

description: |
  The Azoteq IQS626A is a 14-channel capacitive touch controller that features
  additional Hall-effect and inductive sensing capabilities.
 
  Link to datasheet: https://www.azoteq.com/

allOf:
  - $ref: touchscreen/touchscreen.yaml#

properties:
  compatible:
    const: azoteq,iqs626a

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1
 
  "#address-cells":
    const: 1
 
  "#size-cells":
    const: 0

  azoteq,suspend-mode:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2, 3]
    default: 0
    description: |
      Specifies the power mode during suspend as follows:
      0: Automatic (same as normal runtime, i.e. suspend/resume disabled)
      1: Low power (all sensing at a reduced reporting rate)
      2: Ultra-low power (ULP channel proximity sensing)
      3: Halt (no sensing)

  azoteq,clk-div:
    type: boolean
    description: Divides the device's core clock by a factor of 4.

  azoteq,ulp-enable:
    type: boolean
    description:
      Permits the device to automatically enter ultra-low-power mode from low-
      power mode.

  azoteq,ulp-update:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2, 3, 4, 5, 6, 7]
    default: 3
    description: |
      Specifies the rate at which the trackpad, generic and Hall channels are
      updated during ultra-low-power mode as follows:
      0: 8
      1: 13
      2: 28
      3: 54
      4: 89
      5: 135
      6: 190
      7: 256

  azoteq,ati-band-disable:
    type: boolean
    description: Disables the ATI band check.

  azoteq,ati-lp-only:
    type: boolean
    description: Limits automatic ATI to low-power mode.

  azoteq,gpio3-select:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2, 3, 4, 5, 6, 7]
    default: 1
    description: |
      Selects the channel or group of channels for which the GPIO3 pin
      represents touch state as follows:
      0: None
      1: ULP channel
      2: Trackpad
      3: Trackpad
      4: Generic channel 0
      5: Generic channel 1
      6: Generic channel 2
      7: Hall channel

  azoteq,reseed-select:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2, 3]
    default: 0
    description: |
      Specifies the event(s) that prompt the device to reseed (i.e. reset the
      long-term average) of an associated channel as follows:
      0: None
      1: Proximity
      2: Proximity or touch
      3: Proximity, touch or deep touch

  azoteq,thresh-extend:
    type: boolean
    description: Multiplies all touch and deep-touch thresholds by 4.

  azoteq,tracking-enable:
    type: boolean
    description:
      Enables all associated channels to track their respective reference
      channels.

  azoteq,reseed-offset:
    type: boolean
    description:
      Applies an 8-count offset to all long-term averages upon either ATI or
      reseed events.

  azoteq,rate-np-ms:
    minimum: 0
    maximum: 255
    default: 150
    description: Specifies the report rate (in ms) during normal-power mode.

  azoteq,rate-lp-ms:
    minimum: 0
    maximum: 255
    default: 150
    description: Specifies the report rate (in ms) during low-power mode.

  azoteq,rate-ulp-ms:
    multipleOf: 16
    minimum: 0
    maximum: 4080
    default: 0
    description: Specifies the report rate (in ms) during ultra-low-power mode.

  azoteq,timeout-pwr-ms:
    multipleOf: 512
    minimum: 0
    maximum: 130560
    default: 2560
    description:
      Specifies the length of time (in ms) to wait for an event before moving
      from normal-power mode to low-power mode, or (if 'azoteq,ulp-enable' is
      present) from low-power mode to ultra-low-power mode.

  azoteq,timeout-lta-ms:
    multipleOf: 512
    minimum: 0
    maximum: 130560
    default: 40960
    description:
      Specifies the length of time (in ms) to wait before resetting the long-
      term average of all channels. Specify the maximum timeout to disable it
      altogether.

  touchscreen-inverted-x: true
  touchscreen-inverted-y: true
  touchscreen-swapped-x-y: true

patternProperties:
  "^ulp-0|generic-[0-2]|hall$":
    type: object
    description:
      Represents a single sensing channel. A channel is active if defined and
      inactive otherwise.

    properties:
      azoteq,ati-exclude:
        type: boolean
        description:
          Prevents the channel from participating in an ATI event that is
          manually triggered during initialization.

      azoteq,reseed-disable:
        type: boolean
        description:
          Prevents the channel from being reseeded if the long-term average
          timeout (defined in 'azoteq,timeout-lta') expires.

      azoteq,meas-cap-decrease:
        type: boolean
        description:
          Decreases the internal measurement capacitance from 60 pF to 15 pF.

      azoteq,rx-inactive:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2]
        default: 0
        description: |
          Specifies how inactive CRX pins are to be terminated as follows:
          0: VSS
          1: Floating
          2: VREG (generic channels only)

      azoteq,linearize:
        type: boolean
        description:
          Enables linearization of the channel's counts (generic and Hall
          channels) or inverts the polarity of the channel's proximity or
          touch states (ULP channel).

      azoteq,dual-direction:
        type: boolean
        description:
          Specifies that the channel's long-term average is to freeze in the
          presence of either increasing or decreasing counts, thereby permit-
          ting events to be reported in either direction.

      azoteq,filt-disable:
        type: boolean
        description: Disables raw count filtering for the channel.

      azoteq,ati-mode:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        description: |
          Specifies the channel's ATI mode as follows:
          0: Disabled
          1: Semi-partial
          2: Partial
          3: Full
 
          The default value is a function of the channel and the device's reset
          user interface (RUI); reference the datasheet for further information
          about the available RUI options.

      azoteq,ati-base:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [75, 100, 150, 200]
        description:
          Specifies the channel's ATI base. The default value is a function
          of the channel and the device's RUI.

      azoteq,ati-target:
        $ref: /schemas/types.yaml#/definitions/uint32
        multipleOf: 32
        minimum: 0
        maximum: 2016
        description:
          Specifies the channel's ATI target. The default value is a function
          of the channel and the device's RUI.

      azoteq,cct-increase:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 16
        default: 0
        description:
          Specifies the degree to which the channel's charge cycle time is to
          be increased, with 0 representing no increase. The maximum value is
          limited to 4 in the case of the ULP channel, and the property is un-
          available entirely in the case of the Hall channel.

      azoteq,proj-bias:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 0
        description: |
          Specifies the bias current applied during projected-capacitance
          sensing as follows:
          0: 2.5 uA
          1: 5 uA
          2: 10 uA
          3: 20 uA
 
          This property is unavailable in the case of the Hall channel.

      azoteq,sense-freq:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        description: |
          Specifies the channel's sensing frequency as follows (parenthesized
          numbers represent the frequency if 'azoteq,clk-div' is present):
          0: 4 MHz (1 MHz)
          1: 2 MHz (500 kHz)
          2: 1 MHz (250 kHz)
          3: 500 kHz (125 kHz)
 
          This property is unavailable in the case of the Hall channel. The
          default value is a function of the channel and the device's RUI.

      azoteq,ati-band-tighten:
        type: boolean
        description:
          Tightens the ATI band from 1/8 to 1/16 of the desired target (ULP and
          generic channels only).

      azoteq,proj-enable:
        type: boolean
        description: Enables projected-capacitance sensing (ULP channel only).

      azoteq,filt-str-np-cnt:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 0
        description:
          Specifies the raw count filter strength during normal-power mode (ULP
          and generic channels only).

      azoteq,filt-str-lp-cnt:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 0
        description:
          Specifies the raw count filter strength during low-power mode (ULP and
          generic channels only).

      azoteq,filt-str-np-lta:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 0
        description:
          Specifies the long-term average filter strength during normal-power
          mode (ULP and generic channels only).

      azoteq,filt-str-lp-lta:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 0
        description:
          Specifies the long-term average filter strength during low-power mode
          (ULP and generic channels only).

      azoteq,rx-enable:
        $ref: /schemas/types.yaml#/definitions/uint32-array
        minItems: 1
        maxItems: 8
        items:
          minimum: 0
          maximum: 7
        description:
          Specifies the CRX pin(s) associated with the channel.
 
          This property is unavailable in the case of the Hall channel. The
          default value is a function of the channel and the device's RUI.

      azoteq,tx-enable:
        $ref: /schemas/types.yaml#/definitions/uint32-array
        minItems: 1
        maxItems: 8
        items:
          minimum: 0
          maximum: 7
        description:
          Specifies the TX pin(s) associated with the channel.
 
          This property is unavailable in the case of the Hall channel. The
          default value is a function of the channel and the device's RUI.

      azoteq,local-cap-size:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3, 4]
        default: 0
        description: |
          Specifies the capacitance to be added to the channel as follows:
          0: 0 pF
          1: 0.5 pF
          2: 1.0 pF
          3: 1.5 pF
          4: 2.0 pF
 
          This property is unavailable in the case of the ULP or Hall channels.

      azoteq,sense-mode:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 8, 9, 12, 14, 15]
        description: |
          Specifies the channel's sensing mode as follows:
          0:  Self capacitance
          1:  Projected capacitance
          8:  Self inductance
          9:  Mutual inductance
          12: External
          14: Hall effect
          15: Temperature
 
          This property is unavailable in the case of the ULP or Hall channels.
          The default value is a function of the channel and the device's RUI.

      azoteq,tx-freq:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 0
        description: |
          Specifies the inductive sensing excitation frequency as follows
          (parenthesized numbers represent the frequency if 'azoteq,clk-div'
          is present):
          0: 16 MHz (4 MHz)
          1: 8 MHz (2 MHz)
          2: 4 MHz (1 MHz)
          3: 2 MHz (500 kHz)
 
          This property is unavailable in the case of the ULP or Hall channels.

      azoteq,invert-enable:
        type: boolean
        description:
          Inverts the polarity of the states reported for proximity, touch and
          deep-touch events relative to their respective thresholds (generic
          channels only).

      azoteq,comp-disable:
        type: boolean
        description:
          Disables compensation for the channel (generic channels only).

      azoteq,static-enable:
        type: boolean
        description:
          Enables the static front-end for the channel (generic channels only).

      azoteq,assoc-select:
        $ref: /schemas/types.yaml#/definitions/string-array
        minItems: 1
        maxItems: 6
        items:
          enum:
            - ulp-0
            - trackpad-3x2
            - trackpad-3x3
            - generic-0
            - generic-1
            - generic-2
            - hall
        description:
          Specifies the associated channels for which the channel serves as a
          reference channel. By default, no channels are selected. This prop-
          erty is only available for the generic channels.

      azoteq,assoc-weight:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 255
        default: 0
        description:
          Specifies the channel's impact weight if it acts as an associated
          channel (0 = 0% impact, 255 = 200% impact). This property is only
          available for the generic channels.

    patternProperties:
      "^event-(prox|touch|deep)(-alt)?$":
        type: object
        $ref: input.yaml#
        description:
          Represents a proximity, touch or deep-touch event reported by the
          channel in response to a decrease in counts. Node names suffixed with
          '-alt' instead correspond to an increase in counts.
 
          By default, the long-term average tracks an increase in counts such
          that only events corresponding to a decrease in counts are reported
          (refer to the datasheet for more information).
 
          Specify 'azoteq,dual-direction' to freeze the long-term average when
          the counts increase or decrease such that events of either direction
          can be reported. Alternatively, specify 'azoteq,invert-enable' to in-
          vert the polarity of the states reported by the channel.
 
          Complementary events (e.g. event-touch and event-touch-alt) can both
          be present and specify different key or switch codes, but not differ-
          ent thresholds or hysteresis (if applicable).
 
          Proximity events are unavailable in the case of the Hall channel, and
          deep-touch events are only available for the generic channels. Unless
          otherwise specified, default values are a function of the channel and
          the device's RUI.

        properties:
          azoteq,thresh:
            $ref: /schemas/types.yaml#/definitions/uint32
            minimum: 0
            maximum: 255
            description: Specifies the threshold for the event.

          azoteq,hyst:
            $ref: /schemas/types.yaml#/definitions/uint32
            minimum: 0
            maximum: 15
            description:
              Specifies the hysteresis for the event (touch and deep-touch
              events only).

          linux,code: true

          linux,input-type:
            enum: [1, 5]
            description:
              Specifies whether the event is to be interpreted as a key (1) or
              a switch (5). By default, Hall-channel events are interpreted as
              switches and all others are interpreted as keys.

        additionalProperties: false

    dependencies:
      azoteq,assoc-weight: ["azoteq,assoc-select"]

    additionalProperties: false
 
  "^trackpad-3x[2-3]$":
    type: object
    $ref: input.yaml#
    description:
      Represents all channels associated with the trackpad. The channels are
      collectively active if the trackpad is defined and inactive otherwise.

    properties:
      azoteq,ati-exclude:
        type: boolean
        description:
          Prevents the trackpad channels from participating in an ATI event
          that is manually triggered during initialization.

      azoteq,reseed-disable:
        type: boolean
        description:
          Prevents the trackpad channels from being reseeded if the long-term
          average timeout (defined in 'azoteq,timeout-lta') expires.

      azoteq,meas-cap-decrease:
        type: boolean
        description:
          Decreases the internal measurement capacitance from 60 pF to 15 pF.

      azoteq,rx-inactive:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1]
        default: 0
        description: |
          Specifies how inactive CRX pins are to be terminated as follows:
          0: VSS
          1: Floating

      azoteq,linearize:
        type: boolean
        description: Inverts the polarity of the trackpad's touch state.

      azoteq,dual-direction:
        type: boolean
        description:
          Specifies that the trackpad's long-term averages are to freeze in
          the presence of either increasing or decreasing counts, thereby
          permitting events to be reported in either direction.

      azoteq,filt-disable:
        type: boolean
        description: Disables raw count filtering for the trackpad channels.

      azoteq,ati-mode:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 0
        description: |
          Specifies the trackpad's ATI mode as follows:
          0: Disabled
          1: Semi-partial
          2: Partial
          3: Full

      azoteq,ati-target:
        $ref: /schemas/types.yaml#/definitions/uint32
        multipleOf: 32
        minimum: 0
        maximum: 2016
        default: 0
        description: Specifies the trackpad's ATI target.

      azoteq,cct-increase:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 4
        default: 0
        description:
          Specifies the degree to which the trackpad's charge cycle time is to
          be increased, with 0 representing no increase.

      azoteq,proj-bias:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 0
        description: |
          Specifies the bias current applied during projected-capacitance
          sensing as follows:
          0: 2.5 uA
          1: 5 uA
          2: 10 uA
          3: 20 uA

      azoteq,sense-freq:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 0
        description: |
          Specifies the trackpad's sensing frequency as follows (parenthesized
          numbers represent the frequency if 'azoteq,clk-div' is present):
          0: 4 MHz (1 MHz)
          1: 2 MHz (500 kHz)
          2: 1 MHz (250 kHz)
          3: 500 kHz (125 kHz)

      azoteq,ati-band-tighten:
        type: boolean
        description:
          Tightens the ATI band from 1/8 to 1/16 of the desired target.

      azoteq,hyst:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 15
        default: 0
        description: Specifies the trackpad's touch hysteresis.

      azoteq,lta-update:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3, 4, 5, 6, 7]
        default: 0
        description: |
          Specifies the update rate of the trackpad's long-term average during
          ultra-low-power mode as follows:
          0: 2
          1: 4
          2: 8
          3: 16
          4: 32
          5: 64
          6: 128
          7: 255

      azoteq,filt-str-trackpad:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 0
        description: Specifies the trackpad coordinate filter strength.

      azoteq,filt-str-np-cnt:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 0
        description:
          Specifies the raw count filter strength during normal-power mode.

      azoteq,filt-str-lp-cnt:
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 0
        description:
          Specifies the raw count filter strength during low-power mode.

      linux,keycodes:
        minItems: 1
        maxItems: 6
        description: |
          Specifies the numeric keycodes associated with each available gesture
          in the following order (enter 0 for unused gestures):
          0: Positive flick or swipe in X direction
          1: Negative flick or swipe in X direction
          2: Positive flick or swipe in Y direction
          3: Negative flick or swipe in Y direction
          4: Tap
          5: Hold

      azoteq,gesture-swipe:
        type: boolean
        description:
          Directs the device to interpret axial gestures as a swipe (finger
          remains on trackpad) instead of a flick (finger leaves trackpad).

      azoteq,timeout-tap-ms:
        multipleOf: 16
        minimum: 0
        maximum: 4080
        default: 0
        description:
          Specifies the length of time (in ms) within which a trackpad touch
          must be released in order to be interpreted as a tap.

      azoteq,timeout-swipe-ms:
        multipleOf: 16
        minimum: 0
        maximum: 4080
        default: 0
        description:
          Specifies the length of time (in ms) within which an axial gesture
          must be completed in order to be interpreted as a flick or swipe.

      azoteq,thresh-swipe:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 255
        default: 0
        description:
          Specifies the number of points across which an axial gesture must
          travel in order to be interpreted as a flick or swipe.

    patternProperties:
      "^channel-[0-8]$":
        type: object
        description: Represents a single trackpad channel.

        properties:
          azoteq,thresh:
            $ref: /schemas/types.yaml#/definitions/uint32
            minimum: 0
            maximum: 255
            default: 0
            description: Specifies the threshold for the channel.

          azoteq,ati-base:
            $ref: /schemas/types.yaml#/definitions/uint32
            minimum: 45
            maximum: 300
            default: 45
            description: Specifies the channel's ATI base.

        additionalProperties: false

    dependencies:
      azoteq,gesture-swipe: ["linux,keycodes"]
      azoteq,timeout-tap-ms: ["linux,keycodes"]
      azoteq,timeout-swipe-ms: ["linux,keycodes"]
      azoteq,thresh-swipe: ["linux,keycodes"]

    additionalProperties: false

required:
  - compatible
  - reg
  - interrupts
  - "#address-cells"
  - "#size-cells"

additionalProperties: false

examples:
  - |
    #include <dt-bindings/input/input.h>
    #include <dt-bindings/interrupt-controller/irq.h>
 
    i2c {
            #address-cells = <1>;
            #size-cells = <0>;
 
            touch@44 {
                    #address-cells = <1>;
                    #size-cells = <0>;
 
                    compatible = "azoteq,iqs626a";
                    reg = <0x44>;
                    interrupt-parent = <&gpio>;
                    interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
 
                    azoteq,rate-np-ms = <16>;
                    azoteq,rate-lp-ms = <160>;
 
                    azoteq,timeout-pwr-ms = <2560>;
                    azoteq,timeout-lta-ms = <32768>;
 
                    ulp-0 {
                            azoteq,meas-cap-decrease;
 
                            azoteq,ati-base = <75>;
                            azoteq,ati-target = <1024>;
 
                            azoteq,rx-enable = <2>, <3>, <4>,
                                               <5>, <6>, <7>;
 
                            event-prox {
                                    linux,code = <KEY_POWER>;
                            };
                    };
 
                    trackpad-3x3 {
                            azoteq,filt-str-np-cnt = <1>;
                            azoteq,filt-str-lp-cnt = <1>;
 
                            azoteq,hyst = <4>;
 
                            azoteq,ati-mode = <3>;
                            azoteq,ati-target = <512>;
 
                            azoteq,proj-bias = <1>;
                            azoteq,sense-freq = <2>;
 
                            linux,keycodes = <KEY_VOLUMEUP>,
                                             <KEY_VOLUMEDOWN>,
                                             <KEY_NEXTSONG>,
                                             <KEY_PREVIOUSSONG>,
                                             <KEY_PLAYPAUSE>,
                                             <KEY_STOPCD>;
 
                            azoteq,gesture-swipe;
                            azoteq,timeout-swipe-ms = <800>;
                            azoteq,timeout-tap-ms = <400>;
                            azoteq,thresh-swipe = <40>;
 
                            channel-0 {
                                    azoteq,thresh = <35>;
                                    azoteq,ati-base = <195>;
                            };
 
                            channel-1 {
                                    azoteq,thresh = <40>;
                                    azoteq,ati-base = <195>;
                            };
 
                            channel-2 {
                                    azoteq,thresh = <40>;
                                    azoteq,ati-base = <195>;
                            };
 
                            channel-3 {
                                    azoteq,thresh = <38>;
                                    azoteq,ati-base = <195>;
                            };
 
                            channel-4 {
                                    azoteq,thresh = <33>;
                                    azoteq,ati-base = <195>;
                            };
 
                            channel-5 {
                                    azoteq,thresh = <38>;
                                    azoteq,ati-base = <195>;
                            };
 
                            channel-6 {
                                    azoteq,thresh = <35>;
                                    azoteq,ati-base = <195>;
                            };
 
                            channel-7 {
                                    azoteq,thresh = <35>;
                                    azoteq,ati-base = <195>;
                            };
 
                            channel-8 {
                                    azoteq,thresh = <35>;
                                    azoteq,ati-base = <195>;
                            };
                    };
 
                    /*
                     * Preserve the default register settings for
                     * the temperature-tracking channel leveraged
                     * by reset user interface (RUI) 1.
                     *
                     * Scalar properties (e.g. ATI mode) are left
                     * untouched by simply omitting them; boolean
                     * properties must be specified explicitly as
                     * needed.
                     */
                    generic-2 {
                            azoteq,reseed-disable;
                            azoteq,meas-cap-decrease;
                            azoteq,dual-direction;
                            azoteq,comp-disable;
                            azoteq,static-enable;
                    };
 
                    hall {
                            azoteq,reseed-disable;
                            azoteq,meas-cap-decrease;
 
                            event-touch {
                                    linux,code = <SW_LID>;
                            };
                    };
            };
    };

...