mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-21 10:05:00 +08:00
97384a65c5
IQS7222A revisions 1.13 and later widen the gesture multiplier from
x4 ms to x16 ms; update the binding accordingly.
As part of this change, refresh the corresponding properties in the
example as well.
Fixes: 44dc42d254
("dt-bindings: input: Add bindings for Azoteq IQS7222A/B/C")
Signed-off-by: Jeff LaBundy <jeff@labundy.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/Y1SRaVGwj30z/g6r@nixie71
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
951 lines
29 KiB
YAML
951 lines
29 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/input/azoteq,iqs7222.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Azoteq IQS7222A/B/C Capacitive Touch Controller
|
|
|
|
maintainers:
|
|
- Jeff LaBundy <jeff@labundy.com>
|
|
|
|
description: |
|
|
The Azoteq IQS7222A, IQS7222B and IQS7222C are multichannel capacitive touch
|
|
controllers that feature additional sensing capabilities.
|
|
|
|
Link to datasheets: https://www.azoteq.com/
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- azoteq,iqs7222a
|
|
- azoteq,iqs7222b
|
|
- azoteq,iqs7222c
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
irq-gpios:
|
|
maxItems: 1
|
|
description:
|
|
Specifies the GPIO connected to the device's active-low RDY output.
|
|
|
|
reset-gpios:
|
|
maxItems: 1
|
|
description:
|
|
Specifies the GPIO connected to the device's active-low MCLR input. The
|
|
device is temporarily held in hardware reset prior to initialization if
|
|
this property is present.
|
|
|
|
azoteq,max-counts:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
enum: [0, 1, 2, 3]
|
|
description: |
|
|
Specifies the maximum number of conversion periods (counts) that can be
|
|
reported as follows:
|
|
0: 1023
|
|
1: 2047
|
|
2: 4095
|
|
3: 16384
|
|
|
|
azoteq,auto-mode:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
enum: [0, 1, 2, 3]
|
|
description: |
|
|
Specifies the number of conversions to occur before an interrupt is
|
|
generated as follows:
|
|
0: 4
|
|
1: 8
|
|
2: 16
|
|
3: 32
|
|
|
|
azoteq,ati-frac-div-fine:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 31
|
|
description: Specifies the preloaded ATI fine fractional divider.
|
|
|
|
azoteq,ati-frac-div-coarse:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 31
|
|
description: Specifies the preloaded ATI coarse fractional divider.
|
|
|
|
azoteq,ati-comp-select:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 1023
|
|
description: Specifies the preloaded ATI compensation selection.
|
|
|
|
azoteq,lta-beta-lp:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 15
|
|
description:
|
|
Specifies the long-term average filter damping factor to be applied during
|
|
low-power mode.
|
|
|
|
azoteq,lta-beta-np:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 15
|
|
description:
|
|
Specifies the long-term average filter damping factor to be applied during
|
|
normal-power mode.
|
|
|
|
azoteq,counts-beta-lp:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 15
|
|
description:
|
|
Specifies the counts filter damping factor to be applied during low-power
|
|
mode.
|
|
|
|
azoteq,counts-beta-np:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 15
|
|
description:
|
|
Specifies the counts filter damping factor to be applied during normal-
|
|
power mode.
|
|
|
|
azoteq,lta-fast-beta-lp:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 15
|
|
description:
|
|
Specifies the long-term average filter fast damping factor to be applied
|
|
during low-power mode.
|
|
|
|
azoteq,lta-fast-beta-np:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 15
|
|
description:
|
|
Specifies the long-term average filter fast damping factor to be applied
|
|
during normal-power mode.
|
|
|
|
azoteq,timeout-ati-ms:
|
|
multipleOf: 500
|
|
minimum: 0
|
|
maximum: 32767500
|
|
description:
|
|
Specifies the delay (in ms) before ATI is retried following an ATI error.
|
|
|
|
azoteq,rate-ati-ms:
|
|
minimum: 0
|
|
maximum: 65535
|
|
description: Specifies the rate (in ms) at which ATI status is evaluated.
|
|
|
|
azoteq,timeout-np-ms:
|
|
minimum: 0
|
|
maximum: 65535
|
|
description:
|
|
Specifies the length of time (in ms) to wait for an event before moving
|
|
from normal-power mode to low-power mode.
|
|
|
|
azoteq,rate-np-ms:
|
|
minimum: 0
|
|
maximum: 3000
|
|
description: Specifies the report rate (in ms) during normal-power mode.
|
|
|
|
azoteq,timeout-lp-ms:
|
|
minimum: 0
|
|
maximum: 65535
|
|
description:
|
|
Specifies the length of time (in ms) to wait for an event before moving
|
|
from low-power mode to ultra-low-power mode.
|
|
|
|
azoteq,rate-lp-ms:
|
|
minimum: 0
|
|
maximum: 3000
|
|
description: Specifies the report rate (in ms) during low-power mode.
|
|
|
|
azoteq,timeout-ulp-ms:
|
|
minimum: 0
|
|
maximum: 65535
|
|
description:
|
|
Specifies the rate (in ms) at which channels not regularly sampled during
|
|
ultra-low-power mode are updated.
|
|
|
|
azoteq,rate-ulp-ms:
|
|
minimum: 0
|
|
maximum: 3000
|
|
description: Specifies the report rate (in ms) during ultra-low-power mode.
|
|
|
|
patternProperties:
|
|
"^cycle-[0-9]$":
|
|
type: object
|
|
description: Represents a conversion cycle serving two sensing channels.
|
|
|
|
properties:
|
|
azoteq,conv-period:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 255
|
|
description: Specifies the cycle's conversion period.
|
|
|
|
azoteq,conv-frac:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 255
|
|
description: Specifies the cycle's conversion frequency fraction.
|
|
|
|
azoteq,tx-enable:
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
minItems: 1
|
|
maxItems: 9
|
|
items:
|
|
minimum: 0
|
|
maximum: 8
|
|
description: Specifies the CTx pin(s) associated with the cycle.
|
|
|
|
azoteq,rx-float-inactive:
|
|
type: boolean
|
|
description: Floats any inactive CRx pins instead of grounding them.
|
|
|
|
azoteq,dead-time-enable:
|
|
type: boolean
|
|
description:
|
|
Increases the denominator of the conversion frequency formula by one.
|
|
|
|
azoteq,tx-freq-fosc:
|
|
type: boolean
|
|
description:
|
|
Fixes the conversion frequency to that of the device's core clock.
|
|
|
|
azoteq,vbias-enable:
|
|
type: boolean
|
|
description: Enables the bias voltage for use during inductive sensing.
|
|
|
|
azoteq,sense-mode:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
enum: [0, 1, 2, 3]
|
|
description: |
|
|
Specifies the cycle's sensing mode as follows:
|
|
0: None
|
|
1: Self capacitive
|
|
2: Mutual capacitive
|
|
3: Inductive
|
|
|
|
Note that in the case of IQS7222A, cycles 5 and 6 are restricted to
|
|
Hall-effect sensing.
|
|
|
|
azoteq,iref-enable:
|
|
type: boolean
|
|
description:
|
|
Enables the current reference for use during various sensing modes.
|
|
|
|
azoteq,iref-level:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 15
|
|
description: Specifies the cycle's current reference level.
|
|
|
|
azoteq,iref-trim:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 15
|
|
description: Specifies the cycle's current reference trim.
|
|
|
|
dependencies:
|
|
azoteq,iref-level: ["azoteq,iref-enable"]
|
|
azoteq,iref-trim: ["azoteq,iref-enable"]
|
|
|
|
additionalProperties: false
|
|
|
|
"^channel-([0-9]|1[0-9])$":
|
|
type: object
|
|
description:
|
|
Represents a single sensing channel. A channel is active if defined and
|
|
inactive otherwise.
|
|
|
|
Note that in the case of IQS7222A, channels 10 and 11 are restricted to
|
|
Hall-effect sensing with events reported on channel 10 only.
|
|
|
|
properties:
|
|
azoteq,ulp-allow:
|
|
type: boolean
|
|
description:
|
|
Permits the device to enter ultra-low-power mode while the channel
|
|
lies in a state of touch or proximity.
|
|
|
|
azoteq,ref-select:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 9
|
|
description: Specifies a separate reference channel to be followed.
|
|
|
|
azoteq,ref-weight:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 65535
|
|
description: Specifies the relative weight of the reference channel.
|
|
|
|
azoteq,use-prox:
|
|
type: boolean
|
|
description:
|
|
Activates the reference channel in response to proximity events
|
|
instead of touch events.
|
|
|
|
azoteq,ati-band:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
enum: [0, 1, 2, 3]
|
|
description: |
|
|
Specifies the channel's ATI band as a fraction of its ATI target as
|
|
follows:
|
|
0: 1/16
|
|
1: 1/8
|
|
2: 1/4
|
|
3: 1/2
|
|
|
|
azoteq,global-halt:
|
|
type: boolean
|
|
description:
|
|
Specifies that the channel's long-term average is to freeze if any
|
|
other participating channel lies in a proximity or touch state.
|
|
|
|
azoteq,invert-enable:
|
|
type: boolean
|
|
description:
|
|
Inverts the polarity of the states reported for proximity and touch
|
|
events relative to their respective thresholds.
|
|
|
|
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,rx-enable:
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
minItems: 1
|
|
maxItems: 4
|
|
items:
|
|
minimum: 0
|
|
maximum: 7
|
|
description: Specifies the CRx pin(s) associated with the channel.
|
|
|
|
azoteq,samp-cap-double:
|
|
type: boolean
|
|
description: Doubles the sampling capacitance from 40 pF to 80 pF.
|
|
|
|
azoteq,vref-half:
|
|
type: boolean
|
|
description: Halves the discharge threshold from 1.0 V to 0.5 V.
|
|
|
|
azoteq,proj-bias:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
enum: [0, 1, 2, 3]
|
|
description: |
|
|
Specifies the bias current applied during mutual (projected)
|
|
capacitive sensing as follows:
|
|
0: 2 uA
|
|
1: 5 uA
|
|
2: 7 uA
|
|
3: 10 uA
|
|
|
|
azoteq,ati-target:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
multipleOf: 8
|
|
minimum: 0
|
|
maximum: 2040
|
|
description: Specifies the channel's ATI target.
|
|
|
|
azoteq,ati-base:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
multipleOf: 16
|
|
minimum: 0
|
|
maximum: 496
|
|
description: Specifies the channel's ATI base.
|
|
|
|
azoteq,ati-mode:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
enum: [0, 1, 2, 3, 4, 5]
|
|
description: |
|
|
Specifies the channel's ATI mode as follows:
|
|
0: Disabled
|
|
1: Compensation
|
|
2: Compensation divider
|
|
3: Fine fractional divider
|
|
4: Coarse fractional divider
|
|
5: Full
|
|
|
|
azoteq,ati-frac-div-fine:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 31
|
|
description: Specifies the channel's ATI fine fractional divider.
|
|
|
|
azoteq,ati-frac-mult-coarse:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 15
|
|
description: Specifies the channel's ATI coarse fractional multiplier.
|
|
|
|
azoteq,ati-frac-div-coarse:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 31
|
|
description: Specifies the channel's ATI coarse fractional divider.
|
|
|
|
azoteq,ati-comp-div:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 31
|
|
description: Specifies the channel's ATI compensation divider.
|
|
|
|
azoteq,ati-comp-select:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 1023
|
|
description: Specifies the channel's ATI compensation selection.
|
|
|
|
azoteq,debounce-enter:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 15
|
|
description: Specifies the channel's debounce entrance factor.
|
|
|
|
azoteq,debounce-exit:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 15
|
|
description: Specifies the channel's debounce exit factor.
|
|
|
|
patternProperties:
|
|
"^event-(prox|touch)$":
|
|
type: object
|
|
$ref: input.yaml#
|
|
description:
|
|
Represents a proximity or touch event reported by the channel.
|
|
|
|
properties:
|
|
azoteq,gpio-select:
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
minItems: 1
|
|
maxItems: 3
|
|
items:
|
|
minimum: 0
|
|
maximum: 2
|
|
description: |
|
|
Specifies one or more GPIO mapped to the event as follows:
|
|
0: GPIO0
|
|
1: GPIO3 (IQS7222C only)
|
|
2: GPIO4 (IQS7222C only)
|
|
|
|
Note that although multiple events can be mapped to a single
|
|
GPIO, they must all be of the same type (proximity, touch or
|
|
slider gesture).
|
|
|
|
azoteq,thresh:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
description:
|
|
Specifies the threshold for the event. Valid entries range from
|
|
0-127 and 0-255 for proximity and touch events, respectively.
|
|
|
|
azoteq,hyst:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 255
|
|
description:
|
|
Specifies the hysteresis for the event (touch events only).
|
|
|
|
azoteq,timeout-press-ms:
|
|
multipleOf: 500
|
|
minimum: 0
|
|
maximum: 127500
|
|
description:
|
|
Specifies the length of time (in ms) to wait before automatically
|
|
releasing a press event. Specify zero to allow the press state to
|
|
persist indefinitely.
|
|
|
|
The IQS7222B does not feature channel-specific timeouts; the time-
|
|
out specified for any one channel applies to all channels.
|
|
|
|
linux,code: true
|
|
|
|
linux,input-type:
|
|
enum: [1, 5]
|
|
default: 1
|
|
description:
|
|
Specifies whether the event is to be interpreted as a key (1)
|
|
or a switch (5).
|
|
|
|
additionalProperties: false
|
|
|
|
dependencies:
|
|
azoteq,ref-weight: ["azoteq,ref-select"]
|
|
azoteq,use-prox: ["azoteq,ref-select"]
|
|
|
|
additionalProperties: false
|
|
|
|
"^slider-[0-1]$":
|
|
type: object
|
|
description: Represents a slider comprising three or four channels.
|
|
|
|
properties:
|
|
azoteq,channel-select:
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
minItems: 3
|
|
maxItems: 4
|
|
items:
|
|
minimum: 0
|
|
maximum: 9
|
|
description:
|
|
Specifies the order of the channels that participate in the slider.
|
|
|
|
azoteq,slider-size:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 1
|
|
maximum: 65535
|
|
description:
|
|
Specifies the slider's one-dimensional resolution, equal to the
|
|
maximum coordinate plus one.
|
|
|
|
azoteq,lower-cal:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 255
|
|
description: Specifies the slider's lower starting point.
|
|
|
|
azoteq,upper-cal:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 255
|
|
description: Specifies the slider's upper starting point.
|
|
|
|
azoteq,top-speed:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 65535
|
|
description:
|
|
Specifies the speed of movement after which coordinate filtering is
|
|
no longer applied.
|
|
|
|
azoteq,bottom-speed:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 255
|
|
description:
|
|
Specifies the speed of movement after which coordinate filtering is
|
|
linearly reduced.
|
|
|
|
azoteq,bottom-beta:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 7
|
|
description:
|
|
Specifies the coordinate filter damping factor to be applied
|
|
while the speed of movement is below that which is specified
|
|
by azoteq,bottom-speed.
|
|
|
|
azoteq,static-beta:
|
|
type: boolean
|
|
description:
|
|
Applies the coordinate filter damping factor specified by
|
|
azoteq,bottom-beta regardless of the speed of movement.
|
|
|
|
azoteq,use-prox:
|
|
type: boolean
|
|
description:
|
|
Directs the slider to respond to the proximity states of the selected
|
|
channels instead of their corresponding touch states. Note the slider
|
|
cannot report granular coordinates during a state of proximity.
|
|
|
|
linux,axis:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
description:
|
|
Specifies the absolute axis to which coordinates are mapped. Specify
|
|
ABS_WHEEL to operate the slider as a wheel (IQS7222C only).
|
|
|
|
patternProperties:
|
|
"^event-(press|tap|(swipe|flick)-(pos|neg))$":
|
|
type: object
|
|
$ref: input.yaml#
|
|
description:
|
|
Represents a press or gesture (IQS7222A only) event reported by
|
|
the slider.
|
|
|
|
properties:
|
|
linux,code: true
|
|
|
|
azoteq,gesture-max-ms:
|
|
multipleOf: 16
|
|
minimum: 0
|
|
maximum: 4080
|
|
description:
|
|
Specifies the length of time (in ms) within which a tap, swipe
|
|
or flick gesture must be completed in order to be acknowledged
|
|
by the device. The number specified for any one swipe or flick
|
|
gesture applies to all remaining swipe or flick gestures.
|
|
|
|
azoteq,gesture-min-ms:
|
|
multipleOf: 16
|
|
minimum: 0
|
|
maximum: 496
|
|
description:
|
|
Specifies the length of time (in ms) for which a tap gesture must
|
|
be held in order to be acknowledged by the device.
|
|
|
|
azoteq,gesture-dist:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
multipleOf: 16
|
|
minimum: 0
|
|
maximum: 4080
|
|
description:
|
|
Specifies the distance across which a swipe or flick gesture must
|
|
travel in order to be acknowledged by the device. The number spec-
|
|
ified for any one swipe or flick gesture applies to all remaining
|
|
swipe or flick gestures.
|
|
|
|
azoteq,gpio-select:
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
minItems: 1
|
|
maxItems: 3
|
|
items:
|
|
minimum: 0
|
|
maximum: 2
|
|
description: |
|
|
Specifies one or more GPIO mapped to the event as follows:
|
|
0: GPIO0
|
|
1: GPIO3 (IQS7222C only)
|
|
2: GPIO4 (IQS7222C only)
|
|
|
|
Note that although multiple events can be mapped to a single
|
|
GPIO, they must all be of the same type (proximity, touch or
|
|
slider gesture).
|
|
|
|
additionalProperties: false
|
|
|
|
required:
|
|
- azoteq,channel-select
|
|
|
|
additionalProperties: false
|
|
|
|
"^gpio-[0-2]$":
|
|
type: object
|
|
description: |
|
|
Represents a GPIO mapped to one or more events as follows:
|
|
gpio-0: GPIO0
|
|
gpio-1: GPIO3 (IQS7222C only)
|
|
gpio-2: GPIO4 (IQS7222C only)
|
|
|
|
allOf:
|
|
- $ref: ../pinctrl/pincfg-node.yaml#
|
|
|
|
properties:
|
|
drive-open-drain: true
|
|
|
|
additionalProperties: false
|
|
|
|
allOf:
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: azoteq,iqs7222b
|
|
|
|
then:
|
|
patternProperties:
|
|
"^cycle-[0-9]$":
|
|
properties:
|
|
azoteq,iref-enable: false
|
|
|
|
"^channel-([0-9]|1[0-9])$":
|
|
properties:
|
|
azoteq,ref-select: false
|
|
|
|
patternProperties:
|
|
"^event-(prox|touch)$":
|
|
properties:
|
|
azoteq,gpio-select: false
|
|
|
|
"^slider-[0-1]$": false
|
|
|
|
"^gpio-[0-2]$": false
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: azoteq,iqs7222a
|
|
|
|
then:
|
|
patternProperties:
|
|
"^channel-([0-9]|1[0-9])$":
|
|
patternProperties:
|
|
"^event-(prox|touch)$":
|
|
properties:
|
|
azoteq,gpio-select:
|
|
maxItems: 1
|
|
items:
|
|
maximum: 0
|
|
|
|
"^slider-[0-1]$":
|
|
properties:
|
|
azoteq,slider-size:
|
|
multipleOf: 16
|
|
minimum: 16
|
|
maximum: 4080
|
|
|
|
azoteq,top-speed:
|
|
multipleOf: 4
|
|
maximum: 1020
|
|
|
|
patternProperties:
|
|
"^event-(press|tap|(swipe|flick)-(pos|neg))$":
|
|
properties:
|
|
azoteq,gpio-select:
|
|
maxItems: 1
|
|
items:
|
|
maximum: 0
|
|
|
|
else:
|
|
patternProperties:
|
|
"^channel-([0-9]|1[0-9])$":
|
|
properties:
|
|
azoteq,ulp-allow: false
|
|
|
|
"^slider-[0-1]$":
|
|
patternProperties:
|
|
"^event-(press|tap|(swipe|flick)-(pos|neg))$":
|
|
properties:
|
|
azoteq,gesture-max-ms: false
|
|
|
|
azoteq,gesture-min-ms: false
|
|
|
|
azoteq,gesture-dist: false
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- irq-gpios
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/input/input.h>
|
|
|
|
i2c {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
iqs7222a@44 {
|
|
compatible = "azoteq,iqs7222a";
|
|
reg = <0x44>;
|
|
irq-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
|
|
azoteq,lta-beta-lp = <7>;
|
|
azoteq,lta-beta-np = <8>;
|
|
azoteq,counts-beta-lp = <2>;
|
|
azoteq,counts-beta-np = <3>;
|
|
azoteq,lta-fast-beta-lp = <3>;
|
|
azoteq,lta-fast-beta-np = <4>;
|
|
|
|
cycle-0 {
|
|
azoteq,conv-period = <5>;
|
|
azoteq,conv-frac = <127>;
|
|
azoteq,tx-enable = <1>, <2>, <4>, <5>;
|
|
azoteq,dead-time-enable;
|
|
azoteq,sense-mode = <2>;
|
|
};
|
|
|
|
cycle-1 {
|
|
azoteq,conv-period = <5>;
|
|
azoteq,conv-frac = <127>;
|
|
azoteq,tx-enable = <5>;
|
|
azoteq,dead-time-enable;
|
|
azoteq,sense-mode = <2>;
|
|
};
|
|
|
|
cycle-2 {
|
|
azoteq,conv-period = <5>;
|
|
azoteq,conv-frac = <127>;
|
|
azoteq,tx-enable = <4>;
|
|
azoteq,dead-time-enable;
|
|
azoteq,sense-mode = <2>;
|
|
};
|
|
|
|
cycle-3 {
|
|
azoteq,conv-period = <5>;
|
|
azoteq,conv-frac = <127>;
|
|
azoteq,tx-enable = <2>;
|
|
azoteq,dead-time-enable;
|
|
azoteq,sense-mode = <2>;
|
|
};
|
|
|
|
cycle-4 {
|
|
azoteq,conv-period = <5>;
|
|
azoteq,conv-frac = <127>;
|
|
azoteq,tx-enable = <1>;
|
|
azoteq,dead-time-enable;
|
|
azoteq,sense-mode = <2>;
|
|
};
|
|
|
|
cycle-5 {
|
|
azoteq,conv-period = <2>;
|
|
azoteq,conv-frac = <0>;
|
|
};
|
|
|
|
cycle-6 {
|
|
azoteq,conv-period = <2>;
|
|
azoteq,conv-frac = <0>;
|
|
};
|
|
|
|
channel-0 {
|
|
azoteq,ulp-allow;
|
|
azoteq,global-halt;
|
|
azoteq,invert-enable;
|
|
azoteq,rx-enable = <3>;
|
|
azoteq,ati-target = <800>;
|
|
azoteq,ati-base = <208>;
|
|
azoteq,ati-mode = <5>;
|
|
};
|
|
|
|
channel-1 {
|
|
azoteq,global-halt;
|
|
azoteq,invert-enable;
|
|
azoteq,rx-enable = <3>;
|
|
azoteq,ati-target = <496>;
|
|
azoteq,ati-base = <208>;
|
|
azoteq,ati-mode = <5>;
|
|
};
|
|
|
|
channel-2 {
|
|
azoteq,global-halt;
|
|
azoteq,invert-enable;
|
|
azoteq,rx-enable = <3>;
|
|
azoteq,ati-target = <496>;
|
|
azoteq,ati-base = <208>;
|
|
azoteq,ati-mode = <5>;
|
|
};
|
|
|
|
channel-3 {
|
|
azoteq,global-halt;
|
|
azoteq,invert-enable;
|
|
azoteq,rx-enable = <3>;
|
|
azoteq,ati-target = <496>;
|
|
azoteq,ati-base = <208>;
|
|
azoteq,ati-mode = <5>;
|
|
};
|
|
|
|
channel-4 {
|
|
azoteq,global-halt;
|
|
azoteq,invert-enable;
|
|
azoteq,rx-enable = <3>;
|
|
azoteq,ati-target = <496>;
|
|
azoteq,ati-base = <208>;
|
|
azoteq,ati-mode = <5>;
|
|
};
|
|
|
|
channel-5 {
|
|
azoteq,ulp-allow;
|
|
azoteq,global-halt;
|
|
azoteq,invert-enable;
|
|
azoteq,rx-enable = <6>;
|
|
azoteq,ati-target = <800>;
|
|
azoteq,ati-base = <144>;
|
|
azoteq,ati-mode = <5>;
|
|
};
|
|
|
|
channel-6 {
|
|
azoteq,global-halt;
|
|
azoteq,invert-enable;
|
|
azoteq,rx-enable = <6>;
|
|
azoteq,ati-target = <496>;
|
|
azoteq,ati-base = <160>;
|
|
azoteq,ati-mode = <5>;
|
|
|
|
event-touch {
|
|
linux,code = <KEY_MUTE>;
|
|
};
|
|
};
|
|
|
|
channel-7 {
|
|
azoteq,global-halt;
|
|
azoteq,invert-enable;
|
|
azoteq,rx-enable = <6>;
|
|
azoteq,ati-target = <496>;
|
|
azoteq,ati-base = <160>;
|
|
azoteq,ati-mode = <5>;
|
|
|
|
event-touch {
|
|
linux,code = <KEY_VOLUMEDOWN>;
|
|
};
|
|
};
|
|
|
|
channel-8 {
|
|
azoteq,global-halt;
|
|
azoteq,invert-enable;
|
|
azoteq,rx-enable = <6>;
|
|
azoteq,ati-target = <496>;
|
|
azoteq,ati-base = <160>;
|
|
azoteq,ati-mode = <5>;
|
|
|
|
event-touch {
|
|
linux,code = <KEY_VOLUMEUP>;
|
|
};
|
|
};
|
|
|
|
channel-9 {
|
|
azoteq,global-halt;
|
|
azoteq,invert-enable;
|
|
azoteq,rx-enable = <6>;
|
|
azoteq,ati-target = <496>;
|
|
azoteq,ati-base = <160>;
|
|
azoteq,ati-mode = <5>;
|
|
|
|
event-touch {
|
|
linux,code = <KEY_POWER>;
|
|
};
|
|
};
|
|
|
|
channel-10 {
|
|
azoteq,ulp-allow;
|
|
azoteq,ati-target = <496>;
|
|
azoteq,ati-base = <112>;
|
|
|
|
event-touch {
|
|
linux,code = <SW_LID>;
|
|
linux,input-type = <EV_SW>;
|
|
};
|
|
};
|
|
|
|
channel-11 {
|
|
azoteq,ati-target = <496>;
|
|
azoteq,ati-base = <112>;
|
|
};
|
|
|
|
slider-0 {
|
|
azoteq,channel-select = <1>, <2>, <3>, <4>;
|
|
azoteq,slider-size = <4080>;
|
|
azoteq,upper-cal = <50>;
|
|
azoteq,lower-cal = <30>;
|
|
azoteq,top-speed = <200>;
|
|
azoteq,bottom-speed = <1>;
|
|
azoteq,bottom-beta = <3>;
|
|
|
|
event-tap {
|
|
linux,code = <KEY_PLAYPAUSE>;
|
|
azoteq,gesture-max-ms = <400>;
|
|
azoteq,gesture-min-ms = <32>;
|
|
};
|
|
|
|
event-flick-pos {
|
|
linux,code = <KEY_NEXTSONG>;
|
|
azoteq,gesture-max-ms = <800>;
|
|
azoteq,gesture-dist = <800>;
|
|
};
|
|
|
|
event-flick-neg {
|
|
linux,code = <KEY_PREVIOUSSONG>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
...
|