Path: blob/master/Documentation/devicetree/bindings/input/iqs626a.yaml
26308 views
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)1%YAML 1.22---3$id: http://devicetree.org/schemas/input/iqs626a.yaml#4$schema: http://devicetree.org/meta-schemas/core.yaml#56title: Azoteq IQS626A Capacitive Touch Controller78maintainers:9- Jeff LaBundy <jeff@labundy.com>1011description: |12The Azoteq IQS626A is a 14-channel capacitive touch controller that features13additional Hall-effect and inductive sensing capabilities.1415Link to datasheet: https://www.azoteq.com/1617allOf:18- $ref: touchscreen/touchscreen.yaml#1920properties:21compatible:22const: azoteq,iqs626a2324reg:25maxItems: 12627interrupts:28maxItems: 12930"#address-cells":31const: 13233"#size-cells":34const: 03536azoteq,suspend-mode:37$ref: /schemas/types.yaml#/definitions/uint3238enum: [0, 1, 2, 3]39default: 040description: |41Specifies the power mode during suspend as follows:420: Automatic (same as normal runtime, i.e. suspend/resume disabled)431: Low power (all sensing at a reduced reporting rate)442: Ultra-low power (ULP channel proximity sensing)453: Halt (no sensing)4647azoteq,clk-div:48type: boolean49description: Divides the device's core clock by a factor of 4.5051azoteq,ulp-enable:52type: boolean53description:54Permits the device to automatically enter ultra-low-power mode from low-55power mode.5657azoteq,ulp-update:58$ref: /schemas/types.yaml#/definitions/uint3259enum: [0, 1, 2, 3, 4, 5, 6, 7]60default: 361description: |62Specifies the rate at which the trackpad, generic and Hall channels are63updated during ultra-low-power mode as follows:640: 8651: 13662: 28673: 54684: 89695: 135706: 190717: 2567273azoteq,ati-band-disable:74type: boolean75description: Disables the ATI band check.7677azoteq,ati-lp-only:78type: boolean79description: Limits automatic ATI to low-power mode.8081azoteq,gpio3-select:82$ref: /schemas/types.yaml#/definitions/uint3283enum: [0, 1, 2, 3, 4, 5, 6, 7]84default: 185description: |86Selects the channel or group of channels for which the GPIO3 pin87represents touch state as follows:880: None891: ULP channel902: Trackpad913: Trackpad924: Generic channel 0935: Generic channel 1946: Generic channel 2957: Hall channel9697azoteq,reseed-select:98$ref: /schemas/types.yaml#/definitions/uint3299enum: [0, 1, 2, 3]100default: 0101description: |102Specifies the event(s) that prompt the device to reseed (i.e. reset the103long-term average) of an associated channel as follows:1040: None1051: Proximity1062: Proximity or touch1073: Proximity, touch or deep touch108109azoteq,thresh-extend:110type: boolean111description: Multiplies all touch and deep-touch thresholds by 4.112113azoteq,tracking-enable:114type: boolean115description:116Enables all associated channels to track their respective reference117channels.118119azoteq,reseed-offset:120type: boolean121description:122Applies an 8-count offset to all long-term averages upon either ATI or123reseed events.124125azoteq,rate-np-ms:126minimum: 0127maximum: 255128default: 150129description: Specifies the report rate (in ms) during normal-power mode.130131azoteq,rate-lp-ms:132minimum: 0133maximum: 255134default: 150135description: Specifies the report rate (in ms) during low-power mode.136137azoteq,rate-ulp-ms:138multipleOf: 16139minimum: 0140maximum: 4080141default: 0142description: Specifies the report rate (in ms) during ultra-low-power mode.143144azoteq,timeout-pwr-ms:145multipleOf: 512146minimum: 0147maximum: 130560148default: 2560149description:150Specifies the length of time (in ms) to wait for an event before moving151from normal-power mode to low-power mode, or (if 'azoteq,ulp-enable' is152present) from low-power mode to ultra-low-power mode.153154azoteq,timeout-lta-ms:155multipleOf: 512156minimum: 0157maximum: 130560158default: 40960159description:160Specifies the length of time (in ms) to wait before resetting the long-161term average of all channels. Specify the maximum timeout to disable it162altogether.163164touchscreen-inverted-x: true165touchscreen-inverted-y: true166touchscreen-swapped-x-y: true167168patternProperties:169"^ulp-0|generic-[0-2]|hall$":170type: object171description:172Represents a single sensing channel. A channel is active if defined and173inactive otherwise.174175properties:176azoteq,ati-exclude:177type: boolean178description:179Prevents the channel from participating in an ATI event that is180manually triggered during initialization.181182azoteq,reseed-disable:183type: boolean184description:185Prevents the channel from being reseeded if the long-term average186timeout (defined in 'azoteq,timeout-lta') expires.187188azoteq,meas-cap-decrease:189type: boolean190description:191Decreases the internal measurement capacitance from 60 pF to 15 pF.192193azoteq,rx-inactive:194$ref: /schemas/types.yaml#/definitions/uint32195enum: [0, 1, 2]196default: 0197description: |198Specifies how inactive CRX pins are to be terminated as follows:1990: VSS2001: Floating2012: VREG (generic channels only)202203azoteq,linearize:204type: boolean205description:206Enables linearization of the channel's counts (generic and Hall207channels) or inverts the polarity of the channel's proximity or208touch states (ULP channel).209210azoteq,dual-direction:211type: boolean212description:213Specifies that the channel's long-term average is to freeze in the214presence of either increasing or decreasing counts, thereby permit-215ting events to be reported in either direction.216217azoteq,filt-disable:218type: boolean219description: Disables raw count filtering for the channel.220221azoteq,ati-mode:222$ref: /schemas/types.yaml#/definitions/uint32223enum: [0, 1, 2, 3]224description: |225Specifies the channel's ATI mode as follows:2260: Disabled2271: Semi-partial2282: Partial2293: Full230231The default value is a function of the channel and the device's reset232user interface (RUI); reference the datasheet for further information233about the available RUI options.234235azoteq,ati-base:236$ref: /schemas/types.yaml#/definitions/uint32237enum: [75, 100, 150, 200]238description:239Specifies the channel's ATI base. The default value is a function240of the channel and the device's RUI.241242azoteq,ati-target:243$ref: /schemas/types.yaml#/definitions/uint32244multipleOf: 32245minimum: 0246maximum: 2016247description:248Specifies the channel's ATI target. The default value is a function249of the channel and the device's RUI.250251azoteq,cct-increase:252$ref: /schemas/types.yaml#/definitions/uint32253minimum: 0254maximum: 16255default: 0256description:257Specifies the degree to which the channel's charge cycle time is to258be increased, with 0 representing no increase. The maximum value is259limited to 4 in the case of the ULP channel, and the property is un-260available entirely in the case of the Hall channel.261262azoteq,proj-bias:263$ref: /schemas/types.yaml#/definitions/uint32264enum: [0, 1, 2, 3]265default: 0266description: |267Specifies the bias current applied during projected-capacitance268sensing as follows:2690: 2.5 uA2701: 5 uA2712: 10 uA2723: 20 uA273274This property is unavailable in the case of the Hall channel.275276azoteq,sense-freq:277$ref: /schemas/types.yaml#/definitions/uint32278enum: [0, 1, 2, 3]279description: |280Specifies the channel's sensing frequency as follows (parenthesized281numbers represent the frequency if 'azoteq,clk-div' is present):2820: 4 MHz (1 MHz)2831: 2 MHz (500 kHz)2842: 1 MHz (250 kHz)2853: 500 kHz (125 kHz)286287This property is unavailable in the case of the Hall channel. The288default value is a function of the channel and the device's RUI.289290azoteq,ati-band-tighten:291type: boolean292description:293Tightens the ATI band from 1/8 to 1/16 of the desired target (ULP and294generic channels only).295296azoteq,proj-enable:297type: boolean298description: Enables projected-capacitance sensing (ULP channel only).299300azoteq,filt-str-np-cnt:301$ref: /schemas/types.yaml#/definitions/uint32302enum: [0, 1, 2, 3]303default: 0304description:305Specifies the raw count filter strength during normal-power mode (ULP306and generic channels only).307308azoteq,filt-str-lp-cnt:309$ref: /schemas/types.yaml#/definitions/uint32310enum: [0, 1, 2, 3]311default: 0312description:313Specifies the raw count filter strength during low-power mode (ULP and314generic channels only).315316azoteq,filt-str-np-lta:317$ref: /schemas/types.yaml#/definitions/uint32318enum: [0, 1, 2, 3]319default: 0320description:321Specifies the long-term average filter strength during normal-power322mode (ULP and generic channels only).323324azoteq,filt-str-lp-lta:325$ref: /schemas/types.yaml#/definitions/uint32326enum: [0, 1, 2, 3]327default: 0328description:329Specifies the long-term average filter strength during low-power mode330(ULP and generic channels only).331332azoteq,rx-enable:333$ref: /schemas/types.yaml#/definitions/uint32-array334minItems: 1335maxItems: 8336items:337minimum: 0338maximum: 7339description:340Specifies the CRX pin(s) associated with the channel.341342This property is unavailable in the case of the Hall channel. The343default value is a function of the channel and the device's RUI.344345azoteq,tx-enable:346$ref: /schemas/types.yaml#/definitions/uint32-array347minItems: 1348maxItems: 8349items:350minimum: 0351maximum: 7352description:353Specifies the TX pin(s) associated with the channel.354355This property is unavailable in the case of the Hall channel. The356default value is a function of the channel and the device's RUI.357358azoteq,local-cap-size:359$ref: /schemas/types.yaml#/definitions/uint32360enum: [0, 1, 2, 3, 4]361default: 0362description: |363Specifies the capacitance to be added to the channel as follows:3640: 0 pF3651: 0.5 pF3662: 1.0 pF3673: 1.5 pF3684: 2.0 pF369370This property is unavailable in the case of the ULP or Hall channels.371372azoteq,sense-mode:373$ref: /schemas/types.yaml#/definitions/uint32374enum: [0, 1, 8, 9, 12, 14, 15]375description: |376Specifies the channel's sensing mode as follows:3770: Self capacitance3781: Projected capacitance3798: Self inductance3809: Mutual inductance38112: External38214: Hall effect38315: Temperature384385This property is unavailable in the case of the ULP or Hall channels.386The default value is a function of the channel and the device's RUI.387388azoteq,tx-freq:389$ref: /schemas/types.yaml#/definitions/uint32390enum: [0, 1, 2, 3]391default: 0392description: |393Specifies the inductive sensing excitation frequency as follows394(parenthesized numbers represent the frequency if 'azoteq,clk-div'395is present):3960: 16 MHz (4 MHz)3971: 8 MHz (2 MHz)3982: 4 MHz (1 MHz)3993: 2 MHz (500 kHz)400401This property is unavailable in the case of the ULP or Hall channels.402403azoteq,invert-enable:404type: boolean405description:406Inverts the polarity of the states reported for proximity, touch and407deep-touch events relative to their respective thresholds (generic408channels only).409410azoteq,comp-disable:411type: boolean412description:413Disables compensation for the channel (generic channels only).414415azoteq,static-enable:416type: boolean417description:418Enables the static front-end for the channel (generic channels only).419420azoteq,assoc-select:421$ref: /schemas/types.yaml#/definitions/string-array422minItems: 1423maxItems: 6424items:425enum:426- ulp-0427- trackpad-3x2428- trackpad-3x3429- generic-0430- generic-1431- generic-2432- hall433description:434Specifies the associated channels for which the channel serves as a435reference channel. By default, no channels are selected. This prop-436erty is only available for the generic channels.437438azoteq,assoc-weight:439$ref: /schemas/types.yaml#/definitions/uint32440minimum: 0441maximum: 255442default: 0443description:444Specifies the channel's impact weight if it acts as an associated445channel (0 = 0% impact, 255 = 200% impact). This property is only446available for the generic channels.447448patternProperties:449"^event-(prox|touch|deep)(-alt)?$":450type: object451$ref: input.yaml#452description:453Represents a proximity, touch or deep-touch event reported by the454channel in response to a decrease in counts. Node names suffixed with455'-alt' instead correspond to an increase in counts.456457By default, the long-term average tracks an increase in counts such458that only events corresponding to a decrease in counts are reported459(refer to the datasheet for more information).460461Specify 'azoteq,dual-direction' to freeze the long-term average when462the counts increase or decrease such that events of either direction463can be reported. Alternatively, specify 'azoteq,invert-enable' to in-464vert the polarity of the states reported by the channel.465466Complementary events (e.g. event-touch and event-touch-alt) can both467be present and specify different key or switch codes, but not differ-468ent thresholds or hysteresis (if applicable).469470Proximity events are unavailable in the case of the Hall channel, and471deep-touch events are only available for the generic channels. Unless472otherwise specified, default values are a function of the channel and473the device's RUI.474475properties:476azoteq,thresh:477$ref: /schemas/types.yaml#/definitions/uint32478minimum: 0479maximum: 255480description: Specifies the threshold for the event.481482azoteq,hyst:483$ref: /schemas/types.yaml#/definitions/uint32484minimum: 0485maximum: 15486description:487Specifies the hysteresis for the event (touch and deep-touch488events only).489490linux,code: true491492linux,input-type:493enum: [1, 5]494description:495Specifies whether the event is to be interpreted as a key (1) or496a switch (5). By default, Hall-channel events are interpreted as497switches and all others are interpreted as keys.498499additionalProperties: false500501dependencies:502azoteq,assoc-weight: ["azoteq,assoc-select"]503504additionalProperties: false505506"^trackpad-3x[2-3]$":507type: object508$ref: input.yaml#509description:510Represents all channels associated with the trackpad. The channels are511collectively active if the trackpad is defined and inactive otherwise.512513properties:514azoteq,ati-exclude:515type: boolean516description:517Prevents the trackpad channels from participating in an ATI event518that is manually triggered during initialization.519520azoteq,reseed-disable:521type: boolean522description:523Prevents the trackpad channels from being reseeded if the long-term524average timeout (defined in 'azoteq,timeout-lta') expires.525526azoteq,meas-cap-decrease:527type: boolean528description:529Decreases the internal measurement capacitance from 60 pF to 15 pF.530531azoteq,rx-inactive:532$ref: /schemas/types.yaml#/definitions/uint32533enum: [0, 1]534default: 0535description: |536Specifies how inactive CRX pins are to be terminated as follows:5370: VSS5381: Floating539540azoteq,linearize:541type: boolean542description: Inverts the polarity of the trackpad's touch state.543544azoteq,dual-direction:545type: boolean546description:547Specifies that the trackpad's long-term averages are to freeze in548the presence of either increasing or decreasing counts, thereby549permitting events to be reported in either direction.550551azoteq,filt-disable:552type: boolean553description: Disables raw count filtering for the trackpad channels.554555azoteq,ati-mode:556$ref: /schemas/types.yaml#/definitions/uint32557enum: [0, 1, 2, 3]558default: 0559description: |560Specifies the trackpad's ATI mode as follows:5610: Disabled5621: Semi-partial5632: Partial5643: Full565566azoteq,ati-target:567$ref: /schemas/types.yaml#/definitions/uint32568multipleOf: 32569minimum: 0570maximum: 2016571default: 0572description: Specifies the trackpad's ATI target.573574azoteq,cct-increase:575$ref: /schemas/types.yaml#/definitions/uint32576minimum: 0577maximum: 4578default: 0579description:580Specifies the degree to which the trackpad's charge cycle time is to581be increased, with 0 representing no increase.582583azoteq,proj-bias:584$ref: /schemas/types.yaml#/definitions/uint32585enum: [0, 1, 2, 3]586default: 0587description: |588Specifies the bias current applied during projected-capacitance589sensing as follows:5900: 2.5 uA5911: 5 uA5922: 10 uA5933: 20 uA594595azoteq,sense-freq:596$ref: /schemas/types.yaml#/definitions/uint32597enum: [0, 1, 2, 3]598default: 0599description: |600Specifies the trackpad's sensing frequency as follows (parenthesized601numbers represent the frequency if 'azoteq,clk-div' is present):6020: 4 MHz (1 MHz)6031: 2 MHz (500 kHz)6042: 1 MHz (250 kHz)6053: 500 kHz (125 kHz)606607azoteq,ati-band-tighten:608type: boolean609description:610Tightens the ATI band from 1/8 to 1/16 of the desired target.611612azoteq,hyst:613$ref: /schemas/types.yaml#/definitions/uint32614minimum: 0615maximum: 15616default: 0617description: Specifies the trackpad's touch hysteresis.618619azoteq,lta-update:620$ref: /schemas/types.yaml#/definitions/uint32621enum: [0, 1, 2, 3, 4, 5, 6, 7]622default: 0623description: |624Specifies the update rate of the trackpad's long-term average during625ultra-low-power mode as follows:6260: 26271: 46282: 86293: 166304: 326315: 646326: 1286337: 255634635azoteq,filt-str-trackpad:636$ref: /schemas/types.yaml#/definitions/uint32637enum: [0, 1, 2, 3]638default: 0639description: Specifies the trackpad coordinate filter strength.640641azoteq,filt-str-np-cnt:642$ref: /schemas/types.yaml#/definitions/uint32643enum: [0, 1, 2, 3]644default: 0645description:646Specifies the raw count filter strength during normal-power mode.647648azoteq,filt-str-lp-cnt:649$ref: /schemas/types.yaml#/definitions/uint32650enum: [0, 1, 2, 3]651default: 0652description:653Specifies the raw count filter strength during low-power mode.654655linux,keycodes:656minItems: 1657maxItems: 6658description: |659Specifies the numeric keycodes associated with each available gesture660in the following order (enter 0 for unused gestures):6610: Positive flick or swipe in X direction6621: Negative flick or swipe in X direction6632: Positive flick or swipe in Y direction6643: Negative flick or swipe in Y direction6654: Tap6665: Hold667668azoteq,gesture-swipe:669type: boolean670description:671Directs the device to interpret axial gestures as a swipe (finger672remains on trackpad) instead of a flick (finger leaves trackpad).673674azoteq,timeout-tap-ms:675multipleOf: 16676minimum: 0677maximum: 4080678default: 0679description:680Specifies the length of time (in ms) within which a trackpad touch681must be released in order to be interpreted as a tap.682683azoteq,timeout-swipe-ms:684multipleOf: 16685minimum: 0686maximum: 4080687default: 0688description:689Specifies the length of time (in ms) within which an axial gesture690must be completed in order to be interpreted as a flick or swipe.691692azoteq,thresh-swipe:693$ref: /schemas/types.yaml#/definitions/uint32694minimum: 0695maximum: 255696default: 0697description:698Specifies the number of points across which an axial gesture must699travel in order to be interpreted as a flick or swipe.700701patternProperties:702"^channel-[0-8]$":703type: object704description: Represents a single trackpad channel.705706properties:707azoteq,thresh:708$ref: /schemas/types.yaml#/definitions/uint32709minimum: 0710maximum: 255711default: 0712description: Specifies the threshold for the channel.713714azoteq,ati-base:715$ref: /schemas/types.yaml#/definitions/uint32716minimum: 45717maximum: 300718default: 45719description: Specifies the channel's ATI base.720721additionalProperties: false722723dependencies:724azoteq,gesture-swipe: ["linux,keycodes"]725azoteq,timeout-tap-ms: ["linux,keycodes"]726azoteq,timeout-swipe-ms: ["linux,keycodes"]727azoteq,thresh-swipe: ["linux,keycodes"]728729additionalProperties: false730731required:732- compatible733- reg734- interrupts735- "#address-cells"736- "#size-cells"737738additionalProperties: false739740examples:741- |742#include <dt-bindings/input/input.h>743#include <dt-bindings/interrupt-controller/irq.h>744745i2c {746#address-cells = <1>;747#size-cells = <0>;748749touch@44 {750#address-cells = <1>;751#size-cells = <0>;752753compatible = "azoteq,iqs626a";754reg = <0x44>;755interrupt-parent = <&gpio>;756interrupts = <17 IRQ_TYPE_LEVEL_LOW>;757758azoteq,rate-np-ms = <16>;759azoteq,rate-lp-ms = <160>;760761azoteq,timeout-pwr-ms = <2560>;762azoteq,timeout-lta-ms = <32768>;763764ulp-0 {765azoteq,meas-cap-decrease;766767azoteq,ati-base = <75>;768azoteq,ati-target = <1024>;769770azoteq,rx-enable = <2>, <3>, <4>,771<5>, <6>, <7>;772773event-prox {774linux,code = <KEY_POWER>;775};776};777778trackpad-3x3 {779azoteq,filt-str-np-cnt = <1>;780azoteq,filt-str-lp-cnt = <1>;781782azoteq,hyst = <4>;783784azoteq,ati-mode = <3>;785azoteq,ati-target = <512>;786787azoteq,proj-bias = <1>;788azoteq,sense-freq = <2>;789790linux,keycodes = <KEY_VOLUMEUP>,791<KEY_VOLUMEDOWN>,792<KEY_NEXTSONG>,793<KEY_PREVIOUSSONG>,794<KEY_PLAYPAUSE>,795<KEY_STOPCD>;796797azoteq,gesture-swipe;798azoteq,timeout-swipe-ms = <800>;799azoteq,timeout-tap-ms = <400>;800azoteq,thresh-swipe = <40>;801802channel-0 {803azoteq,thresh = <35>;804azoteq,ati-base = <195>;805};806807channel-1 {808azoteq,thresh = <40>;809azoteq,ati-base = <195>;810};811812channel-2 {813azoteq,thresh = <40>;814azoteq,ati-base = <195>;815};816817channel-3 {818azoteq,thresh = <38>;819azoteq,ati-base = <195>;820};821822channel-4 {823azoteq,thresh = <33>;824azoteq,ati-base = <195>;825};826827channel-5 {828azoteq,thresh = <38>;829azoteq,ati-base = <195>;830};831832channel-6 {833azoteq,thresh = <35>;834azoteq,ati-base = <195>;835};836837channel-7 {838azoteq,thresh = <35>;839azoteq,ati-base = <195>;840};841842channel-8 {843azoteq,thresh = <35>;844azoteq,ati-base = <195>;845};846};847848/*849* Preserve the default register settings for850* the temperature-tracking channel leveraged851* by reset user interface (RUI) 1.852*853* Scalar properties (e.g. ATI mode) are left854* untouched by simply omitting them; boolean855* properties must be specified explicitly as856* needed.857*/858generic-2 {859azoteq,reseed-disable;860azoteq,meas-cap-decrease;861azoteq,dual-direction;862azoteq,comp-disable;863azoteq,static-enable;864};865866hall {867azoteq,reseed-disable;868azoteq,meas-cap-decrease;869870event-touch {871linux,code = <SW_LID>;872};873};874};875};876877...878879880