1d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2d5b0e70fSEmmanuel Vadot%YAML 1.2
3d5b0e70fSEmmanuel Vadot---
4d5b0e70fSEmmanuel Vadot$id: http://devicetree.org/schemas/input/azoteq,iqs7222.yaml#
5d5b0e70fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6d5b0e70fSEmmanuel Vadot
7d5b0e70fSEmmanuel Vadottitle: Azoteq IQS7222A/B/C Capacitive Touch Controller
8d5b0e70fSEmmanuel Vadot
9d5b0e70fSEmmanuel Vadotmaintainers:
10d5b0e70fSEmmanuel Vadot  - Jeff LaBundy <jeff@labundy.com>
11d5b0e70fSEmmanuel Vadot
12d5b0e70fSEmmanuel Vadotdescription: |
13d5b0e70fSEmmanuel Vadot  The Azoteq IQS7222A, IQS7222B and IQS7222C are multichannel capacitive touch
14d5b0e70fSEmmanuel Vadot  controllers that feature additional sensing capabilities.
15d5b0e70fSEmmanuel Vadot
16d5b0e70fSEmmanuel Vadot  Link to datasheets: https://www.azoteq.com/
17d5b0e70fSEmmanuel Vadot
18d5b0e70fSEmmanuel Vadotproperties:
19d5b0e70fSEmmanuel Vadot  compatible:
20d5b0e70fSEmmanuel Vadot    enum:
21d5b0e70fSEmmanuel Vadot      - azoteq,iqs7222a
22d5b0e70fSEmmanuel Vadot      - azoteq,iqs7222b
23d5b0e70fSEmmanuel Vadot      - azoteq,iqs7222c
24d5b0e70fSEmmanuel Vadot
25d5b0e70fSEmmanuel Vadot  reg:
26d5b0e70fSEmmanuel Vadot    maxItems: 1
27d5b0e70fSEmmanuel Vadot
28d5b0e70fSEmmanuel Vadot  irq-gpios:
29d5b0e70fSEmmanuel Vadot    maxItems: 1
30d5b0e70fSEmmanuel Vadot    description:
31d5b0e70fSEmmanuel Vadot      Specifies the GPIO connected to the device's active-low RDY output.
32d5b0e70fSEmmanuel Vadot
33d5b0e70fSEmmanuel Vadot  reset-gpios:
34d5b0e70fSEmmanuel Vadot    maxItems: 1
35d5b0e70fSEmmanuel Vadot    description:
36d5b0e70fSEmmanuel Vadot      Specifies the GPIO connected to the device's active-low MCLR input. The
37d5b0e70fSEmmanuel Vadot      device is temporarily held in hardware reset prior to initialization if
38d5b0e70fSEmmanuel Vadot      this property is present.
39d5b0e70fSEmmanuel Vadot
40d5b0e70fSEmmanuel Vadot  azoteq,max-counts:
41d5b0e70fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
42d5b0e70fSEmmanuel Vadot    enum: [0, 1, 2, 3]
43d5b0e70fSEmmanuel Vadot    description: |
44d5b0e70fSEmmanuel Vadot      Specifies the maximum number of conversion periods (counts) that can be
45d5b0e70fSEmmanuel Vadot      reported as follows:
46d5b0e70fSEmmanuel Vadot      0: 1023
47d5b0e70fSEmmanuel Vadot      1: 2047
48d5b0e70fSEmmanuel Vadot      2: 4095
49d5b0e70fSEmmanuel Vadot      3: 16384
50d5b0e70fSEmmanuel Vadot
51d5b0e70fSEmmanuel Vadot  azoteq,auto-mode:
52d5b0e70fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
53d5b0e70fSEmmanuel Vadot    enum: [0, 1, 2, 3]
54d5b0e70fSEmmanuel Vadot    description: |
55d5b0e70fSEmmanuel Vadot      Specifies the number of conversions to occur before an interrupt is
56d5b0e70fSEmmanuel Vadot      generated as follows:
57d5b0e70fSEmmanuel Vadot      0: 4
58d5b0e70fSEmmanuel Vadot      1: 8
59d5b0e70fSEmmanuel Vadot      2: 16
60d5b0e70fSEmmanuel Vadot      3: 32
61d5b0e70fSEmmanuel Vadot
62d5b0e70fSEmmanuel Vadot  azoteq,ati-frac-div-fine:
63d5b0e70fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
64d5b0e70fSEmmanuel Vadot    minimum: 0
65d5b0e70fSEmmanuel Vadot    maximum: 31
66d5b0e70fSEmmanuel Vadot    description: Specifies the preloaded ATI fine fractional divider.
67d5b0e70fSEmmanuel Vadot
68d5b0e70fSEmmanuel Vadot  azoteq,ati-frac-div-coarse:
69d5b0e70fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
70d5b0e70fSEmmanuel Vadot    minimum: 0
71d5b0e70fSEmmanuel Vadot    maximum: 31
72d5b0e70fSEmmanuel Vadot    description: Specifies the preloaded ATI coarse fractional divider.
73d5b0e70fSEmmanuel Vadot
74d5b0e70fSEmmanuel Vadot  azoteq,ati-comp-select:
75d5b0e70fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
76d5b0e70fSEmmanuel Vadot    minimum: 0
77d5b0e70fSEmmanuel Vadot    maximum: 1023
78d5b0e70fSEmmanuel Vadot    description: Specifies the preloaded ATI compensation selection.
79d5b0e70fSEmmanuel Vadot
80d5b0e70fSEmmanuel Vadot  azoteq,lta-beta-lp:
81d5b0e70fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
82d5b0e70fSEmmanuel Vadot    minimum: 0
83d5b0e70fSEmmanuel Vadot    maximum: 15
84d5b0e70fSEmmanuel Vadot    description:
85d5b0e70fSEmmanuel Vadot      Specifies the long-term average filter damping factor to be applied during
86d5b0e70fSEmmanuel Vadot      low-power mode.
87d5b0e70fSEmmanuel Vadot
88d5b0e70fSEmmanuel Vadot  azoteq,lta-beta-np:
89d5b0e70fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
90d5b0e70fSEmmanuel Vadot    minimum: 0
91d5b0e70fSEmmanuel Vadot    maximum: 15
92d5b0e70fSEmmanuel Vadot    description:
93d5b0e70fSEmmanuel Vadot      Specifies the long-term average filter damping factor to be applied during
94d5b0e70fSEmmanuel Vadot      normal-power mode.
95d5b0e70fSEmmanuel Vadot
96d5b0e70fSEmmanuel Vadot  azoteq,counts-beta-lp:
97d5b0e70fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
98d5b0e70fSEmmanuel Vadot    minimum: 0
99d5b0e70fSEmmanuel Vadot    maximum: 15
100d5b0e70fSEmmanuel Vadot    description:
101d5b0e70fSEmmanuel Vadot      Specifies the counts filter damping factor to be applied during low-power
102d5b0e70fSEmmanuel Vadot      mode.
103d5b0e70fSEmmanuel Vadot
104d5b0e70fSEmmanuel Vadot  azoteq,counts-beta-np:
105d5b0e70fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
106d5b0e70fSEmmanuel Vadot    minimum: 0
107d5b0e70fSEmmanuel Vadot    maximum: 15
108d5b0e70fSEmmanuel Vadot    description:
109d5b0e70fSEmmanuel Vadot      Specifies the counts filter damping factor to be applied during normal-
110d5b0e70fSEmmanuel Vadot      power mode.
111d5b0e70fSEmmanuel Vadot
112d5b0e70fSEmmanuel Vadot  azoteq,lta-fast-beta-lp:
113d5b0e70fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
114d5b0e70fSEmmanuel Vadot    minimum: 0
115d5b0e70fSEmmanuel Vadot    maximum: 15
116d5b0e70fSEmmanuel Vadot    description:
117d5b0e70fSEmmanuel Vadot      Specifies the long-term average filter fast damping factor to be applied
118d5b0e70fSEmmanuel Vadot      during low-power mode.
119d5b0e70fSEmmanuel Vadot
120d5b0e70fSEmmanuel Vadot  azoteq,lta-fast-beta-np:
121d5b0e70fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
122d5b0e70fSEmmanuel Vadot    minimum: 0
123d5b0e70fSEmmanuel Vadot    maximum: 15
124d5b0e70fSEmmanuel Vadot    description:
125d5b0e70fSEmmanuel Vadot      Specifies the long-term average filter fast damping factor to be applied
126d5b0e70fSEmmanuel Vadot      during normal-power mode.
127d5b0e70fSEmmanuel Vadot
128d5b0e70fSEmmanuel Vadot  azoteq,timeout-ati-ms:
129d5b0e70fSEmmanuel Vadot    multipleOf: 500
130d5b0e70fSEmmanuel Vadot    minimum: 0
131d5b0e70fSEmmanuel Vadot    maximum: 32767500
132d5b0e70fSEmmanuel Vadot    description:
133d5b0e70fSEmmanuel Vadot      Specifies the delay (in ms) before ATI is retried following an ATI error.
134d5b0e70fSEmmanuel Vadot
135d5b0e70fSEmmanuel Vadot  azoteq,rate-ati-ms:
136d5b0e70fSEmmanuel Vadot    minimum: 0
137d5b0e70fSEmmanuel Vadot    maximum: 65535
138d5b0e70fSEmmanuel Vadot    description: Specifies the rate (in ms) at which ATI status is evaluated.
139d5b0e70fSEmmanuel Vadot
140d5b0e70fSEmmanuel Vadot  azoteq,timeout-np-ms:
141d5b0e70fSEmmanuel Vadot    minimum: 0
142d5b0e70fSEmmanuel Vadot    maximum: 65535
143d5b0e70fSEmmanuel Vadot    description:
144d5b0e70fSEmmanuel Vadot      Specifies the length of time (in ms) to wait for an event before moving
145d5b0e70fSEmmanuel Vadot      from normal-power mode to low-power mode.
146d5b0e70fSEmmanuel Vadot
147d5b0e70fSEmmanuel Vadot  azoteq,rate-np-ms:
148d5b0e70fSEmmanuel Vadot    minimum: 0
149d5b0e70fSEmmanuel Vadot    maximum: 3000
150d5b0e70fSEmmanuel Vadot    description: Specifies the report rate (in ms) during normal-power mode.
151d5b0e70fSEmmanuel Vadot
152d5b0e70fSEmmanuel Vadot  azoteq,timeout-lp-ms:
153d5b0e70fSEmmanuel Vadot    minimum: 0
154d5b0e70fSEmmanuel Vadot    maximum: 65535
155d5b0e70fSEmmanuel Vadot    description:
156d5b0e70fSEmmanuel Vadot      Specifies the length of time (in ms) to wait for an event before moving
157d5b0e70fSEmmanuel Vadot      from low-power mode to ultra-low-power mode.
158d5b0e70fSEmmanuel Vadot
159d5b0e70fSEmmanuel Vadot  azoteq,rate-lp-ms:
160d5b0e70fSEmmanuel Vadot    minimum: 0
161d5b0e70fSEmmanuel Vadot    maximum: 3000
162d5b0e70fSEmmanuel Vadot    description: Specifies the report rate (in ms) during low-power mode.
163d5b0e70fSEmmanuel Vadot
164d5b0e70fSEmmanuel Vadot  azoteq,timeout-ulp-ms:
165d5b0e70fSEmmanuel Vadot    minimum: 0
166d5b0e70fSEmmanuel Vadot    maximum: 65535
167d5b0e70fSEmmanuel Vadot    description:
168d5b0e70fSEmmanuel Vadot      Specifies the rate (in ms) at which channels not regularly sampled during
169d5b0e70fSEmmanuel Vadot      ultra-low-power mode are updated.
170d5b0e70fSEmmanuel Vadot
171d5b0e70fSEmmanuel Vadot  azoteq,rate-ulp-ms:
172d5b0e70fSEmmanuel Vadot    minimum: 0
173d5b0e70fSEmmanuel Vadot    maximum: 3000
174d5b0e70fSEmmanuel Vadot    description: Specifies the report rate (in ms) during ultra-low-power mode.
175d5b0e70fSEmmanuel Vadot
176d5b0e70fSEmmanuel VadotpatternProperties:
177d5b0e70fSEmmanuel Vadot  "^cycle-[0-9]$":
178d5b0e70fSEmmanuel Vadot    type: object
179d5b0e70fSEmmanuel Vadot    description: Represents a conversion cycle serving two sensing channels.
180d5b0e70fSEmmanuel Vadot
181d5b0e70fSEmmanuel Vadot    properties:
182d5b0e70fSEmmanuel Vadot      azoteq,conv-period:
183d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
184d5b0e70fSEmmanuel Vadot        minimum: 0
185d5b0e70fSEmmanuel Vadot        maximum: 255
186d5b0e70fSEmmanuel Vadot        description: Specifies the cycle's conversion period.
187d5b0e70fSEmmanuel Vadot
188d5b0e70fSEmmanuel Vadot      azoteq,conv-frac:
189d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
190d5b0e70fSEmmanuel Vadot        minimum: 0
191d5b0e70fSEmmanuel Vadot        maximum: 255
192d5b0e70fSEmmanuel Vadot        description: Specifies the cycle's conversion frequency fraction.
193d5b0e70fSEmmanuel Vadot
194d5b0e70fSEmmanuel Vadot      azoteq,tx-enable:
195d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32-array
196d5b0e70fSEmmanuel Vadot        minItems: 1
197d5b0e70fSEmmanuel Vadot        maxItems: 9
198d5b0e70fSEmmanuel Vadot        items:
199d5b0e70fSEmmanuel Vadot          minimum: 0
200d5b0e70fSEmmanuel Vadot          maximum: 8
201d5b0e70fSEmmanuel Vadot        description: Specifies the CTx pin(s) associated with the cycle.
202d5b0e70fSEmmanuel Vadot
203d5b0e70fSEmmanuel Vadot      azoteq,rx-float-inactive:
204d5b0e70fSEmmanuel Vadot        type: boolean
205d5b0e70fSEmmanuel Vadot        description: Floats any inactive CRx pins instead of grounding them.
206d5b0e70fSEmmanuel Vadot
207d5b0e70fSEmmanuel Vadot      azoteq,dead-time-enable:
208d5b0e70fSEmmanuel Vadot        type: boolean
209d5b0e70fSEmmanuel Vadot        description:
210d5b0e70fSEmmanuel Vadot          Increases the denominator of the conversion frequency formula by one.
211d5b0e70fSEmmanuel Vadot
212d5b0e70fSEmmanuel Vadot      azoteq,tx-freq-fosc:
213d5b0e70fSEmmanuel Vadot        type: boolean
214d5b0e70fSEmmanuel Vadot        description:
215d5b0e70fSEmmanuel Vadot          Fixes the conversion frequency to that of the device's core clock.
216d5b0e70fSEmmanuel Vadot
217d5b0e70fSEmmanuel Vadot      azoteq,vbias-enable:
218d5b0e70fSEmmanuel Vadot        type: boolean
219d5b0e70fSEmmanuel Vadot        description: Enables the bias voltage for use during inductive sensing.
220d5b0e70fSEmmanuel Vadot
221d5b0e70fSEmmanuel Vadot      azoteq,sense-mode:
222d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
223d5b0e70fSEmmanuel Vadot        enum: [0, 1, 2, 3]
224d5b0e70fSEmmanuel Vadot        description: |
225d5b0e70fSEmmanuel Vadot          Specifies the cycle's sensing mode as follows:
226d5b0e70fSEmmanuel Vadot          0: None
227d5b0e70fSEmmanuel Vadot          1: Self capacitive
228d5b0e70fSEmmanuel Vadot          2: Mutual capacitive
229d5b0e70fSEmmanuel Vadot          3: Inductive
230d5b0e70fSEmmanuel Vadot
231d5b0e70fSEmmanuel Vadot          Note that in the case of IQS7222A, cycles 5 and 6 are restricted to
232d5b0e70fSEmmanuel Vadot          Hall-effect sensing.
233d5b0e70fSEmmanuel Vadot
234d5b0e70fSEmmanuel Vadot      azoteq,iref-enable:
235d5b0e70fSEmmanuel Vadot        type: boolean
236d5b0e70fSEmmanuel Vadot        description:
237d5b0e70fSEmmanuel Vadot          Enables the current reference for use during various sensing modes.
238d5b0e70fSEmmanuel Vadot
239d5b0e70fSEmmanuel Vadot      azoteq,iref-level:
240d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
241d5b0e70fSEmmanuel Vadot        minimum: 0
242d5b0e70fSEmmanuel Vadot        maximum: 15
243d5b0e70fSEmmanuel Vadot        description: Specifies the cycle's current reference level.
244d5b0e70fSEmmanuel Vadot
245d5b0e70fSEmmanuel Vadot      azoteq,iref-trim:
246d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
247d5b0e70fSEmmanuel Vadot        minimum: 0
248d5b0e70fSEmmanuel Vadot        maximum: 15
249d5b0e70fSEmmanuel Vadot        description: Specifies the cycle's current reference trim.
250d5b0e70fSEmmanuel Vadot
251d5b0e70fSEmmanuel Vadot    dependencies:
252d5b0e70fSEmmanuel Vadot      azoteq,iref-level: ["azoteq,iref-enable"]
253d5b0e70fSEmmanuel Vadot      azoteq,iref-trim: ["azoteq,iref-enable"]
254d5b0e70fSEmmanuel Vadot
255d5b0e70fSEmmanuel Vadot    additionalProperties: false
256d5b0e70fSEmmanuel Vadot
257d5b0e70fSEmmanuel Vadot  "^channel-([0-9]|1[0-9])$":
258d5b0e70fSEmmanuel Vadot    type: object
259d5b0e70fSEmmanuel Vadot    description:
260d5b0e70fSEmmanuel Vadot      Represents a single sensing channel. A channel is active if defined and
261d5b0e70fSEmmanuel Vadot      inactive otherwise.
262d5b0e70fSEmmanuel Vadot
263d5b0e70fSEmmanuel Vadot      Note that in the case of IQS7222A, channels 10 and 11 are restricted to
264d5b0e70fSEmmanuel Vadot      Hall-effect sensing with events reported on channel 10 only.
265d5b0e70fSEmmanuel Vadot
266d5b0e70fSEmmanuel Vadot    properties:
267d5b0e70fSEmmanuel Vadot      azoteq,ulp-allow:
268d5b0e70fSEmmanuel Vadot        type: boolean
269d5b0e70fSEmmanuel Vadot        description:
270d5b0e70fSEmmanuel Vadot          Permits the device to enter ultra-low-power mode while the channel
271d5b0e70fSEmmanuel Vadot          lies in a state of touch or proximity.
272d5b0e70fSEmmanuel Vadot
273d5b0e70fSEmmanuel Vadot      azoteq,ref-select:
274d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
275d5b0e70fSEmmanuel Vadot        minimum: 0
276d5b0e70fSEmmanuel Vadot        maximum: 9
277d5b0e70fSEmmanuel Vadot        description: Specifies a separate reference channel to be followed.
278d5b0e70fSEmmanuel Vadot
279d5b0e70fSEmmanuel Vadot      azoteq,ref-weight:
280d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
281d5b0e70fSEmmanuel Vadot        minimum: 0
282d5b0e70fSEmmanuel Vadot        maximum: 65535
283d5b0e70fSEmmanuel Vadot        description: Specifies the relative weight of the reference channel.
284d5b0e70fSEmmanuel Vadot
285d5b0e70fSEmmanuel Vadot      azoteq,use-prox:
286d5b0e70fSEmmanuel Vadot        type: boolean
287d5b0e70fSEmmanuel Vadot        description:
288d5b0e70fSEmmanuel Vadot          Activates the reference channel in response to proximity events
289d5b0e70fSEmmanuel Vadot          instead of touch events.
290d5b0e70fSEmmanuel Vadot
291d5b0e70fSEmmanuel Vadot      azoteq,ati-band:
292d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
293d5b0e70fSEmmanuel Vadot        enum: [0, 1, 2, 3]
294d5b0e70fSEmmanuel Vadot        description: |
295d5b0e70fSEmmanuel Vadot          Specifies the channel's ATI band as a fraction of its ATI target as
296d5b0e70fSEmmanuel Vadot          follows:
297d5b0e70fSEmmanuel Vadot          0: 1/16
298d5b0e70fSEmmanuel Vadot          1: 1/8
299d5b0e70fSEmmanuel Vadot          2: 1/4
300d5b0e70fSEmmanuel Vadot          3: 1/2
301d5b0e70fSEmmanuel Vadot
302d5b0e70fSEmmanuel Vadot      azoteq,global-halt:
303d5b0e70fSEmmanuel Vadot        type: boolean
304d5b0e70fSEmmanuel Vadot        description:
305d5b0e70fSEmmanuel Vadot          Specifies that the channel's long-term average is to freeze if any
306d5b0e70fSEmmanuel Vadot          other participating channel lies in a proximity or touch state.
307d5b0e70fSEmmanuel Vadot
308d5b0e70fSEmmanuel Vadot      azoteq,invert-enable:
309d5b0e70fSEmmanuel Vadot        type: boolean
310d5b0e70fSEmmanuel Vadot        description:
311d5b0e70fSEmmanuel Vadot          Inverts the polarity of the states reported for proximity and touch
312d5b0e70fSEmmanuel Vadot          events relative to their respective thresholds.
313d5b0e70fSEmmanuel Vadot
314d5b0e70fSEmmanuel Vadot      azoteq,dual-direction:
315d5b0e70fSEmmanuel Vadot        type: boolean
316d5b0e70fSEmmanuel Vadot        description:
317d5b0e70fSEmmanuel Vadot          Specifies that the channel's long-term average is to freeze in the
318d5b0e70fSEmmanuel Vadot          presence of either increasing or decreasing counts, thereby permit-
319d5b0e70fSEmmanuel Vadot          ting events to be reported in either direction.
320d5b0e70fSEmmanuel Vadot
321d5b0e70fSEmmanuel Vadot      azoteq,rx-enable:
322d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32-array
323d5b0e70fSEmmanuel Vadot        minItems: 1
324d5b0e70fSEmmanuel Vadot        maxItems: 4
325d5b0e70fSEmmanuel Vadot        items:
326d5b0e70fSEmmanuel Vadot          minimum: 0
327d5b0e70fSEmmanuel Vadot          maximum: 7
328d5b0e70fSEmmanuel Vadot        description: Specifies the CRx pin(s) associated with the channel.
329d5b0e70fSEmmanuel Vadot
330d5b0e70fSEmmanuel Vadot      azoteq,samp-cap-double:
331d5b0e70fSEmmanuel Vadot        type: boolean
332d5b0e70fSEmmanuel Vadot        description: Doubles the sampling capacitance from 40 pF to 80 pF.
333d5b0e70fSEmmanuel Vadot
334d5b0e70fSEmmanuel Vadot      azoteq,vref-half:
335d5b0e70fSEmmanuel Vadot        type: boolean
336d5b0e70fSEmmanuel Vadot        description: Halves the discharge threshold from 1.0 V to 0.5 V.
337d5b0e70fSEmmanuel Vadot
338d5b0e70fSEmmanuel Vadot      azoteq,proj-bias:
339d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
340d5b0e70fSEmmanuel Vadot        enum: [0, 1, 2, 3]
341d5b0e70fSEmmanuel Vadot        description: |
342d5b0e70fSEmmanuel Vadot          Specifies the bias current applied during mutual (projected)
343d5b0e70fSEmmanuel Vadot          capacitive sensing as follows:
344d5b0e70fSEmmanuel Vadot          0: 2 uA
345d5b0e70fSEmmanuel Vadot          1: 5 uA
346d5b0e70fSEmmanuel Vadot          2: 7 uA
347d5b0e70fSEmmanuel Vadot          3: 10 uA
348d5b0e70fSEmmanuel Vadot
349d5b0e70fSEmmanuel Vadot      azoteq,ati-target:
350d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
351d5b0e70fSEmmanuel Vadot        multipleOf: 8
352d5b0e70fSEmmanuel Vadot        minimum: 0
353d5b0e70fSEmmanuel Vadot        maximum: 2040
354d5b0e70fSEmmanuel Vadot        description: Specifies the channel's ATI target.
355d5b0e70fSEmmanuel Vadot
356d5b0e70fSEmmanuel Vadot      azoteq,ati-base:
357d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
358d5b0e70fSEmmanuel Vadot        multipleOf: 16
359d5b0e70fSEmmanuel Vadot        minimum: 0
360d5b0e70fSEmmanuel Vadot        maximum: 496
361d5b0e70fSEmmanuel Vadot        description: Specifies the channel's ATI base.
362d5b0e70fSEmmanuel Vadot
363d5b0e70fSEmmanuel Vadot      azoteq,ati-mode:
364d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
365d5b0e70fSEmmanuel Vadot        enum: [0, 1, 2, 3, 4, 5]
366d5b0e70fSEmmanuel Vadot        description: |
367d5b0e70fSEmmanuel Vadot          Specifies the channel's ATI mode as follows:
368d5b0e70fSEmmanuel Vadot          0: Disabled
369d5b0e70fSEmmanuel Vadot          1: Compensation
370d5b0e70fSEmmanuel Vadot          2: Compensation divider
371d5b0e70fSEmmanuel Vadot          3: Fine fractional divider
372d5b0e70fSEmmanuel Vadot          4: Coarse fractional divider
373d5b0e70fSEmmanuel Vadot          5: Full
374d5b0e70fSEmmanuel Vadot
375d5b0e70fSEmmanuel Vadot      azoteq,ati-frac-div-fine:
376d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
377d5b0e70fSEmmanuel Vadot        minimum: 0
378d5b0e70fSEmmanuel Vadot        maximum: 31
379d5b0e70fSEmmanuel Vadot        description: Specifies the channel's ATI fine fractional divider.
380d5b0e70fSEmmanuel Vadot
381d5b0e70fSEmmanuel Vadot      azoteq,ati-frac-mult-coarse:
382d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
383d5b0e70fSEmmanuel Vadot        minimum: 0
384d5b0e70fSEmmanuel Vadot        maximum: 15
385d5b0e70fSEmmanuel Vadot        description: Specifies the channel's ATI coarse fractional multiplier.
386d5b0e70fSEmmanuel Vadot
387d5b0e70fSEmmanuel Vadot      azoteq,ati-frac-div-coarse:
388d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
389d5b0e70fSEmmanuel Vadot        minimum: 0
390d5b0e70fSEmmanuel Vadot        maximum: 31
391d5b0e70fSEmmanuel Vadot        description: Specifies the channel's ATI coarse fractional divider.
392d5b0e70fSEmmanuel Vadot
393d5b0e70fSEmmanuel Vadot      azoteq,ati-comp-div:
394d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
395d5b0e70fSEmmanuel Vadot        minimum: 0
396d5b0e70fSEmmanuel Vadot        maximum: 31
397d5b0e70fSEmmanuel Vadot        description: Specifies the channel's ATI compensation divider.
398d5b0e70fSEmmanuel Vadot
399d5b0e70fSEmmanuel Vadot      azoteq,ati-comp-select:
400d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
401d5b0e70fSEmmanuel Vadot        minimum: 0
402d5b0e70fSEmmanuel Vadot        maximum: 1023
403d5b0e70fSEmmanuel Vadot        description: Specifies the channel's ATI compensation selection.
404d5b0e70fSEmmanuel Vadot
405d5b0e70fSEmmanuel Vadot      azoteq,debounce-enter:
406d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
407d5b0e70fSEmmanuel Vadot        minimum: 0
408d5b0e70fSEmmanuel Vadot        maximum: 15
409d5b0e70fSEmmanuel Vadot        description: Specifies the channel's debounce entrance factor.
410d5b0e70fSEmmanuel Vadot
411d5b0e70fSEmmanuel Vadot      azoteq,debounce-exit:
412d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
413d5b0e70fSEmmanuel Vadot        minimum: 0
414d5b0e70fSEmmanuel Vadot        maximum: 15
415d5b0e70fSEmmanuel Vadot        description: Specifies the channel's debounce exit factor.
416d5b0e70fSEmmanuel Vadot
417d5b0e70fSEmmanuel Vadot    patternProperties:
418d5b0e70fSEmmanuel Vadot      "^event-(prox|touch)$":
419d5b0e70fSEmmanuel Vadot        type: object
420b97ee269SEmmanuel Vadot        $ref: input.yaml#
421d5b0e70fSEmmanuel Vadot        description:
422d5b0e70fSEmmanuel Vadot          Represents a proximity or touch event reported by the channel.
423d5b0e70fSEmmanuel Vadot
424d5b0e70fSEmmanuel Vadot        properties:
425d5b0e70fSEmmanuel Vadot          azoteq,gpio-select:
426d5b0e70fSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32-array
427d5b0e70fSEmmanuel Vadot            minItems: 1
428d5b0e70fSEmmanuel Vadot            maxItems: 3
429d5b0e70fSEmmanuel Vadot            items:
430d5b0e70fSEmmanuel Vadot              minimum: 0
431d5b0e70fSEmmanuel Vadot              maximum: 2
432d5b0e70fSEmmanuel Vadot            description: |
433d5b0e70fSEmmanuel Vadot              Specifies one or more GPIO mapped to the event as follows:
434d5b0e70fSEmmanuel Vadot              0: GPIO0
435d5b0e70fSEmmanuel Vadot              1: GPIO3 (IQS7222C only)
436d5b0e70fSEmmanuel Vadot              2: GPIO4 (IQS7222C only)
437d5b0e70fSEmmanuel Vadot
438d5b0e70fSEmmanuel Vadot              Note that although multiple events can be mapped to a single
439d5b0e70fSEmmanuel Vadot              GPIO, they must all be of the same type (proximity, touch or
440d5b0e70fSEmmanuel Vadot              slider gesture).
441d5b0e70fSEmmanuel Vadot
442d5b0e70fSEmmanuel Vadot          azoteq,thresh:
443d5b0e70fSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
444d5b0e70fSEmmanuel Vadot            description:
445d5b0e70fSEmmanuel Vadot              Specifies the threshold for the event. Valid entries range from
446d5b0e70fSEmmanuel Vadot              0-127 and 0-255 for proximity and touch events, respectively.
447d5b0e70fSEmmanuel Vadot
448d5b0e70fSEmmanuel Vadot          azoteq,hyst:
449d5b0e70fSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
450d5b0e70fSEmmanuel Vadot            minimum: 0
451d5b0e70fSEmmanuel Vadot            maximum: 255
452d5b0e70fSEmmanuel Vadot            description:
453d5b0e70fSEmmanuel Vadot              Specifies the hysteresis for the event (touch events only).
454d5b0e70fSEmmanuel Vadot
455d5b0e70fSEmmanuel Vadot          azoteq,timeout-press-ms:
456d5b0e70fSEmmanuel Vadot            multipleOf: 500
457d5b0e70fSEmmanuel Vadot            minimum: 0
458d5b0e70fSEmmanuel Vadot            maximum: 127500
459d5b0e70fSEmmanuel Vadot            description:
460d5b0e70fSEmmanuel Vadot              Specifies the length of time (in ms) to wait before automatically
461d5b0e70fSEmmanuel Vadot              releasing a press event. Specify zero to allow the press state to
462d5b0e70fSEmmanuel Vadot              persist indefinitely.
463d5b0e70fSEmmanuel Vadot
464d5b0e70fSEmmanuel Vadot              The IQS7222B does not feature channel-specific timeouts; the time-
465d5b0e70fSEmmanuel Vadot              out specified for any one channel applies to all channels.
466d5b0e70fSEmmanuel Vadot
467b97ee269SEmmanuel Vadot          linux,code: true
468d5b0e70fSEmmanuel Vadot
469d5b0e70fSEmmanuel Vadot          linux,input-type:
470d5b0e70fSEmmanuel Vadot            enum: [1, 5]
471d5b0e70fSEmmanuel Vadot            default: 1
472d5b0e70fSEmmanuel Vadot            description:
473d5b0e70fSEmmanuel Vadot              Specifies whether the event is to be interpreted as a key (1)
474d5b0e70fSEmmanuel Vadot              or a switch (5).
475d5b0e70fSEmmanuel Vadot
476d5b0e70fSEmmanuel Vadot        additionalProperties: false
477d5b0e70fSEmmanuel Vadot
478d5b0e70fSEmmanuel Vadot    dependencies:
479d5b0e70fSEmmanuel Vadot      azoteq,ref-weight: ["azoteq,ref-select"]
480d5b0e70fSEmmanuel Vadot      azoteq,use-prox: ["azoteq,ref-select"]
481d5b0e70fSEmmanuel Vadot
482d5b0e70fSEmmanuel Vadot    additionalProperties: false
483d5b0e70fSEmmanuel Vadot
484d5b0e70fSEmmanuel Vadot  "^slider-[0-1]$":
485d5b0e70fSEmmanuel Vadot    type: object
486d5b0e70fSEmmanuel Vadot    description: Represents a slider comprising three or four channels.
487d5b0e70fSEmmanuel Vadot
488d5b0e70fSEmmanuel Vadot    properties:
489d5b0e70fSEmmanuel Vadot      azoteq,channel-select:
490d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32-array
491d5b0e70fSEmmanuel Vadot        minItems: 3
492d5b0e70fSEmmanuel Vadot        maxItems: 4
493d5b0e70fSEmmanuel Vadot        items:
494d5b0e70fSEmmanuel Vadot          minimum: 0
495d5b0e70fSEmmanuel Vadot          maximum: 9
496d5b0e70fSEmmanuel Vadot        description:
497d5b0e70fSEmmanuel Vadot          Specifies the order of the channels that participate in the slider.
498d5b0e70fSEmmanuel Vadot
499d5b0e70fSEmmanuel Vadot      azoteq,slider-size:
500d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
501*8bab661aSEmmanuel Vadot        minimum: 1
502d5b0e70fSEmmanuel Vadot        maximum: 65535
503d5b0e70fSEmmanuel Vadot        description:
504d5b0e70fSEmmanuel Vadot          Specifies the slider's one-dimensional resolution, equal to the
505d5b0e70fSEmmanuel Vadot          maximum coordinate plus one.
506d5b0e70fSEmmanuel Vadot
507d5b0e70fSEmmanuel Vadot      azoteq,lower-cal:
508d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
509d5b0e70fSEmmanuel Vadot        minimum: 0
510d5b0e70fSEmmanuel Vadot        maximum: 255
511d5b0e70fSEmmanuel Vadot        description: Specifies the slider's lower starting point.
512d5b0e70fSEmmanuel Vadot
513d5b0e70fSEmmanuel Vadot      azoteq,upper-cal:
514d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
515d5b0e70fSEmmanuel Vadot        minimum: 0
516d5b0e70fSEmmanuel Vadot        maximum: 255
517d5b0e70fSEmmanuel Vadot        description: Specifies the slider's upper starting point.
518d5b0e70fSEmmanuel Vadot
519d5b0e70fSEmmanuel Vadot      azoteq,top-speed:
520d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
521d5b0e70fSEmmanuel Vadot        minimum: 0
522d5b0e70fSEmmanuel Vadot        maximum: 65535
523d5b0e70fSEmmanuel Vadot        description:
524d5b0e70fSEmmanuel Vadot          Specifies the speed of movement after which coordinate filtering is
525d5b0e70fSEmmanuel Vadot          no longer applied.
526d5b0e70fSEmmanuel Vadot
527d5b0e70fSEmmanuel Vadot      azoteq,bottom-speed:
528d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
529d5b0e70fSEmmanuel Vadot        minimum: 0
530b97ee269SEmmanuel Vadot        maximum: 255
531d5b0e70fSEmmanuel Vadot        description:
532d5b0e70fSEmmanuel Vadot          Specifies the speed of movement after which coordinate filtering is
533d5b0e70fSEmmanuel Vadot          linearly reduced.
534d5b0e70fSEmmanuel Vadot
535d5b0e70fSEmmanuel Vadot      azoteq,bottom-beta:
536d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
537d5b0e70fSEmmanuel Vadot        minimum: 0
538d5b0e70fSEmmanuel Vadot        maximum: 7
539d5b0e70fSEmmanuel Vadot        description:
540d5b0e70fSEmmanuel Vadot          Specifies the coordinate filter damping factor to be applied
541d5b0e70fSEmmanuel Vadot          while the speed of movement is below that which is specified
542d5b0e70fSEmmanuel Vadot          by azoteq,bottom-speed.
543d5b0e70fSEmmanuel Vadot
544d5b0e70fSEmmanuel Vadot      azoteq,static-beta:
545d5b0e70fSEmmanuel Vadot        type: boolean
546d5b0e70fSEmmanuel Vadot        description:
547d5b0e70fSEmmanuel Vadot          Applies the coordinate filter damping factor specified by
548d5b0e70fSEmmanuel Vadot          azoteq,bottom-beta regardless of the speed of movement.
549d5b0e70fSEmmanuel Vadot
550d5b0e70fSEmmanuel Vadot      azoteq,use-prox:
551d5b0e70fSEmmanuel Vadot        type: boolean
552d5b0e70fSEmmanuel Vadot        description:
553d5b0e70fSEmmanuel Vadot          Directs the slider to respond to the proximity states of the selected
554d5b0e70fSEmmanuel Vadot          channels instead of their corresponding touch states. Note the slider
555d5b0e70fSEmmanuel Vadot          cannot report granular coordinates during a state of proximity.
556d5b0e70fSEmmanuel Vadot
557d5b0e70fSEmmanuel Vadot      linux,axis:
558d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
559d5b0e70fSEmmanuel Vadot        description:
560d5b0e70fSEmmanuel Vadot          Specifies the absolute axis to which coordinates are mapped. Specify
561d5b0e70fSEmmanuel Vadot          ABS_WHEEL to operate the slider as a wheel (IQS7222C only).
562d5b0e70fSEmmanuel Vadot
563d5b0e70fSEmmanuel Vadot    patternProperties:
564d5b0e70fSEmmanuel Vadot      "^event-(press|tap|(swipe|flick)-(pos|neg))$":
565d5b0e70fSEmmanuel Vadot        type: object
566b97ee269SEmmanuel Vadot        $ref: input.yaml#
567d5b0e70fSEmmanuel Vadot        description:
568d5b0e70fSEmmanuel Vadot          Represents a press or gesture (IQS7222A only) event reported by
569d5b0e70fSEmmanuel Vadot          the slider.
570d5b0e70fSEmmanuel Vadot
571d5b0e70fSEmmanuel Vadot        properties:
572b97ee269SEmmanuel Vadot          linux,code: true
573d5b0e70fSEmmanuel Vadot
574d5b0e70fSEmmanuel Vadot          azoteq,gesture-max-ms:
575*8bab661aSEmmanuel Vadot            multipleOf: 16
576d5b0e70fSEmmanuel Vadot            minimum: 0
577*8bab661aSEmmanuel Vadot            maximum: 4080
578d5b0e70fSEmmanuel Vadot            description:
579d5b0e70fSEmmanuel Vadot              Specifies the length of time (in ms) within which a tap, swipe
580d5b0e70fSEmmanuel Vadot              or flick gesture must be completed in order to be acknowledged
581d5b0e70fSEmmanuel Vadot              by the device. The number specified for any one swipe or flick
582d5b0e70fSEmmanuel Vadot              gesture applies to all remaining swipe or flick gestures.
583d5b0e70fSEmmanuel Vadot
584d5b0e70fSEmmanuel Vadot          azoteq,gesture-min-ms:
585*8bab661aSEmmanuel Vadot            multipleOf: 16
586d5b0e70fSEmmanuel Vadot            minimum: 0
587*8bab661aSEmmanuel Vadot            maximum: 496
588d5b0e70fSEmmanuel Vadot            description:
589d5b0e70fSEmmanuel Vadot              Specifies the length of time (in ms) for which a tap gesture must
590d5b0e70fSEmmanuel Vadot              be held in order to be acknowledged by the device.
591d5b0e70fSEmmanuel Vadot
592d5b0e70fSEmmanuel Vadot          azoteq,gesture-dist:
593d5b0e70fSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
594d5b0e70fSEmmanuel Vadot            multipleOf: 16
595d5b0e70fSEmmanuel Vadot            minimum: 0
596d5b0e70fSEmmanuel Vadot            maximum: 4080
597d5b0e70fSEmmanuel Vadot            description:
598d5b0e70fSEmmanuel Vadot              Specifies the distance across which a swipe or flick gesture must
599d5b0e70fSEmmanuel Vadot              travel in order to be acknowledged by the device. The number spec-
600d5b0e70fSEmmanuel Vadot              ified for any one swipe or flick gesture applies to all remaining
601d5b0e70fSEmmanuel Vadot              swipe or flick gestures.
602d5b0e70fSEmmanuel Vadot
603d5b0e70fSEmmanuel Vadot          azoteq,gpio-select:
604d5b0e70fSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32-array
605d5b0e70fSEmmanuel Vadot            minItems: 1
606b97ee269SEmmanuel Vadot            maxItems: 3
607d5b0e70fSEmmanuel Vadot            items:
608d5b0e70fSEmmanuel Vadot              minimum: 0
609b97ee269SEmmanuel Vadot              maximum: 2
610d5b0e70fSEmmanuel Vadot            description: |
611b97ee269SEmmanuel Vadot              Specifies one or more GPIO mapped to the event as follows:
612d5b0e70fSEmmanuel Vadot              0: GPIO0
613b97ee269SEmmanuel Vadot              1: GPIO3 (IQS7222C only)
614b97ee269SEmmanuel Vadot              2: GPIO4 (IQS7222C only)
615d5b0e70fSEmmanuel Vadot
616d5b0e70fSEmmanuel Vadot              Note that although multiple events can be mapped to a single
617d5b0e70fSEmmanuel Vadot              GPIO, they must all be of the same type (proximity, touch or
618d5b0e70fSEmmanuel Vadot              slider gesture).
619d5b0e70fSEmmanuel Vadot
620d5b0e70fSEmmanuel Vadot        additionalProperties: false
621d5b0e70fSEmmanuel Vadot
622d5b0e70fSEmmanuel Vadot    required:
623d5b0e70fSEmmanuel Vadot      - azoteq,channel-select
624d5b0e70fSEmmanuel Vadot
625d5b0e70fSEmmanuel Vadot    additionalProperties: false
626d5b0e70fSEmmanuel Vadot
627d5b0e70fSEmmanuel Vadot  "^gpio-[0-2]$":
628d5b0e70fSEmmanuel Vadot    type: object
629d5b0e70fSEmmanuel Vadot    description: |
630d5b0e70fSEmmanuel Vadot      Represents a GPIO mapped to one or more events as follows:
631d5b0e70fSEmmanuel Vadot      gpio-0: GPIO0
632d5b0e70fSEmmanuel Vadot      gpio-1: GPIO3 (IQS7222C only)
633d5b0e70fSEmmanuel Vadot      gpio-2: GPIO4 (IQS7222C only)
634d5b0e70fSEmmanuel Vadot
635d5b0e70fSEmmanuel Vadot    allOf:
636d5b0e70fSEmmanuel Vadot      - $ref: ../pinctrl/pincfg-node.yaml#
637d5b0e70fSEmmanuel Vadot
638d5b0e70fSEmmanuel Vadot    properties:
639d5b0e70fSEmmanuel Vadot      drive-open-drain: true
640d5b0e70fSEmmanuel Vadot
641d5b0e70fSEmmanuel Vadot    additionalProperties: false
642d5b0e70fSEmmanuel Vadot
643d5b0e70fSEmmanuel VadotallOf:
644d5b0e70fSEmmanuel Vadot  - if:
645d5b0e70fSEmmanuel Vadot      properties:
646d5b0e70fSEmmanuel Vadot        compatible:
647d5b0e70fSEmmanuel Vadot          contains:
648d5b0e70fSEmmanuel Vadot            const: azoteq,iqs7222b
649d5b0e70fSEmmanuel Vadot
650d5b0e70fSEmmanuel Vadot    then:
651d5b0e70fSEmmanuel Vadot      patternProperties:
652d5b0e70fSEmmanuel Vadot        "^cycle-[0-9]$":
653d5b0e70fSEmmanuel Vadot          properties:
654d5b0e70fSEmmanuel Vadot            azoteq,iref-enable: false
655d5b0e70fSEmmanuel Vadot
656d5b0e70fSEmmanuel Vadot        "^channel-([0-9]|1[0-9])$":
657d5b0e70fSEmmanuel Vadot          properties:
658d5b0e70fSEmmanuel Vadot            azoteq,ref-select: false
659d5b0e70fSEmmanuel Vadot
660d5b0e70fSEmmanuel Vadot          patternProperties:
661d5b0e70fSEmmanuel Vadot            "^event-(prox|touch)$":
662d5b0e70fSEmmanuel Vadot              properties:
663d5b0e70fSEmmanuel Vadot                azoteq,gpio-select: false
664d5b0e70fSEmmanuel Vadot
665d5b0e70fSEmmanuel Vadot        "^slider-[0-1]$": false
666d5b0e70fSEmmanuel Vadot
667d5b0e70fSEmmanuel Vadot        "^gpio-[0-2]$": false
668d5b0e70fSEmmanuel Vadot
669d5b0e70fSEmmanuel Vadot  - if:
670d5b0e70fSEmmanuel Vadot      properties:
671d5b0e70fSEmmanuel Vadot        compatible:
672d5b0e70fSEmmanuel Vadot          contains:
673d5b0e70fSEmmanuel Vadot            const: azoteq,iqs7222a
674d5b0e70fSEmmanuel Vadot
675d5b0e70fSEmmanuel Vadot    then:
676d5b0e70fSEmmanuel Vadot      patternProperties:
677d5b0e70fSEmmanuel Vadot        "^channel-([0-9]|1[0-9])$":
678d5b0e70fSEmmanuel Vadot          patternProperties:
679d5b0e70fSEmmanuel Vadot            "^event-(prox|touch)$":
680d5b0e70fSEmmanuel Vadot              properties:
681d5b0e70fSEmmanuel Vadot                azoteq,gpio-select:
682d5b0e70fSEmmanuel Vadot                  maxItems: 1
683d5b0e70fSEmmanuel Vadot                  items:
684d5b0e70fSEmmanuel Vadot                    maximum: 0
685d5b0e70fSEmmanuel Vadot
686d5b0e70fSEmmanuel Vadot        "^slider-[0-1]$":
687d5b0e70fSEmmanuel Vadot          properties:
688d5b0e70fSEmmanuel Vadot            azoteq,slider-size:
689d5b0e70fSEmmanuel Vadot              multipleOf: 16
690*8bab661aSEmmanuel Vadot              minimum: 16
691d5b0e70fSEmmanuel Vadot              maximum: 4080
692d5b0e70fSEmmanuel Vadot
693d5b0e70fSEmmanuel Vadot            azoteq,top-speed:
694d5b0e70fSEmmanuel Vadot              multipleOf: 4
695d5b0e70fSEmmanuel Vadot              maximum: 1020
696d5b0e70fSEmmanuel Vadot
697b97ee269SEmmanuel Vadot          patternProperties:
698b97ee269SEmmanuel Vadot            "^event-(press|tap|(swipe|flick)-(pos|neg))$":
699b97ee269SEmmanuel Vadot              properties:
700b97ee269SEmmanuel Vadot                azoteq,gpio-select:
701b97ee269SEmmanuel Vadot                  maxItems: 1
702b97ee269SEmmanuel Vadot                  items:
703b97ee269SEmmanuel Vadot                    maximum: 0
704b97ee269SEmmanuel Vadot
705d5b0e70fSEmmanuel Vadot    else:
706d5b0e70fSEmmanuel Vadot      patternProperties:
707d5b0e70fSEmmanuel Vadot        "^channel-([0-9]|1[0-9])$":
708d5b0e70fSEmmanuel Vadot          properties:
709d5b0e70fSEmmanuel Vadot            azoteq,ulp-allow: false
710d5b0e70fSEmmanuel Vadot
711d5b0e70fSEmmanuel Vadot        "^slider-[0-1]$":
712d5b0e70fSEmmanuel Vadot          patternProperties:
713d5b0e70fSEmmanuel Vadot            "^event-(press|tap|(swipe|flick)-(pos|neg))$":
714d5b0e70fSEmmanuel Vadot              properties:
715d5b0e70fSEmmanuel Vadot                azoteq,gesture-max-ms: false
716d5b0e70fSEmmanuel Vadot
717d5b0e70fSEmmanuel Vadot                azoteq,gesture-min-ms: false
718d5b0e70fSEmmanuel Vadot
719d5b0e70fSEmmanuel Vadot                azoteq,gesture-dist: false
720d5b0e70fSEmmanuel Vadot
721d5b0e70fSEmmanuel Vadotrequired:
722d5b0e70fSEmmanuel Vadot  - compatible
723d5b0e70fSEmmanuel Vadot  - reg
724d5b0e70fSEmmanuel Vadot  - irq-gpios
725d5b0e70fSEmmanuel Vadot
726d5b0e70fSEmmanuel VadotadditionalProperties: false
727d5b0e70fSEmmanuel Vadot
728d5b0e70fSEmmanuel Vadotexamples:
729d5b0e70fSEmmanuel Vadot  - |
730d5b0e70fSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
731d5b0e70fSEmmanuel Vadot    #include <dt-bindings/input/input.h>
732d5b0e70fSEmmanuel Vadot
733d5b0e70fSEmmanuel Vadot    i2c {
734d5b0e70fSEmmanuel Vadot            #address-cells = <1>;
735d5b0e70fSEmmanuel Vadot            #size-cells = <0>;
736d5b0e70fSEmmanuel Vadot
737d5b0e70fSEmmanuel Vadot            iqs7222a@44 {
738d5b0e70fSEmmanuel Vadot                    compatible = "azoteq,iqs7222a";
739d5b0e70fSEmmanuel Vadot                    reg = <0x44>;
740d5b0e70fSEmmanuel Vadot                    irq-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
741d5b0e70fSEmmanuel Vadot                    azoteq,lta-beta-lp = <7>;
742d5b0e70fSEmmanuel Vadot                    azoteq,lta-beta-np = <8>;
743d5b0e70fSEmmanuel Vadot                    azoteq,counts-beta-lp = <2>;
744d5b0e70fSEmmanuel Vadot                    azoteq,counts-beta-np = <3>;
745d5b0e70fSEmmanuel Vadot                    azoteq,lta-fast-beta-lp = <3>;
746d5b0e70fSEmmanuel Vadot                    azoteq,lta-fast-beta-np = <4>;
747d5b0e70fSEmmanuel Vadot
748d5b0e70fSEmmanuel Vadot                    cycle-0 {
749d5b0e70fSEmmanuel Vadot                            azoteq,conv-period = <5>;
750d5b0e70fSEmmanuel Vadot                            azoteq,conv-frac = <127>;
751d5b0e70fSEmmanuel Vadot                            azoteq,tx-enable = <1>, <2>, <4>, <5>;
752d5b0e70fSEmmanuel Vadot                            azoteq,dead-time-enable;
753d5b0e70fSEmmanuel Vadot                            azoteq,sense-mode = <2>;
754d5b0e70fSEmmanuel Vadot                    };
755d5b0e70fSEmmanuel Vadot
756d5b0e70fSEmmanuel Vadot                    cycle-1 {
757d5b0e70fSEmmanuel Vadot                            azoteq,conv-period = <5>;
758d5b0e70fSEmmanuel Vadot                            azoteq,conv-frac = <127>;
759d5b0e70fSEmmanuel Vadot                            azoteq,tx-enable = <5>;
760d5b0e70fSEmmanuel Vadot                            azoteq,dead-time-enable;
761d5b0e70fSEmmanuel Vadot                            azoteq,sense-mode = <2>;
762d5b0e70fSEmmanuel Vadot                    };
763d5b0e70fSEmmanuel Vadot
764d5b0e70fSEmmanuel Vadot                    cycle-2 {
765d5b0e70fSEmmanuel Vadot                            azoteq,conv-period = <5>;
766d5b0e70fSEmmanuel Vadot                            azoteq,conv-frac = <127>;
767d5b0e70fSEmmanuel Vadot                            azoteq,tx-enable = <4>;
768d5b0e70fSEmmanuel Vadot                            azoteq,dead-time-enable;
769d5b0e70fSEmmanuel Vadot                            azoteq,sense-mode = <2>;
770d5b0e70fSEmmanuel Vadot                    };
771d5b0e70fSEmmanuel Vadot
772d5b0e70fSEmmanuel Vadot                    cycle-3 {
773d5b0e70fSEmmanuel Vadot                            azoteq,conv-period = <5>;
774d5b0e70fSEmmanuel Vadot                            azoteq,conv-frac = <127>;
775d5b0e70fSEmmanuel Vadot                            azoteq,tx-enable = <2>;
776d5b0e70fSEmmanuel Vadot                            azoteq,dead-time-enable;
777d5b0e70fSEmmanuel Vadot                            azoteq,sense-mode = <2>;
778d5b0e70fSEmmanuel Vadot                    };
779d5b0e70fSEmmanuel Vadot
780d5b0e70fSEmmanuel Vadot                    cycle-4 {
781d5b0e70fSEmmanuel Vadot                            azoteq,conv-period = <5>;
782d5b0e70fSEmmanuel Vadot                            azoteq,conv-frac = <127>;
783d5b0e70fSEmmanuel Vadot                            azoteq,tx-enable = <1>;
784d5b0e70fSEmmanuel Vadot                            azoteq,dead-time-enable;
785d5b0e70fSEmmanuel Vadot                            azoteq,sense-mode = <2>;
786d5b0e70fSEmmanuel Vadot                    };
787d5b0e70fSEmmanuel Vadot
788d5b0e70fSEmmanuel Vadot                    cycle-5 {
789d5b0e70fSEmmanuel Vadot                            azoteq,conv-period = <2>;
790d5b0e70fSEmmanuel Vadot                            azoteq,conv-frac = <0>;
791d5b0e70fSEmmanuel Vadot                    };
792d5b0e70fSEmmanuel Vadot
793d5b0e70fSEmmanuel Vadot                    cycle-6 {
794d5b0e70fSEmmanuel Vadot                            azoteq,conv-period = <2>;
795d5b0e70fSEmmanuel Vadot                            azoteq,conv-frac = <0>;
796d5b0e70fSEmmanuel Vadot                    };
797d5b0e70fSEmmanuel Vadot
798d5b0e70fSEmmanuel Vadot                    channel-0 {
799d5b0e70fSEmmanuel Vadot                            azoteq,ulp-allow;
800d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
801d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
802d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <3>;
803d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <800>;
804d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <208>;
805d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
806d5b0e70fSEmmanuel Vadot                    };
807d5b0e70fSEmmanuel Vadot
808d5b0e70fSEmmanuel Vadot                    channel-1 {
809d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
810d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
811d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <3>;
812d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
813d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <208>;
814d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
815d5b0e70fSEmmanuel Vadot                    };
816d5b0e70fSEmmanuel Vadot
817d5b0e70fSEmmanuel Vadot                    channel-2 {
818d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
819d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
820d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <3>;
821d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
822d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <208>;
823d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
824d5b0e70fSEmmanuel Vadot                    };
825d5b0e70fSEmmanuel Vadot
826d5b0e70fSEmmanuel Vadot                    channel-3 {
827d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
828d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
829d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <3>;
830d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
831d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <208>;
832d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
833d5b0e70fSEmmanuel Vadot                    };
834d5b0e70fSEmmanuel Vadot
835d5b0e70fSEmmanuel Vadot                    channel-4 {
836d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
837d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
838d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <3>;
839d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
840d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <208>;
841d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
842d5b0e70fSEmmanuel Vadot                    };
843d5b0e70fSEmmanuel Vadot
844d5b0e70fSEmmanuel Vadot                    channel-5 {
845d5b0e70fSEmmanuel Vadot                            azoteq,ulp-allow;
846d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
847d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
848d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <6>;
849d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <800>;
850d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <144>;
851d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
852d5b0e70fSEmmanuel Vadot                    };
853d5b0e70fSEmmanuel Vadot
854d5b0e70fSEmmanuel Vadot                    channel-6 {
855d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
856d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
857d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <6>;
858d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
859d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <160>;
860d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
861d5b0e70fSEmmanuel Vadot
862d5b0e70fSEmmanuel Vadot                            event-touch {
863d5b0e70fSEmmanuel Vadot                                    linux,code = <KEY_MUTE>;
864d5b0e70fSEmmanuel Vadot                            };
865d5b0e70fSEmmanuel Vadot                    };
866d5b0e70fSEmmanuel Vadot
867d5b0e70fSEmmanuel Vadot                    channel-7 {
868d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
869d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
870d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <6>;
871d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
872d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <160>;
873d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
874d5b0e70fSEmmanuel Vadot
875d5b0e70fSEmmanuel Vadot                            event-touch {
876d5b0e70fSEmmanuel Vadot                                    linux,code = <KEY_VOLUMEDOWN>;
877d5b0e70fSEmmanuel Vadot                            };
878d5b0e70fSEmmanuel Vadot                    };
879d5b0e70fSEmmanuel Vadot
880d5b0e70fSEmmanuel Vadot                    channel-8 {
881d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
882d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
883d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <6>;
884d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
885d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <160>;
886d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
887d5b0e70fSEmmanuel Vadot
888d5b0e70fSEmmanuel Vadot                            event-touch {
889d5b0e70fSEmmanuel Vadot                                    linux,code = <KEY_VOLUMEUP>;
890d5b0e70fSEmmanuel Vadot                            };
891d5b0e70fSEmmanuel Vadot                    };
892d5b0e70fSEmmanuel Vadot
893d5b0e70fSEmmanuel Vadot                    channel-9 {
894d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
895d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
896d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <6>;
897d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
898d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <160>;
899d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
900d5b0e70fSEmmanuel Vadot
901d5b0e70fSEmmanuel Vadot                            event-touch {
902d5b0e70fSEmmanuel Vadot                                    linux,code = <KEY_POWER>;
903d5b0e70fSEmmanuel Vadot                            };
904d5b0e70fSEmmanuel Vadot                    };
905d5b0e70fSEmmanuel Vadot
906d5b0e70fSEmmanuel Vadot                    channel-10 {
907d5b0e70fSEmmanuel Vadot                            azoteq,ulp-allow;
908d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
909d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <112>;
910d5b0e70fSEmmanuel Vadot
911d5b0e70fSEmmanuel Vadot                            event-touch {
912d5b0e70fSEmmanuel Vadot                                    linux,code = <SW_LID>;
913d5b0e70fSEmmanuel Vadot                                    linux,input-type = <EV_SW>;
914d5b0e70fSEmmanuel Vadot                            };
915d5b0e70fSEmmanuel Vadot                    };
916d5b0e70fSEmmanuel Vadot
917d5b0e70fSEmmanuel Vadot                    channel-11 {
918d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
919d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <112>;
920d5b0e70fSEmmanuel Vadot                    };
921d5b0e70fSEmmanuel Vadot
922d5b0e70fSEmmanuel Vadot                    slider-0 {
923d5b0e70fSEmmanuel Vadot                            azoteq,channel-select = <1>, <2>, <3>, <4>;
924d5b0e70fSEmmanuel Vadot                            azoteq,slider-size = <4080>;
925d5b0e70fSEmmanuel Vadot                            azoteq,upper-cal = <50>;
926d5b0e70fSEmmanuel Vadot                            azoteq,lower-cal = <30>;
927d5b0e70fSEmmanuel Vadot                            azoteq,top-speed = <200>;
928d5b0e70fSEmmanuel Vadot                            azoteq,bottom-speed = <1>;
929d5b0e70fSEmmanuel Vadot                            azoteq,bottom-beta = <3>;
930d5b0e70fSEmmanuel Vadot
931d5b0e70fSEmmanuel Vadot                            event-tap {
932d5b0e70fSEmmanuel Vadot                                    linux,code = <KEY_PLAYPAUSE>;
933*8bab661aSEmmanuel Vadot                                    azoteq,gesture-max-ms = <400>;
934*8bab661aSEmmanuel Vadot                                    azoteq,gesture-min-ms = <32>;
935d5b0e70fSEmmanuel Vadot                            };
936d5b0e70fSEmmanuel Vadot
937d5b0e70fSEmmanuel Vadot                            event-flick-pos {
938d5b0e70fSEmmanuel Vadot                                    linux,code = <KEY_NEXTSONG>;
939*8bab661aSEmmanuel Vadot                                    azoteq,gesture-max-ms = <800>;
940*8bab661aSEmmanuel Vadot                                    azoteq,gesture-dist = <800>;
941d5b0e70fSEmmanuel Vadot                            };
942d5b0e70fSEmmanuel Vadot
943d5b0e70fSEmmanuel Vadot                            event-flick-neg {
944d5b0e70fSEmmanuel Vadot                                    linux,code = <KEY_PREVIOUSSONG>;
945d5b0e70fSEmmanuel Vadot                            };
946d5b0e70fSEmmanuel Vadot                    };
947d5b0e70fSEmmanuel Vadot            };
948d5b0e70fSEmmanuel Vadot    };
949d5b0e70fSEmmanuel Vadot
950d5b0e70fSEmmanuel Vadot...
951