Message ID | 1606084748-4097-2-git-send-email-jeff@labundy.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Add support for Azoteq IQS626A | expand |
Hi Rob, On Sun, Nov 22, 2020 at 04:39:07PM -0600, Jeff LaBundy wrote: > This patch adds device tree bindings for the Azoteq IQS626A > capacitive touch controller. > > Signed-off-by: Jeff LaBundy <jeff@labundy.com> > --- Just wanted to check in and see if you were OK with this binding. > .../devicetree/bindings/input/iqs626a.yaml | 840 +++++++++++++++++++++ > 1 file changed, 840 insertions(+) > create mode 100644 Documentation/devicetree/bindings/input/iqs626a.yaml > > diff --git a/Documentation/devicetree/bindings/input/iqs626a.yaml b/Documentation/devicetree/bindings/input/iqs626a.yaml > new file mode 100644 > index 0000000..af2f88b > --- /dev/null > +++ b/Documentation/devicetree/bindings/input/iqs626a.yaml > @@ -0,0 +1,840 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/input/iqs626a.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Azoteq IQS626A Capacitive Touch Controller > + > +maintainers: > + - Jeff LaBundy <jeff@labundy.com> > + > +description: | > + The Azoteq IQS626A is a 14-channel capacitive touch controller that features > + additional Hall-effect and inductive sensing capabilities. > + > + Link to datasheet: https://www.azoteq.com/ > + > +properties: > + compatible: > + const: azoteq,iqs626a > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > + azoteq,suspend-mode: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] > + default: 0 > + description: | > + Specifies the power mode during suspend as follows: > + 0: Automatic (same as normal runtime, i.e. suspend/resume disabled) > + 1: Low power (all sensing at a reduced reporting rate) > + 2: Ultra-low power (ULP channel proximity sensing) > + 3: Halt (no sensing) > + > + azoteq,clk-div: > + type: boolean > + description: Divides the device's core clock by a factor of 4. > + > + azoteq,ulp-enable: > + type: boolean > + description: > + Permits the device to automatically enter ultra-low-power mode from low- > + power mode. > + > + azoteq,ulp-update: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3, 4, 5, 6, 7] > + default: 3 > + description: | > + Specifies the rate at which the trackpad, generic and Hall channels are > + updated during ultra-low-power mode as follows: > + 0: 8 > + 1: 13 > + 2: 28 > + 3: 54 > + 4: 89 > + 5: 135 > + 6: 190 > + 7: 256 > + > + azoteq,ati-band-disable: > + type: boolean > + description: Disables the ATI band check. > + > + azoteq,ati-lp-only: > + type: boolean > + description: Limits automatic ATI to low-power mode. > + > + azoteq,gpio3-select: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3, 4, 5, 6, 7] > + default: 1 > + description: | > + Selects the channel or group of channels for which the GPIO3 pin > + represents touch state as follows: > + 0: None > + 1: ULP channel > + 2: Trackpad > + 3: Trackpad > + 4: Generic channel 0 > + 5: Generic channel 1 > + 6: Generic channel 2 > + 7: Hall channel > + > + azoteq,reseed-select: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] > + default: 0 > + description: | > + Specifies the event(s) that prompt the device to reseed (i.e. reset the > + long-term average) of an associated channel as follows: > + 0: None > + 1: Proximity > + 2: Proximity or touch > + 3: Proximity, touch or deep touch > + > + azoteq,thresh-extend: > + type: boolean > + description: Multiplies all touch and deep-touch thresholds by 4. > + > + azoteq,tracking-enable: > + type: boolean > + description: > + Enables all associated channels to track their respective reference > + channels. > + > + azoteq,reseed-offset: > + type: boolean > + description: > + Applies an 8-count offset to all long-term averages upon either ATI or > + reseed events. > + > + azoteq,rate-np-ms: > + minimum: 0 > + maximum: 255 > + default: 150 > + description: Specifies the report rate (in ms) during normal-power mode. > + > + azoteq,rate-lp-ms: > + minimum: 0 > + maximum: 255 > + default: 150 > + description: Specifies the report rate (in ms) during low-power mode. > + > + azoteq,rate-ulp-ms: > + multipleOf: 16 > + minimum: 0 > + maximum: 4080 > + default: 0 > + description: Specifies the report rate (in ms) during ultra-low-power mode. > + > + azoteq,timeout-pwr-ms: > + multipleOf: 512 > + minimum: 0 > + maximum: 130560 > + default: 2560 > + description: > + Specifies the length of time (in ms) to wait for an event before moving > + from normal-power mode to low-power mode, or (if 'azoteq,ulp-enable' is > + present) from low-power mode to ultra-low-power mode. > + > + azoteq,timeout-lta-ms: > + multipleOf: 512 > + minimum: 0 > + maximum: 130560 > + default: 40960 > + description: > + Specifies the length of time (in ms) to wait before resetting the long- > + term average of all channels. Specify the maximum timeout to disable it > + altogether. > + > + touchscreen-inverted-x: true > + touchscreen-inverted-y: true > + touchscreen-swapped-x-y: true > + > +patternProperties: > + "^ulp-0|generic-[0-2]|hall$": > + type: object > + description: > + Represents a single sensing channel. A channel is active if defined and > + inactive otherwise. > + > + properties: > + azoteq,ati-exclude: > + type: boolean > + description: > + Prevents the channel from participating in an ATI event that is > + manually triggered during initialization. > + > + azoteq,reseed-disable: > + type: boolean > + description: > + Prevents the channel from being reseeded if the long-term average > + timeout (defined in 'azoteq,timeout-lta') expires. > + > + azoteq,meas-cap-decrease: > + type: boolean > + description: > + Decreases the internal measurement capacitance from 60 pF to 15 pF. > + > + azoteq,rx-inactive: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2] > + default: 0 > + description: | > + Specifies how inactive CRX pins are to be terminated as follows: > + 0: VSS > + 1: Floating > + 2: VREG (generic channels only) > + > + azoteq,linearize: > + type: boolean > + description: > + Enables linearization of the channel's counts (generic and Hall > + channels) or inverts the polarity of the channel's proximity or > + touch states (ULP channel). > + > + azoteq,dual-direction: > + type: boolean > + description: > + Specifies that the channel's long-term average is to freeze in the > + presence of either increasing or decreasing counts, thereby permit- > + ting events to be reported in either direction. > + > + azoteq,filt-disable: > + type: boolean > + description: Disables raw count filtering for the channel. > + > + azoteq,ati-mode: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] > + description: | > + Specifies the channel's ATI mode as follows: > + 0: Disabled > + 1: Semi-partial > + 2: Partial > + 3: Full > + > + The default value is a function of the channel and the device's reset > + user interface (RUI); reference the datasheet for further information > + about the available RUI options. > + > + azoteq,ati-base: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [75, 100, 150, 200] > + description: > + Specifies the channel's ATI base. The default value is a function > + of the channel and the device's RUI. > + > + azoteq,ati-target: > + $ref: /schemas/types.yaml#/definitions/uint32 > + multipleOf: 32 > + minimum: 0 > + maximum: 2016 > + description: > + Specifies the channel's ATI target. The default value is a function > + of the channel and the device's RUI. > + > + azoteq,cct-increase: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 0 > + maximum: 16 > + default: 0 > + description: > + Specifies the degree to which the channel's charge cycle time is to > + be increased, with 0 representing no increase. The maximum value is > + limited to 4 in the case of the ULP channel, and the property is un- > + available entirely in the case of the Hall channel. > + > + azoteq,proj-bias: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] > + default: 0 > + description: | > + Specifies the bias current applied during projected-capacitance > + sensing as follows: > + 0: 2.5 uA > + 1: 5 uA > + 2: 10 uA > + 3: 20 uA > + > + This property is unavailable in the case of the Hall channel. > + > + azoteq,sense-freq: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] > + description: | > + Specifies the channel's sensing frequency as follows (parenthesized > + numbers represent the frequency if 'azoteq,clk-div' is present): > + 0: 4 MHz (1 MHz) > + 1: 2 MHz (500 kHz) > + 2: 1 MHz (250 kHz) > + 3: 500 kHz (125 kHz) > + > + This property is unavailable in the case of the Hall channel. The > + default value is a function of the channel and the device's RUI. > + > + azoteq,ati-band-tighten: > + type: boolean > + description: > + Tightens the ATI band from 1/8 to 1/16 of the desired target (ULP and > + generic channels only). > + > + azoteq,proj-enable: > + type: boolean > + description: Enables projected-capacitance sensing (ULP channel only). > + > + azoteq,filt-str-np-cnt: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] > + default: 0 > + description: > + Specifies the raw count filter strength during normal-power mode (ULP > + and generic channels only). > + > + azoteq,filt-str-lp-cnt: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] > + default: 0 > + description: > + Specifies the raw count filter strength during low-power mode (ULP and > + generic channels only). > + > + azoteq,filt-str-np-lta: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] > + default: 0 > + description: > + Specifies the long-term average filter strength during normal-power > + mode (ULP and generic channels only). > + > + azoteq,filt-str-lp-lta: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] > + default: 0 > + description: > + Specifies the long-term average filter strength during low-power mode > + (ULP and generic channels only). > + > + azoteq,rx-enable: > + $ref: /schemas/types.yaml#/definitions/uint32-array > + minItems: 1 > + maxItems: 8 > + items: > + minimum: 0 > + maximum: 7 > + description: > + Specifies the CRX pin(s) associated with the channel. > + > + This property is unavailable in the case of the Hall channel. The > + default value is a function of the channel and the device's RUI. > + > + azoteq,tx-enable: > + $ref: /schemas/types.yaml#/definitions/uint32-array > + minItems: 1 > + maxItems: 8 > + items: > + minimum: 0 > + maximum: 7 > + description: > + Specifies the TX pin(s) associated with the channel. > + > + This property is unavailable in the case of the Hall channel. The > + default value is a function of the channel and the device's RUI. > + > + azoteq,local-cap-size: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3, 4] > + default: 0 > + description: | > + Specifies the capacitance to be added to the channel as follows: > + 0: 0 pF > + 1: 0.5 pF > + 2: 1.0 pF > + 3: 1.5 pF > + 4: 2.0 pF > + > + This property is unavailable in the case of the ULP or Hall channels. > + > + azoteq,sense-mode: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 8, 9, 12, 14, 15] > + description: | > + Specifies the channel's sensing mode as follows: > + 0: Self capacitance > + 1: Projected capacitance > + 8: Self inductance > + 9: Mutual inductance > + 12: External > + 14: Hall effect > + 15: Temperature > + > + This property is unavailable in the case of the ULP or Hall channels. > + The default value is a function of the channel and the device's RUI. > + > + azoteq,tx-freq: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] > + default: 0 > + description: | > + Specifies the inductive sensing excitation frequency as follows > + (parenthesized numbers represent the frequency if 'azoteq,clk-div' > + is present): > + 0: 16 MHz (4 MHz) > + 1: 8 MHz (2 MHz) > + 2: 4 MHz (1 MHz) > + 3: 2 MHz (500 kHz) > + > + This property is unavailable in the case of the ULP or Hall channels. > + > + azoteq,invert-enable: > + type: boolean > + description: > + Inverts the polarity of the states reported for proximity, touch and > + deep-touch events relative to their respective thresholds (generic > + channels only). > + > + azoteq,comp-disable: > + type: boolean > + description: > + Disables compensation for the channel (generic channels only). > + > + azoteq,static-enable: > + type: boolean > + description: > + Enables the static front-end for the channel (generic channels only). > + > + azoteq,assoc-select: > + $ref: /schemas/types.yaml#/definitions/string-array > + minItems: 1 > + maxItems: 6 > + items: > + enum: > + - ulp-0 > + - trackpad-3x2 > + - trackpad-3x3 > + - generic-0 > + - generic-1 > + - generic-2 > + - hall > + description: > + Specifies the associated channels for which the channel serves as a > + reference channel. By default, no channels are selected. This prop- > + erty is only available for the generic channels. > + > + azoteq,assoc-weight: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 0 > + maximum: 255 > + default: 0 > + description: > + Specifies the channel's impact weight if it acts as an associated > + channel (0 = 0% impact, 255 = 200% impact). This property is only > + available for the generic channels. > + > + patternProperties: > + "^event-(prox|touch|deep)(-alt)?$": > + type: object > + description: > + Represents a proximity, touch or deep-touch event reported by the > + channel in response to a decrease in counts. Node names suffixed with > + '-alt' instead correspond to an increase in counts. > + > + By default, the long-term average tracks an increase in counts such > + that only events corresponding to a decrease in counts are reported > + (refer to the datasheet for more information). > + > + Specify 'azoteq,dual-direction' to freeze the long-term average when > + the counts increase or decrease such that events of either direction > + can be reported. Alternatively, specify 'azoteq,invert-enable' to in- > + vert the polarity of the states reported by the channel. > + > + Complementary events (e.g. event-touch and event-touch-alt) can both > + be present and specify different key or switch codes, but not differ- > + ent thresholds or hysteresis (if applicable). > + > + Proximity events are unavailable in the case of the Hall channel, and > + deep-touch events are only available for the generic channels. Unless > + otherwise specified, default values are a function of the channel and > + the device's RUI. > + > + properties: > + azoteq,thresh: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 0 > + maximum: 255 > + description: Specifies the threshold for the event. > + > + azoteq,hyst: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 0 > + maximum: 15 > + description: > + Specifies the hysteresis for the event (touch and deep-touch > + events only). > + > + linux,code: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: Numeric key or switch code associated with the event. > + > + linux,input-type: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [1, 5] > + description: > + Specifies whether the event is to be interpreted as a key (1) or > + a switch (5). By default, Hall-channel events are interpreted as > + switches and all others are interpreted as keys. > + > + dependencies: > + linux,input-type: ["linux,code"] > + > + additionalProperties: false > + > + dependencies: > + azoteq,assoc-weight: ["azoteq,assoc-select"] > + > + additionalProperties: false > + > + "^trackpad-3x[2-3]$": > + type: object > + description: > + Represents all channels associated with the trackpad. The channels are > + collectively active if the trackpad is defined and inactive otherwise. > + > + properties: > + azoteq,ati-exclude: > + type: boolean > + description: > + Prevents the trackpad channels from participating in an ATI event > + that is manually triggered during initialization. > + > + azoteq,reseed-disable: > + type: boolean > + description: > + Prevents the trackpad channels from being reseeded if the long-term > + average timeout (defined in 'azoteq,timeout-lta') expires. > + > + azoteq,meas-cap-decrease: > + type: boolean > + description: > + Decreases the internal measurement capacitance from 60 pF to 15 pF. > + > + azoteq,rx-inactive: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1] > + default: 0 > + description: | > + Specifies how inactive CRX pins are to be terminated as follows: > + 0: VSS > + 1: Floating > + > + azoteq,linearize: > + type: boolean > + description: Inverts the polarity of the trackpad's touch state. > + > + azoteq,dual-direction: > + type: boolean > + description: > + Specifies that the trackpad's long-term averages are to freeze in > + the presence of either increasing or decreasing counts, thereby > + permitting events to be reported in either direction. > + > + azoteq,filt-disable: > + type: boolean > + description: Disables raw count filtering for the trackpad channels. > + > + azoteq,ati-mode: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] > + default: 0 > + description: | > + Specifies the trackpad's ATI mode as follows: > + 0: Disabled > + 1: Semi-partial > + 2: Partial > + 3: Full > + > + azoteq,ati-base: > + $ref: /schemas/types.yaml#/definitions/uint32-array > + minItems: 6 > + maxItems: 9 > + items: > + minimum: 45 > + maximum: 300 > + default: [45, 45, 45, 45, 45, 45, 45, 45, 45] > + description: Specifies each individual trackpad channel's ATI base. > + > + azoteq,ati-target: > + $ref: /schemas/types.yaml#/definitions/uint32 > + multipleOf: 32 > + minimum: 0 > + maximum: 2016 > + default: 0 > + description: Specifies the trackpad's ATI target. > + > + azoteq,cct-increase: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 0 > + maximum: 4 > + default: 0 > + description: > + Specifies the degree to which the trackpad's charge cycle time is to > + be increased, with 0 representing no increase. > + > + azoteq,proj-bias: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] > + default: 0 > + description: | > + Specifies the bias current applied during projected-capacitance > + sensing as follows: > + 0: 2.5 uA > + 1: 5 uA > + 2: 10 uA > + 3: 20 uA > + > + azoteq,sense-freq: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] > + default: 0 > + description: | > + Specifies the trackpad's sensing frequency as follows (parenthesized > + numbers represent the frequency if 'azoteq,clk-div' is present): > + 0: 4 MHz (1 MHz) > + 1: 2 MHz (500 kHz) > + 2: 1 MHz (250 kHz) > + 3: 500 kHz (125 kHz) > + > + azoteq,ati-band-tighten: > + type: boolean > + description: > + Tightens the ATI band from 1/8 to 1/16 of the desired target. > + > + azoteq,thresh: > + $ref: /schemas/types.yaml#/definitions/uint32-array > + minItems: 6 > + maxItems: 9 > + items: > + minimum: 0 > + maximum: 255 > + default: [0, 0, 0, 0, 0, 0, 0, 0, 0] > + description: > + Specifies each individual trackpad channel's touch threshold. > + > + azoteq,hyst: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 0 > + maximum: 15 > + default: 0 > + description: Specifies the trackpad's touch hysteresis. > + > + azoteq,lta-update: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3, 4, 5, 6, 7] > + default: 0 > + description: | > + Specifies the update rate of the trackpad's long-term average during > + ultra-low-power mode as follows: > + 0: 2 > + 1: 4 > + 2: 8 > + 3: 16 > + 4: 32 > + 5: 64 > + 6: 128 > + 7: 255 > + > + azoteq,filt-str-trackpad: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] > + default: 0 > + description: Specifies the trackpad coordinate filter strength. > + > + azoteq,filt-str-np-cnt: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] > + default: 0 > + description: > + Specifies the raw count filter strength during normal-power mode. > + > + azoteq,filt-str-lp-cnt: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2, 3] > + default: 0 > + description: > + Specifies the raw count filter strength during low-power mode. > + > + linux,keycodes: > + $ref: /schemas/types.yaml#/definitions/uint32-array > + minItems: 1 > + maxItems: 6 > + description: | > + Specifies the numeric keycodes associated with each available gesture > + in the following order (enter 0 for unused gestures): > + 0: Positive flick or swipe in X direction > + 1: Negative flick or swipe in X direction > + 2: Positive flick or swipe in Y direction > + 3: Negative flick or swipe in Y direction > + 4: Tap > + 5: Hold > + > + azoteq,gesture-swipe: > + type: boolean > + description: > + Directs the device to interpret axial gestures as a swipe (finger > + remains on trackpad) instead of a flick (finger leaves trackpad). > + > + azoteq,timeout-tap-ms: > + multipleOf: 16 > + minimum: 0 > + maximum: 4080 > + default: 0 > + description: > + Specifies the length of time (in ms) within which a trackpad touch > + must be released in order to be interpreted as a tap. > + > + azoteq,timeout-swipe-ms: > + multipleOf: 16 > + minimum: 0 > + maximum: 4080 > + default: 0 > + description: > + Specifies the length of time (in ms) within which an axial gesture > + must be completed in order to be interpreted as a flick or swipe. > + > + azoteq,thresh-swipe: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 0 > + maximum: 255 > + default: 0 > + description: > + Specifies the number of points across which an axial gesture must > + travel in order to be interpreted as a flick or swipe. > + > + dependencies: > + azoteq,gesture-swipe: ["linux,keycodes"] > + azoteq,timeout-tap-ms: ["linux,keycodes"] > + azoteq,timeout-swipe-ms: ["linux,keycodes"] > + azoteq,thresh-swipe: ["linux,keycodes"] > + > + additionalProperties: false > + > +required: > + - compatible > + - reg > + - interrupts > + - "#address-cells" > + - "#size-cells" > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/input/input.h> > + #include <dt-bindings/interrupt-controller/irq.h> > + > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + iqs626a@44 { > + #address-cells = <1>; > + #size-cells = <0>; > + > + compatible = "azoteq,iqs626a"; > + reg = <0x44>; > + interrupt-parent = <&gpio>; > + interrupts = <17 IRQ_TYPE_LEVEL_LOW>; > + > + azoteq,rate-np-ms = <16>; > + azoteq,rate-lp-ms = <160>; > + > + azoteq,timeout-pwr-ms = <2560>; > + azoteq,timeout-lta-ms = <32768>; > + > + ulp-0 { > + azoteq,meas-cap-decrease; > + > + azoteq,ati-base = <75>; > + azoteq,ati-target = <1024>; > + > + azoteq,rx-enable = <2>, <3>, <4>, > + <5>, <6>, <7>; > + > + event-prox { > + linux,code = <KEY_POWER>; > + }; > + }; > + > + trackpad-3x3 { > + azoteq,filt-str-np-cnt = <1>; > + azoteq,filt-str-lp-cnt = <1>; > + > + azoteq,hyst = <4>; > + azoteq,thresh = <35>, <40>, <40>, > + <38>, <33>, <38>, > + <35>, <35>, <35>; > + > + azoteq,ati-mode = <3>; > + azoteq,ati-base = <195>, <195>, <195>, > + <195>, <195>, <195>, > + <195>, <195>, <195>; > + azoteq,ati-target = <512>; > + > + azoteq,proj-bias = <1>; > + azoteq,sense-freq = <2>; > + > + linux,keycodes = <KEY_VOLUMEUP>, > + <KEY_VOLUMEDOWN>, > + <KEY_NEXTSONG>, > + <KEY_PREVIOUSSONG>, > + <KEY_PLAYPAUSE>, > + <KEY_STOPCD>; > + > + azoteq,gesture-swipe; > + azoteq,timeout-swipe-ms = <800>; > + azoteq,timeout-tap-ms = <400>; > + azoteq,thresh-swipe = <40>; > + }; > + > + /* > + * Preserve the default register settings for > + * the temperature-tracking channel leveraged > + * by reset user interface (RUI) 1. > + * > + * Scalar properties (e.g. ATI mode) are left > + * untouched by simply omitting them; boolean > + * properties must be specified explicitly as > + * needed. > + */ > + generic-2 { > + azoteq,reseed-disable; > + azoteq,meas-cap-decrease; > + azoteq,dual-direction; > + azoteq,comp-disable; > + azoteq,static-enable; > + }; > + > + hall { > + azoteq,reseed-disable; > + azoteq,meas-cap-decrease; > + > + event-touch { > + linux,code = <SW_LID>; > + }; > + }; > + }; > + }; > + > +... > -- > 2.7.4 > Kind regards, Jeff LaBundy
diff --git a/Documentation/devicetree/bindings/input/iqs626a.yaml b/Documentation/devicetree/bindings/input/iqs626a.yaml new file mode 100644 index 0000000..af2f88b --- /dev/null +++ b/Documentation/devicetree/bindings/input/iqs626a.yaml @@ -0,0 +1,840 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/input/iqs626a.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Azoteq IQS626A Capacitive Touch Controller + +maintainers: + - Jeff LaBundy <jeff@labundy.com> + +description: | + The Azoteq IQS626A is a 14-channel capacitive touch controller that features + additional Hall-effect and inductive sensing capabilities. + + Link to datasheet: https://www.azoteq.com/ + +properties: + compatible: + const: azoteq,iqs626a + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + + azoteq,suspend-mode: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + default: 0 + description: | + Specifies the power mode during suspend as follows: + 0: Automatic (same as normal runtime, i.e. suspend/resume disabled) + 1: Low power (all sensing at a reduced reporting rate) + 2: Ultra-low power (ULP channel proximity sensing) + 3: Halt (no sensing) + + azoteq,clk-div: + type: boolean + description: Divides the device's core clock by a factor of 4. + + azoteq,ulp-enable: + type: boolean + description: + Permits the device to automatically enter ultra-low-power mode from low- + power mode. + + azoteq,ulp-update: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3, 4, 5, 6, 7] + default: 3 + description: | + Specifies the rate at which the trackpad, generic and Hall channels are + updated during ultra-low-power mode as follows: + 0: 8 + 1: 13 + 2: 28 + 3: 54 + 4: 89 + 5: 135 + 6: 190 + 7: 256 + + azoteq,ati-band-disable: + type: boolean + description: Disables the ATI band check. + + azoteq,ati-lp-only: + type: boolean + description: Limits automatic ATI to low-power mode. + + azoteq,gpio3-select: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3, 4, 5, 6, 7] + default: 1 + description: | + Selects the channel or group of channels for which the GPIO3 pin + represents touch state as follows: + 0: None + 1: ULP channel + 2: Trackpad + 3: Trackpad + 4: Generic channel 0 + 5: Generic channel 1 + 6: Generic channel 2 + 7: Hall channel + + azoteq,reseed-select: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + default: 0 + description: | + Specifies the event(s) that prompt the device to reseed (i.e. reset the + long-term average) of an associated channel as follows: + 0: None + 1: Proximity + 2: Proximity or touch + 3: Proximity, touch or deep touch + + azoteq,thresh-extend: + type: boolean + description: Multiplies all touch and deep-touch thresholds by 4. + + azoteq,tracking-enable: + type: boolean + description: + Enables all associated channels to track their respective reference + channels. + + azoteq,reseed-offset: + type: boolean + description: + Applies an 8-count offset to all long-term averages upon either ATI or + reseed events. + + azoteq,rate-np-ms: + minimum: 0 + maximum: 255 + default: 150 + description: Specifies the report rate (in ms) during normal-power mode. + + azoteq,rate-lp-ms: + minimum: 0 + maximum: 255 + default: 150 + description: Specifies the report rate (in ms) during low-power mode. + + azoteq,rate-ulp-ms: + multipleOf: 16 + minimum: 0 + maximum: 4080 + default: 0 + description: Specifies the report rate (in ms) during ultra-low-power mode. + + azoteq,timeout-pwr-ms: + multipleOf: 512 + minimum: 0 + maximum: 130560 + default: 2560 + description: + Specifies the length of time (in ms) to wait for an event before moving + from normal-power mode to low-power mode, or (if 'azoteq,ulp-enable' is + present) from low-power mode to ultra-low-power mode. + + azoteq,timeout-lta-ms: + multipleOf: 512 + minimum: 0 + maximum: 130560 + default: 40960 + description: + Specifies the length of time (in ms) to wait before resetting the long- + term average of all channels. Specify the maximum timeout to disable it + altogether. + + touchscreen-inverted-x: true + touchscreen-inverted-y: true + touchscreen-swapped-x-y: true + +patternProperties: + "^ulp-0|generic-[0-2]|hall$": + type: object + description: + Represents a single sensing channel. A channel is active if defined and + inactive otherwise. + + properties: + azoteq,ati-exclude: + type: boolean + description: + Prevents the channel from participating in an ATI event that is + manually triggered during initialization. + + azoteq,reseed-disable: + type: boolean + description: + Prevents the channel from being reseeded if the long-term average + timeout (defined in 'azoteq,timeout-lta') expires. + + azoteq,meas-cap-decrease: + type: boolean + description: + Decreases the internal measurement capacitance from 60 pF to 15 pF. + + azoteq,rx-inactive: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2] + default: 0 + description: | + Specifies how inactive CRX pins are to be terminated as follows: + 0: VSS + 1: Floating + 2: VREG (generic channels only) + + azoteq,linearize: + type: boolean + description: + Enables linearization of the channel's counts (generic and Hall + channels) or inverts the polarity of the channel's proximity or + touch states (ULP channel). + + azoteq,dual-direction: + type: boolean + description: + Specifies that the channel's long-term average is to freeze in the + presence of either increasing or decreasing counts, thereby permit- + ting events to be reported in either direction. + + azoteq,filt-disable: + type: boolean + description: Disables raw count filtering for the channel. + + azoteq,ati-mode: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + description: | + Specifies the channel's ATI mode as follows: + 0: Disabled + 1: Semi-partial + 2: Partial + 3: Full + + The default value is a function of the channel and the device's reset + user interface (RUI); reference the datasheet for further information + about the available RUI options. + + azoteq,ati-base: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [75, 100, 150, 200] + description: + Specifies the channel's ATI base. The default value is a function + of the channel and the device's RUI. + + azoteq,ati-target: + $ref: /schemas/types.yaml#/definitions/uint32 + multipleOf: 32 + minimum: 0 + maximum: 2016 + description: + Specifies the channel's ATI target. The default value is a function + of the channel and the device's RUI. + + azoteq,cct-increase: + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 16 + default: 0 + description: + Specifies the degree to which the channel's charge cycle time is to + be increased, with 0 representing no increase. The maximum value is + limited to 4 in the case of the ULP channel, and the property is un- + available entirely in the case of the Hall channel. + + azoteq,proj-bias: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + default: 0 + description: | + Specifies the bias current applied during projected-capacitance + sensing as follows: + 0: 2.5 uA + 1: 5 uA + 2: 10 uA + 3: 20 uA + + This property is unavailable in the case of the Hall channel. + + azoteq,sense-freq: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + description: | + Specifies the channel's sensing frequency as follows (parenthesized + numbers represent the frequency if 'azoteq,clk-div' is present): + 0: 4 MHz (1 MHz) + 1: 2 MHz (500 kHz) + 2: 1 MHz (250 kHz) + 3: 500 kHz (125 kHz) + + This property is unavailable in the case of the Hall channel. The + default value is a function of the channel and the device's RUI. + + azoteq,ati-band-tighten: + type: boolean + description: + Tightens the ATI band from 1/8 to 1/16 of the desired target (ULP and + generic channels only). + + azoteq,proj-enable: + type: boolean + description: Enables projected-capacitance sensing (ULP channel only). + + azoteq,filt-str-np-cnt: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + default: 0 + description: + Specifies the raw count filter strength during normal-power mode (ULP + and generic channels only). + + azoteq,filt-str-lp-cnt: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + default: 0 + description: + Specifies the raw count filter strength during low-power mode (ULP and + generic channels only). + + azoteq,filt-str-np-lta: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + default: 0 + description: + Specifies the long-term average filter strength during normal-power + mode (ULP and generic channels only). + + azoteq,filt-str-lp-lta: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + default: 0 + description: + Specifies the long-term average filter strength during low-power mode + (ULP and generic channels only). + + azoteq,rx-enable: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 8 + items: + minimum: 0 + maximum: 7 + description: + Specifies the CRX pin(s) associated with the channel. + + This property is unavailable in the case of the Hall channel. The + default value is a function of the channel and the device's RUI. + + azoteq,tx-enable: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 8 + items: + minimum: 0 + maximum: 7 + description: + Specifies the TX pin(s) associated with the channel. + + This property is unavailable in the case of the Hall channel. The + default value is a function of the channel and the device's RUI. + + azoteq,local-cap-size: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3, 4] + default: 0 + description: | + Specifies the capacitance to be added to the channel as follows: + 0: 0 pF + 1: 0.5 pF + 2: 1.0 pF + 3: 1.5 pF + 4: 2.0 pF + + This property is unavailable in the case of the ULP or Hall channels. + + azoteq,sense-mode: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 8, 9, 12, 14, 15] + description: | + Specifies the channel's sensing mode as follows: + 0: Self capacitance + 1: Projected capacitance + 8: Self inductance + 9: Mutual inductance + 12: External + 14: Hall effect + 15: Temperature + + This property is unavailable in the case of the ULP or Hall channels. + The default value is a function of the channel and the device's RUI. + + azoteq,tx-freq: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + default: 0 + description: | + Specifies the inductive sensing excitation frequency as follows + (parenthesized numbers represent the frequency if 'azoteq,clk-div' + is present): + 0: 16 MHz (4 MHz) + 1: 8 MHz (2 MHz) + 2: 4 MHz (1 MHz) + 3: 2 MHz (500 kHz) + + This property is unavailable in the case of the ULP or Hall channels. + + azoteq,invert-enable: + type: boolean + description: + Inverts the polarity of the states reported for proximity, touch and + deep-touch events relative to their respective thresholds (generic + channels only). + + azoteq,comp-disable: + type: boolean + description: + Disables compensation for the channel (generic channels only). + + azoteq,static-enable: + type: boolean + description: + Enables the static front-end for the channel (generic channels only). + + azoteq,assoc-select: + $ref: /schemas/types.yaml#/definitions/string-array + minItems: 1 + maxItems: 6 + items: + enum: + - ulp-0 + - trackpad-3x2 + - trackpad-3x3 + - generic-0 + - generic-1 + - generic-2 + - hall + description: + Specifies the associated channels for which the channel serves as a + reference channel. By default, no channels are selected. This prop- + erty is only available for the generic channels. + + azoteq,assoc-weight: + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 255 + default: 0 + description: + Specifies the channel's impact weight if it acts as an associated + channel (0 = 0% impact, 255 = 200% impact). This property is only + available for the generic channels. + + patternProperties: + "^event-(prox|touch|deep)(-alt)?$": + type: object + description: + Represents a proximity, touch or deep-touch event reported by the + channel in response to a decrease in counts. Node names suffixed with + '-alt' instead correspond to an increase in counts. + + By default, the long-term average tracks an increase in counts such + that only events corresponding to a decrease in counts are reported + (refer to the datasheet for more information). + + Specify 'azoteq,dual-direction' to freeze the long-term average when + the counts increase or decrease such that events of either direction + can be reported. Alternatively, specify 'azoteq,invert-enable' to in- + vert the polarity of the states reported by the channel. + + Complementary events (e.g. event-touch and event-touch-alt) can both + be present and specify different key or switch codes, but not differ- + ent thresholds or hysteresis (if applicable). + + Proximity events are unavailable in the case of the Hall channel, and + deep-touch events are only available for the generic channels. Unless + otherwise specified, default values are a function of the channel and + the device's RUI. + + properties: + azoteq,thresh: + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 255 + description: Specifies the threshold for the event. + + azoteq,hyst: + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 15 + description: + Specifies the hysteresis for the event (touch and deep-touch + events only). + + linux,code: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Numeric key or switch code associated with the event. + + linux,input-type: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [1, 5] + description: + Specifies whether the event is to be interpreted as a key (1) or + a switch (5). By default, Hall-channel events are interpreted as + switches and all others are interpreted as keys. + + dependencies: + linux,input-type: ["linux,code"] + + additionalProperties: false + + dependencies: + azoteq,assoc-weight: ["azoteq,assoc-select"] + + additionalProperties: false + + "^trackpad-3x[2-3]$": + type: object + description: + Represents all channels associated with the trackpad. The channels are + collectively active if the trackpad is defined and inactive otherwise. + + properties: + azoteq,ati-exclude: + type: boolean + description: + Prevents the trackpad channels from participating in an ATI event + that is manually triggered during initialization. + + azoteq,reseed-disable: + type: boolean + description: + Prevents the trackpad channels from being reseeded if the long-term + average timeout (defined in 'azoteq,timeout-lta') expires. + + azoteq,meas-cap-decrease: + type: boolean + description: + Decreases the internal measurement capacitance from 60 pF to 15 pF. + + azoteq,rx-inactive: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1] + default: 0 + description: | + Specifies how inactive CRX pins are to be terminated as follows: + 0: VSS + 1: Floating + + azoteq,linearize: + type: boolean + description: Inverts the polarity of the trackpad's touch state. + + azoteq,dual-direction: + type: boolean + description: + Specifies that the trackpad's long-term averages are to freeze in + the presence of either increasing or decreasing counts, thereby + permitting events to be reported in either direction. + + azoteq,filt-disable: + type: boolean + description: Disables raw count filtering for the trackpad channels. + + azoteq,ati-mode: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + default: 0 + description: | + Specifies the trackpad's ATI mode as follows: + 0: Disabled + 1: Semi-partial + 2: Partial + 3: Full + + azoteq,ati-base: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 6 + maxItems: 9 + items: + minimum: 45 + maximum: 300 + default: [45, 45, 45, 45, 45, 45, 45, 45, 45] + description: Specifies each individual trackpad channel's ATI base. + + azoteq,ati-target: + $ref: /schemas/types.yaml#/definitions/uint32 + multipleOf: 32 + minimum: 0 + maximum: 2016 + default: 0 + description: Specifies the trackpad's ATI target. + + azoteq,cct-increase: + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 4 + default: 0 + description: + Specifies the degree to which the trackpad's charge cycle time is to + be increased, with 0 representing no increase. + + azoteq,proj-bias: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + default: 0 + description: | + Specifies the bias current applied during projected-capacitance + sensing as follows: + 0: 2.5 uA + 1: 5 uA + 2: 10 uA + 3: 20 uA + + azoteq,sense-freq: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + default: 0 + description: | + Specifies the trackpad's sensing frequency as follows (parenthesized + numbers represent the frequency if 'azoteq,clk-div' is present): + 0: 4 MHz (1 MHz) + 1: 2 MHz (500 kHz) + 2: 1 MHz (250 kHz) + 3: 500 kHz (125 kHz) + + azoteq,ati-band-tighten: + type: boolean + description: + Tightens the ATI band from 1/8 to 1/16 of the desired target. + + azoteq,thresh: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 6 + maxItems: 9 + items: + minimum: 0 + maximum: 255 + default: [0, 0, 0, 0, 0, 0, 0, 0, 0] + description: + Specifies each individual trackpad channel's touch threshold. + + azoteq,hyst: + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 15 + default: 0 + description: Specifies the trackpad's touch hysteresis. + + azoteq,lta-update: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3, 4, 5, 6, 7] + default: 0 + description: | + Specifies the update rate of the trackpad's long-term average during + ultra-low-power mode as follows: + 0: 2 + 1: 4 + 2: 8 + 3: 16 + 4: 32 + 5: 64 + 6: 128 + 7: 255 + + azoteq,filt-str-trackpad: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + default: 0 + description: Specifies the trackpad coordinate filter strength. + + azoteq,filt-str-np-cnt: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + default: 0 + description: + Specifies the raw count filter strength during normal-power mode. + + azoteq,filt-str-lp-cnt: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + default: 0 + description: + Specifies the raw count filter strength during low-power mode. + + linux,keycodes: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 6 + description: | + Specifies the numeric keycodes associated with each available gesture + in the following order (enter 0 for unused gestures): + 0: Positive flick or swipe in X direction + 1: Negative flick or swipe in X direction + 2: Positive flick or swipe in Y direction + 3: Negative flick or swipe in Y direction + 4: Tap + 5: Hold + + azoteq,gesture-swipe: + type: boolean + description: + Directs the device to interpret axial gestures as a swipe (finger + remains on trackpad) instead of a flick (finger leaves trackpad). + + azoteq,timeout-tap-ms: + multipleOf: 16 + minimum: 0 + maximum: 4080 + default: 0 + description: + Specifies the length of time (in ms) within which a trackpad touch + must be released in order to be interpreted as a tap. + + azoteq,timeout-swipe-ms: + multipleOf: 16 + minimum: 0 + maximum: 4080 + default: 0 + description: + Specifies the length of time (in ms) within which an axial gesture + must be completed in order to be interpreted as a flick or swipe. + + azoteq,thresh-swipe: + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 255 + default: 0 + description: + Specifies the number of points across which an axial gesture must + travel in order to be interpreted as a flick or swipe. + + dependencies: + azoteq,gesture-swipe: ["linux,keycodes"] + azoteq,timeout-tap-ms: ["linux,keycodes"] + azoteq,timeout-swipe-ms: ["linux,keycodes"] + azoteq,thresh-swipe: ["linux,keycodes"] + + additionalProperties: false + +required: + - compatible + - reg + - interrupts + - "#address-cells" + - "#size-cells" + +additionalProperties: false + +examples: + - | + #include <dt-bindings/input/input.h> + #include <dt-bindings/interrupt-controller/irq.h> + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + iqs626a@44 { + #address-cells = <1>; + #size-cells = <0>; + + compatible = "azoteq,iqs626a"; + reg = <0x44>; + interrupt-parent = <&gpio>; + interrupts = <17 IRQ_TYPE_LEVEL_LOW>; + + azoteq,rate-np-ms = <16>; + azoteq,rate-lp-ms = <160>; + + azoteq,timeout-pwr-ms = <2560>; + azoteq,timeout-lta-ms = <32768>; + + ulp-0 { + azoteq,meas-cap-decrease; + + azoteq,ati-base = <75>; + azoteq,ati-target = <1024>; + + azoteq,rx-enable = <2>, <3>, <4>, + <5>, <6>, <7>; + + event-prox { + linux,code = <KEY_POWER>; + }; + }; + + trackpad-3x3 { + azoteq,filt-str-np-cnt = <1>; + azoteq,filt-str-lp-cnt = <1>; + + azoteq,hyst = <4>; + azoteq,thresh = <35>, <40>, <40>, + <38>, <33>, <38>, + <35>, <35>, <35>; + + azoteq,ati-mode = <3>; + azoteq,ati-base = <195>, <195>, <195>, + <195>, <195>, <195>, + <195>, <195>, <195>; + azoteq,ati-target = <512>; + + azoteq,proj-bias = <1>; + azoteq,sense-freq = <2>; + + linux,keycodes = <KEY_VOLUMEUP>, + <KEY_VOLUMEDOWN>, + <KEY_NEXTSONG>, + <KEY_PREVIOUSSONG>, + <KEY_PLAYPAUSE>, + <KEY_STOPCD>; + + azoteq,gesture-swipe; + azoteq,timeout-swipe-ms = <800>; + azoteq,timeout-tap-ms = <400>; + azoteq,thresh-swipe = <40>; + }; + + /* + * Preserve the default register settings for + * the temperature-tracking channel leveraged + * by reset user interface (RUI) 1. + * + * Scalar properties (e.g. ATI mode) are left + * untouched by simply omitting them; boolean + * properties must be specified explicitly as + * needed. + */ + generic-2 { + azoteq,reseed-disable; + azoteq,meas-cap-decrease; + azoteq,dual-direction; + azoteq,comp-disable; + azoteq,static-enable; + }; + + hall { + azoteq,reseed-disable; + azoteq,meas-cap-decrease; + + event-touch { + linux,code = <SW_LID>; + }; + }; + }; + }; + +...
This patch adds device tree bindings for the Azoteq IQS626A capacitive touch controller. Signed-off-by: Jeff LaBundy <jeff@labundy.com> --- .../devicetree/bindings/input/iqs626a.yaml | 840 +++++++++++++++++++++ 1 file changed, 840 insertions(+) create mode 100644 Documentation/devicetree/bindings/input/iqs626a.yaml