brintos

brintos / linux-shallow public Read only

0
0
Text · 35.4 KiB · 418c168 Raw
1149 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---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/D Capacitive Touch Controller8 9maintainers:10  - Jeff LaBundy <jeff@labundy.com>11 12description: |13  The Azoteq IQS7222A, IQS7222B, IQS7222C and IQS7222D are multichannel14  capacitive touch controllers that feature additional sensing capabilities.15 16  Link to datasheets: https://www.azoteq.com/17 18properties:19  compatible:20    enum:21      - azoteq,iqs7222a22      - azoteq,iqs7222b23      - azoteq,iqs7222c24      - azoteq,iqs7222d25 26  reg:27    maxItems: 128 29  irq-gpios:30    maxItems: 131    description:32      Specifies the GPIO connected to the device's active-low RDY output.33 34  reset-gpios:35    maxItems: 136    description:37      Specifies the GPIO connected to the device's active-low MCLR input. The38      device is temporarily held in hardware reset prior to initialization if39      this property is present.40 41  azoteq,max-counts:42    $ref: /schemas/types.yaml#/definitions/uint3243    enum: [0, 1, 2, 3]44    description: |45      Specifies the maximum number of conversion periods (counts) that can be46      reported as follows:47      0: 102348      1: 204749      2: 409550      3: 1638451 52  azoteq,auto-mode:53    $ref: /schemas/types.yaml#/definitions/uint3254    enum: [0, 1, 2, 3]55    description: |56      Specifies the number of conversions to occur before an interrupt is57      generated as follows:58      0: 459      1: 860      2: 1661      3: 3262 63  azoteq,ati-frac-div-fine:64    $ref: /schemas/types.yaml#/definitions/uint3265    minimum: 066    maximum: 3167    description: Specifies the preloaded ATI fine fractional divider.68 69  azoteq,ati-frac-div-coarse:70    $ref: /schemas/types.yaml#/definitions/uint3271    minimum: 072    maximum: 3173    description: Specifies the preloaded ATI coarse fractional divider.74 75  azoteq,ati-comp-select:76    $ref: /schemas/types.yaml#/definitions/uint3277    minimum: 078    maximum: 102379    description: Specifies the preloaded ATI compensation selection.80 81  azoteq,lta-beta-lp:82    $ref: /schemas/types.yaml#/definitions/uint3283    minimum: 084    maximum: 1585    description:86      Specifies the long-term average filter damping factor to be applied during87      low-power mode.88 89  azoteq,lta-beta-np:90    $ref: /schemas/types.yaml#/definitions/uint3291    minimum: 092    maximum: 1593    description:94      Specifies the long-term average filter damping factor to be applied during95      normal-power mode.96 97  azoteq,counts-beta-lp:98    $ref: /schemas/types.yaml#/definitions/uint3299    minimum: 0100    maximum: 15101    description:102      Specifies the counts filter damping factor to be applied during low-power103      mode.104 105  azoteq,counts-beta-np:106    $ref: /schemas/types.yaml#/definitions/uint32107    minimum: 0108    maximum: 15109    description:110      Specifies the counts filter damping factor to be applied during normal-111      power mode.112 113  azoteq,lta-fast-beta-lp:114    $ref: /schemas/types.yaml#/definitions/uint32115    minimum: 0116    maximum: 15117    description:118      Specifies the long-term average filter fast damping factor to be applied119      during low-power mode.120 121  azoteq,lta-fast-beta-np:122    $ref: /schemas/types.yaml#/definitions/uint32123    minimum: 0124    maximum: 15125    description:126      Specifies the long-term average filter fast damping factor to be applied127      during normal-power mode.128 129  azoteq,timeout-ati-ms:130    multipleOf: 500131    minimum: 0132    maximum: 32767500133    description:134      Specifies the delay (in ms) before ATI is retried following an ATI error.135 136  azoteq,rate-ati-ms:137    minimum: 0138    maximum: 65535139    description: Specifies the rate (in ms) at which ATI status is evaluated.140 141  azoteq,timeout-np-ms:142    minimum: 0143    maximum: 65535144    description:145      Specifies the length of time (in ms) to wait for an event before moving146      from normal-power mode to low-power mode.147 148  azoteq,rate-np-ms:149    minimum: 0150    maximum: 3000151    description: Specifies the report rate (in ms) during normal-power mode.152 153  azoteq,timeout-lp-ms:154    minimum: 0155    maximum: 65535156    description:157      Specifies the length of time (in ms) to wait for an event before moving158      from low-power mode to ultra-low-power mode.159 160  azoteq,rate-lp-ms:161    minimum: 0162    maximum: 3000163    description: Specifies the report rate (in ms) during low-power mode.164 165  azoteq,timeout-ulp-ms:166    minimum: 0167    maximum: 65535168    description:169      Specifies the rate (in ms) at which channels not regularly sampled during170      ultra-low-power mode are updated.171 172  azoteq,rate-ulp-ms:173    minimum: 0174    maximum: 3000175    description: Specifies the report rate (in ms) during ultra-low-power mode.176 177  touchscreen-size-x: true178  touchscreen-size-y: true179  touchscreen-inverted-x: true180  touchscreen-inverted-y: true181  touchscreen-swapped-x-y: true182 183  trackpad:184    type: object185    description: Represents all channels associated with the trackpad.186 187    properties:188      azoteq,channel-select:189        $ref: /schemas/types.yaml#/definitions/uint32-array190        minItems: 1191        maxItems: 12192        items:193          minimum: 0194          maximum: 13195        description:196          Specifies the order of the channels that participate in the trackpad.197          Specify 255 to omit a given channel for the purpose of mapping a non-198          rectangular trackpad.199 200      azoteq,num-rows:201        $ref: /schemas/types.yaml#/definitions/uint32202        minimum: 1203        maximum: 12204        description: Specifies the number of rows that comprise the trackpad.205 206      azoteq,num-cols:207        $ref: /schemas/types.yaml#/definitions/uint32208        minimum: 1209        maximum: 12210        description: Specifies the number of columns that comprise the trackpad.211 212      azoteq,top-speed:213        $ref: /schemas/types.yaml#/definitions/uint32214        multipleOf: 4215        minimum: 0216        maximum: 1020217        description:218          Specifies the speed (in coordinates traveled per conversion) after219          which coordinate filtering is no longer applied.220 221      azoteq,bottom-speed:222        $ref: /schemas/types.yaml#/definitions/uint32223        minimum: 0224        maximum: 255225        description:226          Specifies the speed (in coordinates traveled per conversion) after227          which coordinate filtering is linearly reduced.228 229      azoteq,use-prox:230        type: boolean231        description:232          Directs the trackpad to respond to the proximity states of the233          selected channels instead of their corresponding touch states.234          Note the trackpad cannot report granular coordinates during a235          state of proximity.236 237    patternProperties:238      "^azoteq,lower-cal-(x|y)$":239        $ref: /schemas/types.yaml#/definitions/uint32240        minimum: 0241        maximum: 255242        description: Specifies the trackpad's lower starting points.243 244      "^azoteq,upper-cal-(x|y)$":245        $ref: /schemas/types.yaml#/definitions/uint32246        minimum: 0247        maximum: 255248        description: Specifies the trackpad's upper starting points.249 250      "^event-(press|tap|(swipe|flick)-(x|y)-(pos|neg))$":251        type: object252        $ref: input.yaml#253        description:254          Represents a press or gesture event reported by the trackpad. Specify255          'linux,code' under the press event to report absolute coordinates.256 257        properties:258          linux,code: true259 260          azoteq,gesture-angle-tighten:261            type: boolean262            description:263              Limits the tangent of the gesture angle to 0.5 (axial gestures264              only). If specified in one direction, the effect is applied in265              either direction.266 267          azoteq,gesture-max-ms:268            multipleOf: 16269            minimum: 0270            maximum: 4080271            description:272              Specifies the length of time (in ms) within which a tap, swipe273              or flick gesture must be completed in order to be acknowledged274              by the device. The number specified for any one swipe or flick275              gesture applies to all other swipe or flick gestures.276 277          azoteq,gesture-min-ms:278            multipleOf: 16279            minimum: 0280            maximum: 4080281            description:282              Specifies the length of time (in ms) for which a tap gesture must283              be held in order to be acknowledged by the device.284 285          azoteq,gesture-dist:286            $ref: /schemas/types.yaml#/definitions/uint32287            minimum: 0288            maximum: 65535289            description:290              Specifies the distance (in coordinates) across which a swipe or291              flick gesture must travel in order to be acknowledged by the292              device. The number specified for any one swipe or flick gesture293              applies to all remaining swipe or flick gestures.294 295              For tap gestures, this property specifies the distance from the296              original point of contact across which the contact is permitted297              to travel before the gesture is rejected by the device.298 299          azoteq,gpio-select:300            $ref: /schemas/types.yaml#/definitions/uint32-array301            minItems: 1302            maxItems: 3303            items:304              minimum: 0305              maximum: 2306            description: |307              Specifies one or more GPIO mapped to the event as follows:308              0: GPIO0309              1: GPIO3310              2: GPIO4311 312              Note that although multiple events can be mapped to a single313              GPIO, they must all be of the same type (proximity, touch or314              trackpad gesture).315 316        additionalProperties: false317 318    required:319      - azoteq,channel-select320 321    additionalProperties: false322 323patternProperties:324  "^cycle-[0-9]$":325    type: object326    description: Represents a conversion cycle serving two sensing channels.327 328    properties:329      azoteq,conv-period:330        $ref: /schemas/types.yaml#/definitions/uint32331        minimum: 0332        maximum: 255333        description: Specifies the cycle's conversion period.334 335      azoteq,conv-frac:336        $ref: /schemas/types.yaml#/definitions/uint32337        minimum: 0338        maximum: 255339        description: Specifies the cycle's conversion frequency fraction.340 341      azoteq,tx-enable:342        $ref: /schemas/types.yaml#/definitions/uint32-array343        minItems: 1344        maxItems: 9345        items:346          minimum: 0347          maximum: 8348        description: Specifies the CTx pin(s) associated with the cycle.349 350      azoteq,rx-float-inactive:351        type: boolean352        description: Floats any inactive CRx pins instead of grounding them.353 354      azoteq,dead-time-enable:355        type: boolean356        description:357          Increases the denominator of the conversion frequency formula by one.358 359      azoteq,tx-freq-fosc:360        type: boolean361        description:362          Fixes the conversion frequency to that of the device's core clock.363 364      azoteq,vbias-enable:365        type: boolean366        description: Enables the bias voltage for use during inductive sensing.367 368      azoteq,sense-mode:369        $ref: /schemas/types.yaml#/definitions/uint32370        enum: [0, 1, 2, 3]371        description: |372          Specifies the cycle's sensing mode as follows:373          0: None374          1: Self capacitive375          2: Mutual capacitive376          3: Inductive377 378          Note that in the case of IQS7222A, cycles 5 and 6 are restricted to379          Hall-effect sensing.380 381      azoteq,iref-enable:382        type: boolean383        description:384          Enables the current reference for use during various sensing modes.385 386      azoteq,iref-level:387        $ref: /schemas/types.yaml#/definitions/uint32388        minimum: 0389        maximum: 15390        description: Specifies the cycle's current reference level.391 392      azoteq,iref-trim:393        $ref: /schemas/types.yaml#/definitions/uint32394        minimum: 0395        maximum: 15396        description: Specifies the cycle's current reference trim.397 398    dependencies:399      azoteq,iref-level: ["azoteq,iref-enable"]400      azoteq,iref-trim: ["azoteq,iref-enable"]401 402    additionalProperties: false403 404  "^channel-([0-9]|1[0-9])$":405    type: object406    description:407      Represents a single sensing channel. A channel is active if defined and408      inactive otherwise.409 410      Note that in the case of IQS7222A, channels 10 and 11 are restricted to411      Hall-effect sensing with events reported on channel 10 only.412 413    properties:414      azoteq,ulp-allow:415        type: boolean416        description:417          Permits the device to enter ultra-low-power mode while the channel418          lies in a state of touch or proximity.419 420      azoteq,ref-select:421        $ref: /schemas/types.yaml#/definitions/uint32422        minimum: 0423        maximum: 9424        description: Specifies a separate reference channel to be followed.425 426      azoteq,ref-weight:427        $ref: /schemas/types.yaml#/definitions/uint32428        minimum: 0429        maximum: 65535430        description: Specifies the relative weight of the reference channel.431 432      azoteq,use-prox:433        type: boolean434        description:435          Activates the reference channel in response to proximity events436          instead of touch events.437 438      azoteq,counts-filt-enable:439        type: boolean440        description: Applies counts filtering to the channel.441 442      azoteq,ati-band:443        $ref: /schemas/types.yaml#/definitions/uint32444        enum: [0, 1, 2, 3]445        description: |446          Specifies the channel's ATI band as a fraction of its ATI target as447          follows:448          0: 1/16449          1: 1/8450          2: 1/4451          3: 1/2452 453      azoteq,global-halt:454        type: boolean455        description:456          Specifies that the channel's long-term average is to freeze if any457          other participating channel lies in a proximity or touch state.458 459      azoteq,invert-enable:460        type: boolean461        description:462          Inverts the polarity of the states reported for proximity and touch463          events relative to their respective thresholds.464 465      azoteq,dual-direction:466        type: boolean467        description:468          Specifies that the channel's long-term average is to freeze in the469          presence of either increasing or decreasing counts, thereby permit-470          ting events to be reported in either direction.471 472      azoteq,rx-enable:473        $ref: /schemas/types.yaml#/definitions/uint32-array474        minItems: 1475        maxItems: 4476        items:477          minimum: 0478          maximum: 7479        description: Specifies the CRx pin(s) associated with the channel.480 481      azoteq,samp-cap-double:482        type: boolean483        description: Doubles the sampling capacitance from 40 pF to 80 pF.484 485      azoteq,vref-half:486        type: boolean487        description: Halves the discharge threshold from 1.0 V to 0.5 V.488 489      azoteq,proj-bias:490        $ref: /schemas/types.yaml#/definitions/uint32491        enum: [0, 1, 2, 3]492        description: |493          Specifies the bias current applied during mutual (projected)494          capacitive sensing as follows:495          0: 2 uA496          1: 5 uA497          2: 7 uA498          3: 10 uA499 500      azoteq,ati-target:501        $ref: /schemas/types.yaml#/definitions/uint32502        multipleOf: 8503        minimum: 0504        maximum: 2040505        description: Specifies the channel's ATI target.506 507      azoteq,ati-base:508        $ref: /schemas/types.yaml#/definitions/uint32509        multipleOf: 16510        minimum: 0511        maximum: 496512        description: Specifies the channel's ATI base.513 514      azoteq,ati-mode:515        $ref: /schemas/types.yaml#/definitions/uint32516        enum: [0, 1, 2, 3, 4, 5]517        description: |518          Specifies the channel's ATI mode as follows:519          0: Disabled520          1: Compensation521          2: Compensation divider522          3: Fine fractional divider523          4: Coarse fractional divider524          5: Full525 526      azoteq,ati-frac-div-fine:527        $ref: /schemas/types.yaml#/definitions/uint32528        minimum: 0529        maximum: 31530        description: Specifies the channel's ATI fine fractional divider.531 532      azoteq,ati-frac-mult-coarse:533        $ref: /schemas/types.yaml#/definitions/uint32534        minimum: 0535        maximum: 15536        description: Specifies the channel's ATI coarse fractional multiplier.537 538      azoteq,ati-frac-div-coarse:539        $ref: /schemas/types.yaml#/definitions/uint32540        minimum: 0541        maximum: 31542        description: Specifies the channel's ATI coarse fractional divider.543 544      azoteq,ati-comp-div:545        $ref: /schemas/types.yaml#/definitions/uint32546        minimum: 0547        maximum: 31548        description: Specifies the channel's ATI compensation divider.549 550      azoteq,ati-comp-select:551        $ref: /schemas/types.yaml#/definitions/uint32552        minimum: 0553        maximum: 1023554        description: Specifies the channel's ATI compensation selection.555 556      azoteq,debounce-enter:557        $ref: /schemas/types.yaml#/definitions/uint32558        minimum: 0559        maximum: 15560        description: Specifies the channel's debounce entrance factor.561 562      azoteq,debounce-exit:563        $ref: /schemas/types.yaml#/definitions/uint32564        minimum: 0565        maximum: 15566        description: Specifies the channel's debounce exit factor.567 568    patternProperties:569      "^event-(prox|touch)$":570        type: object571        $ref: input.yaml#572        description:573          Represents a proximity or touch event reported by the channel.574 575        properties:576          azoteq,gpio-select:577            $ref: /schemas/types.yaml#/definitions/uint32-array578            minItems: 1579            maxItems: 3580            items:581              minimum: 0582              maximum: 2583            description: |584              Specifies one or more GPIO mapped to the event as follows:585              0: GPIO0586              1: GPIO3587              2: GPIO4588 589              Note that although multiple events can be mapped to a single590              GPIO, they must all be of the same type (proximity, touch or591              slider/trackpad gesture).592 593          azoteq,thresh:594            $ref: /schemas/types.yaml#/definitions/uint32595            description:596              Specifies the threshold for the event. Valid entries range from597              0-127 and 0-255 for proximity and touch events, respectively.598 599          azoteq,hyst:600            $ref: /schemas/types.yaml#/definitions/uint32601            minimum: 0602            maximum: 255603            description:604              Specifies the hysteresis for the event (touch events only).605 606          azoteq,timeout-press-ms:607            multipleOf: 500608            minimum: 0609            maximum: 127500610            description:611              Specifies the length of time (in ms) to wait before automatically612              releasing a press event. Specify zero to allow the press state to613              persist indefinitely.614 615              The IQS7222B does not feature channel-specific timeouts; the time-616              out specified for any one channel applies to all channels.617 618          linux,code: true619 620          linux,input-type:621            enum: [1, 5]622            default: 1623            description:624              Specifies whether the event is to be interpreted as a key (1)625              or a switch (5).626 627        additionalProperties: false628 629    dependencies:630      azoteq,ref-weight: ["azoteq,ref-select"]631      azoteq,use-prox: ["azoteq,ref-select"]632 633    additionalProperties: false634 635  "^slider-[0-1]$":636    type: object637    description: Represents a slider comprising three or four channels.638 639    properties:640      azoteq,channel-select:641        $ref: /schemas/types.yaml#/definitions/uint32-array642        minItems: 3643        maxItems: 4644        items:645          minimum: 0646          maximum: 9647        description:648          Specifies the order of the channels that participate in the slider.649 650      azoteq,slider-size:651        $ref: /schemas/types.yaml#/definitions/uint32652        minimum: 1653        maximum: 65535654        description:655          Specifies the slider's one-dimensional resolution, equal to the656          maximum coordinate plus one.657 658      azoteq,lower-cal:659        $ref: /schemas/types.yaml#/definitions/uint32660        minimum: 0661        maximum: 255662        description: Specifies the slider's lower starting point.663 664      azoteq,upper-cal:665        $ref: /schemas/types.yaml#/definitions/uint32666        minimum: 0667        maximum: 255668        description: Specifies the slider's upper starting point.669 670      azoteq,top-speed:671        $ref: /schemas/types.yaml#/definitions/uint32672        minimum: 0673        maximum: 65535674        description:675          Specifies the speed (in coordinates traveled per conversion) after676          which coordinate filtering is no longer applied.677 678      azoteq,bottom-speed:679        $ref: /schemas/types.yaml#/definitions/uint32680        minimum: 0681        maximum: 255682        description:683          Specifies the speed (in coordinates traveled per conversion) after684          which coordinate filtering is linearly reduced.685 686      azoteq,bottom-beta:687        $ref: /schemas/types.yaml#/definitions/uint32688        minimum: 0689        maximum: 7690        description:691          Specifies the coordinate filter damping factor to be applied692          while the speed of movement is below that which is specified693          by azoteq,bottom-speed.694 695      azoteq,static-beta:696        type: boolean697        description:698          Applies the coordinate filter damping factor specified by699          azoteq,bottom-beta regardless of the speed of movement.700 701      azoteq,use-prox:702        type: boolean703        description:704          Directs the slider to respond to the proximity states of the selected705          channels instead of their corresponding touch states. Note the slider706          cannot report granular coordinates during a state of proximity.707 708      linux,axis:709        $ref: /schemas/types.yaml#/definitions/uint32710        description:711          Specifies the absolute axis to which coordinates are mapped. Specify712          ABS_WHEEL to operate the slider as a wheel (IQS7222C only).713 714    patternProperties:715      "^event-(press|tap|(swipe|flick)-(pos|neg))$":716        type: object717        $ref: input.yaml#718        description:719          Represents a press or gesture (IQS7222A only) event reported by720          the slider.721 722        properties:723          linux,code: true724 725          azoteq,gesture-max-ms:726            multipleOf: 16727            minimum: 0728            maximum: 4080729            description:730              Specifies the length of time (in ms) within which a tap, swipe731              or flick gesture must be completed in order to be acknowledged732              by the device. The number specified for any one swipe or flick733              gesture applies to all remaining swipe or flick gestures.734 735          azoteq,gesture-min-ms:736            multipleOf: 16737            minimum: 0738            maximum: 496739            description:740              Specifies the length of time (in ms) for which a tap gesture must741              be held in order to be acknowledged by the device.742 743          azoteq,gesture-dist:744            $ref: /schemas/types.yaml#/definitions/uint32745            multipleOf: 16746            minimum: 0747            maximum: 4080748            description:749              Specifies the distance (in coordinates) across which a swipe or750              flick gesture must travel in order to be acknowledged by the751              device. The number specified for any one swipe or flick gesture752              applies to all remaining swipe or flick gestures.753 754          azoteq,gpio-select:755            $ref: /schemas/types.yaml#/definitions/uint32-array756            minItems: 1757            maxItems: 3758            items:759              minimum: 0760              maximum: 2761            description: |762              Specifies one or more GPIO mapped to the event as follows:763              0: GPIO0764              1: GPIO3765              2: GPIO4766 767              Note that although multiple events can be mapped to a single768              GPIO, they must all be of the same type (proximity, touch or769              slider gesture).770 771        additionalProperties: false772 773    required:774      - azoteq,channel-select775 776    additionalProperties: false777 778  "^gpio-[0-2]$":779    type: object780    description: |781      Represents a GPIO mapped to one or more events as follows:782      gpio-0: GPIO0783      gpio-1: GPIO3784      gpio-2: GPIO4785 786    allOf:787      - $ref: /schemas/pinctrl/pincfg-node.yaml#788 789    properties:790      drive-open-drain: true791 792    additionalProperties: false793 794allOf:795  - $ref: touchscreen/touchscreen.yaml#796 797  - if:798      properties:799        compatible:800          contains:801            enum:802              - azoteq,iqs7222a803              - azoteq,iqs7222b804              - azoteq,iqs7222c805 806    then:807      properties:808        touchscreen-size-x: false809        touchscreen-size-y: false810        touchscreen-inverted-x: false811        touchscreen-inverted-y: false812        touchscreen-swapped-x-y: false813 814        trackpad: false815 816      patternProperties:817        "^channel-([0-9]|1[0-9])$":818          properties:819            azoteq,counts-filt-enable: false820 821  - if:822      properties:823        compatible:824          contains:825            enum:826              - azoteq,iqs7222b827              - azoteq,iqs7222c828 829    then:830      patternProperties:831        "^channel-([0-9]|1[0-9])$":832          properties:833            azoteq,ulp-allow: false834 835  - if:836      properties:837        compatible:838          contains:839            enum:840              - azoteq,iqs7222b841              - azoteq,iqs7222d842 843    then:844      patternProperties:845        "^cycle-[0-9]$":846          properties:847            azoteq,iref-enable: false848 849        "^channel-([0-9]|1[0-9])$":850          properties:851            azoteq,ref-select: false852 853        "^slider-[0-1]$": false854 855  - if:856      properties:857        compatible:858          contains:859            const: azoteq,iqs7222b860 861    then:862      patternProperties:863        "^channel-([0-9]|1[0-9])$":864          patternProperties:865            "^event-(prox|touch)$":866              properties:867                azoteq,gpio-select: false868 869        "^gpio-[0-2]$": false870 871  - if:872      properties:873        compatible:874          contains:875            const: azoteq,iqs7222a876 877    then:878      patternProperties:879        "^channel-([0-9]|1[0-9])$":880          patternProperties:881            "^event-(prox|touch)$":882              properties:883                azoteq,gpio-select:884                  maxItems: 1885                  items:886                    maximum: 0887 888        "^slider-[0-1]$":889          properties:890            azoteq,slider-size:891              multipleOf: 16892              minimum: 16893              maximum: 4080894 895            azoteq,top-speed:896              multipleOf: 4897              maximum: 1020898 899          patternProperties:900            "^event-(press|tap|(swipe|flick)-(pos|neg))$":901              properties:902                azoteq,gpio-select:903                  maxItems: 1904                  items:905                    maximum: 0906 907    else:908      patternProperties:909        "^slider-[0-1]$":910          patternProperties:911            "^event-(press|tap|(swipe|flick)-(pos|neg))$":912              properties:913                azoteq,gesture-max-ms: false914 915                azoteq,gesture-min-ms: false916 917                azoteq,gesture-dist: false918 919required:920  - compatible921  - reg922  - irq-gpios923 924additionalProperties: false925 926examples:927  - |928    #include <dt-bindings/gpio/gpio.h>929    #include <dt-bindings/input/input.h>930 931    i2c {932            #address-cells = <1>;933            #size-cells = <0>;934 935            iqs7222a@44 {936                    compatible = "azoteq,iqs7222a";937                    reg = <0x44>;938                    irq-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;939                    azoteq,lta-beta-lp = <7>;940                    azoteq,lta-beta-np = <8>;941                    azoteq,counts-beta-lp = <2>;942                    azoteq,counts-beta-np = <3>;943                    azoteq,lta-fast-beta-lp = <3>;944                    azoteq,lta-fast-beta-np = <4>;945 946                    cycle-0 {947                            azoteq,conv-period = <5>;948                            azoteq,conv-frac = <127>;949                            azoteq,tx-enable = <1>, <2>, <4>, <5>;950                            azoteq,dead-time-enable;951                            azoteq,sense-mode = <2>;952                    };953 954                    cycle-1 {955                            azoteq,conv-period = <5>;956                            azoteq,conv-frac = <127>;957                            azoteq,tx-enable = <5>;958                            azoteq,dead-time-enable;959                            azoteq,sense-mode = <2>;960                    };961 962                    cycle-2 {963                            azoteq,conv-period = <5>;964                            azoteq,conv-frac = <127>;965                            azoteq,tx-enable = <4>;966                            azoteq,dead-time-enable;967                            azoteq,sense-mode = <2>;968                    };969 970                    cycle-3 {971                            azoteq,conv-period = <5>;972                            azoteq,conv-frac = <127>;973                            azoteq,tx-enable = <2>;974                            azoteq,dead-time-enable;975                            azoteq,sense-mode = <2>;976                    };977 978                    cycle-4 {979                            azoteq,conv-period = <5>;980                            azoteq,conv-frac = <127>;981                            azoteq,tx-enable = <1>;982                            azoteq,dead-time-enable;983                            azoteq,sense-mode = <2>;984                    };985 986                    cycle-5 {987                            azoteq,conv-period = <2>;988                            azoteq,conv-frac = <0>;989                    };990 991                    cycle-6 {992                            azoteq,conv-period = <2>;993                            azoteq,conv-frac = <0>;994                    };995 996                    channel-0 {997                            azoteq,ulp-allow;998                            azoteq,global-halt;999                            azoteq,invert-enable;1000                            azoteq,rx-enable = <3>;1001                            azoteq,ati-target = <800>;1002                            azoteq,ati-base = <208>;1003                            azoteq,ati-mode = <5>;1004                    };1005 1006                    channel-1 {1007                            azoteq,global-halt;1008                            azoteq,invert-enable;1009                            azoteq,rx-enable = <3>;1010                            azoteq,ati-target = <496>;1011                            azoteq,ati-base = <208>;1012                            azoteq,ati-mode = <5>;1013                    };1014 1015                    channel-2 {1016                            azoteq,global-halt;1017                            azoteq,invert-enable;1018                            azoteq,rx-enable = <3>;1019                            azoteq,ati-target = <496>;1020                            azoteq,ati-base = <208>;1021                            azoteq,ati-mode = <5>;1022                    };1023 1024                    channel-3 {1025                            azoteq,global-halt;1026                            azoteq,invert-enable;1027                            azoteq,rx-enable = <3>;1028                            azoteq,ati-target = <496>;1029                            azoteq,ati-base = <208>;1030                            azoteq,ati-mode = <5>;1031                    };1032 1033                    channel-4 {1034                            azoteq,global-halt;1035                            azoteq,invert-enable;1036                            azoteq,rx-enable = <3>;1037                            azoteq,ati-target = <496>;1038                            azoteq,ati-base = <208>;1039                            azoteq,ati-mode = <5>;1040                    };1041 1042                    channel-5 {1043                            azoteq,ulp-allow;1044                            azoteq,global-halt;1045                            azoteq,invert-enable;1046                            azoteq,rx-enable = <6>;1047                            azoteq,ati-target = <800>;1048                            azoteq,ati-base = <144>;1049                            azoteq,ati-mode = <5>;1050                    };1051 1052                    channel-6 {1053                            azoteq,global-halt;1054                            azoteq,invert-enable;1055                            azoteq,rx-enable = <6>;1056                            azoteq,ati-target = <496>;1057                            azoteq,ati-base = <160>;1058                            azoteq,ati-mode = <5>;1059 1060                            event-touch {1061                                    linux,code = <KEY_MUTE>;1062                            };1063                    };1064 1065                    channel-7 {1066                            azoteq,global-halt;1067                            azoteq,invert-enable;1068                            azoteq,rx-enable = <6>;1069                            azoteq,ati-target = <496>;1070                            azoteq,ati-base = <160>;1071                            azoteq,ati-mode = <5>;1072 1073                            event-touch {1074                                    linux,code = <KEY_VOLUMEDOWN>;1075                            };1076                    };1077 1078                    channel-8 {1079                            azoteq,global-halt;1080                            azoteq,invert-enable;1081                            azoteq,rx-enable = <6>;1082                            azoteq,ati-target = <496>;1083                            azoteq,ati-base = <160>;1084                            azoteq,ati-mode = <5>;1085 1086                            event-touch {1087                                    linux,code = <KEY_VOLUMEUP>;1088                            };1089                    };1090 1091                    channel-9 {1092                            azoteq,global-halt;1093                            azoteq,invert-enable;1094                            azoteq,rx-enable = <6>;1095                            azoteq,ati-target = <496>;1096                            azoteq,ati-base = <160>;1097                            azoteq,ati-mode = <5>;1098 1099                            event-touch {1100                                    linux,code = <KEY_POWER>;1101                            };1102                    };1103 1104                    channel-10 {1105                            azoteq,ulp-allow;1106                            azoteq,ati-target = <496>;1107                            azoteq,ati-base = <112>;1108 1109                            event-touch {1110                                    linux,code = <SW_LID>;1111                                    linux,input-type = <EV_SW>;1112                            };1113                    };1114 1115                    channel-11 {1116                            azoteq,ati-target = <496>;1117                            azoteq,ati-base = <112>;1118                    };1119 1120                    slider-0 {1121                            azoteq,channel-select = <1>, <2>, <3>, <4>;1122                            azoteq,slider-size = <4080>;1123                            azoteq,upper-cal = <50>;1124                            azoteq,lower-cal = <30>;1125                            azoteq,top-speed = <200>;1126                            azoteq,bottom-speed = <1>;1127                            azoteq,bottom-beta = <3>;1128 1129                            event-tap {1130                                    linux,code = <KEY_PLAYPAUSE>;1131                                    azoteq,gesture-max-ms = <400>;1132                                    azoteq,gesture-min-ms = <32>;1133                            };1134 1135                            event-flick-pos {1136                                    linux,code = <KEY_NEXTSONG>;1137                                    azoteq,gesture-max-ms = <800>;1138                                    azoteq,gesture-dist = <800>;1139                            };1140 1141                            event-flick-neg {1142                                    linux,code = <KEY_PREVIOUSSONG>;1143                            };1144                    };1145            };1146    };1147 1148...1149