xref: /openbmc/linux/Documentation/devicetree/bindings/input/iqs269a.yaml (revision 430ee40d007d5eace32a2e70aab8c54a70f0b3ec)
1*430ee40dSJeff LaBundy# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*430ee40dSJeff LaBundy%YAML 1.2
3*430ee40dSJeff LaBundy---
4*430ee40dSJeff LaBundy$id: http://devicetree.org/schemas/input/iqs269a.yaml#
5*430ee40dSJeff LaBundy$schema: http://devicetree.org/meta-schemas/core.yaml#
6*430ee40dSJeff LaBundy
7*430ee40dSJeff LaBundytitle: Azoteq IQS269A Capacitive Touch Controller
8*430ee40dSJeff LaBundy
9*430ee40dSJeff LaBundymaintainers:
10*430ee40dSJeff LaBundy  - Jeff LaBundy <jeff@labundy.com>
11*430ee40dSJeff LaBundy
12*430ee40dSJeff LaBundydescription: |
13*430ee40dSJeff LaBundy  The Azoteq IQS269A is an 8-channel capacitive touch controller that features
14*430ee40dSJeff LaBundy  additional Hall-effect and inductive sensing capabilities.
15*430ee40dSJeff LaBundy
16*430ee40dSJeff LaBundy  Link to datasheet: https://www.azoteq.com/
17*430ee40dSJeff LaBundy
18*430ee40dSJeff LaBundyproperties:
19*430ee40dSJeff LaBundy  compatible:
20*430ee40dSJeff LaBundy    const: azoteq,iqs269a
21*430ee40dSJeff LaBundy
22*430ee40dSJeff LaBundy  reg:
23*430ee40dSJeff LaBundy    maxItems: 1
24*430ee40dSJeff LaBundy
25*430ee40dSJeff LaBundy  interrupts:
26*430ee40dSJeff LaBundy    maxItems: 1
27*430ee40dSJeff LaBundy
28*430ee40dSJeff LaBundy  "#address-cells":
29*430ee40dSJeff LaBundy    const: 1
30*430ee40dSJeff LaBundy
31*430ee40dSJeff LaBundy  "#size-cells":
32*430ee40dSJeff LaBundy    const: 0
33*430ee40dSJeff LaBundy
34*430ee40dSJeff LaBundy  azoteq,hall-enable:
35*430ee40dSJeff LaBundy    type: boolean
36*430ee40dSJeff LaBundy    description:
37*430ee40dSJeff LaBundy      Enables Hall-effect sensing on channels 6 and 7. In this case, keycodes
38*430ee40dSJeff LaBundy      assigned to channel 6 are ignored and keycodes assigned to channel 7 are
39*430ee40dSJeff LaBundy      interpreted as switch codes. Refer to the datasheet for requirements im-
40*430ee40dSJeff LaBundy      posed on channels 6 and 7 by Hall-effect sensing.
41*430ee40dSJeff LaBundy
42*430ee40dSJeff LaBundy  azoteq,suspend-mode:
43*430ee40dSJeff LaBundy    allOf:
44*430ee40dSJeff LaBundy      - $ref: /schemas/types.yaml#/definitions/uint32
45*430ee40dSJeff LaBundy      - enum: [0, 1, 2, 3]
46*430ee40dSJeff LaBundy        default: 0
47*430ee40dSJeff LaBundy    description: |
48*430ee40dSJeff LaBundy      Specifies the power mode during suspend as follows:
49*430ee40dSJeff LaBundy      0: Automatic (same as normal runtime, i.e. suspend/resume disabled)
50*430ee40dSJeff LaBundy      1: Low power (all sensing at a reduced reporting rate)
51*430ee40dSJeff LaBundy      2: Ultra-low power (channel 0 proximity sensing)
52*430ee40dSJeff LaBundy      3: Halt (no sensing)
53*430ee40dSJeff LaBundy
54*430ee40dSJeff LaBundy  azoteq,clk-div:
55*430ee40dSJeff LaBundy    type: boolean
56*430ee40dSJeff LaBundy    description: Divides the device's core clock by a factor of 4.
57*430ee40dSJeff LaBundy
58*430ee40dSJeff LaBundy  azoteq,ulp-update:
59*430ee40dSJeff LaBundy    allOf:
60*430ee40dSJeff LaBundy      - $ref: /schemas/types.yaml#/definitions/uint32
61*430ee40dSJeff LaBundy      - minimum: 0
62*430ee40dSJeff LaBundy        maximum: 7
63*430ee40dSJeff LaBundy        default: 3
64*430ee40dSJeff LaBundy    description: Specifies the ultra-low-power mode update rate.
65*430ee40dSJeff LaBundy
66*430ee40dSJeff LaBundy  azoteq,reseed-offset:
67*430ee40dSJeff LaBundy    type: boolean
68*430ee40dSJeff LaBundy    description:
69*430ee40dSJeff LaBundy      Applies an 8-count offset to all long-term averages upon either ATI or
70*430ee40dSJeff LaBundy      reseed events.
71*430ee40dSJeff LaBundy
72*430ee40dSJeff LaBundy  azoteq,filt-str-lp-lta:
73*430ee40dSJeff LaBundy    allOf:
74*430ee40dSJeff LaBundy      - $ref: /schemas/types.yaml#/definitions/uint32
75*430ee40dSJeff LaBundy      - enum: [0, 1, 2, 3]
76*430ee40dSJeff LaBundy        default: 0
77*430ee40dSJeff LaBundy    description:
78*430ee40dSJeff LaBundy      Specifies the long-term average filter strength during low-power mode.
79*430ee40dSJeff LaBundy
80*430ee40dSJeff LaBundy  azoteq,filt-str-lp-cnt:
81*430ee40dSJeff LaBundy    allOf:
82*430ee40dSJeff LaBundy      - $ref: /schemas/types.yaml#/definitions/uint32
83*430ee40dSJeff LaBundy      - enum: [0, 1, 2, 3]
84*430ee40dSJeff LaBundy        default: 0
85*430ee40dSJeff LaBundy    description:
86*430ee40dSJeff LaBundy      Specifies the raw count filter strength during low-power mode.
87*430ee40dSJeff LaBundy
88*430ee40dSJeff LaBundy  azoteq,filt-str-np-lta:
89*430ee40dSJeff LaBundy    allOf:
90*430ee40dSJeff LaBundy      - $ref: /schemas/types.yaml#/definitions/uint32
91*430ee40dSJeff LaBundy      - enum: [0, 1, 2, 3]
92*430ee40dSJeff LaBundy        default: 0
93*430ee40dSJeff LaBundy    description:
94*430ee40dSJeff LaBundy      Specifies the long-term average filter strength during normal-power mode.
95*430ee40dSJeff LaBundy
96*430ee40dSJeff LaBundy  azoteq,filt-str-np-cnt:
97*430ee40dSJeff LaBundy    allOf:
98*430ee40dSJeff LaBundy      - $ref: /schemas/types.yaml#/definitions/uint32
99*430ee40dSJeff LaBundy      - enum: [0, 1, 2, 3]
100*430ee40dSJeff LaBundy        default: 0
101*430ee40dSJeff LaBundy    description:
102*430ee40dSJeff LaBundy      Specifies the raw count filter strength during normal-power mode.
103*430ee40dSJeff LaBundy
104*430ee40dSJeff LaBundy  azoteq,rate-np-ms:
105*430ee40dSJeff LaBundy    minimum: 0
106*430ee40dSJeff LaBundy    maximum: 255
107*430ee40dSJeff LaBundy    default: 16
108*430ee40dSJeff LaBundy    description: Specifies the report rate (in ms) during normal-power mode.
109*430ee40dSJeff LaBundy
110*430ee40dSJeff LaBundy  azoteq,rate-lp-ms:
111*430ee40dSJeff LaBundy    minimum: 0
112*430ee40dSJeff LaBundy    maximum: 255
113*430ee40dSJeff LaBundy    default: 160
114*430ee40dSJeff LaBundy    description: Specifies the report rate (in ms) during low-power mode.
115*430ee40dSJeff LaBundy
116*430ee40dSJeff LaBundy  azoteq,rate-ulp-ms:
117*430ee40dSJeff LaBundy    multipleOf: 16
118*430ee40dSJeff LaBundy    minimum: 0
119*430ee40dSJeff LaBundy    maximum: 4080
120*430ee40dSJeff LaBundy    default: 160
121*430ee40dSJeff LaBundy    description: Specifies the report rate (in ms) during ultra-low-power mode.
122*430ee40dSJeff LaBundy
123*430ee40dSJeff LaBundy  azoteq,timeout-pwr-ms:
124*430ee40dSJeff LaBundy    multipleOf: 512
125*430ee40dSJeff LaBundy    minimum: 0
126*430ee40dSJeff LaBundy    maximum: 130560
127*430ee40dSJeff LaBundy    default: 2560
128*430ee40dSJeff LaBundy    description:
129*430ee40dSJeff LaBundy      Specifies the length of time (in ms) to wait for an event during normal-
130*430ee40dSJeff LaBundy      power mode before transitioning to low-power mode.
131*430ee40dSJeff LaBundy
132*430ee40dSJeff LaBundy  azoteq,timeout-lta-ms:
133*430ee40dSJeff LaBundy    multipleOf: 512
134*430ee40dSJeff LaBundy    minimum: 0
135*430ee40dSJeff LaBundy    maximum: 130560
136*430ee40dSJeff LaBundy    default: 32768
137*430ee40dSJeff LaBundy    description:
138*430ee40dSJeff LaBundy      Specifies the length of time (in ms) to wait before resetting the long-
139*430ee40dSJeff LaBundy      term average of all channels. Specify the maximum timeout to disable it
140*430ee40dSJeff LaBundy      altogether.
141*430ee40dSJeff LaBundy
142*430ee40dSJeff LaBundy  azoteq,ati-band-disable:
143*430ee40dSJeff LaBundy    type: boolean
144*430ee40dSJeff LaBundy    description: Disables the ATI band check.
145*430ee40dSJeff LaBundy
146*430ee40dSJeff LaBundy  azoteq,ati-lp-only:
147*430ee40dSJeff LaBundy    type: boolean
148*430ee40dSJeff LaBundy    description: Limits automatic ATI to low-power mode.
149*430ee40dSJeff LaBundy
150*430ee40dSJeff LaBundy  azoteq,ati-band-tighten:
151*430ee40dSJeff LaBundy    type: boolean
152*430ee40dSJeff LaBundy    description: Tightens the ATI band from 1/8 to 1/16 of the desired target.
153*430ee40dSJeff LaBundy
154*430ee40dSJeff LaBundy  azoteq,filt-disable:
155*430ee40dSJeff LaBundy    type: boolean
156*430ee40dSJeff LaBundy    description: Disables all raw count filtering.
157*430ee40dSJeff LaBundy
158*430ee40dSJeff LaBundy  azoteq,gpio3-select:
159*430ee40dSJeff LaBundy    allOf:
160*430ee40dSJeff LaBundy      - $ref: /schemas/types.yaml#/definitions/uint32
161*430ee40dSJeff LaBundy      - minimum: 0
162*430ee40dSJeff LaBundy        maximum: 7
163*430ee40dSJeff LaBundy        default: 0
164*430ee40dSJeff LaBundy    description:
165*430ee40dSJeff LaBundy      Selects the channel for which the GPIO3 pin represents touch state.
166*430ee40dSJeff LaBundy
167*430ee40dSJeff LaBundy  azoteq,dual-direction:
168*430ee40dSJeff LaBundy    type: boolean
169*430ee40dSJeff LaBundy    description:
170*430ee40dSJeff LaBundy      Specifies that long-term averages are to freeze in the presence of either
171*430ee40dSJeff LaBundy      increasing or decreasing counts, thereby permitting events to be reported
172*430ee40dSJeff LaBundy      in either direction.
173*430ee40dSJeff LaBundy
174*430ee40dSJeff LaBundy  azoteq,tx-freq:
175*430ee40dSJeff LaBundy    allOf:
176*430ee40dSJeff LaBundy      - $ref: /schemas/types.yaml#/definitions/uint32
177*430ee40dSJeff LaBundy      - enum: [0, 1, 2, 3]
178*430ee40dSJeff LaBundy        default: 0
179*430ee40dSJeff LaBundy    description: |
180*430ee40dSJeff LaBundy      Specifies the inductive sensing excitation frequency as follows (paren-
181*430ee40dSJeff LaBundy      thesized numbers represent the frequency if 'azoteq,clk-div' is present):
182*430ee40dSJeff LaBundy      0: 16 MHz (4 MHz)
183*430ee40dSJeff LaBundy      1: 8 MHz (2 MHz)
184*430ee40dSJeff LaBundy      2: 4 MHz (1 MHz)
185*430ee40dSJeff LaBundy      3: 2 MHz (500 kHz)
186*430ee40dSJeff LaBundy
187*430ee40dSJeff LaBundy  azoteq,global-cap-increase:
188*430ee40dSJeff LaBundy    type: boolean
189*430ee40dSJeff LaBundy    description: Increases the global capacitance adder from 0.5 pF to 1.5 pF.
190*430ee40dSJeff LaBundy
191*430ee40dSJeff LaBundy  azoteq,reseed-select:
192*430ee40dSJeff LaBundy    allOf:
193*430ee40dSJeff LaBundy      - $ref: /schemas/types.yaml#/definitions/uint32
194*430ee40dSJeff LaBundy      - enum: [0, 1, 2, 3]
195*430ee40dSJeff LaBundy        default: 0
196*430ee40dSJeff LaBundy    description: |
197*430ee40dSJeff LaBundy      Specifies the event(s) that prompt the device to reseed (i.e. reset the
198*430ee40dSJeff LaBundy      long-term average) of an associated channel as follows:
199*430ee40dSJeff LaBundy      0: None
200*430ee40dSJeff LaBundy      1: Proximity
201*430ee40dSJeff LaBundy      2: Proximity or touch
202*430ee40dSJeff LaBundy      3: Proximity, touch or deep touch
203*430ee40dSJeff LaBundy
204*430ee40dSJeff LaBundy  azoteq,tracking-enable:
205*430ee40dSJeff LaBundy    type: boolean
206*430ee40dSJeff LaBundy    description:
207*430ee40dSJeff LaBundy      Enables all associated channels to track their respective reference
208*430ee40dSJeff LaBundy      channels.
209*430ee40dSJeff LaBundy
210*430ee40dSJeff LaBundy  azoteq,filt-str-slider:
211*430ee40dSJeff LaBundy    allOf:
212*430ee40dSJeff LaBundy      - $ref: /schemas/types.yaml#/definitions/uint32
213*430ee40dSJeff LaBundy      - enum: [0, 1, 2, 3]
214*430ee40dSJeff LaBundy        default: 1
215*430ee40dSJeff LaBundy    description: Specifies the slider coordinate filter strength.
216*430ee40dSJeff LaBundy
217*430ee40dSJeff LaBundypatternProperties:
218*430ee40dSJeff LaBundy  "^channel@[0-7]$":
219*430ee40dSJeff LaBundy    type: object
220*430ee40dSJeff LaBundy    description:
221*430ee40dSJeff LaBundy      Represents a single sensing channel. A channel is active if defined and
222*430ee40dSJeff LaBundy      inactive otherwise.
223*430ee40dSJeff LaBundy
224*430ee40dSJeff LaBundy    properties:
225*430ee40dSJeff LaBundy      reg:
226*430ee40dSJeff LaBundy        minimum: 0
227*430ee40dSJeff LaBundy        maximum: 7
228*430ee40dSJeff LaBundy        description: Index of the channel.
229*430ee40dSJeff LaBundy
230*430ee40dSJeff LaBundy      azoteq,reseed-disable:
231*430ee40dSJeff LaBundy        type: boolean
232*430ee40dSJeff LaBundy        description:
233*430ee40dSJeff LaBundy          Prevents the channel from being reseeded if the long-term average
234*430ee40dSJeff LaBundy          timeout (defined in 'azoteq,timeout-lta') expires.
235*430ee40dSJeff LaBundy
236*430ee40dSJeff LaBundy      azoteq,blocking-enable:
237*430ee40dSJeff LaBundy        type: boolean
238*430ee40dSJeff LaBundy        description: Specifies that the channel is a blocking channel.
239*430ee40dSJeff LaBundy
240*430ee40dSJeff LaBundy      azoteq,slider0-select:
241*430ee40dSJeff LaBundy        type: boolean
242*430ee40dSJeff LaBundy        description: Specifies that the channel participates in slider 0.
243*430ee40dSJeff LaBundy
244*430ee40dSJeff LaBundy      azoteq,slider1-select:
245*430ee40dSJeff LaBundy        type: boolean
246*430ee40dSJeff LaBundy        description: Specifies that the channel participates in slider 1.
247*430ee40dSJeff LaBundy
248*430ee40dSJeff LaBundy      azoteq,rx-enable:
249*430ee40dSJeff LaBundy        allOf:
250*430ee40dSJeff LaBundy          - $ref: /schemas/types.yaml#/definitions/uint32-array
251*430ee40dSJeff LaBundy          - minItems: 1
252*430ee40dSJeff LaBundy            maxItems: 8
253*430ee40dSJeff LaBundy            items:
254*430ee40dSJeff LaBundy              minimum: 0
255*430ee40dSJeff LaBundy              maximum: 7
256*430ee40dSJeff LaBundy        description:
257*430ee40dSJeff LaBundy          Specifies the CRX pin(s) associated with the channel. By default, only
258*430ee40dSJeff LaBundy          the CRX pin corresponding to the channel's index is enabled (e.g. CRX0
259*430ee40dSJeff LaBundy          for channel 0).
260*430ee40dSJeff LaBundy
261*430ee40dSJeff LaBundy      azoteq,tx-enable:
262*430ee40dSJeff LaBundy        allOf:
263*430ee40dSJeff LaBundy          - $ref: /schemas/types.yaml#/definitions/uint32-array
264*430ee40dSJeff LaBundy          - minItems: 1
265*430ee40dSJeff LaBundy            maxItems: 8
266*430ee40dSJeff LaBundy            items:
267*430ee40dSJeff LaBundy              minimum: 0
268*430ee40dSJeff LaBundy              maximum: 7
269*430ee40dSJeff LaBundy            default: [0, 1, 2, 3, 4, 5, 6, 7]
270*430ee40dSJeff LaBundy        description: Specifies the TX pin(s) associated with the channel.
271*430ee40dSJeff LaBundy
272*430ee40dSJeff LaBundy      azoteq,meas-cap-decrease:
273*430ee40dSJeff LaBundy        type: boolean
274*430ee40dSJeff LaBundy        description:
275*430ee40dSJeff LaBundy          Decreases the internal measurement capacitance from 60 pF to 15 pF.
276*430ee40dSJeff LaBundy
277*430ee40dSJeff LaBundy      azoteq,rx-float-inactive:
278*430ee40dSJeff LaBundy        type: boolean
279*430ee40dSJeff LaBundy        description: Floats any inactive CRX pins instead of grounding them.
280*430ee40dSJeff LaBundy
281*430ee40dSJeff LaBundy      azoteq,local-cap-size:
282*430ee40dSJeff LaBundy        allOf:
283*430ee40dSJeff LaBundy          - $ref: /schemas/types.yaml#/definitions/uint32
284*430ee40dSJeff LaBundy          - enum: [0, 1, 2]
285*430ee40dSJeff LaBundy            default: 0
286*430ee40dSJeff LaBundy        description: |
287*430ee40dSJeff LaBundy          Specifies the capacitance to be added to the channel as follows:
288*430ee40dSJeff LaBundy          0: None
289*430ee40dSJeff LaBundy          1: Global adder (based on 'azoteq,global-cap-increase')
290*430ee40dSJeff LaBundy          2: Global adder + 0.5 pF
291*430ee40dSJeff LaBundy
292*430ee40dSJeff LaBundy      azoteq,invert-enable:
293*430ee40dSJeff LaBundy        type: boolean
294*430ee40dSJeff LaBundy        description:
295*430ee40dSJeff LaBundy          Inverts the polarity of the states reported for proximity, touch and
296*430ee40dSJeff LaBundy          deep-touch events relative to their respective thresholds.
297*430ee40dSJeff LaBundy
298*430ee40dSJeff LaBundy      azoteq,proj-bias:
299*430ee40dSJeff LaBundy        allOf:
300*430ee40dSJeff LaBundy          - $ref: /schemas/types.yaml#/definitions/uint32
301*430ee40dSJeff LaBundy          - enum: [0, 1, 2, 3]
302*430ee40dSJeff LaBundy            default: 2
303*430ee40dSJeff LaBundy        description: |
304*430ee40dSJeff LaBundy          Specifies the bias current applied during projected-capacitance
305*430ee40dSJeff LaBundy          sensing as follows:
306*430ee40dSJeff LaBundy          0: 2.5 uA
307*430ee40dSJeff LaBundy          1: 5 uA
308*430ee40dSJeff LaBundy          2: 10 uA
309*430ee40dSJeff LaBundy          3: 20 uA
310*430ee40dSJeff LaBundy
311*430ee40dSJeff LaBundy      azoteq,sense-mode:
312*430ee40dSJeff LaBundy        allOf:
313*430ee40dSJeff LaBundy          - $ref: /schemas/types.yaml#/definitions/uint32
314*430ee40dSJeff LaBundy          - enum: [0, 1, 9, 14, 15]
315*430ee40dSJeff LaBundy            default: 0
316*430ee40dSJeff LaBundy        description: |
317*430ee40dSJeff LaBundy          Specifies the channel's sensing mode as follows:
318*430ee40dSJeff LaBundy          0:  Self capacitance
319*430ee40dSJeff LaBundy          1:  Projected capacitance
320*430ee40dSJeff LaBundy          9:  Self or mutual inductance
321*430ee40dSJeff LaBundy          14: Hall effect
322*430ee40dSJeff LaBundy          15: Temperature
323*430ee40dSJeff LaBundy
324*430ee40dSJeff LaBundy      azoteq,sense-freq:
325*430ee40dSJeff LaBundy        allOf:
326*430ee40dSJeff LaBundy          - $ref: /schemas/types.yaml#/definitions/uint32
327*430ee40dSJeff LaBundy          - enum: [0, 1, 2, 3]
328*430ee40dSJeff LaBundy            default: 1
329*430ee40dSJeff LaBundy        description: |
330*430ee40dSJeff LaBundy          Specifies the channel's sensing frequency as follows (parenthesized
331*430ee40dSJeff LaBundy          numbers represent the frequency if 'azoteq,clk-div' is present):
332*430ee40dSJeff LaBundy          0: 4 MHz (1 MHz)
333*430ee40dSJeff LaBundy          1: 2 MHz (500 kHz)
334*430ee40dSJeff LaBundy          2: 1 MHz (250 kHz)
335*430ee40dSJeff LaBundy          3: 500 kHz (125 kHz)
336*430ee40dSJeff LaBundy
337*430ee40dSJeff LaBundy      azoteq,static-enable:
338*430ee40dSJeff LaBundy        type: boolean
339*430ee40dSJeff LaBundy        description: Enables the static front-end for the channel.
340*430ee40dSJeff LaBundy
341*430ee40dSJeff LaBundy      azoteq,ati-mode:
342*430ee40dSJeff LaBundy        allOf:
343*430ee40dSJeff LaBundy          - $ref: /schemas/types.yaml#/definitions/uint32
344*430ee40dSJeff LaBundy          - enum: [0, 1, 2, 3]
345*430ee40dSJeff LaBundy            default: 3
346*430ee40dSJeff LaBundy        description: |
347*430ee40dSJeff LaBundy          Specifies the channel's ATI mode as follows:
348*430ee40dSJeff LaBundy          0: Disabled
349*430ee40dSJeff LaBundy          1: Semi-partial
350*430ee40dSJeff LaBundy          2: Partial
351*430ee40dSJeff LaBundy          3: Full
352*430ee40dSJeff LaBundy
353*430ee40dSJeff LaBundy      azoteq,ati-base:
354*430ee40dSJeff LaBundy        allOf:
355*430ee40dSJeff LaBundy          - $ref: /schemas/types.yaml#/definitions/uint32
356*430ee40dSJeff LaBundy          - enum: [75, 100, 150, 200]
357*430ee40dSJeff LaBundy            default: 100
358*430ee40dSJeff LaBundy        description: Specifies the channel's ATI base.
359*430ee40dSJeff LaBundy
360*430ee40dSJeff LaBundy      azoteq,ati-target:
361*430ee40dSJeff LaBundy        allOf:
362*430ee40dSJeff LaBundy          - $ref: /schemas/types.yaml#/definitions/uint32
363*430ee40dSJeff LaBundy          - multipleOf: 32
364*430ee40dSJeff LaBundy            minimum: 0
365*430ee40dSJeff LaBundy            maximum: 2016
366*430ee40dSJeff LaBundy            default: 512
367*430ee40dSJeff LaBundy        description: Specifies the channel's ATI target.
368*430ee40dSJeff LaBundy
369*430ee40dSJeff LaBundy      azoteq,assoc-select:
370*430ee40dSJeff LaBundy        allOf:
371*430ee40dSJeff LaBundy          - $ref: /schemas/types.yaml#/definitions/uint32-array
372*430ee40dSJeff LaBundy          - minItems: 1
373*430ee40dSJeff LaBundy            maxItems: 8
374*430ee40dSJeff LaBundy            items:
375*430ee40dSJeff LaBundy              minimum: 0
376*430ee40dSJeff LaBundy              maximum: 7
377*430ee40dSJeff LaBundy        description:
378*430ee40dSJeff LaBundy          Specifies the associated channels for which the channel serves as a
379*430ee40dSJeff LaBundy          reference channel. By default, no channels are selected.
380*430ee40dSJeff LaBundy
381*430ee40dSJeff LaBundy      azoteq,assoc-weight:
382*430ee40dSJeff LaBundy        allOf:
383*430ee40dSJeff LaBundy          - $ref: /schemas/types.yaml#/definitions/uint32
384*430ee40dSJeff LaBundy          - minimum: 0
385*430ee40dSJeff LaBundy            maximum: 255
386*430ee40dSJeff LaBundy            default: 0
387*430ee40dSJeff LaBundy        description:
388*430ee40dSJeff LaBundy          Specifies the channel's impact weight if it acts as an associated
389*430ee40dSJeff LaBundy          channel (0 = 0% impact, 255 = 200% impact).
390*430ee40dSJeff LaBundy
391*430ee40dSJeff LaBundy    patternProperties:
392*430ee40dSJeff LaBundy      "^event-prox(-alt)?$":
393*430ee40dSJeff LaBundy        type: object
394*430ee40dSJeff LaBundy        description:
395*430ee40dSJeff LaBundy          Represents a proximity event reported by the channel in response to
396*430ee40dSJeff LaBundy          a decrease in counts. Node names suffixed with '-alt' instead corre-
397*430ee40dSJeff LaBundy          spond to an increase in counts.
398*430ee40dSJeff LaBundy
399*430ee40dSJeff LaBundy          By default, the long-term average tracks an increase in counts such
400*430ee40dSJeff LaBundy          that only events corresponding to a decrease in counts are reported
401*430ee40dSJeff LaBundy          (refer to the datasheet for more information).
402*430ee40dSJeff LaBundy
403*430ee40dSJeff LaBundy          Specify 'azoteq,dual-direction' to freeze the long-term average when
404*430ee40dSJeff LaBundy          the counts increase or decrease such that events of either direction
405*430ee40dSJeff LaBundy          can be reported. Alternatively, specify 'azoteq,invert-enable' to in-
406*430ee40dSJeff LaBundy          vert the polarity of the states reported by the channel.
407*430ee40dSJeff LaBundy
408*430ee40dSJeff LaBundy          Complementary events (e.g. event-touch and event-touch-alt) can both
409*430ee40dSJeff LaBundy          be present and specify different key or switch codes, but not differ-
410*430ee40dSJeff LaBundy          ent thresholds or hysteresis (if applicable).
411*430ee40dSJeff LaBundy
412*430ee40dSJeff LaBundy        properties:
413*430ee40dSJeff LaBundy          azoteq,thresh:
414*430ee40dSJeff LaBundy            allOf:
415*430ee40dSJeff LaBundy              - $ref: /schemas/types.yaml#/definitions/uint32
416*430ee40dSJeff LaBundy              - minimum: 0
417*430ee40dSJeff LaBundy                maximum: 255
418*430ee40dSJeff LaBundy                default: 10
419*430ee40dSJeff LaBundy            description: Specifies the threshold for the event.
420*430ee40dSJeff LaBundy
421*430ee40dSJeff LaBundy          linux,code:
422*430ee40dSJeff LaBundy            $ref: /schemas/types.yaml#/definitions/uint32
423*430ee40dSJeff LaBundy            description: Numeric key or switch code associated with the event.
424*430ee40dSJeff LaBundy
425*430ee40dSJeff LaBundy        additionalProperties: false
426*430ee40dSJeff LaBundy
427*430ee40dSJeff LaBundy      "^event-touch(-alt)?$":
428*430ee40dSJeff LaBundy        type: object
429*430ee40dSJeff LaBundy        description: Represents a touch event reported by the channel.
430*430ee40dSJeff LaBundy
431*430ee40dSJeff LaBundy        properties:
432*430ee40dSJeff LaBundy          azoteq,thresh:
433*430ee40dSJeff LaBundy            allOf:
434*430ee40dSJeff LaBundy              - $ref: /schemas/types.yaml#/definitions/uint32
435*430ee40dSJeff LaBundy              - minimum: 0
436*430ee40dSJeff LaBundy                maximum: 255
437*430ee40dSJeff LaBundy                default: 8
438*430ee40dSJeff LaBundy            description: Specifies the threshold for the event.
439*430ee40dSJeff LaBundy
440*430ee40dSJeff LaBundy          azoteq,hyst:
441*430ee40dSJeff LaBundy            allOf:
442*430ee40dSJeff LaBundy              - $ref: /schemas/types.yaml#/definitions/uint32
443*430ee40dSJeff LaBundy              - minimum: 0
444*430ee40dSJeff LaBundy                maximum: 15
445*430ee40dSJeff LaBundy                default: 4
446*430ee40dSJeff LaBundy            description: Specifies the hysteresis for the event.
447*430ee40dSJeff LaBundy
448*430ee40dSJeff LaBundy          linux,code:
449*430ee40dSJeff LaBundy            $ref: /schemas/types.yaml#/definitions/uint32
450*430ee40dSJeff LaBundy            description: Numeric key or switch code associated with the event.
451*430ee40dSJeff LaBundy
452*430ee40dSJeff LaBundy        additionalProperties: false
453*430ee40dSJeff LaBundy
454*430ee40dSJeff LaBundy      "^event-deep(-alt)?$":
455*430ee40dSJeff LaBundy        type: object
456*430ee40dSJeff LaBundy        description: Represents a deep-touch event reported by the channel.
457*430ee40dSJeff LaBundy
458*430ee40dSJeff LaBundy        properties:
459*430ee40dSJeff LaBundy          azoteq,thresh:
460*430ee40dSJeff LaBundy            allOf:
461*430ee40dSJeff LaBundy              - $ref: /schemas/types.yaml#/definitions/uint32
462*430ee40dSJeff LaBundy              - minimum: 0
463*430ee40dSJeff LaBundy                maximum: 255
464*430ee40dSJeff LaBundy                default: 26
465*430ee40dSJeff LaBundy            description: Specifies the threshold for the event.
466*430ee40dSJeff LaBundy
467*430ee40dSJeff LaBundy          azoteq,hyst:
468*430ee40dSJeff LaBundy            allOf:
469*430ee40dSJeff LaBundy              - $ref: /schemas/types.yaml#/definitions/uint32
470*430ee40dSJeff LaBundy              - minimum: 0
471*430ee40dSJeff LaBundy                maximum: 15
472*430ee40dSJeff LaBundy                default: 0
473*430ee40dSJeff LaBundy            description: Specifies the hysteresis for the event.
474*430ee40dSJeff LaBundy
475*430ee40dSJeff LaBundy          linux,code:
476*430ee40dSJeff LaBundy            $ref: /schemas/types.yaml#/definitions/uint32
477*430ee40dSJeff LaBundy            description: Numeric key or switch code associated with the event.
478*430ee40dSJeff LaBundy
479*430ee40dSJeff LaBundy        additionalProperties: false
480*430ee40dSJeff LaBundy
481*430ee40dSJeff LaBundy    required:
482*430ee40dSJeff LaBundy      - reg
483*430ee40dSJeff LaBundy
484*430ee40dSJeff LaBundy    additionalProperties: false
485*430ee40dSJeff LaBundy
486*430ee40dSJeff LaBundyrequired:
487*430ee40dSJeff LaBundy  - compatible
488*430ee40dSJeff LaBundy  - reg
489*430ee40dSJeff LaBundy  - interrupts
490*430ee40dSJeff LaBundy  - "#address-cells"
491*430ee40dSJeff LaBundy  - "#size-cells"
492*430ee40dSJeff LaBundy
493*430ee40dSJeff LaBundyadditionalProperties: false
494*430ee40dSJeff LaBundy
495*430ee40dSJeff LaBundyexamples:
496*430ee40dSJeff LaBundy  - |
497*430ee40dSJeff LaBundy    #include <dt-bindings/input/input.h>
498*430ee40dSJeff LaBundy    #include <dt-bindings/interrupt-controller/irq.h>
499*430ee40dSJeff LaBundy
500*430ee40dSJeff LaBundy    i2c {
501*430ee40dSJeff LaBundy            #address-cells = <1>;
502*430ee40dSJeff LaBundy            #size-cells = <0>;
503*430ee40dSJeff LaBundy
504*430ee40dSJeff LaBundy            iqs269a@44 {
505*430ee40dSJeff LaBundy                    #address-cells = <1>;
506*430ee40dSJeff LaBundy                    #size-cells = <0>;
507*430ee40dSJeff LaBundy
508*430ee40dSJeff LaBundy                    compatible = "azoteq,iqs269a";
509*430ee40dSJeff LaBundy                    reg = <0x44>;
510*430ee40dSJeff LaBundy                    interrupt-parent = <&gpio>;
511*430ee40dSJeff LaBundy                    interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
512*430ee40dSJeff LaBundy
513*430ee40dSJeff LaBundy                    azoteq,hall-enable;
514*430ee40dSJeff LaBundy                    azoteq,suspend-mode = <2>;
515*430ee40dSJeff LaBundy
516*430ee40dSJeff LaBundy                    channel@0 {
517*430ee40dSJeff LaBundy                            reg = <0x0>;
518*430ee40dSJeff LaBundy
519*430ee40dSJeff LaBundy                            event-prox {
520*430ee40dSJeff LaBundy                                    linux,code = <KEY_POWER>;
521*430ee40dSJeff LaBundy                            };
522*430ee40dSJeff LaBundy                    };
523*430ee40dSJeff LaBundy
524*430ee40dSJeff LaBundy                    channel@1 {
525*430ee40dSJeff LaBundy                            reg = <0x1>;
526*430ee40dSJeff LaBundy                            azoteq,slider0-select;
527*430ee40dSJeff LaBundy                    };
528*430ee40dSJeff LaBundy
529*430ee40dSJeff LaBundy                    channel@2 {
530*430ee40dSJeff LaBundy                            reg = <0x2>;
531*430ee40dSJeff LaBundy                            azoteq,slider0-select;
532*430ee40dSJeff LaBundy                    };
533*430ee40dSJeff LaBundy
534*430ee40dSJeff LaBundy                    channel@3 {
535*430ee40dSJeff LaBundy                            reg = <0x3>;
536*430ee40dSJeff LaBundy                            azoteq,slider0-select;
537*430ee40dSJeff LaBundy                    };
538*430ee40dSJeff LaBundy
539*430ee40dSJeff LaBundy                    channel@4 {
540*430ee40dSJeff LaBundy                            reg = <0x4>;
541*430ee40dSJeff LaBundy                            azoteq,slider0-select;
542*430ee40dSJeff LaBundy                    };
543*430ee40dSJeff LaBundy
544*430ee40dSJeff LaBundy                    channel@5 {
545*430ee40dSJeff LaBundy                            reg = <0x5>;
546*430ee40dSJeff LaBundy                            azoteq,slider0-select;
547*430ee40dSJeff LaBundy                    };
548*430ee40dSJeff LaBundy
549*430ee40dSJeff LaBundy                    channel@6 {
550*430ee40dSJeff LaBundy                            reg = <0x6>;
551*430ee40dSJeff LaBundy                            azoteq,invert-enable;
552*430ee40dSJeff LaBundy                            azoteq,static-enable;
553*430ee40dSJeff LaBundy                            azoteq,reseed-disable;
554*430ee40dSJeff LaBundy                            azoteq,rx-enable = <0>;
555*430ee40dSJeff LaBundy                            azoteq,sense-freq = <0x0>;
556*430ee40dSJeff LaBundy                            azoteq,sense-mode = <0xE>;
557*430ee40dSJeff LaBundy                            azoteq,ati-mode = <0x0>;
558*430ee40dSJeff LaBundy                            azoteq,ati-base = <200>;
559*430ee40dSJeff LaBundy                            azoteq,ati-target = <320>;
560*430ee40dSJeff LaBundy                    };
561*430ee40dSJeff LaBundy
562*430ee40dSJeff LaBundy                    channel@7 {
563*430ee40dSJeff LaBundy                            reg = <0x7>;
564*430ee40dSJeff LaBundy                            azoteq,invert-enable;
565*430ee40dSJeff LaBundy                            azoteq,static-enable;
566*430ee40dSJeff LaBundy                            azoteq,reseed-disable;
567*430ee40dSJeff LaBundy                            azoteq,rx-enable = <0>, <6>;
568*430ee40dSJeff LaBundy                            azoteq,sense-freq = <0x0>;
569*430ee40dSJeff LaBundy                            azoteq,sense-mode = <0xE>;
570*430ee40dSJeff LaBundy                            azoteq,ati-mode = <0x3>;
571*430ee40dSJeff LaBundy                            azoteq,ati-base = <200>;
572*430ee40dSJeff LaBundy                            azoteq,ati-target = <320>;
573*430ee40dSJeff LaBundy
574*430ee40dSJeff LaBundy                            event-touch {
575*430ee40dSJeff LaBundy                                    linux,code = <SW_LID>;
576*430ee40dSJeff LaBundy                            };
577*430ee40dSJeff LaBundy                    };
578*430ee40dSJeff LaBundy            };
579*430ee40dSJeff LaBundy    };
580*430ee40dSJeff LaBundy
581*430ee40dSJeff LaBundy...
582