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