linux/Documentation/devicetree/bindings/input/iqs626a.yaml
<<
>>
Prefs
   1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
   2%YAML 1.2
   3---
   4$id: http://devicetree.org/schemas/input/iqs626a.yaml#
   5$schema: http://devicetree.org/meta-schemas/core.yaml#
   6
   7title: Azoteq IQS626A Capacitive Touch Controller
   8
   9maintainers:
  10  - Jeff LaBundy <jeff@labundy.com>
  11
  12description: |
  13  The Azoteq IQS626A is a 14-channel capacitive touch controller that features
  14  additional Hall-effect and inductive sensing capabilities.
  15
  16  Link to datasheet: https://www.azoteq.com/
  17
  18allOf:
  19  - $ref: touchscreen/touchscreen.yaml#
  20
  21properties:
  22  compatible:
  23    const: azoteq,iqs626a
  24
  25  reg:
  26    maxItems: 1
  27
  28  interrupts:
  29    maxItems: 1
  30
  31  "#address-cells":
  32    const: 1
  33
  34  "#size-cells":
  35    const: 0
  36
  37  azoteq,suspend-mode:
  38    $ref: /schemas/types.yaml#/definitions/uint32
  39    enum: [0, 1, 2, 3]
  40    default: 0
  41    description: |
  42      Specifies the power mode during suspend as follows:
  43      0: Automatic (same as normal runtime, i.e. suspend/resume disabled)
  44      1: Low power (all sensing at a reduced reporting rate)
  45      2: Ultra-low power (ULP channel proximity sensing)
  46      3: Halt (no sensing)
  47
  48  azoteq,clk-div:
  49    type: boolean
  50    description: Divides the device's core clock by a factor of 4.
  51
  52  azoteq,ulp-enable:
  53    type: boolean
  54    description:
  55      Permits the device to automatically enter ultra-low-power mode from low-
  56      power mode.
  57
  58  azoteq,ulp-update:
  59    $ref: /schemas/types.yaml#/definitions/uint32
  60    enum: [0, 1, 2, 3, 4, 5, 6, 7]
  61    default: 3
  62    description: |
  63      Specifies the rate at which the trackpad, generic and Hall channels are
  64      updated during ultra-low-power mode as follows:
  65      0: 8
  66      1: 13
  67      2: 28
  68      3: 54
  69      4: 89
  70      5: 135
  71      6: 190
  72      7: 256
  73
  74  azoteq,ati-band-disable:
  75    type: boolean
  76    description: Disables the ATI band check.
  77
  78  azoteq,ati-lp-only:
  79    type: boolean
  80    description: Limits automatic ATI to low-power mode.
  81
  82  azoteq,gpio3-select:
  83    $ref: /schemas/types.yaml#/definitions/uint32
  84    enum: [0, 1, 2, 3, 4, 5, 6, 7]
  85    default: 1
  86    description: |
  87      Selects the channel or group of channels for which the GPIO3 pin
  88      represents touch state as follows:
  89      0: None
  90      1: ULP channel
  91      2: Trackpad
  92      3: Trackpad
  93      4: Generic channel 0
  94      5: Generic channel 1
  95      6: Generic channel 2
  96      7: Hall channel
  97
  98  azoteq,reseed-select:
  99    $ref: /schemas/types.yaml#/definitions/uint32
 100    enum: [0, 1, 2, 3]
 101    default: 0
 102    description: |
 103      Specifies the event(s) that prompt the device to reseed (i.e. reset the
 104      long-term average) of an associated channel as follows:
 105      0: None
 106      1: Proximity
 107      2: Proximity or touch
 108      3: Proximity, touch or deep touch
 109
 110  azoteq,thresh-extend:
 111    type: boolean
 112    description: Multiplies all touch and deep-touch thresholds by 4.
 113
 114  azoteq,tracking-enable:
 115    type: boolean
 116    description:
 117      Enables all associated channels to track their respective reference
 118      channels.
 119
 120  azoteq,reseed-offset:
 121    type: boolean
 122    description:
 123      Applies an 8-count offset to all long-term averages upon either ATI or
 124      reseed events.
 125
 126  azoteq,rate-np-ms:
 127    minimum: 0
 128    maximum: 255
 129    default: 150
 130    description: Specifies the report rate (in ms) during normal-power mode.
 131
 132  azoteq,rate-lp-ms:
 133    minimum: 0
 134    maximum: 255
 135    default: 150
 136    description: Specifies the report rate (in ms) during low-power mode.
 137
 138  azoteq,rate-ulp-ms:
 139    multipleOf: 16
 140    minimum: 0
 141    maximum: 4080
 142    default: 0
 143    description: Specifies the report rate (in ms) during ultra-low-power mode.
 144
 145  azoteq,timeout-pwr-ms:
 146    multipleOf: 512
 147    minimum: 0
 148    maximum: 130560
 149    default: 2560
 150    description:
 151      Specifies the length of time (in ms) to wait for an event before moving
 152      from normal-power mode to low-power mode, or (if 'azoteq,ulp-enable' is
 153      present) from low-power mode to ultra-low-power mode.
 154
 155  azoteq,timeout-lta-ms:
 156    multipleOf: 512
 157    minimum: 0
 158    maximum: 130560
 159    default: 40960
 160    description:
 161      Specifies the length of time (in ms) to wait before resetting the long-
 162      term average of all channels. Specify the maximum timeout to disable it
 163      altogether.
 164
 165  touchscreen-inverted-x: true
 166  touchscreen-inverted-y: true
 167  touchscreen-swapped-x-y: true
 168
 169patternProperties:
 170  "^ulp-0|generic-[0-2]|hall$":
 171    type: object
 172    description:
 173      Represents a single sensing channel. A channel is active if defined and
 174      inactive otherwise.
 175
 176    properties:
 177      azoteq,ati-exclude:
 178        type: boolean
 179        description:
 180          Prevents the channel from participating in an ATI event that is
 181          manually triggered during initialization.
 182
 183      azoteq,reseed-disable:
 184        type: boolean
 185        description:
 186          Prevents the channel from being reseeded if the long-term average
 187          timeout (defined in 'azoteq,timeout-lta') expires.
 188
 189      azoteq,meas-cap-decrease:
 190        type: boolean
 191        description:
 192          Decreases the internal measurement capacitance from 60 pF to 15 pF.
 193
 194      azoteq,rx-inactive:
 195        $ref: /schemas/types.yaml#/definitions/uint32
 196        enum: [0, 1, 2]
 197        default: 0
 198        description: |
 199          Specifies how inactive CRX pins are to be terminated as follows:
 200          0: VSS
 201          1: Floating
 202          2: VREG (generic channels only)
 203
 204      azoteq,linearize:
 205        type: boolean
 206        description:
 207          Enables linearization of the channel's counts (generic and Hall
 208          channels) or inverts the polarity of the channel's proximity or
 209          touch states (ULP channel).
 210
 211      azoteq,dual-direction:
 212        type: boolean
 213        description:
 214          Specifies that the channel's long-term average is to freeze in the
 215          presence of either increasing or decreasing counts, thereby permit-
 216          ting events to be reported in either direction.
 217
 218      azoteq,filt-disable:
 219        type: boolean
 220        description: Disables raw count filtering for the channel.
 221
 222      azoteq,ati-mode:
 223        $ref: /schemas/types.yaml#/definitions/uint32
 224        enum: [0, 1, 2, 3]
 225        description: |
 226          Specifies the channel's ATI mode as follows:
 227          0: Disabled
 228          1: Semi-partial
 229          2: Partial
 230          3: Full
 231
 232          The default value is a function of the channel and the device's reset
 233          user interface (RUI); reference the datasheet for further information
 234          about the available RUI options.
 235
 236      azoteq,ati-base:
 237        $ref: /schemas/types.yaml#/definitions/uint32
 238        enum: [75, 100, 150, 200]
 239        description:
 240          Specifies the channel's ATI base. The default value is a function
 241          of the channel and the device's RUI.
 242
 243      azoteq,ati-target:
 244        $ref: /schemas/types.yaml#/definitions/uint32
 245        multipleOf: 32
 246        minimum: 0
 247        maximum: 2016
 248        description:
 249          Specifies the channel's ATI target. The default value is a function
 250          of the channel and the device's RUI.
 251
 252      azoteq,cct-increase:
 253        $ref: /schemas/types.yaml#/definitions/uint32
 254        minimum: 0
 255        maximum: 16
 256        default: 0
 257        description:
 258          Specifies the degree to which the channel's charge cycle time is to
 259          be increased, with 0 representing no increase. The maximum value is
 260          limited to 4 in the case of the ULP channel, and the property is un-
 261          available entirely in the case of the Hall channel.
 262
 263      azoteq,proj-bias:
 264        $ref: /schemas/types.yaml#/definitions/uint32
 265        enum: [0, 1, 2, 3]
 266        default: 0
 267        description: |
 268          Specifies the bias current applied during projected-capacitance
 269          sensing as follows:
 270          0: 2.5 uA
 271          1: 5 uA
 272          2: 10 uA
 273          3: 20 uA
 274
 275          This property is unavailable in the case of the Hall channel.
 276
 277      azoteq,sense-freq:
 278        $ref: /schemas/types.yaml#/definitions/uint32
 279        enum: [0, 1, 2, 3]
 280        description: |
 281          Specifies the channel's sensing frequency as follows (parenthesized
 282          numbers represent the frequency if 'azoteq,clk-div' is present):
 283          0: 4 MHz (1 MHz)
 284          1: 2 MHz (500 kHz)
 285          2: 1 MHz (250 kHz)
 286          3: 500 kHz (125 kHz)
 287
 288          This property is unavailable in the case of the Hall channel. The
 289          default value is a function of the channel and the device's RUI.
 290
 291      azoteq,ati-band-tighten:
 292        type: boolean
 293        description:
 294          Tightens the ATI band from 1/8 to 1/16 of the desired target (ULP and
 295          generic channels only).
 296
 297      azoteq,proj-enable:
 298        type: boolean
 299        description: Enables projected-capacitance sensing (ULP channel only).
 300
 301      azoteq,filt-str-np-cnt:
 302        $ref: /schemas/types.yaml#/definitions/uint32
 303        enum: [0, 1, 2, 3]
 304        default: 0
 305        description:
 306          Specifies the raw count filter strength during normal-power mode (ULP
 307          and generic channels only).
 308
 309      azoteq,filt-str-lp-cnt:
 310        $ref: /schemas/types.yaml#/definitions/uint32
 311        enum: [0, 1, 2, 3]
 312        default: 0
 313        description:
 314          Specifies the raw count filter strength during low-power mode (ULP and
 315          generic channels only).
 316
 317      azoteq,filt-str-np-lta:
 318        $ref: /schemas/types.yaml#/definitions/uint32
 319        enum: [0, 1, 2, 3]
 320        default: 0
 321        description:
 322          Specifies the long-term average filter strength during normal-power
 323          mode (ULP and generic channels only).
 324
 325      azoteq,filt-str-lp-lta:
 326        $ref: /schemas/types.yaml#/definitions/uint32
 327        enum: [0, 1, 2, 3]
 328        default: 0
 329        description:
 330          Specifies the long-term average filter strength during low-power mode
 331          (ULP and generic channels only).
 332
 333      azoteq,rx-enable:
 334        $ref: /schemas/types.yaml#/definitions/uint32-array
 335        minItems: 1
 336        maxItems: 8
 337        items:
 338          minimum: 0
 339          maximum: 7
 340        description:
 341          Specifies the CRX pin(s) associated with the channel.
 342
 343          This property is unavailable in the case of the Hall channel. The
 344          default value is a function of the channel and the device's RUI.
 345
 346      azoteq,tx-enable:
 347        $ref: /schemas/types.yaml#/definitions/uint32-array
 348        minItems: 1
 349        maxItems: 8
 350        items:
 351          minimum: 0
 352          maximum: 7
 353        description:
 354          Specifies the TX pin(s) associated with the channel.
 355
 356          This property is unavailable in the case of the Hall channel. The
 357          default value is a function of the channel and the device's RUI.
 358
 359      azoteq,local-cap-size:
 360        $ref: /schemas/types.yaml#/definitions/uint32
 361        enum: [0, 1, 2, 3, 4]
 362        default: 0
 363        description: |
 364          Specifies the capacitance to be added to the channel as follows:
 365          0: 0 pF
 366          1: 0.5 pF
 367          2: 1.0 pF
 368          3: 1.5 pF
 369          4: 2.0 pF
 370
 371          This property is unavailable in the case of the ULP or Hall channels.
 372
 373      azoteq,sense-mode:
 374        $ref: /schemas/types.yaml#/definitions/uint32
 375        enum: [0, 1, 8, 9, 12, 14, 15]
 376        description: |
 377          Specifies the channel's sensing mode as follows:
 378          0:  Self capacitance
 379          1:  Projected capacitance
 380          8:  Self inductance
 381          9:  Mutual inductance
 382          12: External
 383          14: Hall effect
 384          15: Temperature
 385
 386          This property is unavailable in the case of the ULP or Hall channels.
 387          The default value is a function of the channel and the device's RUI.
 388
 389      azoteq,tx-freq:
 390        $ref: /schemas/types.yaml#/definitions/uint32
 391        enum: [0, 1, 2, 3]
 392        default: 0
 393        description: |
 394          Specifies the inductive sensing excitation frequency as follows
 395          (parenthesized numbers represent the frequency if 'azoteq,clk-div'
 396          is present):
 397          0: 16 MHz (4 MHz)
 398          1: 8 MHz (2 MHz)
 399          2: 4 MHz (1 MHz)
 400          3: 2 MHz (500 kHz)
 401
 402          This property is unavailable in the case of the ULP or Hall channels.
 403
 404      azoteq,invert-enable:
 405        type: boolean
 406        description:
 407          Inverts the polarity of the states reported for proximity, touch and
 408          deep-touch events relative to their respective thresholds (generic
 409          channels only).
 410
 411      azoteq,comp-disable:
 412        type: boolean
 413        description:
 414          Disables compensation for the channel (generic channels only).
 415
 416      azoteq,static-enable:
 417        type: boolean
 418        description:
 419          Enables the static front-end for the channel (generic channels only).
 420
 421      azoteq,assoc-select:
 422        $ref: /schemas/types.yaml#/definitions/string-array
 423        minItems: 1
 424        maxItems: 6
 425        items:
 426          enum:
 427            - ulp-0
 428            - trackpad-3x2
 429            - trackpad-3x3
 430            - generic-0
 431            - generic-1
 432            - generic-2
 433            - hall
 434        description:
 435          Specifies the associated channels for which the channel serves as a
 436          reference channel. By default, no channels are selected. This prop-
 437          erty is only available for the generic channels.
 438
 439      azoteq,assoc-weight:
 440        $ref: /schemas/types.yaml#/definitions/uint32
 441        minimum: 0
 442        maximum: 255
 443        default: 0
 444        description:
 445          Specifies the channel's impact weight if it acts as an associated
 446          channel (0 = 0% impact, 255 = 200% impact). This property is only
 447          available for the generic channels.
 448
 449    patternProperties:
 450      "^event-(prox|touch|deep)(-alt)?$":
 451        type: object
 452        description:
 453          Represents a proximity, touch or deep-touch event reported by the
 454          channel in response to a decrease in counts. Node names suffixed with
 455          '-alt' instead correspond to an increase in counts.
 456
 457          By default, the long-term average tracks an increase in counts such
 458          that only events corresponding to a decrease in counts are reported
 459          (refer to the datasheet for more information).
 460
 461          Specify 'azoteq,dual-direction' to freeze the long-term average when
 462          the counts increase or decrease such that events of either direction
 463          can be reported. Alternatively, specify 'azoteq,invert-enable' to in-
 464          vert the polarity of the states reported by the channel.
 465
 466          Complementary events (e.g. event-touch and event-touch-alt) can both
 467          be present and specify different key or switch codes, but not differ-
 468          ent thresholds or hysteresis (if applicable).
 469
 470          Proximity events are unavailable in the case of the Hall channel, and
 471          deep-touch events are only available for the generic channels. Unless
 472          otherwise specified, default values are a function of the channel and
 473          the device's RUI.
 474
 475        properties:
 476          azoteq,thresh:
 477            $ref: /schemas/types.yaml#/definitions/uint32
 478            minimum: 0
 479            maximum: 255
 480            description: Specifies the threshold for the event.
 481
 482          azoteq,hyst:
 483            $ref: /schemas/types.yaml#/definitions/uint32
 484            minimum: 0
 485            maximum: 15
 486            description:
 487              Specifies the hysteresis for the event (touch and deep-touch
 488              events only).
 489
 490          linux,code:
 491            $ref: /schemas/types.yaml#/definitions/uint32
 492            description: Numeric key or switch code associated with the event.
 493
 494          linux,input-type:
 495            $ref: /schemas/types.yaml#/definitions/uint32
 496            enum: [1, 5]
 497            description:
 498              Specifies whether the event is to be interpreted as a key (1) or
 499              a switch (5). By default, Hall-channel events are interpreted as
 500              switches and all others are interpreted as keys.
 501
 502        dependencies:
 503          linux,input-type: ["linux,code"]
 504
 505        additionalProperties: false
 506
 507    dependencies:
 508      azoteq,assoc-weight: ["azoteq,assoc-select"]
 509
 510    additionalProperties: false
 511
 512  "^trackpad-3x[2-3]$":
 513    type: object
 514    description:
 515      Represents all channels associated with the trackpad. The channels are
 516      collectively active if the trackpad is defined and inactive otherwise.
 517
 518    properties:
 519      azoteq,ati-exclude:
 520        type: boolean
 521        description:
 522          Prevents the trackpad channels from participating in an ATI event
 523          that is manually triggered during initialization.
 524
 525      azoteq,reseed-disable:
 526        type: boolean
 527        description:
 528          Prevents the trackpad channels from being reseeded if the long-term
 529          average timeout (defined in 'azoteq,timeout-lta') expires.
 530
 531      azoteq,meas-cap-decrease:
 532        type: boolean
 533        description:
 534          Decreases the internal measurement capacitance from 60 pF to 15 pF.
 535
 536      azoteq,rx-inactive:
 537        $ref: /schemas/types.yaml#/definitions/uint32
 538        enum: [0, 1]
 539        default: 0
 540        description: |
 541          Specifies how inactive CRX pins are to be terminated as follows:
 542          0: VSS
 543          1: Floating
 544
 545      azoteq,linearize:
 546        type: boolean
 547        description: Inverts the polarity of the trackpad's touch state.
 548
 549      azoteq,dual-direction:
 550        type: boolean
 551        description:
 552          Specifies that the trackpad's long-term averages are to freeze in
 553          the presence of either increasing or decreasing counts, thereby
 554          permitting events to be reported in either direction.
 555
 556      azoteq,filt-disable:
 557        type: boolean
 558        description: Disables raw count filtering for the trackpad channels.
 559
 560      azoteq,ati-mode:
 561        $ref: /schemas/types.yaml#/definitions/uint32
 562        enum: [0, 1, 2, 3]
 563        default: 0
 564        description: |
 565          Specifies the trackpad's ATI mode as follows:
 566          0: Disabled
 567          1: Semi-partial
 568          2: Partial
 569          3: Full
 570
 571      azoteq,ati-base:
 572        $ref: /schemas/types.yaml#/definitions/uint32-array
 573        minItems: 6
 574        maxItems: 9
 575        items:
 576          minimum: 45
 577          maximum: 300
 578        default: [45, 45, 45, 45, 45, 45, 45, 45, 45]
 579        description: Specifies each individual trackpad channel's ATI base.
 580
 581      azoteq,ati-target:
 582        $ref: /schemas/types.yaml#/definitions/uint32
 583        multipleOf: 32
 584        minimum: 0
 585        maximum: 2016
 586        default: 0
 587        description: Specifies the trackpad's ATI target.
 588
 589      azoteq,cct-increase:
 590        $ref: /schemas/types.yaml#/definitions/uint32
 591        minimum: 0
 592        maximum: 4
 593        default: 0
 594        description:
 595          Specifies the degree to which the trackpad's charge cycle time is to
 596          be increased, with 0 representing no increase.
 597
 598      azoteq,proj-bias:
 599        $ref: /schemas/types.yaml#/definitions/uint32
 600        enum: [0, 1, 2, 3]
 601        default: 0
 602        description: |
 603          Specifies the bias current applied during projected-capacitance
 604          sensing as follows:
 605          0: 2.5 uA
 606          1: 5 uA
 607          2: 10 uA
 608          3: 20 uA
 609
 610      azoteq,sense-freq:
 611        $ref: /schemas/types.yaml#/definitions/uint32
 612        enum: [0, 1, 2, 3]
 613        default: 0
 614        description: |
 615          Specifies the trackpad's sensing frequency as follows (parenthesized
 616          numbers represent the frequency if 'azoteq,clk-div' is present):
 617          0: 4 MHz (1 MHz)
 618          1: 2 MHz (500 kHz)
 619          2: 1 MHz (250 kHz)
 620          3: 500 kHz (125 kHz)
 621
 622      azoteq,ati-band-tighten:
 623        type: boolean
 624        description:
 625          Tightens the ATI band from 1/8 to 1/16 of the desired target.
 626
 627      azoteq,thresh:
 628        $ref: /schemas/types.yaml#/definitions/uint32-array
 629        minItems: 6
 630        maxItems: 9
 631        items:
 632          minimum: 0
 633          maximum: 255
 634        default: [0, 0, 0, 0, 0, 0, 0, 0, 0]
 635        description:
 636          Specifies each individual trackpad channel's touch threshold.
 637
 638      azoteq,hyst:
 639        $ref: /schemas/types.yaml#/definitions/uint32
 640        minimum: 0
 641        maximum: 15
 642        default: 0
 643        description: Specifies the trackpad's touch hysteresis.
 644
 645      azoteq,lta-update:
 646        $ref: /schemas/types.yaml#/definitions/uint32
 647        enum: [0, 1, 2, 3, 4, 5, 6, 7]
 648        default: 0
 649        description: |
 650          Specifies the update rate of the trackpad's long-term average during
 651          ultra-low-power mode as follows:
 652          0: 2
 653          1: 4
 654          2: 8
 655          3: 16
 656          4: 32
 657          5: 64
 658          6: 128
 659          7: 255
 660
 661      azoteq,filt-str-trackpad:
 662        $ref: /schemas/types.yaml#/definitions/uint32
 663        enum: [0, 1, 2, 3]
 664        default: 0
 665        description: Specifies the trackpad coordinate filter strength.
 666
 667      azoteq,filt-str-np-cnt:
 668        $ref: /schemas/types.yaml#/definitions/uint32
 669        enum: [0, 1, 2, 3]
 670        default: 0
 671        description:
 672          Specifies the raw count filter strength during normal-power mode.
 673
 674      azoteq,filt-str-lp-cnt:
 675        $ref: /schemas/types.yaml#/definitions/uint32
 676        enum: [0, 1, 2, 3]
 677        default: 0
 678        description:
 679          Specifies the raw count filter strength during low-power mode.
 680
 681      linux,keycodes:
 682        $ref: /schemas/types.yaml#/definitions/uint32-array
 683        minItems: 1
 684        maxItems: 6
 685        description: |
 686          Specifies the numeric keycodes associated with each available gesture
 687          in the following order (enter 0 for unused gestures):
 688          0: Positive flick or swipe in X direction
 689          1: Negative flick or swipe in X direction
 690          2: Positive flick or swipe in Y direction
 691          3: Negative flick or swipe in Y direction
 692          4: Tap
 693          5: Hold
 694
 695      azoteq,gesture-swipe:
 696        type: boolean
 697        description:
 698          Directs the device to interpret axial gestures as a swipe (finger
 699          remains on trackpad) instead of a flick (finger leaves trackpad).
 700
 701      azoteq,timeout-tap-ms:
 702        multipleOf: 16
 703        minimum: 0
 704        maximum: 4080
 705        default: 0
 706        description:
 707          Specifies the length of time (in ms) within which a trackpad touch
 708          must be released in order to be interpreted as a tap.
 709
 710      azoteq,timeout-swipe-ms:
 711        multipleOf: 16
 712        minimum: 0
 713        maximum: 4080
 714        default: 0
 715        description:
 716          Specifies the length of time (in ms) within which an axial gesture
 717          must be completed in order to be interpreted as a flick or swipe.
 718
 719      azoteq,thresh-swipe:
 720        $ref: /schemas/types.yaml#/definitions/uint32
 721        minimum: 0
 722        maximum: 255
 723        default: 0
 724        description:
 725          Specifies the number of points across which an axial gesture must
 726          travel in order to be interpreted as a flick or swipe.
 727
 728    dependencies:
 729      azoteq,gesture-swipe: ["linux,keycodes"]
 730      azoteq,timeout-tap-ms: ["linux,keycodes"]
 731      azoteq,timeout-swipe-ms: ["linux,keycodes"]
 732      azoteq,thresh-swipe: ["linux,keycodes"]
 733
 734    additionalProperties: false
 735
 736required:
 737  - compatible
 738  - reg
 739  - interrupts
 740  - "#address-cells"
 741  - "#size-cells"
 742
 743additionalProperties: false
 744
 745examples:
 746  - |
 747    #include <dt-bindings/input/input.h>
 748    #include <dt-bindings/interrupt-controller/irq.h>
 749
 750    i2c {
 751            #address-cells = <1>;
 752            #size-cells = <0>;
 753
 754            iqs626a@44 {
 755                    #address-cells = <1>;
 756                    #size-cells = <0>;
 757
 758                    compatible = "azoteq,iqs626a";
 759                    reg = <0x44>;
 760                    interrupt-parent = <&gpio>;
 761                    interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
 762
 763                    azoteq,rate-np-ms = <16>;
 764                    azoteq,rate-lp-ms = <160>;
 765
 766                    azoteq,timeout-pwr-ms = <2560>;
 767                    azoteq,timeout-lta-ms = <32768>;
 768
 769                    ulp-0 {
 770                            azoteq,meas-cap-decrease;
 771
 772                            azoteq,ati-base = <75>;
 773                            azoteq,ati-target = <1024>;
 774
 775                            azoteq,rx-enable = <2>, <3>, <4>,
 776                                               <5>, <6>, <7>;
 777
 778                            event-prox {
 779                                    linux,code = <KEY_POWER>;
 780                            };
 781                    };
 782
 783                    trackpad-3x3 {
 784                            azoteq,filt-str-np-cnt = <1>;
 785                            azoteq,filt-str-lp-cnt = <1>;
 786
 787                            azoteq,hyst = <4>;
 788                            azoteq,thresh = <35>, <40>, <40>,
 789                                            <38>, <33>, <38>,
 790                                            <35>, <35>, <35>;
 791
 792                            azoteq,ati-mode = <3>;
 793                            azoteq,ati-base = <195>, <195>, <195>,
 794                                              <195>, <195>, <195>,
 795                                              <195>, <195>, <195>;
 796                            azoteq,ati-target = <512>;
 797
 798                            azoteq,proj-bias = <1>;
 799                            azoteq,sense-freq = <2>;
 800
 801                            linux,keycodes = <KEY_VOLUMEUP>,
 802                                             <KEY_VOLUMEDOWN>,
 803                                             <KEY_NEXTSONG>,
 804                                             <KEY_PREVIOUSSONG>,
 805                                             <KEY_PLAYPAUSE>,
 806                                             <KEY_STOPCD>;
 807
 808                            azoteq,gesture-swipe;
 809                            azoteq,timeout-swipe-ms = <800>;
 810                            azoteq,timeout-tap-ms = <400>;
 811                            azoteq,thresh-swipe = <40>;
 812                    };
 813
 814                    /*
 815                     * Preserve the default register settings for
 816                     * the temperature-tracking channel leveraged
 817                     * by reset user interface (RUI) 1.
 818                     *
 819                     * Scalar properties (e.g. ATI mode) are left
 820                     * untouched by simply omitting them; boolean
 821                     * properties must be specified explicitly as
 822                     * needed.
 823                     */
 824                    generic-2 {
 825                            azoteq,reseed-disable;
 826                            azoteq,meas-cap-decrease;
 827                            azoteq,dual-direction;
 828                            azoteq,comp-disable;
 829                            azoteq,static-enable;
 830                    };
 831
 832                    hall {
 833                            azoteq,reseed-disable;
 834                            azoteq,meas-cap-decrease;
 835
 836                            event-touch {
 837                                    linux,code = <SW_LID>;
 838                            };
 839                    };
 840            };
 841    };
 842
 843...
 844