xref: /freebsd/sys/contrib/device-tree/Bindings/input/iqs626a.yaml (revision 2eb4d8dc723da3cf7d735a3226ae49da4c8c5dbc)
1*2eb4d8dcSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*2eb4d8dcSEmmanuel Vadot%YAML 1.2
3*2eb4d8dcSEmmanuel Vadot---
4*2eb4d8dcSEmmanuel Vadot$id: http://devicetree.org/schemas/input/iqs626a.yaml#
5*2eb4d8dcSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*2eb4d8dcSEmmanuel Vadot
7*2eb4d8dcSEmmanuel Vadottitle: Azoteq IQS626A Capacitive Touch Controller
8*2eb4d8dcSEmmanuel Vadot
9*2eb4d8dcSEmmanuel Vadotmaintainers:
10*2eb4d8dcSEmmanuel Vadot  - Jeff LaBundy <jeff@labundy.com>
11*2eb4d8dcSEmmanuel Vadot
12*2eb4d8dcSEmmanuel Vadotdescription: |
13*2eb4d8dcSEmmanuel Vadot  The Azoteq IQS626A is a 14-channel capacitive touch controller that features
14*2eb4d8dcSEmmanuel Vadot  additional Hall-effect and inductive sensing capabilities.
15*2eb4d8dcSEmmanuel Vadot
16*2eb4d8dcSEmmanuel Vadot  Link to datasheet: https://www.azoteq.com/
17*2eb4d8dcSEmmanuel Vadot
18*2eb4d8dcSEmmanuel VadotallOf:
19*2eb4d8dcSEmmanuel Vadot  - $ref: touchscreen/touchscreen.yaml#
20*2eb4d8dcSEmmanuel Vadot
21*2eb4d8dcSEmmanuel Vadotproperties:
22*2eb4d8dcSEmmanuel Vadot  compatible:
23*2eb4d8dcSEmmanuel Vadot    const: azoteq,iqs626a
24*2eb4d8dcSEmmanuel Vadot
25*2eb4d8dcSEmmanuel Vadot  reg:
26*2eb4d8dcSEmmanuel Vadot    maxItems: 1
27*2eb4d8dcSEmmanuel Vadot
28*2eb4d8dcSEmmanuel Vadot  interrupts:
29*2eb4d8dcSEmmanuel Vadot    maxItems: 1
30*2eb4d8dcSEmmanuel Vadot
31*2eb4d8dcSEmmanuel Vadot  "#address-cells":
32*2eb4d8dcSEmmanuel Vadot    const: 1
33*2eb4d8dcSEmmanuel Vadot
34*2eb4d8dcSEmmanuel Vadot  "#size-cells":
35*2eb4d8dcSEmmanuel Vadot    const: 0
36*2eb4d8dcSEmmanuel Vadot
37*2eb4d8dcSEmmanuel Vadot  azoteq,suspend-mode:
38*2eb4d8dcSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
39*2eb4d8dcSEmmanuel Vadot    enum: [0, 1, 2, 3]
40*2eb4d8dcSEmmanuel Vadot    default: 0
41*2eb4d8dcSEmmanuel Vadot    description: |
42*2eb4d8dcSEmmanuel Vadot      Specifies the power mode during suspend as follows:
43*2eb4d8dcSEmmanuel Vadot      0: Automatic (same as normal runtime, i.e. suspend/resume disabled)
44*2eb4d8dcSEmmanuel Vadot      1: Low power (all sensing at a reduced reporting rate)
45*2eb4d8dcSEmmanuel Vadot      2: Ultra-low power (ULP channel proximity sensing)
46*2eb4d8dcSEmmanuel Vadot      3: Halt (no sensing)
47*2eb4d8dcSEmmanuel Vadot
48*2eb4d8dcSEmmanuel Vadot  azoteq,clk-div:
49*2eb4d8dcSEmmanuel Vadot    type: boolean
50*2eb4d8dcSEmmanuel Vadot    description: Divides the device's core clock by a factor of 4.
51*2eb4d8dcSEmmanuel Vadot
52*2eb4d8dcSEmmanuel Vadot  azoteq,ulp-enable:
53*2eb4d8dcSEmmanuel Vadot    type: boolean
54*2eb4d8dcSEmmanuel Vadot    description:
55*2eb4d8dcSEmmanuel Vadot      Permits the device to automatically enter ultra-low-power mode from low-
56*2eb4d8dcSEmmanuel Vadot      power mode.
57*2eb4d8dcSEmmanuel Vadot
58*2eb4d8dcSEmmanuel Vadot  azoteq,ulp-update:
59*2eb4d8dcSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
60*2eb4d8dcSEmmanuel Vadot    enum: [0, 1, 2, 3, 4, 5, 6, 7]
61*2eb4d8dcSEmmanuel Vadot    default: 3
62*2eb4d8dcSEmmanuel Vadot    description: |
63*2eb4d8dcSEmmanuel Vadot      Specifies the rate at which the trackpad, generic and Hall channels are
64*2eb4d8dcSEmmanuel Vadot      updated during ultra-low-power mode as follows:
65*2eb4d8dcSEmmanuel Vadot      0: 8
66*2eb4d8dcSEmmanuel Vadot      1: 13
67*2eb4d8dcSEmmanuel Vadot      2: 28
68*2eb4d8dcSEmmanuel Vadot      3: 54
69*2eb4d8dcSEmmanuel Vadot      4: 89
70*2eb4d8dcSEmmanuel Vadot      5: 135
71*2eb4d8dcSEmmanuel Vadot      6: 190
72*2eb4d8dcSEmmanuel Vadot      7: 256
73*2eb4d8dcSEmmanuel Vadot
74*2eb4d8dcSEmmanuel Vadot  azoteq,ati-band-disable:
75*2eb4d8dcSEmmanuel Vadot    type: boolean
76*2eb4d8dcSEmmanuel Vadot    description: Disables the ATI band check.
77*2eb4d8dcSEmmanuel Vadot
78*2eb4d8dcSEmmanuel Vadot  azoteq,ati-lp-only:
79*2eb4d8dcSEmmanuel Vadot    type: boolean
80*2eb4d8dcSEmmanuel Vadot    description: Limits automatic ATI to low-power mode.
81*2eb4d8dcSEmmanuel Vadot
82*2eb4d8dcSEmmanuel Vadot  azoteq,gpio3-select:
83*2eb4d8dcSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
84*2eb4d8dcSEmmanuel Vadot    enum: [0, 1, 2, 3, 4, 5, 6, 7]
85*2eb4d8dcSEmmanuel Vadot    default: 1
86*2eb4d8dcSEmmanuel Vadot    description: |
87*2eb4d8dcSEmmanuel Vadot      Selects the channel or group of channels for which the GPIO3 pin
88*2eb4d8dcSEmmanuel Vadot      represents touch state as follows:
89*2eb4d8dcSEmmanuel Vadot      0: None
90*2eb4d8dcSEmmanuel Vadot      1: ULP channel
91*2eb4d8dcSEmmanuel Vadot      2: Trackpad
92*2eb4d8dcSEmmanuel Vadot      3: Trackpad
93*2eb4d8dcSEmmanuel Vadot      4: Generic channel 0
94*2eb4d8dcSEmmanuel Vadot      5: Generic channel 1
95*2eb4d8dcSEmmanuel Vadot      6: Generic channel 2
96*2eb4d8dcSEmmanuel Vadot      7: Hall channel
97*2eb4d8dcSEmmanuel Vadot
98*2eb4d8dcSEmmanuel Vadot  azoteq,reseed-select:
99*2eb4d8dcSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
100*2eb4d8dcSEmmanuel Vadot    enum: [0, 1, 2, 3]
101*2eb4d8dcSEmmanuel Vadot    default: 0
102*2eb4d8dcSEmmanuel Vadot    description: |
103*2eb4d8dcSEmmanuel Vadot      Specifies the event(s) that prompt the device to reseed (i.e. reset the
104*2eb4d8dcSEmmanuel Vadot      long-term average) of an associated channel as follows:
105*2eb4d8dcSEmmanuel Vadot      0: None
106*2eb4d8dcSEmmanuel Vadot      1: Proximity
107*2eb4d8dcSEmmanuel Vadot      2: Proximity or touch
108*2eb4d8dcSEmmanuel Vadot      3: Proximity, touch or deep touch
109*2eb4d8dcSEmmanuel Vadot
110*2eb4d8dcSEmmanuel Vadot  azoteq,thresh-extend:
111*2eb4d8dcSEmmanuel Vadot    type: boolean
112*2eb4d8dcSEmmanuel Vadot    description: Multiplies all touch and deep-touch thresholds by 4.
113*2eb4d8dcSEmmanuel Vadot
114*2eb4d8dcSEmmanuel Vadot  azoteq,tracking-enable:
115*2eb4d8dcSEmmanuel Vadot    type: boolean
116*2eb4d8dcSEmmanuel Vadot    description:
117*2eb4d8dcSEmmanuel Vadot      Enables all associated channels to track their respective reference
118*2eb4d8dcSEmmanuel Vadot      channels.
119*2eb4d8dcSEmmanuel Vadot
120*2eb4d8dcSEmmanuel Vadot  azoteq,reseed-offset:
121*2eb4d8dcSEmmanuel Vadot    type: boolean
122*2eb4d8dcSEmmanuel Vadot    description:
123*2eb4d8dcSEmmanuel Vadot      Applies an 8-count offset to all long-term averages upon either ATI or
124*2eb4d8dcSEmmanuel Vadot      reseed events.
125*2eb4d8dcSEmmanuel Vadot
126*2eb4d8dcSEmmanuel Vadot  azoteq,rate-np-ms:
127*2eb4d8dcSEmmanuel Vadot    minimum: 0
128*2eb4d8dcSEmmanuel Vadot    maximum: 255
129*2eb4d8dcSEmmanuel Vadot    default: 150
130*2eb4d8dcSEmmanuel Vadot    description: Specifies the report rate (in ms) during normal-power mode.
131*2eb4d8dcSEmmanuel Vadot
132*2eb4d8dcSEmmanuel Vadot  azoteq,rate-lp-ms:
133*2eb4d8dcSEmmanuel Vadot    minimum: 0
134*2eb4d8dcSEmmanuel Vadot    maximum: 255
135*2eb4d8dcSEmmanuel Vadot    default: 150
136*2eb4d8dcSEmmanuel Vadot    description: Specifies the report rate (in ms) during low-power mode.
137*2eb4d8dcSEmmanuel Vadot
138*2eb4d8dcSEmmanuel Vadot  azoteq,rate-ulp-ms:
139*2eb4d8dcSEmmanuel Vadot    multipleOf: 16
140*2eb4d8dcSEmmanuel Vadot    minimum: 0
141*2eb4d8dcSEmmanuel Vadot    maximum: 4080
142*2eb4d8dcSEmmanuel Vadot    default: 0
143*2eb4d8dcSEmmanuel Vadot    description: Specifies the report rate (in ms) during ultra-low-power mode.
144*2eb4d8dcSEmmanuel Vadot
145*2eb4d8dcSEmmanuel Vadot  azoteq,timeout-pwr-ms:
146*2eb4d8dcSEmmanuel Vadot    multipleOf: 512
147*2eb4d8dcSEmmanuel Vadot    minimum: 0
148*2eb4d8dcSEmmanuel Vadot    maximum: 130560
149*2eb4d8dcSEmmanuel Vadot    default: 2560
150*2eb4d8dcSEmmanuel Vadot    description:
151*2eb4d8dcSEmmanuel Vadot      Specifies the length of time (in ms) to wait for an event before moving
152*2eb4d8dcSEmmanuel Vadot      from normal-power mode to low-power mode, or (if 'azoteq,ulp-enable' is
153*2eb4d8dcSEmmanuel Vadot      present) from low-power mode to ultra-low-power mode.
154*2eb4d8dcSEmmanuel Vadot
155*2eb4d8dcSEmmanuel Vadot  azoteq,timeout-lta-ms:
156*2eb4d8dcSEmmanuel Vadot    multipleOf: 512
157*2eb4d8dcSEmmanuel Vadot    minimum: 0
158*2eb4d8dcSEmmanuel Vadot    maximum: 130560
159*2eb4d8dcSEmmanuel Vadot    default: 40960
160*2eb4d8dcSEmmanuel Vadot    description:
161*2eb4d8dcSEmmanuel Vadot      Specifies the length of time (in ms) to wait before resetting the long-
162*2eb4d8dcSEmmanuel Vadot      term average of all channels. Specify the maximum timeout to disable it
163*2eb4d8dcSEmmanuel Vadot      altogether.
164*2eb4d8dcSEmmanuel Vadot
165*2eb4d8dcSEmmanuel Vadot  touchscreen-inverted-x: true
166*2eb4d8dcSEmmanuel Vadot  touchscreen-inverted-y: true
167*2eb4d8dcSEmmanuel Vadot  touchscreen-swapped-x-y: true
168*2eb4d8dcSEmmanuel Vadot
169*2eb4d8dcSEmmanuel VadotpatternProperties:
170*2eb4d8dcSEmmanuel Vadot  "^ulp-0|generic-[0-2]|hall$":
171*2eb4d8dcSEmmanuel Vadot    type: object
172*2eb4d8dcSEmmanuel Vadot    description:
173*2eb4d8dcSEmmanuel Vadot      Represents a single sensing channel. A channel is active if defined and
174*2eb4d8dcSEmmanuel Vadot      inactive otherwise.
175*2eb4d8dcSEmmanuel Vadot
176*2eb4d8dcSEmmanuel Vadot    properties:
177*2eb4d8dcSEmmanuel Vadot      azoteq,ati-exclude:
178*2eb4d8dcSEmmanuel Vadot        type: boolean
179*2eb4d8dcSEmmanuel Vadot        description:
180*2eb4d8dcSEmmanuel Vadot          Prevents the channel from participating in an ATI event that is
181*2eb4d8dcSEmmanuel Vadot          manually triggered during initialization.
182*2eb4d8dcSEmmanuel Vadot
183*2eb4d8dcSEmmanuel Vadot      azoteq,reseed-disable:
184*2eb4d8dcSEmmanuel Vadot        type: boolean
185*2eb4d8dcSEmmanuel Vadot        description:
186*2eb4d8dcSEmmanuel Vadot          Prevents the channel from being reseeded if the long-term average
187*2eb4d8dcSEmmanuel Vadot          timeout (defined in 'azoteq,timeout-lta') expires.
188*2eb4d8dcSEmmanuel Vadot
189*2eb4d8dcSEmmanuel Vadot      azoteq,meas-cap-decrease:
190*2eb4d8dcSEmmanuel Vadot        type: boolean
191*2eb4d8dcSEmmanuel Vadot        description:
192*2eb4d8dcSEmmanuel Vadot          Decreases the internal measurement capacitance from 60 pF to 15 pF.
193*2eb4d8dcSEmmanuel Vadot
194*2eb4d8dcSEmmanuel Vadot      azoteq,rx-inactive:
195*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
196*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 2]
197*2eb4d8dcSEmmanuel Vadot        default: 0
198*2eb4d8dcSEmmanuel Vadot        description: |
199*2eb4d8dcSEmmanuel Vadot          Specifies how inactive CRX pins are to be terminated as follows:
200*2eb4d8dcSEmmanuel Vadot          0: VSS
201*2eb4d8dcSEmmanuel Vadot          1: Floating
202*2eb4d8dcSEmmanuel Vadot          2: VREG (generic channels only)
203*2eb4d8dcSEmmanuel Vadot
204*2eb4d8dcSEmmanuel Vadot      azoteq,linearize:
205*2eb4d8dcSEmmanuel Vadot        type: boolean
206*2eb4d8dcSEmmanuel Vadot        description:
207*2eb4d8dcSEmmanuel Vadot          Enables linearization of the channel's counts (generic and Hall
208*2eb4d8dcSEmmanuel Vadot          channels) or inverts the polarity of the channel's proximity or
209*2eb4d8dcSEmmanuel Vadot          touch states (ULP channel).
210*2eb4d8dcSEmmanuel Vadot
211*2eb4d8dcSEmmanuel Vadot      azoteq,dual-direction:
212*2eb4d8dcSEmmanuel Vadot        type: boolean
213*2eb4d8dcSEmmanuel Vadot        description:
214*2eb4d8dcSEmmanuel Vadot          Specifies that the channel's long-term average is to freeze in the
215*2eb4d8dcSEmmanuel Vadot          presence of either increasing or decreasing counts, thereby permit-
216*2eb4d8dcSEmmanuel Vadot          ting events to be reported in either direction.
217*2eb4d8dcSEmmanuel Vadot
218*2eb4d8dcSEmmanuel Vadot      azoteq,filt-disable:
219*2eb4d8dcSEmmanuel Vadot        type: boolean
220*2eb4d8dcSEmmanuel Vadot        description: Disables raw count filtering for the channel.
221*2eb4d8dcSEmmanuel Vadot
222*2eb4d8dcSEmmanuel Vadot      azoteq,ati-mode:
223*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
224*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 2, 3]
225*2eb4d8dcSEmmanuel Vadot        description: |
226*2eb4d8dcSEmmanuel Vadot          Specifies the channel's ATI mode as follows:
227*2eb4d8dcSEmmanuel Vadot          0: Disabled
228*2eb4d8dcSEmmanuel Vadot          1: Semi-partial
229*2eb4d8dcSEmmanuel Vadot          2: Partial
230*2eb4d8dcSEmmanuel Vadot          3: Full
231*2eb4d8dcSEmmanuel Vadot
232*2eb4d8dcSEmmanuel Vadot          The default value is a function of the channel and the device's reset
233*2eb4d8dcSEmmanuel Vadot          user interface (RUI); reference the datasheet for further information
234*2eb4d8dcSEmmanuel Vadot          about the available RUI options.
235*2eb4d8dcSEmmanuel Vadot
236*2eb4d8dcSEmmanuel Vadot      azoteq,ati-base:
237*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
238*2eb4d8dcSEmmanuel Vadot        enum: [75, 100, 150, 200]
239*2eb4d8dcSEmmanuel Vadot        description:
240*2eb4d8dcSEmmanuel Vadot          Specifies the channel's ATI base. The default value is a function
241*2eb4d8dcSEmmanuel Vadot          of the channel and the device's RUI.
242*2eb4d8dcSEmmanuel Vadot
243*2eb4d8dcSEmmanuel Vadot      azoteq,ati-target:
244*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
245*2eb4d8dcSEmmanuel Vadot        multipleOf: 32
246*2eb4d8dcSEmmanuel Vadot        minimum: 0
247*2eb4d8dcSEmmanuel Vadot        maximum: 2016
248*2eb4d8dcSEmmanuel Vadot        description:
249*2eb4d8dcSEmmanuel Vadot          Specifies the channel's ATI target. The default value is a function
250*2eb4d8dcSEmmanuel Vadot          of the channel and the device's RUI.
251*2eb4d8dcSEmmanuel Vadot
252*2eb4d8dcSEmmanuel Vadot      azoteq,cct-increase:
253*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
254*2eb4d8dcSEmmanuel Vadot        minimum: 0
255*2eb4d8dcSEmmanuel Vadot        maximum: 16
256*2eb4d8dcSEmmanuel Vadot        default: 0
257*2eb4d8dcSEmmanuel Vadot        description:
258*2eb4d8dcSEmmanuel Vadot          Specifies the degree to which the channel's charge cycle time is to
259*2eb4d8dcSEmmanuel Vadot          be increased, with 0 representing no increase. The maximum value is
260*2eb4d8dcSEmmanuel Vadot          limited to 4 in the case of the ULP channel, and the property is un-
261*2eb4d8dcSEmmanuel Vadot          available entirely in the case of the Hall channel.
262*2eb4d8dcSEmmanuel Vadot
263*2eb4d8dcSEmmanuel Vadot      azoteq,proj-bias:
264*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
265*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 2, 3]
266*2eb4d8dcSEmmanuel Vadot        default: 0
267*2eb4d8dcSEmmanuel Vadot        description: |
268*2eb4d8dcSEmmanuel Vadot          Specifies the bias current applied during projected-capacitance
269*2eb4d8dcSEmmanuel Vadot          sensing as follows:
270*2eb4d8dcSEmmanuel Vadot          0: 2.5 uA
271*2eb4d8dcSEmmanuel Vadot          1: 5 uA
272*2eb4d8dcSEmmanuel Vadot          2: 10 uA
273*2eb4d8dcSEmmanuel Vadot          3: 20 uA
274*2eb4d8dcSEmmanuel Vadot
275*2eb4d8dcSEmmanuel Vadot          This property is unavailable in the case of the Hall channel.
276*2eb4d8dcSEmmanuel Vadot
277*2eb4d8dcSEmmanuel Vadot      azoteq,sense-freq:
278*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
279*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 2, 3]
280*2eb4d8dcSEmmanuel Vadot        description: |
281*2eb4d8dcSEmmanuel Vadot          Specifies the channel's sensing frequency as follows (parenthesized
282*2eb4d8dcSEmmanuel Vadot          numbers represent the frequency if 'azoteq,clk-div' is present):
283*2eb4d8dcSEmmanuel Vadot          0: 4 MHz (1 MHz)
284*2eb4d8dcSEmmanuel Vadot          1: 2 MHz (500 kHz)
285*2eb4d8dcSEmmanuel Vadot          2: 1 MHz (250 kHz)
286*2eb4d8dcSEmmanuel Vadot          3: 500 kHz (125 kHz)
287*2eb4d8dcSEmmanuel Vadot
288*2eb4d8dcSEmmanuel Vadot          This property is unavailable in the case of the Hall channel. The
289*2eb4d8dcSEmmanuel Vadot          default value is a function of the channel and the device's RUI.
290*2eb4d8dcSEmmanuel Vadot
291*2eb4d8dcSEmmanuel Vadot      azoteq,ati-band-tighten:
292*2eb4d8dcSEmmanuel Vadot        type: boolean
293*2eb4d8dcSEmmanuel Vadot        description:
294*2eb4d8dcSEmmanuel Vadot          Tightens the ATI band from 1/8 to 1/16 of the desired target (ULP and
295*2eb4d8dcSEmmanuel Vadot          generic channels only).
296*2eb4d8dcSEmmanuel Vadot
297*2eb4d8dcSEmmanuel Vadot      azoteq,proj-enable:
298*2eb4d8dcSEmmanuel Vadot        type: boolean
299*2eb4d8dcSEmmanuel Vadot        description: Enables projected-capacitance sensing (ULP channel only).
300*2eb4d8dcSEmmanuel Vadot
301*2eb4d8dcSEmmanuel Vadot      azoteq,filt-str-np-cnt:
302*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
303*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 2, 3]
304*2eb4d8dcSEmmanuel Vadot        default: 0
305*2eb4d8dcSEmmanuel Vadot        description:
306*2eb4d8dcSEmmanuel Vadot          Specifies the raw count filter strength during normal-power mode (ULP
307*2eb4d8dcSEmmanuel Vadot          and generic channels only).
308*2eb4d8dcSEmmanuel Vadot
309*2eb4d8dcSEmmanuel Vadot      azoteq,filt-str-lp-cnt:
310*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
311*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 2, 3]
312*2eb4d8dcSEmmanuel Vadot        default: 0
313*2eb4d8dcSEmmanuel Vadot        description:
314*2eb4d8dcSEmmanuel Vadot          Specifies the raw count filter strength during low-power mode (ULP and
315*2eb4d8dcSEmmanuel Vadot          generic channels only).
316*2eb4d8dcSEmmanuel Vadot
317*2eb4d8dcSEmmanuel Vadot      azoteq,filt-str-np-lta:
318*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
319*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 2, 3]
320*2eb4d8dcSEmmanuel Vadot        default: 0
321*2eb4d8dcSEmmanuel Vadot        description:
322*2eb4d8dcSEmmanuel Vadot          Specifies the long-term average filter strength during normal-power
323*2eb4d8dcSEmmanuel Vadot          mode (ULP and generic channels only).
324*2eb4d8dcSEmmanuel Vadot
325*2eb4d8dcSEmmanuel Vadot      azoteq,filt-str-lp-lta:
326*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
327*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 2, 3]
328*2eb4d8dcSEmmanuel Vadot        default: 0
329*2eb4d8dcSEmmanuel Vadot        description:
330*2eb4d8dcSEmmanuel Vadot          Specifies the long-term average filter strength during low-power mode
331*2eb4d8dcSEmmanuel Vadot          (ULP and generic channels only).
332*2eb4d8dcSEmmanuel Vadot
333*2eb4d8dcSEmmanuel Vadot      azoteq,rx-enable:
334*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32-array
335*2eb4d8dcSEmmanuel Vadot        minItems: 1
336*2eb4d8dcSEmmanuel Vadot        maxItems: 8
337*2eb4d8dcSEmmanuel Vadot        items:
338*2eb4d8dcSEmmanuel Vadot          minimum: 0
339*2eb4d8dcSEmmanuel Vadot          maximum: 7
340*2eb4d8dcSEmmanuel Vadot        description:
341*2eb4d8dcSEmmanuel Vadot          Specifies the CRX pin(s) associated with the channel.
342*2eb4d8dcSEmmanuel Vadot
343*2eb4d8dcSEmmanuel Vadot          This property is unavailable in the case of the Hall channel. The
344*2eb4d8dcSEmmanuel Vadot          default value is a function of the channel and the device's RUI.
345*2eb4d8dcSEmmanuel Vadot
346*2eb4d8dcSEmmanuel Vadot      azoteq,tx-enable:
347*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32-array
348*2eb4d8dcSEmmanuel Vadot        minItems: 1
349*2eb4d8dcSEmmanuel Vadot        maxItems: 8
350*2eb4d8dcSEmmanuel Vadot        items:
351*2eb4d8dcSEmmanuel Vadot          minimum: 0
352*2eb4d8dcSEmmanuel Vadot          maximum: 7
353*2eb4d8dcSEmmanuel Vadot        description:
354*2eb4d8dcSEmmanuel Vadot          Specifies the TX pin(s) associated with the channel.
355*2eb4d8dcSEmmanuel Vadot
356*2eb4d8dcSEmmanuel Vadot          This property is unavailable in the case of the Hall channel. The
357*2eb4d8dcSEmmanuel Vadot          default value is a function of the channel and the device's RUI.
358*2eb4d8dcSEmmanuel Vadot
359*2eb4d8dcSEmmanuel Vadot      azoteq,local-cap-size:
360*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
361*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 2, 3, 4]
362*2eb4d8dcSEmmanuel Vadot        default: 0
363*2eb4d8dcSEmmanuel Vadot        description: |
364*2eb4d8dcSEmmanuel Vadot          Specifies the capacitance to be added to the channel as follows:
365*2eb4d8dcSEmmanuel Vadot          0: 0 pF
366*2eb4d8dcSEmmanuel Vadot          1: 0.5 pF
367*2eb4d8dcSEmmanuel Vadot          2: 1.0 pF
368*2eb4d8dcSEmmanuel Vadot          3: 1.5 pF
369*2eb4d8dcSEmmanuel Vadot          4: 2.0 pF
370*2eb4d8dcSEmmanuel Vadot
371*2eb4d8dcSEmmanuel Vadot          This property is unavailable in the case of the ULP or Hall channels.
372*2eb4d8dcSEmmanuel Vadot
373*2eb4d8dcSEmmanuel Vadot      azoteq,sense-mode:
374*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
375*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 8, 9, 12, 14, 15]
376*2eb4d8dcSEmmanuel Vadot        description: |
377*2eb4d8dcSEmmanuel Vadot          Specifies the channel's sensing mode as follows:
378*2eb4d8dcSEmmanuel Vadot          0:  Self capacitance
379*2eb4d8dcSEmmanuel Vadot          1:  Projected capacitance
380*2eb4d8dcSEmmanuel Vadot          8:  Self inductance
381*2eb4d8dcSEmmanuel Vadot          9:  Mutual inductance
382*2eb4d8dcSEmmanuel Vadot          12: External
383*2eb4d8dcSEmmanuel Vadot          14: Hall effect
384*2eb4d8dcSEmmanuel Vadot          15: Temperature
385*2eb4d8dcSEmmanuel Vadot
386*2eb4d8dcSEmmanuel Vadot          This property is unavailable in the case of the ULP or Hall channels.
387*2eb4d8dcSEmmanuel Vadot          The default value is a function of the channel and the device's RUI.
388*2eb4d8dcSEmmanuel Vadot
389*2eb4d8dcSEmmanuel Vadot      azoteq,tx-freq:
390*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
391*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 2, 3]
392*2eb4d8dcSEmmanuel Vadot        default: 0
393*2eb4d8dcSEmmanuel Vadot        description: |
394*2eb4d8dcSEmmanuel Vadot          Specifies the inductive sensing excitation frequency as follows
395*2eb4d8dcSEmmanuel Vadot          (parenthesized numbers represent the frequency if 'azoteq,clk-div'
396*2eb4d8dcSEmmanuel Vadot          is present):
397*2eb4d8dcSEmmanuel Vadot          0: 16 MHz (4 MHz)
398*2eb4d8dcSEmmanuel Vadot          1: 8 MHz (2 MHz)
399*2eb4d8dcSEmmanuel Vadot          2: 4 MHz (1 MHz)
400*2eb4d8dcSEmmanuel Vadot          3: 2 MHz (500 kHz)
401*2eb4d8dcSEmmanuel Vadot
402*2eb4d8dcSEmmanuel Vadot          This property is unavailable in the case of the ULP or Hall channels.
403*2eb4d8dcSEmmanuel Vadot
404*2eb4d8dcSEmmanuel Vadot      azoteq,invert-enable:
405*2eb4d8dcSEmmanuel Vadot        type: boolean
406*2eb4d8dcSEmmanuel Vadot        description:
407*2eb4d8dcSEmmanuel Vadot          Inverts the polarity of the states reported for proximity, touch and
408*2eb4d8dcSEmmanuel Vadot          deep-touch events relative to their respective thresholds (generic
409*2eb4d8dcSEmmanuel Vadot          channels only).
410*2eb4d8dcSEmmanuel Vadot
411*2eb4d8dcSEmmanuel Vadot      azoteq,comp-disable:
412*2eb4d8dcSEmmanuel Vadot        type: boolean
413*2eb4d8dcSEmmanuel Vadot        description:
414*2eb4d8dcSEmmanuel Vadot          Disables compensation for the channel (generic channels only).
415*2eb4d8dcSEmmanuel Vadot
416*2eb4d8dcSEmmanuel Vadot      azoteq,static-enable:
417*2eb4d8dcSEmmanuel Vadot        type: boolean
418*2eb4d8dcSEmmanuel Vadot        description:
419*2eb4d8dcSEmmanuel Vadot          Enables the static front-end for the channel (generic channels only).
420*2eb4d8dcSEmmanuel Vadot
421*2eb4d8dcSEmmanuel Vadot      azoteq,assoc-select:
422*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/string-array
423*2eb4d8dcSEmmanuel Vadot        minItems: 1
424*2eb4d8dcSEmmanuel Vadot        maxItems: 6
425*2eb4d8dcSEmmanuel Vadot        items:
426*2eb4d8dcSEmmanuel Vadot          enum:
427*2eb4d8dcSEmmanuel Vadot            - ulp-0
428*2eb4d8dcSEmmanuel Vadot            - trackpad-3x2
429*2eb4d8dcSEmmanuel Vadot            - trackpad-3x3
430*2eb4d8dcSEmmanuel Vadot            - generic-0
431*2eb4d8dcSEmmanuel Vadot            - generic-1
432*2eb4d8dcSEmmanuel Vadot            - generic-2
433*2eb4d8dcSEmmanuel Vadot            - hall
434*2eb4d8dcSEmmanuel Vadot        description:
435*2eb4d8dcSEmmanuel Vadot          Specifies the associated channels for which the channel serves as a
436*2eb4d8dcSEmmanuel Vadot          reference channel. By default, no channels are selected. This prop-
437*2eb4d8dcSEmmanuel Vadot          erty is only available for the generic channels.
438*2eb4d8dcSEmmanuel Vadot
439*2eb4d8dcSEmmanuel Vadot      azoteq,assoc-weight:
440*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
441*2eb4d8dcSEmmanuel Vadot        minimum: 0
442*2eb4d8dcSEmmanuel Vadot        maximum: 255
443*2eb4d8dcSEmmanuel Vadot        default: 0
444*2eb4d8dcSEmmanuel Vadot        description:
445*2eb4d8dcSEmmanuel Vadot          Specifies the channel's impact weight if it acts as an associated
446*2eb4d8dcSEmmanuel Vadot          channel (0 = 0% impact, 255 = 200% impact). This property is only
447*2eb4d8dcSEmmanuel Vadot          available for the generic channels.
448*2eb4d8dcSEmmanuel Vadot
449*2eb4d8dcSEmmanuel Vadot    patternProperties:
450*2eb4d8dcSEmmanuel Vadot      "^event-(prox|touch|deep)(-alt)?$":
451*2eb4d8dcSEmmanuel Vadot        type: object
452*2eb4d8dcSEmmanuel Vadot        description:
453*2eb4d8dcSEmmanuel Vadot          Represents a proximity, touch or deep-touch event reported by the
454*2eb4d8dcSEmmanuel Vadot          channel in response to a decrease in counts. Node names suffixed with
455*2eb4d8dcSEmmanuel Vadot          '-alt' instead correspond to an increase in counts.
456*2eb4d8dcSEmmanuel Vadot
457*2eb4d8dcSEmmanuel Vadot          By default, the long-term average tracks an increase in counts such
458*2eb4d8dcSEmmanuel Vadot          that only events corresponding to a decrease in counts are reported
459*2eb4d8dcSEmmanuel Vadot          (refer to the datasheet for more information).
460*2eb4d8dcSEmmanuel Vadot
461*2eb4d8dcSEmmanuel Vadot          Specify 'azoteq,dual-direction' to freeze the long-term average when
462*2eb4d8dcSEmmanuel Vadot          the counts increase or decrease such that events of either direction
463*2eb4d8dcSEmmanuel Vadot          can be reported. Alternatively, specify 'azoteq,invert-enable' to in-
464*2eb4d8dcSEmmanuel Vadot          vert the polarity of the states reported by the channel.
465*2eb4d8dcSEmmanuel Vadot
466*2eb4d8dcSEmmanuel Vadot          Complementary events (e.g. event-touch and event-touch-alt) can both
467*2eb4d8dcSEmmanuel Vadot          be present and specify different key or switch codes, but not differ-
468*2eb4d8dcSEmmanuel Vadot          ent thresholds or hysteresis (if applicable).
469*2eb4d8dcSEmmanuel Vadot
470*2eb4d8dcSEmmanuel Vadot          Proximity events are unavailable in the case of the Hall channel, and
471*2eb4d8dcSEmmanuel Vadot          deep-touch events are only available for the generic channels. Unless
472*2eb4d8dcSEmmanuel Vadot          otherwise specified, default values are a function of the channel and
473*2eb4d8dcSEmmanuel Vadot          the device's RUI.
474*2eb4d8dcSEmmanuel Vadot
475*2eb4d8dcSEmmanuel Vadot        properties:
476*2eb4d8dcSEmmanuel Vadot          azoteq,thresh:
477*2eb4d8dcSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
478*2eb4d8dcSEmmanuel Vadot            minimum: 0
479*2eb4d8dcSEmmanuel Vadot            maximum: 255
480*2eb4d8dcSEmmanuel Vadot            description: Specifies the threshold for the event.
481*2eb4d8dcSEmmanuel Vadot
482*2eb4d8dcSEmmanuel Vadot          azoteq,hyst:
483*2eb4d8dcSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
484*2eb4d8dcSEmmanuel Vadot            minimum: 0
485*2eb4d8dcSEmmanuel Vadot            maximum: 15
486*2eb4d8dcSEmmanuel Vadot            description:
487*2eb4d8dcSEmmanuel Vadot              Specifies the hysteresis for the event (touch and deep-touch
488*2eb4d8dcSEmmanuel Vadot              events only).
489*2eb4d8dcSEmmanuel Vadot
490*2eb4d8dcSEmmanuel Vadot          linux,code:
491*2eb4d8dcSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
492*2eb4d8dcSEmmanuel Vadot            description: Numeric key or switch code associated with the event.
493*2eb4d8dcSEmmanuel Vadot
494*2eb4d8dcSEmmanuel Vadot          linux,input-type:
495*2eb4d8dcSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
496*2eb4d8dcSEmmanuel Vadot            enum: [1, 5]
497*2eb4d8dcSEmmanuel Vadot            description:
498*2eb4d8dcSEmmanuel Vadot              Specifies whether the event is to be interpreted as a key (1) or
499*2eb4d8dcSEmmanuel Vadot              a switch (5). By default, Hall-channel events are interpreted as
500*2eb4d8dcSEmmanuel Vadot              switches and all others are interpreted as keys.
501*2eb4d8dcSEmmanuel Vadot
502*2eb4d8dcSEmmanuel Vadot        dependencies:
503*2eb4d8dcSEmmanuel Vadot          linux,input-type: ["linux,code"]
504*2eb4d8dcSEmmanuel Vadot
505*2eb4d8dcSEmmanuel Vadot        additionalProperties: false
506*2eb4d8dcSEmmanuel Vadot
507*2eb4d8dcSEmmanuel Vadot    dependencies:
508*2eb4d8dcSEmmanuel Vadot      azoteq,assoc-weight: ["azoteq,assoc-select"]
509*2eb4d8dcSEmmanuel Vadot
510*2eb4d8dcSEmmanuel Vadot    additionalProperties: false
511*2eb4d8dcSEmmanuel Vadot
512*2eb4d8dcSEmmanuel Vadot  "^trackpad-3x[2-3]$":
513*2eb4d8dcSEmmanuel Vadot    type: object
514*2eb4d8dcSEmmanuel Vadot    description:
515*2eb4d8dcSEmmanuel Vadot      Represents all channels associated with the trackpad. The channels are
516*2eb4d8dcSEmmanuel Vadot      collectively active if the trackpad is defined and inactive otherwise.
517*2eb4d8dcSEmmanuel Vadot
518*2eb4d8dcSEmmanuel Vadot    properties:
519*2eb4d8dcSEmmanuel Vadot      azoteq,ati-exclude:
520*2eb4d8dcSEmmanuel Vadot        type: boolean
521*2eb4d8dcSEmmanuel Vadot        description:
522*2eb4d8dcSEmmanuel Vadot          Prevents the trackpad channels from participating in an ATI event
523*2eb4d8dcSEmmanuel Vadot          that is manually triggered during initialization.
524*2eb4d8dcSEmmanuel Vadot
525*2eb4d8dcSEmmanuel Vadot      azoteq,reseed-disable:
526*2eb4d8dcSEmmanuel Vadot        type: boolean
527*2eb4d8dcSEmmanuel Vadot        description:
528*2eb4d8dcSEmmanuel Vadot          Prevents the trackpad channels from being reseeded if the long-term
529*2eb4d8dcSEmmanuel Vadot          average timeout (defined in 'azoteq,timeout-lta') expires.
530*2eb4d8dcSEmmanuel Vadot
531*2eb4d8dcSEmmanuel Vadot      azoteq,meas-cap-decrease:
532*2eb4d8dcSEmmanuel Vadot        type: boolean
533*2eb4d8dcSEmmanuel Vadot        description:
534*2eb4d8dcSEmmanuel Vadot          Decreases the internal measurement capacitance from 60 pF to 15 pF.
535*2eb4d8dcSEmmanuel Vadot
536*2eb4d8dcSEmmanuel Vadot      azoteq,rx-inactive:
537*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
538*2eb4d8dcSEmmanuel Vadot        enum: [0, 1]
539*2eb4d8dcSEmmanuel Vadot        default: 0
540*2eb4d8dcSEmmanuel Vadot        description: |
541*2eb4d8dcSEmmanuel Vadot          Specifies how inactive CRX pins are to be terminated as follows:
542*2eb4d8dcSEmmanuel Vadot          0: VSS
543*2eb4d8dcSEmmanuel Vadot          1: Floating
544*2eb4d8dcSEmmanuel Vadot
545*2eb4d8dcSEmmanuel Vadot      azoteq,linearize:
546*2eb4d8dcSEmmanuel Vadot        type: boolean
547*2eb4d8dcSEmmanuel Vadot        description: Inverts the polarity of the trackpad's touch state.
548*2eb4d8dcSEmmanuel Vadot
549*2eb4d8dcSEmmanuel Vadot      azoteq,dual-direction:
550*2eb4d8dcSEmmanuel Vadot        type: boolean
551*2eb4d8dcSEmmanuel Vadot        description:
552*2eb4d8dcSEmmanuel Vadot          Specifies that the trackpad's long-term averages are to freeze in
553*2eb4d8dcSEmmanuel Vadot          the presence of either increasing or decreasing counts, thereby
554*2eb4d8dcSEmmanuel Vadot          permitting events to be reported in either direction.
555*2eb4d8dcSEmmanuel Vadot
556*2eb4d8dcSEmmanuel Vadot      azoteq,filt-disable:
557*2eb4d8dcSEmmanuel Vadot        type: boolean
558*2eb4d8dcSEmmanuel Vadot        description: Disables raw count filtering for the trackpad channels.
559*2eb4d8dcSEmmanuel Vadot
560*2eb4d8dcSEmmanuel Vadot      azoteq,ati-mode:
561*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
562*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 2, 3]
563*2eb4d8dcSEmmanuel Vadot        default: 0
564*2eb4d8dcSEmmanuel Vadot        description: |
565*2eb4d8dcSEmmanuel Vadot          Specifies the trackpad's ATI mode as follows:
566*2eb4d8dcSEmmanuel Vadot          0: Disabled
567*2eb4d8dcSEmmanuel Vadot          1: Semi-partial
568*2eb4d8dcSEmmanuel Vadot          2: Partial
569*2eb4d8dcSEmmanuel Vadot          3: Full
570*2eb4d8dcSEmmanuel Vadot
571*2eb4d8dcSEmmanuel Vadot      azoteq,ati-base:
572*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32-array
573*2eb4d8dcSEmmanuel Vadot        minItems: 6
574*2eb4d8dcSEmmanuel Vadot        maxItems: 9
575*2eb4d8dcSEmmanuel Vadot        items:
576*2eb4d8dcSEmmanuel Vadot          minimum: 45
577*2eb4d8dcSEmmanuel Vadot          maximum: 300
578*2eb4d8dcSEmmanuel Vadot        default: [45, 45, 45, 45, 45, 45, 45, 45, 45]
579*2eb4d8dcSEmmanuel Vadot        description: Specifies each individual trackpad channel's ATI base.
580*2eb4d8dcSEmmanuel Vadot
581*2eb4d8dcSEmmanuel Vadot      azoteq,ati-target:
582*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
583*2eb4d8dcSEmmanuel Vadot        multipleOf: 32
584*2eb4d8dcSEmmanuel Vadot        minimum: 0
585*2eb4d8dcSEmmanuel Vadot        maximum: 2016
586*2eb4d8dcSEmmanuel Vadot        default: 0
587*2eb4d8dcSEmmanuel Vadot        description: Specifies the trackpad's ATI target.
588*2eb4d8dcSEmmanuel Vadot
589*2eb4d8dcSEmmanuel Vadot      azoteq,cct-increase:
590*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
591*2eb4d8dcSEmmanuel Vadot        minimum: 0
592*2eb4d8dcSEmmanuel Vadot        maximum: 4
593*2eb4d8dcSEmmanuel Vadot        default: 0
594*2eb4d8dcSEmmanuel Vadot        description:
595*2eb4d8dcSEmmanuel Vadot          Specifies the degree to which the trackpad's charge cycle time is to
596*2eb4d8dcSEmmanuel Vadot          be increased, with 0 representing no increase.
597*2eb4d8dcSEmmanuel Vadot
598*2eb4d8dcSEmmanuel Vadot      azoteq,proj-bias:
599*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
600*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 2, 3]
601*2eb4d8dcSEmmanuel Vadot        default: 0
602*2eb4d8dcSEmmanuel Vadot        description: |
603*2eb4d8dcSEmmanuel Vadot          Specifies the bias current applied during projected-capacitance
604*2eb4d8dcSEmmanuel Vadot          sensing as follows:
605*2eb4d8dcSEmmanuel Vadot          0: 2.5 uA
606*2eb4d8dcSEmmanuel Vadot          1: 5 uA
607*2eb4d8dcSEmmanuel Vadot          2: 10 uA
608*2eb4d8dcSEmmanuel Vadot          3: 20 uA
609*2eb4d8dcSEmmanuel Vadot
610*2eb4d8dcSEmmanuel Vadot      azoteq,sense-freq:
611*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
612*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 2, 3]
613*2eb4d8dcSEmmanuel Vadot        default: 0
614*2eb4d8dcSEmmanuel Vadot        description: |
615*2eb4d8dcSEmmanuel Vadot          Specifies the trackpad's sensing frequency as follows (parenthesized
616*2eb4d8dcSEmmanuel Vadot          numbers represent the frequency if 'azoteq,clk-div' is present):
617*2eb4d8dcSEmmanuel Vadot          0: 4 MHz (1 MHz)
618*2eb4d8dcSEmmanuel Vadot          1: 2 MHz (500 kHz)
619*2eb4d8dcSEmmanuel Vadot          2: 1 MHz (250 kHz)
620*2eb4d8dcSEmmanuel Vadot          3: 500 kHz (125 kHz)
621*2eb4d8dcSEmmanuel Vadot
622*2eb4d8dcSEmmanuel Vadot      azoteq,ati-band-tighten:
623*2eb4d8dcSEmmanuel Vadot        type: boolean
624*2eb4d8dcSEmmanuel Vadot        description:
625*2eb4d8dcSEmmanuel Vadot          Tightens the ATI band from 1/8 to 1/16 of the desired target.
626*2eb4d8dcSEmmanuel Vadot
627*2eb4d8dcSEmmanuel Vadot      azoteq,thresh:
628*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32-array
629*2eb4d8dcSEmmanuel Vadot        minItems: 6
630*2eb4d8dcSEmmanuel Vadot        maxItems: 9
631*2eb4d8dcSEmmanuel Vadot        items:
632*2eb4d8dcSEmmanuel Vadot          minimum: 0
633*2eb4d8dcSEmmanuel Vadot          maximum: 255
634*2eb4d8dcSEmmanuel Vadot        default: [0, 0, 0, 0, 0, 0, 0, 0, 0]
635*2eb4d8dcSEmmanuel Vadot        description:
636*2eb4d8dcSEmmanuel Vadot          Specifies each individual trackpad channel's touch threshold.
637*2eb4d8dcSEmmanuel Vadot
638*2eb4d8dcSEmmanuel Vadot      azoteq,hyst:
639*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
640*2eb4d8dcSEmmanuel Vadot        minimum: 0
641*2eb4d8dcSEmmanuel Vadot        maximum: 15
642*2eb4d8dcSEmmanuel Vadot        default: 0
643*2eb4d8dcSEmmanuel Vadot        description: Specifies the trackpad's touch hysteresis.
644*2eb4d8dcSEmmanuel Vadot
645*2eb4d8dcSEmmanuel Vadot      azoteq,lta-update:
646*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
647*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 2, 3, 4, 5, 6, 7]
648*2eb4d8dcSEmmanuel Vadot        default: 0
649*2eb4d8dcSEmmanuel Vadot        description: |
650*2eb4d8dcSEmmanuel Vadot          Specifies the update rate of the trackpad's long-term average during
651*2eb4d8dcSEmmanuel Vadot          ultra-low-power mode as follows:
652*2eb4d8dcSEmmanuel Vadot          0: 2
653*2eb4d8dcSEmmanuel Vadot          1: 4
654*2eb4d8dcSEmmanuel Vadot          2: 8
655*2eb4d8dcSEmmanuel Vadot          3: 16
656*2eb4d8dcSEmmanuel Vadot          4: 32
657*2eb4d8dcSEmmanuel Vadot          5: 64
658*2eb4d8dcSEmmanuel Vadot          6: 128
659*2eb4d8dcSEmmanuel Vadot          7: 255
660*2eb4d8dcSEmmanuel Vadot
661*2eb4d8dcSEmmanuel Vadot      azoteq,filt-str-trackpad:
662*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
663*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 2, 3]
664*2eb4d8dcSEmmanuel Vadot        default: 0
665*2eb4d8dcSEmmanuel Vadot        description: Specifies the trackpad coordinate filter strength.
666*2eb4d8dcSEmmanuel Vadot
667*2eb4d8dcSEmmanuel Vadot      azoteq,filt-str-np-cnt:
668*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
669*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 2, 3]
670*2eb4d8dcSEmmanuel Vadot        default: 0
671*2eb4d8dcSEmmanuel Vadot        description:
672*2eb4d8dcSEmmanuel Vadot          Specifies the raw count filter strength during normal-power mode.
673*2eb4d8dcSEmmanuel Vadot
674*2eb4d8dcSEmmanuel Vadot      azoteq,filt-str-lp-cnt:
675*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
676*2eb4d8dcSEmmanuel Vadot        enum: [0, 1, 2, 3]
677*2eb4d8dcSEmmanuel Vadot        default: 0
678*2eb4d8dcSEmmanuel Vadot        description:
679*2eb4d8dcSEmmanuel Vadot          Specifies the raw count filter strength during low-power mode.
680*2eb4d8dcSEmmanuel Vadot
681*2eb4d8dcSEmmanuel Vadot      linux,keycodes:
682*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32-array
683*2eb4d8dcSEmmanuel Vadot        minItems: 1
684*2eb4d8dcSEmmanuel Vadot        maxItems: 6
685*2eb4d8dcSEmmanuel Vadot        description: |
686*2eb4d8dcSEmmanuel Vadot          Specifies the numeric keycodes associated with each available gesture
687*2eb4d8dcSEmmanuel Vadot          in the following order (enter 0 for unused gestures):
688*2eb4d8dcSEmmanuel Vadot          0: Positive flick or swipe in X direction
689*2eb4d8dcSEmmanuel Vadot          1: Negative flick or swipe in X direction
690*2eb4d8dcSEmmanuel Vadot          2: Positive flick or swipe in Y direction
691*2eb4d8dcSEmmanuel Vadot          3: Negative flick or swipe in Y direction
692*2eb4d8dcSEmmanuel Vadot          4: Tap
693*2eb4d8dcSEmmanuel Vadot          5: Hold
694*2eb4d8dcSEmmanuel Vadot
695*2eb4d8dcSEmmanuel Vadot      azoteq,gesture-swipe:
696*2eb4d8dcSEmmanuel Vadot        type: boolean
697*2eb4d8dcSEmmanuel Vadot        description:
698*2eb4d8dcSEmmanuel Vadot          Directs the device to interpret axial gestures as a swipe (finger
699*2eb4d8dcSEmmanuel Vadot          remains on trackpad) instead of a flick (finger leaves trackpad).
700*2eb4d8dcSEmmanuel Vadot
701*2eb4d8dcSEmmanuel Vadot      azoteq,timeout-tap-ms:
702*2eb4d8dcSEmmanuel Vadot        multipleOf: 16
703*2eb4d8dcSEmmanuel Vadot        minimum: 0
704*2eb4d8dcSEmmanuel Vadot        maximum: 4080
705*2eb4d8dcSEmmanuel Vadot        default: 0
706*2eb4d8dcSEmmanuel Vadot        description:
707*2eb4d8dcSEmmanuel Vadot          Specifies the length of time (in ms) within which a trackpad touch
708*2eb4d8dcSEmmanuel Vadot          must be released in order to be interpreted as a tap.
709*2eb4d8dcSEmmanuel Vadot
710*2eb4d8dcSEmmanuel Vadot      azoteq,timeout-swipe-ms:
711*2eb4d8dcSEmmanuel Vadot        multipleOf: 16
712*2eb4d8dcSEmmanuel Vadot        minimum: 0
713*2eb4d8dcSEmmanuel Vadot        maximum: 4080
714*2eb4d8dcSEmmanuel Vadot        default: 0
715*2eb4d8dcSEmmanuel Vadot        description:
716*2eb4d8dcSEmmanuel Vadot          Specifies the length of time (in ms) within which an axial gesture
717*2eb4d8dcSEmmanuel Vadot          must be completed in order to be interpreted as a flick or swipe.
718*2eb4d8dcSEmmanuel Vadot
719*2eb4d8dcSEmmanuel Vadot      azoteq,thresh-swipe:
720*2eb4d8dcSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
721*2eb4d8dcSEmmanuel Vadot        minimum: 0
722*2eb4d8dcSEmmanuel Vadot        maximum: 255
723*2eb4d8dcSEmmanuel Vadot        default: 0
724*2eb4d8dcSEmmanuel Vadot        description:
725*2eb4d8dcSEmmanuel Vadot          Specifies the number of points across which an axial gesture must
726*2eb4d8dcSEmmanuel Vadot          travel in order to be interpreted as a flick or swipe.
727*2eb4d8dcSEmmanuel Vadot
728*2eb4d8dcSEmmanuel Vadot    dependencies:
729*2eb4d8dcSEmmanuel Vadot      azoteq,gesture-swipe: ["linux,keycodes"]
730*2eb4d8dcSEmmanuel Vadot      azoteq,timeout-tap-ms: ["linux,keycodes"]
731*2eb4d8dcSEmmanuel Vadot      azoteq,timeout-swipe-ms: ["linux,keycodes"]
732*2eb4d8dcSEmmanuel Vadot      azoteq,thresh-swipe: ["linux,keycodes"]
733*2eb4d8dcSEmmanuel Vadot
734*2eb4d8dcSEmmanuel Vadot    additionalProperties: false
735*2eb4d8dcSEmmanuel Vadot
736*2eb4d8dcSEmmanuel Vadotrequired:
737*2eb4d8dcSEmmanuel Vadot  - compatible
738*2eb4d8dcSEmmanuel Vadot  - reg
739*2eb4d8dcSEmmanuel Vadot  - interrupts
740*2eb4d8dcSEmmanuel Vadot  - "#address-cells"
741*2eb4d8dcSEmmanuel Vadot  - "#size-cells"
742*2eb4d8dcSEmmanuel Vadot
743*2eb4d8dcSEmmanuel VadotadditionalProperties: false
744*2eb4d8dcSEmmanuel Vadot
745*2eb4d8dcSEmmanuel Vadotexamples:
746*2eb4d8dcSEmmanuel Vadot  - |
747*2eb4d8dcSEmmanuel Vadot    #include <dt-bindings/input/input.h>
748*2eb4d8dcSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
749*2eb4d8dcSEmmanuel Vadot
750*2eb4d8dcSEmmanuel Vadot    i2c {
751*2eb4d8dcSEmmanuel Vadot            #address-cells = <1>;
752*2eb4d8dcSEmmanuel Vadot            #size-cells = <0>;
753*2eb4d8dcSEmmanuel Vadot
754*2eb4d8dcSEmmanuel Vadot            iqs626a@44 {
755*2eb4d8dcSEmmanuel Vadot                    #address-cells = <1>;
756*2eb4d8dcSEmmanuel Vadot                    #size-cells = <0>;
757*2eb4d8dcSEmmanuel Vadot
758*2eb4d8dcSEmmanuel Vadot                    compatible = "azoteq,iqs626a";
759*2eb4d8dcSEmmanuel Vadot                    reg = <0x44>;
760*2eb4d8dcSEmmanuel Vadot                    interrupt-parent = <&gpio>;
761*2eb4d8dcSEmmanuel Vadot                    interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
762*2eb4d8dcSEmmanuel Vadot
763*2eb4d8dcSEmmanuel Vadot                    azoteq,rate-np-ms = <16>;
764*2eb4d8dcSEmmanuel Vadot                    azoteq,rate-lp-ms = <160>;
765*2eb4d8dcSEmmanuel Vadot
766*2eb4d8dcSEmmanuel Vadot                    azoteq,timeout-pwr-ms = <2560>;
767*2eb4d8dcSEmmanuel Vadot                    azoteq,timeout-lta-ms = <32768>;
768*2eb4d8dcSEmmanuel Vadot
769*2eb4d8dcSEmmanuel Vadot                    ulp-0 {
770*2eb4d8dcSEmmanuel Vadot                            azoteq,meas-cap-decrease;
771*2eb4d8dcSEmmanuel Vadot
772*2eb4d8dcSEmmanuel Vadot                            azoteq,ati-base = <75>;
773*2eb4d8dcSEmmanuel Vadot                            azoteq,ati-target = <1024>;
774*2eb4d8dcSEmmanuel Vadot
775*2eb4d8dcSEmmanuel Vadot                            azoteq,rx-enable = <2>, <3>, <4>,
776*2eb4d8dcSEmmanuel Vadot                                               <5>, <6>, <7>;
777*2eb4d8dcSEmmanuel Vadot
778*2eb4d8dcSEmmanuel Vadot                            event-prox {
779*2eb4d8dcSEmmanuel Vadot                                    linux,code = <KEY_POWER>;
780*2eb4d8dcSEmmanuel Vadot                            };
781*2eb4d8dcSEmmanuel Vadot                    };
782*2eb4d8dcSEmmanuel Vadot
783*2eb4d8dcSEmmanuel Vadot                    trackpad-3x3 {
784*2eb4d8dcSEmmanuel Vadot                            azoteq,filt-str-np-cnt = <1>;
785*2eb4d8dcSEmmanuel Vadot                            azoteq,filt-str-lp-cnt = <1>;
786*2eb4d8dcSEmmanuel Vadot
787*2eb4d8dcSEmmanuel Vadot                            azoteq,hyst = <4>;
788*2eb4d8dcSEmmanuel Vadot                            azoteq,thresh = <35>, <40>, <40>,
789*2eb4d8dcSEmmanuel Vadot                                            <38>, <33>, <38>,
790*2eb4d8dcSEmmanuel Vadot                                            <35>, <35>, <35>;
791*2eb4d8dcSEmmanuel Vadot
792*2eb4d8dcSEmmanuel Vadot                            azoteq,ati-mode = <3>;
793*2eb4d8dcSEmmanuel Vadot                            azoteq,ati-base = <195>, <195>, <195>,
794*2eb4d8dcSEmmanuel Vadot                                              <195>, <195>, <195>,
795*2eb4d8dcSEmmanuel Vadot                                              <195>, <195>, <195>;
796*2eb4d8dcSEmmanuel Vadot                            azoteq,ati-target = <512>;
797*2eb4d8dcSEmmanuel Vadot
798*2eb4d8dcSEmmanuel Vadot                            azoteq,proj-bias = <1>;
799*2eb4d8dcSEmmanuel Vadot                            azoteq,sense-freq = <2>;
800*2eb4d8dcSEmmanuel Vadot
801*2eb4d8dcSEmmanuel Vadot                            linux,keycodes = <KEY_VOLUMEUP>,
802*2eb4d8dcSEmmanuel Vadot                                             <KEY_VOLUMEDOWN>,
803*2eb4d8dcSEmmanuel Vadot                                             <KEY_NEXTSONG>,
804*2eb4d8dcSEmmanuel Vadot                                             <KEY_PREVIOUSSONG>,
805*2eb4d8dcSEmmanuel Vadot                                             <KEY_PLAYPAUSE>,
806*2eb4d8dcSEmmanuel Vadot                                             <KEY_STOPCD>;
807*2eb4d8dcSEmmanuel Vadot
808*2eb4d8dcSEmmanuel Vadot                            azoteq,gesture-swipe;
809*2eb4d8dcSEmmanuel Vadot                            azoteq,timeout-swipe-ms = <800>;
810*2eb4d8dcSEmmanuel Vadot                            azoteq,timeout-tap-ms = <400>;
811*2eb4d8dcSEmmanuel Vadot                            azoteq,thresh-swipe = <40>;
812*2eb4d8dcSEmmanuel Vadot                    };
813*2eb4d8dcSEmmanuel Vadot
814*2eb4d8dcSEmmanuel Vadot                    /*
815*2eb4d8dcSEmmanuel Vadot                     * Preserve the default register settings for
816*2eb4d8dcSEmmanuel Vadot                     * the temperature-tracking channel leveraged
817*2eb4d8dcSEmmanuel Vadot                     * by reset user interface (RUI) 1.
818*2eb4d8dcSEmmanuel Vadot                     *
819*2eb4d8dcSEmmanuel Vadot                     * Scalar properties (e.g. ATI mode) are left
820*2eb4d8dcSEmmanuel Vadot                     * untouched by simply omitting them; boolean
821*2eb4d8dcSEmmanuel Vadot                     * properties must be specified explicitly as
822*2eb4d8dcSEmmanuel Vadot                     * needed.
823*2eb4d8dcSEmmanuel Vadot                     */
824*2eb4d8dcSEmmanuel Vadot                    generic-2 {
825*2eb4d8dcSEmmanuel Vadot                            azoteq,reseed-disable;
826*2eb4d8dcSEmmanuel Vadot                            azoteq,meas-cap-decrease;
827*2eb4d8dcSEmmanuel Vadot                            azoteq,dual-direction;
828*2eb4d8dcSEmmanuel Vadot                            azoteq,comp-disable;
829*2eb4d8dcSEmmanuel Vadot                            azoteq,static-enable;
830*2eb4d8dcSEmmanuel Vadot                    };
831*2eb4d8dcSEmmanuel Vadot
832*2eb4d8dcSEmmanuel Vadot                    hall {
833*2eb4d8dcSEmmanuel Vadot                            azoteq,reseed-disable;
834*2eb4d8dcSEmmanuel Vadot                            azoteq,meas-cap-decrease;
835*2eb4d8dcSEmmanuel Vadot
836*2eb4d8dcSEmmanuel Vadot                            event-touch {
837*2eb4d8dcSEmmanuel Vadot                                    linux,code = <SW_LID>;
838*2eb4d8dcSEmmanuel Vadot                            };
839*2eb4d8dcSEmmanuel Vadot                    };
840*2eb4d8dcSEmmanuel Vadot            };
841*2eb4d8dcSEmmanuel Vadot    };
842*2eb4d8dcSEmmanuel Vadot
843*2eb4d8dcSEmmanuel Vadot...
844