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
420*b97ee269SEmmanuel 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
467*b97ee269SEmmanuel 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        required:
477d5b0e70fSEmmanuel Vadot          - linux,code
478d5b0e70fSEmmanuel Vadot
479d5b0e70fSEmmanuel Vadot        additionalProperties: false
480d5b0e70fSEmmanuel Vadot
481d5b0e70fSEmmanuel Vadot    dependencies:
482d5b0e70fSEmmanuel Vadot      azoteq,ref-weight: ["azoteq,ref-select"]
483d5b0e70fSEmmanuel Vadot      azoteq,use-prox: ["azoteq,ref-select"]
484d5b0e70fSEmmanuel Vadot
485d5b0e70fSEmmanuel Vadot    additionalProperties: false
486d5b0e70fSEmmanuel Vadot
487d5b0e70fSEmmanuel Vadot  "^slider-[0-1]$":
488d5b0e70fSEmmanuel Vadot    type: object
489d5b0e70fSEmmanuel Vadot    description: Represents a slider comprising three or four channels.
490d5b0e70fSEmmanuel Vadot
491d5b0e70fSEmmanuel Vadot    properties:
492d5b0e70fSEmmanuel Vadot      azoteq,channel-select:
493d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32-array
494d5b0e70fSEmmanuel Vadot        minItems: 3
495d5b0e70fSEmmanuel Vadot        maxItems: 4
496d5b0e70fSEmmanuel Vadot        items:
497d5b0e70fSEmmanuel Vadot          minimum: 0
498d5b0e70fSEmmanuel Vadot          maximum: 9
499d5b0e70fSEmmanuel Vadot        description:
500d5b0e70fSEmmanuel Vadot          Specifies the order of the channels that participate in the slider.
501d5b0e70fSEmmanuel Vadot
502d5b0e70fSEmmanuel Vadot      azoteq,slider-size:
503d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
504d5b0e70fSEmmanuel Vadot        minimum: 0
505d5b0e70fSEmmanuel Vadot        maximum: 65535
506d5b0e70fSEmmanuel Vadot        description:
507d5b0e70fSEmmanuel Vadot          Specifies the slider's one-dimensional resolution, equal to the
508d5b0e70fSEmmanuel Vadot          maximum coordinate plus one.
509d5b0e70fSEmmanuel Vadot
510d5b0e70fSEmmanuel Vadot      azoteq,lower-cal:
511d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
512d5b0e70fSEmmanuel Vadot        minimum: 0
513d5b0e70fSEmmanuel Vadot        maximum: 255
514d5b0e70fSEmmanuel Vadot        description: Specifies the slider's lower starting point.
515d5b0e70fSEmmanuel Vadot
516d5b0e70fSEmmanuel Vadot      azoteq,upper-cal:
517d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
518d5b0e70fSEmmanuel Vadot        minimum: 0
519d5b0e70fSEmmanuel Vadot        maximum: 255
520d5b0e70fSEmmanuel Vadot        description: Specifies the slider's upper starting point.
521d5b0e70fSEmmanuel Vadot
522d5b0e70fSEmmanuel Vadot      azoteq,top-speed:
523d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
524d5b0e70fSEmmanuel Vadot        minimum: 0
525d5b0e70fSEmmanuel Vadot        maximum: 65535
526d5b0e70fSEmmanuel Vadot        description:
527d5b0e70fSEmmanuel Vadot          Specifies the speed of movement after which coordinate filtering is
528d5b0e70fSEmmanuel Vadot          no longer applied.
529d5b0e70fSEmmanuel Vadot
530d5b0e70fSEmmanuel Vadot      azoteq,bottom-speed:
531d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
532d5b0e70fSEmmanuel Vadot        minimum: 0
533*b97ee269SEmmanuel Vadot        maximum: 255
534d5b0e70fSEmmanuel Vadot        description:
535d5b0e70fSEmmanuel Vadot          Specifies the speed of movement after which coordinate filtering is
536d5b0e70fSEmmanuel Vadot          linearly reduced.
537d5b0e70fSEmmanuel Vadot
538d5b0e70fSEmmanuel Vadot      azoteq,bottom-beta:
539d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
540d5b0e70fSEmmanuel Vadot        minimum: 0
541d5b0e70fSEmmanuel Vadot        maximum: 7
542d5b0e70fSEmmanuel Vadot        description:
543d5b0e70fSEmmanuel Vadot          Specifies the coordinate filter damping factor to be applied
544d5b0e70fSEmmanuel Vadot          while the speed of movement is below that which is specified
545d5b0e70fSEmmanuel Vadot          by azoteq,bottom-speed.
546d5b0e70fSEmmanuel Vadot
547d5b0e70fSEmmanuel Vadot      azoteq,static-beta:
548d5b0e70fSEmmanuel Vadot        type: boolean
549d5b0e70fSEmmanuel Vadot        description:
550d5b0e70fSEmmanuel Vadot          Applies the coordinate filter damping factor specified by
551d5b0e70fSEmmanuel Vadot          azoteq,bottom-beta regardless of the speed of movement.
552d5b0e70fSEmmanuel Vadot
553d5b0e70fSEmmanuel Vadot      azoteq,use-prox:
554d5b0e70fSEmmanuel Vadot        type: boolean
555d5b0e70fSEmmanuel Vadot        description:
556d5b0e70fSEmmanuel Vadot          Directs the slider to respond to the proximity states of the selected
557d5b0e70fSEmmanuel Vadot          channels instead of their corresponding touch states. Note the slider
558d5b0e70fSEmmanuel Vadot          cannot report granular coordinates during a state of proximity.
559d5b0e70fSEmmanuel Vadot
560d5b0e70fSEmmanuel Vadot      linux,axis:
561d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
562d5b0e70fSEmmanuel Vadot        description:
563d5b0e70fSEmmanuel Vadot          Specifies the absolute axis to which coordinates are mapped. Specify
564d5b0e70fSEmmanuel Vadot          ABS_WHEEL to operate the slider as a wheel (IQS7222C only).
565d5b0e70fSEmmanuel Vadot
566d5b0e70fSEmmanuel Vadot    patternProperties:
567d5b0e70fSEmmanuel Vadot      "^event-(press|tap|(swipe|flick)-(pos|neg))$":
568d5b0e70fSEmmanuel Vadot        type: object
569*b97ee269SEmmanuel Vadot        $ref: input.yaml#
570d5b0e70fSEmmanuel Vadot        description:
571d5b0e70fSEmmanuel Vadot          Represents a press or gesture (IQS7222A only) event reported by
572d5b0e70fSEmmanuel Vadot          the slider.
573d5b0e70fSEmmanuel Vadot
574d5b0e70fSEmmanuel Vadot        properties:
575*b97ee269SEmmanuel Vadot          linux,code: true
576d5b0e70fSEmmanuel Vadot
577d5b0e70fSEmmanuel Vadot          azoteq,gesture-max-ms:
578d5b0e70fSEmmanuel Vadot            multipleOf: 4
579d5b0e70fSEmmanuel Vadot            minimum: 0
580d5b0e70fSEmmanuel Vadot            maximum: 1020
581d5b0e70fSEmmanuel Vadot            description:
582d5b0e70fSEmmanuel Vadot              Specifies the length of time (in ms) within which a tap, swipe
583d5b0e70fSEmmanuel Vadot              or flick gesture must be completed in order to be acknowledged
584d5b0e70fSEmmanuel Vadot              by the device. The number specified for any one swipe or flick
585d5b0e70fSEmmanuel Vadot              gesture applies to all remaining swipe or flick gestures.
586d5b0e70fSEmmanuel Vadot
587d5b0e70fSEmmanuel Vadot          azoteq,gesture-min-ms:
588d5b0e70fSEmmanuel Vadot            multipleOf: 4
589d5b0e70fSEmmanuel Vadot            minimum: 0
590d5b0e70fSEmmanuel Vadot            maximum: 124
591d5b0e70fSEmmanuel Vadot            description:
592d5b0e70fSEmmanuel Vadot              Specifies the length of time (in ms) for which a tap gesture must
593d5b0e70fSEmmanuel Vadot              be held in order to be acknowledged by the device.
594d5b0e70fSEmmanuel Vadot
595d5b0e70fSEmmanuel Vadot          azoteq,gesture-dist:
596d5b0e70fSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
597d5b0e70fSEmmanuel Vadot            multipleOf: 16
598d5b0e70fSEmmanuel Vadot            minimum: 0
599d5b0e70fSEmmanuel Vadot            maximum: 4080
600d5b0e70fSEmmanuel Vadot            description:
601d5b0e70fSEmmanuel Vadot              Specifies the distance across which a swipe or flick gesture must
602d5b0e70fSEmmanuel Vadot              travel in order to be acknowledged by the device. The number spec-
603d5b0e70fSEmmanuel Vadot              ified for any one swipe or flick gesture applies to all remaining
604d5b0e70fSEmmanuel Vadot              swipe or flick gestures.
605d5b0e70fSEmmanuel Vadot
606d5b0e70fSEmmanuel Vadot          azoteq,gpio-select:
607d5b0e70fSEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32-array
608d5b0e70fSEmmanuel Vadot            minItems: 1
609*b97ee269SEmmanuel Vadot            maxItems: 3
610d5b0e70fSEmmanuel Vadot            items:
611d5b0e70fSEmmanuel Vadot              minimum: 0
612*b97ee269SEmmanuel Vadot              maximum: 2
613d5b0e70fSEmmanuel Vadot            description: |
614*b97ee269SEmmanuel Vadot              Specifies one or more GPIO mapped to the event as follows:
615d5b0e70fSEmmanuel Vadot              0: GPIO0
616*b97ee269SEmmanuel Vadot              1: GPIO3 (IQS7222C only)
617*b97ee269SEmmanuel Vadot              2: GPIO4 (IQS7222C only)
618d5b0e70fSEmmanuel Vadot
619d5b0e70fSEmmanuel Vadot              Note that although multiple events can be mapped to a single
620d5b0e70fSEmmanuel Vadot              GPIO, they must all be of the same type (proximity, touch or
621d5b0e70fSEmmanuel Vadot              slider gesture).
622d5b0e70fSEmmanuel Vadot
623d5b0e70fSEmmanuel Vadot        required:
624d5b0e70fSEmmanuel Vadot          - linux,code
625d5b0e70fSEmmanuel Vadot
626d5b0e70fSEmmanuel Vadot        additionalProperties: false
627d5b0e70fSEmmanuel Vadot
628d5b0e70fSEmmanuel Vadot    required:
629d5b0e70fSEmmanuel Vadot      - azoteq,channel-select
630d5b0e70fSEmmanuel Vadot
631d5b0e70fSEmmanuel Vadot    additionalProperties: false
632d5b0e70fSEmmanuel Vadot
633d5b0e70fSEmmanuel Vadot  "^gpio-[0-2]$":
634d5b0e70fSEmmanuel Vadot    type: object
635d5b0e70fSEmmanuel Vadot    description: |
636d5b0e70fSEmmanuel Vadot      Represents a GPIO mapped to one or more events as follows:
637d5b0e70fSEmmanuel Vadot      gpio-0: GPIO0
638d5b0e70fSEmmanuel Vadot      gpio-1: GPIO3 (IQS7222C only)
639d5b0e70fSEmmanuel Vadot      gpio-2: GPIO4 (IQS7222C only)
640d5b0e70fSEmmanuel Vadot
641d5b0e70fSEmmanuel Vadot    allOf:
642d5b0e70fSEmmanuel Vadot      - $ref: ../pinctrl/pincfg-node.yaml#
643d5b0e70fSEmmanuel Vadot
644d5b0e70fSEmmanuel Vadot    properties:
645d5b0e70fSEmmanuel Vadot      drive-open-drain: true
646d5b0e70fSEmmanuel Vadot
647d5b0e70fSEmmanuel Vadot    additionalProperties: false
648d5b0e70fSEmmanuel Vadot
649d5b0e70fSEmmanuel VadotallOf:
650d5b0e70fSEmmanuel Vadot  - if:
651d5b0e70fSEmmanuel Vadot      properties:
652d5b0e70fSEmmanuel Vadot        compatible:
653d5b0e70fSEmmanuel Vadot          contains:
654d5b0e70fSEmmanuel Vadot            const: azoteq,iqs7222b
655d5b0e70fSEmmanuel Vadot
656d5b0e70fSEmmanuel Vadot    then:
657d5b0e70fSEmmanuel Vadot      patternProperties:
658d5b0e70fSEmmanuel Vadot        "^cycle-[0-9]$":
659d5b0e70fSEmmanuel Vadot          properties:
660d5b0e70fSEmmanuel Vadot            azoteq,iref-enable: false
661d5b0e70fSEmmanuel Vadot
662d5b0e70fSEmmanuel Vadot        "^channel-([0-9]|1[0-9])$":
663d5b0e70fSEmmanuel Vadot          properties:
664d5b0e70fSEmmanuel Vadot            azoteq,ref-select: false
665d5b0e70fSEmmanuel Vadot
666d5b0e70fSEmmanuel Vadot          patternProperties:
667d5b0e70fSEmmanuel Vadot            "^event-(prox|touch)$":
668d5b0e70fSEmmanuel Vadot              properties:
669d5b0e70fSEmmanuel Vadot                azoteq,gpio-select: false
670d5b0e70fSEmmanuel Vadot
671d5b0e70fSEmmanuel Vadot        "^slider-[0-1]$": false
672d5b0e70fSEmmanuel Vadot
673d5b0e70fSEmmanuel Vadot        "^gpio-[0-2]$": false
674d5b0e70fSEmmanuel Vadot
675d5b0e70fSEmmanuel Vadot  - if:
676d5b0e70fSEmmanuel Vadot      properties:
677d5b0e70fSEmmanuel Vadot        compatible:
678d5b0e70fSEmmanuel Vadot          contains:
679d5b0e70fSEmmanuel Vadot            const: azoteq,iqs7222a
680d5b0e70fSEmmanuel Vadot
681d5b0e70fSEmmanuel Vadot    then:
682d5b0e70fSEmmanuel Vadot      patternProperties:
683d5b0e70fSEmmanuel Vadot        "^channel-([0-9]|1[0-9])$":
684d5b0e70fSEmmanuel Vadot          patternProperties:
685d5b0e70fSEmmanuel Vadot            "^event-(prox|touch)$":
686d5b0e70fSEmmanuel Vadot              properties:
687d5b0e70fSEmmanuel Vadot                azoteq,gpio-select:
688d5b0e70fSEmmanuel Vadot                  maxItems: 1
689d5b0e70fSEmmanuel Vadot                  items:
690d5b0e70fSEmmanuel Vadot                    maximum: 0
691d5b0e70fSEmmanuel Vadot
692d5b0e70fSEmmanuel Vadot        "^slider-[0-1]$":
693d5b0e70fSEmmanuel Vadot          properties:
694d5b0e70fSEmmanuel Vadot            azoteq,slider-size:
695d5b0e70fSEmmanuel Vadot              multipleOf: 16
696d5b0e70fSEmmanuel Vadot              maximum: 4080
697d5b0e70fSEmmanuel Vadot
698d5b0e70fSEmmanuel Vadot            azoteq,top-speed:
699d5b0e70fSEmmanuel Vadot              multipleOf: 4
700d5b0e70fSEmmanuel Vadot              maximum: 1020
701d5b0e70fSEmmanuel Vadot
702*b97ee269SEmmanuel Vadot          patternProperties:
703*b97ee269SEmmanuel Vadot            "^event-(press|tap|(swipe|flick)-(pos|neg))$":
704*b97ee269SEmmanuel Vadot              properties:
705*b97ee269SEmmanuel Vadot                azoteq,gpio-select:
706*b97ee269SEmmanuel Vadot                  maxItems: 1
707*b97ee269SEmmanuel Vadot                  items:
708*b97ee269SEmmanuel Vadot                    maximum: 0
709*b97ee269SEmmanuel Vadot
710d5b0e70fSEmmanuel Vadot    else:
711d5b0e70fSEmmanuel Vadot      patternProperties:
712d5b0e70fSEmmanuel Vadot        "^channel-([0-9]|1[0-9])$":
713d5b0e70fSEmmanuel Vadot          properties:
714d5b0e70fSEmmanuel Vadot            azoteq,ulp-allow: false
715d5b0e70fSEmmanuel Vadot
716d5b0e70fSEmmanuel Vadot        "^slider-[0-1]$":
717d5b0e70fSEmmanuel Vadot          patternProperties:
718d5b0e70fSEmmanuel Vadot            "^event-(press|tap|(swipe|flick)-(pos|neg))$":
719d5b0e70fSEmmanuel Vadot              properties:
720d5b0e70fSEmmanuel Vadot                azoteq,gesture-max-ms: false
721d5b0e70fSEmmanuel Vadot
722d5b0e70fSEmmanuel Vadot                azoteq,gesture-min-ms: false
723d5b0e70fSEmmanuel Vadot
724d5b0e70fSEmmanuel Vadot                azoteq,gesture-dist: false
725d5b0e70fSEmmanuel Vadot
726d5b0e70fSEmmanuel Vadotrequired:
727d5b0e70fSEmmanuel Vadot  - compatible
728d5b0e70fSEmmanuel Vadot  - reg
729d5b0e70fSEmmanuel Vadot  - irq-gpios
730d5b0e70fSEmmanuel Vadot
731d5b0e70fSEmmanuel VadotadditionalProperties: false
732d5b0e70fSEmmanuel Vadot
733d5b0e70fSEmmanuel Vadotexamples:
734d5b0e70fSEmmanuel Vadot  - |
735d5b0e70fSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
736d5b0e70fSEmmanuel Vadot    #include <dt-bindings/input/input.h>
737d5b0e70fSEmmanuel Vadot
738d5b0e70fSEmmanuel Vadot    i2c {
739d5b0e70fSEmmanuel Vadot            #address-cells = <1>;
740d5b0e70fSEmmanuel Vadot            #size-cells = <0>;
741d5b0e70fSEmmanuel Vadot
742d5b0e70fSEmmanuel Vadot            iqs7222a@44 {
743d5b0e70fSEmmanuel Vadot                    compatible = "azoteq,iqs7222a";
744d5b0e70fSEmmanuel Vadot                    reg = <0x44>;
745d5b0e70fSEmmanuel Vadot                    irq-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
746d5b0e70fSEmmanuel Vadot                    azoteq,lta-beta-lp = <7>;
747d5b0e70fSEmmanuel Vadot                    azoteq,lta-beta-np = <8>;
748d5b0e70fSEmmanuel Vadot                    azoteq,counts-beta-lp = <2>;
749d5b0e70fSEmmanuel Vadot                    azoteq,counts-beta-np = <3>;
750d5b0e70fSEmmanuel Vadot                    azoteq,lta-fast-beta-lp = <3>;
751d5b0e70fSEmmanuel Vadot                    azoteq,lta-fast-beta-np = <4>;
752d5b0e70fSEmmanuel Vadot
753d5b0e70fSEmmanuel Vadot                    cycle-0 {
754d5b0e70fSEmmanuel Vadot                            azoteq,conv-period = <5>;
755d5b0e70fSEmmanuel Vadot                            azoteq,conv-frac = <127>;
756d5b0e70fSEmmanuel Vadot                            azoteq,tx-enable = <1>, <2>, <4>, <5>;
757d5b0e70fSEmmanuel Vadot                            azoteq,dead-time-enable;
758d5b0e70fSEmmanuel Vadot                            azoteq,sense-mode = <2>;
759d5b0e70fSEmmanuel Vadot                    };
760d5b0e70fSEmmanuel Vadot
761d5b0e70fSEmmanuel Vadot                    cycle-1 {
762d5b0e70fSEmmanuel Vadot                            azoteq,conv-period = <5>;
763d5b0e70fSEmmanuel Vadot                            azoteq,conv-frac = <127>;
764d5b0e70fSEmmanuel Vadot                            azoteq,tx-enable = <5>;
765d5b0e70fSEmmanuel Vadot                            azoteq,dead-time-enable;
766d5b0e70fSEmmanuel Vadot                            azoteq,sense-mode = <2>;
767d5b0e70fSEmmanuel Vadot                    };
768d5b0e70fSEmmanuel Vadot
769d5b0e70fSEmmanuel Vadot                    cycle-2 {
770d5b0e70fSEmmanuel Vadot                            azoteq,conv-period = <5>;
771d5b0e70fSEmmanuel Vadot                            azoteq,conv-frac = <127>;
772d5b0e70fSEmmanuel Vadot                            azoteq,tx-enable = <4>;
773d5b0e70fSEmmanuel Vadot                            azoteq,dead-time-enable;
774d5b0e70fSEmmanuel Vadot                            azoteq,sense-mode = <2>;
775d5b0e70fSEmmanuel Vadot                    };
776d5b0e70fSEmmanuel Vadot
777d5b0e70fSEmmanuel Vadot                    cycle-3 {
778d5b0e70fSEmmanuel Vadot                            azoteq,conv-period = <5>;
779d5b0e70fSEmmanuel Vadot                            azoteq,conv-frac = <127>;
780d5b0e70fSEmmanuel Vadot                            azoteq,tx-enable = <2>;
781d5b0e70fSEmmanuel Vadot                            azoteq,dead-time-enable;
782d5b0e70fSEmmanuel Vadot                            azoteq,sense-mode = <2>;
783d5b0e70fSEmmanuel Vadot                    };
784d5b0e70fSEmmanuel Vadot
785d5b0e70fSEmmanuel Vadot                    cycle-4 {
786d5b0e70fSEmmanuel Vadot                            azoteq,conv-period = <5>;
787d5b0e70fSEmmanuel Vadot                            azoteq,conv-frac = <127>;
788d5b0e70fSEmmanuel Vadot                            azoteq,tx-enable = <1>;
789d5b0e70fSEmmanuel Vadot                            azoteq,dead-time-enable;
790d5b0e70fSEmmanuel Vadot                            azoteq,sense-mode = <2>;
791d5b0e70fSEmmanuel Vadot                    };
792d5b0e70fSEmmanuel Vadot
793d5b0e70fSEmmanuel Vadot                    cycle-5 {
794d5b0e70fSEmmanuel Vadot                            azoteq,conv-period = <2>;
795d5b0e70fSEmmanuel Vadot                            azoteq,conv-frac = <0>;
796d5b0e70fSEmmanuel Vadot                    };
797d5b0e70fSEmmanuel Vadot
798d5b0e70fSEmmanuel Vadot                    cycle-6 {
799d5b0e70fSEmmanuel Vadot                            azoteq,conv-period = <2>;
800d5b0e70fSEmmanuel Vadot                            azoteq,conv-frac = <0>;
801d5b0e70fSEmmanuel Vadot                    };
802d5b0e70fSEmmanuel Vadot
803d5b0e70fSEmmanuel Vadot                    channel-0 {
804d5b0e70fSEmmanuel Vadot                            azoteq,ulp-allow;
805d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
806d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
807d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <3>;
808d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <800>;
809d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <208>;
810d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
811d5b0e70fSEmmanuel Vadot                    };
812d5b0e70fSEmmanuel Vadot
813d5b0e70fSEmmanuel Vadot                    channel-1 {
814d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
815d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
816d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <3>;
817d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
818d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <208>;
819d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
820d5b0e70fSEmmanuel Vadot                    };
821d5b0e70fSEmmanuel Vadot
822d5b0e70fSEmmanuel Vadot                    channel-2 {
823d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
824d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
825d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <3>;
826d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
827d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <208>;
828d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
829d5b0e70fSEmmanuel Vadot                    };
830d5b0e70fSEmmanuel Vadot
831d5b0e70fSEmmanuel Vadot                    channel-3 {
832d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
833d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
834d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <3>;
835d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
836d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <208>;
837d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
838d5b0e70fSEmmanuel Vadot                    };
839d5b0e70fSEmmanuel Vadot
840d5b0e70fSEmmanuel Vadot                    channel-4 {
841d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
842d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
843d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <3>;
844d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
845d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <208>;
846d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
847d5b0e70fSEmmanuel Vadot                    };
848d5b0e70fSEmmanuel Vadot
849d5b0e70fSEmmanuel Vadot                    channel-5 {
850d5b0e70fSEmmanuel Vadot                            azoteq,ulp-allow;
851d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
852d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
853d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <6>;
854d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <800>;
855d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <144>;
856d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
857d5b0e70fSEmmanuel Vadot                    };
858d5b0e70fSEmmanuel Vadot
859d5b0e70fSEmmanuel Vadot                    channel-6 {
860d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
861d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
862d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <6>;
863d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
864d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <160>;
865d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
866d5b0e70fSEmmanuel Vadot
867d5b0e70fSEmmanuel Vadot                            event-touch {
868d5b0e70fSEmmanuel Vadot                                    linux,code = <KEY_MUTE>;
869d5b0e70fSEmmanuel Vadot                            };
870d5b0e70fSEmmanuel Vadot                    };
871d5b0e70fSEmmanuel Vadot
872d5b0e70fSEmmanuel Vadot                    channel-7 {
873d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
874d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
875d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <6>;
876d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
877d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <160>;
878d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
879d5b0e70fSEmmanuel Vadot
880d5b0e70fSEmmanuel Vadot                            event-touch {
881d5b0e70fSEmmanuel Vadot                                    linux,code = <KEY_VOLUMEDOWN>;
882d5b0e70fSEmmanuel Vadot                            };
883d5b0e70fSEmmanuel Vadot                    };
884d5b0e70fSEmmanuel Vadot
885d5b0e70fSEmmanuel Vadot                    channel-8 {
886d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
887d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
888d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <6>;
889d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
890d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <160>;
891d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
892d5b0e70fSEmmanuel Vadot
893d5b0e70fSEmmanuel Vadot                            event-touch {
894d5b0e70fSEmmanuel Vadot                                    linux,code = <KEY_VOLUMEUP>;
895d5b0e70fSEmmanuel Vadot                            };
896d5b0e70fSEmmanuel Vadot                    };
897d5b0e70fSEmmanuel Vadot
898d5b0e70fSEmmanuel Vadot                    channel-9 {
899d5b0e70fSEmmanuel Vadot                            azoteq,global-halt;
900d5b0e70fSEmmanuel Vadot                            azoteq,invert-enable;
901d5b0e70fSEmmanuel Vadot                            azoteq,rx-enable = <6>;
902d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
903d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <160>;
904d5b0e70fSEmmanuel Vadot                            azoteq,ati-mode = <5>;
905d5b0e70fSEmmanuel Vadot
906d5b0e70fSEmmanuel Vadot                            event-touch {
907d5b0e70fSEmmanuel Vadot                                    linux,code = <KEY_POWER>;
908d5b0e70fSEmmanuel Vadot                            };
909d5b0e70fSEmmanuel Vadot                    };
910d5b0e70fSEmmanuel Vadot
911d5b0e70fSEmmanuel Vadot                    channel-10 {
912d5b0e70fSEmmanuel Vadot                            azoteq,ulp-allow;
913d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
914d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <112>;
915d5b0e70fSEmmanuel Vadot
916d5b0e70fSEmmanuel Vadot                            event-touch {
917d5b0e70fSEmmanuel Vadot                                    linux,code = <SW_LID>;
918d5b0e70fSEmmanuel Vadot                                    linux,input-type = <EV_SW>;
919d5b0e70fSEmmanuel Vadot                            };
920d5b0e70fSEmmanuel Vadot                    };
921d5b0e70fSEmmanuel Vadot
922d5b0e70fSEmmanuel Vadot                    channel-11 {
923d5b0e70fSEmmanuel Vadot                            azoteq,ati-target = <496>;
924d5b0e70fSEmmanuel Vadot                            azoteq,ati-base = <112>;
925d5b0e70fSEmmanuel Vadot                    };
926d5b0e70fSEmmanuel Vadot
927d5b0e70fSEmmanuel Vadot                    slider-0 {
928d5b0e70fSEmmanuel Vadot                            azoteq,channel-select = <1>, <2>, <3>, <4>;
929d5b0e70fSEmmanuel Vadot                            azoteq,slider-size = <4080>;
930d5b0e70fSEmmanuel Vadot                            azoteq,upper-cal = <50>;
931d5b0e70fSEmmanuel Vadot                            azoteq,lower-cal = <30>;
932d5b0e70fSEmmanuel Vadot                            azoteq,top-speed = <200>;
933d5b0e70fSEmmanuel Vadot                            azoteq,bottom-speed = <1>;
934d5b0e70fSEmmanuel Vadot                            azoteq,bottom-beta = <3>;
935d5b0e70fSEmmanuel Vadot
936d5b0e70fSEmmanuel Vadot                            event-tap {
937d5b0e70fSEmmanuel Vadot                                    linux,code = <KEY_PLAYPAUSE>;
938d5b0e70fSEmmanuel Vadot                                    azoteq,gesture-max-ms = <600>;
939d5b0e70fSEmmanuel Vadot                                    azoteq,gesture-min-ms = <24>;
940d5b0e70fSEmmanuel Vadot                            };
941d5b0e70fSEmmanuel Vadot
942d5b0e70fSEmmanuel Vadot                            event-flick-pos {
943d5b0e70fSEmmanuel Vadot                                    linux,code = <KEY_NEXTSONG>;
944d5b0e70fSEmmanuel Vadot                                    azoteq,gesture-max-ms = <600>;
945d5b0e70fSEmmanuel Vadot                                    azoteq,gesture-dist = <816>;
946d5b0e70fSEmmanuel Vadot                            };
947d5b0e70fSEmmanuel Vadot
948d5b0e70fSEmmanuel Vadot                            event-flick-neg {
949d5b0e70fSEmmanuel Vadot                                    linux,code = <KEY_PREVIOUSSONG>;
950d5b0e70fSEmmanuel Vadot                            };
951d5b0e70fSEmmanuel Vadot                    };
952d5b0e70fSEmmanuel Vadot            };
953d5b0e70fSEmmanuel Vadot    };
954d5b0e70fSEmmanuel Vadot
955d5b0e70fSEmmanuel Vadot...
956