From: Jeff LaBundy <jeff@labundy.com>
To: dmitry.torokhov@gmail.com, robh+dt@kernel.org
Cc: linux-input@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH 1/2] dt-bindings: input: Add bindings for Azoteq IQS626A
Date: Thu, 7 Jan 2021 21:49:20 -0600 [thread overview]
Message-ID: <20210108034920.GA23942@labundy.com> (raw)
In-Reply-To: <1606084748-4097-2-git-send-email-jeff@labundy.com>
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
next prev parent reply other threads:[~2021-01-08 3:50 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-22 22:39 [PATCH 0/2] Add support for Azoteq IQS626A Jeff LaBundy
2020-11-22 22:39 ` [PATCH 1/2] dt-bindings: input: Add bindings " Jeff LaBundy
2021-01-08 3:49 ` Jeff LaBundy [this message]
2020-11-22 22:39 ` [PATCH 2/2] input: Add support " Jeff LaBundy
2020-11-23 7:03 ` Dmitry Torokhov
2020-11-24 0:15 ` Jeff LaBundy
2020-12-01 7:01 ` Dmitry Torokhov
2020-12-02 5:53 ` Jeff LaBundy
2020-12-02 6:00 ` Dmitry Torokhov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210108034920.GA23942@labundy.com \
--to=jeff@labundy.com \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=linux-input@vger.kernel.org \
--cc=robh+dt@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).