GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / input / iqs62x-keys.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/input/iqs62x-keys.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Azoteq IQS620A/621/622/624/625 Keys and Switches
8
9 maintainers:
10   - Jeff LaBundy <jeff@labundy.com>
11
12 allOf:
13   - $ref: input.yaml#
14
15 description: |
16   The Azoteq IQS620A, IQS621, IQS622, IQS624 and IQS625 multi-function sensors
17   feature a variety of self-capacitive, mutual-inductive and Hall-effect sens-
18   ing capabilities that can facilitate a variety of contactless key and switch
19   applications.
20
21   These functions are collectively represented by a "keys" child node from the
22   parent MFD driver. See Documentation/devicetree/bindings/mfd/iqs62x.yaml for
23   further details and examples. Sensor hardware configuration (self-capacitive
24   vs. mutual-inductive, etc.) is selected based on the device's firmware.
25
26 properties:
27   compatible:
28     enum:
29       - azoteq,iqs620a-keys
30       - azoteq,iqs621-keys
31       - azoteq,iqs622-keys
32       - azoteq,iqs624-keys
33       - azoteq,iqs625-keys
34
35   linux,keycodes:
36     minItems: 1
37     maxItems: 16
38     description: |
39       Specifies the numeric keycodes associated with each available touch or
40       proximity event according to the following table. An 'x' indicates the
41       event is supported for a given device. Specify 0 for unused events.
42
43       -------------------------------------------------------------------------
44       | #  | Event              | IQS620A | IQS621 | IQS622 | IQS624 | IQS625 |
45       -------------------------------------------------------------------------
46       | 0  | CH0 Touch          |    x    |    x   |    x   |    x   |    x   |
47       |    | Antenna 1 Touch*   |    x    |        |        |        |        |
48       -------------------------------------------------------------------------
49       | 1  | CH0 Proximity      |    x    |    x   |    x   |    x   |    x   |
50       |    | Antenna 1 Prox.*   |    x    |        |        |        |        |
51       -------------------------------------------------------------------------
52       | 2  | CH1 Touch          |    x    |    x   |    x   |    x   |    x   |
53       |    | Ant. 1 Deep Touch* |    x    |        |        |        |        |
54       -------------------------------------------------------------------------
55       | 3  | CH1 Proximity      |    x    |    x   |    x   |    x   |    x   |
56       -------------------------------------------------------------------------
57       | 4  | CH2 Touch          |    x    |        |        |        |        |
58       -------------------------------------------------------------------------
59       | 5  | CH2 Proximity      |    x    |        |        |        |        |
60       |    | Antenna 2 Prox.*   |    x    |        |        |        |        |
61       -------------------------------------------------------------------------
62       | 6  | Metal (+) Touch**  |    x    |    x   |        |        |        |
63       |    | Ant. 2 Deep Touch* |    x    |        |        |        |        |
64       -------------------------------------------------------------------------
65       | 7  | Metal (+) Prox.**  |    x    |    x   |        |        |        |
66       |    | Antenna 2 Touch*   |    x    |        |        |        |        |
67       -------------------------------------------------------------------------
68       | 8  | Metal (-) Touch**  |    x    |    x   |        |        |        |
69       -------------------------------------------------------------------------
70       | 9  | Metal (-) Prox.**  |    x    |    x   |        |        |        |
71       -------------------------------------------------------------------------
72       | 10 | SAR Active***      |    x    |        |    x   |        |        |
73       -------------------------------------------------------------------------
74       | 11 | SAR Quick Rel.***  |    x    |        |    x   |        |        |
75       -------------------------------------------------------------------------
76       | 12 | SAR Movement***    |    x    |        |    x   |        |        |
77       -------------------------------------------------------------------------
78       | 13 | SAR Filter Halt*** |    x    |        |    x   |        |        |
79       -------------------------------------------------------------------------
80       | 14 | Wheel Up           |         |        |        |    x   |        |
81       -------------------------------------------------------------------------
82       | 15 | Wheel Down         |         |        |        |    x   |        |
83       -------------------------------------------------------------------------
84       *   Two-channel SAR. Replaces CH0-2 plus metal touch and proximity events
85           if enabled via firmware.
86       **  "+" and "-" refer to the polarity of a channel's delta (LTA - counts),
87           where "LTA" is defined as the channel's long-term average.
88       *** One-channel SAR. Replaces CH0-2 touch and proximity events if enabled
89           via firmware.
90
91 patternProperties:
92   "^hall-switch-(north|south)$":
93     type: object
94     $ref: input.yaml#
95     description:
96       Represents north/south-field Hall-effect sensor touch or proximity
97       events. Note that north/south-field orientation is reversed on the
98       IQS620AXzCSR device due to its flip-chip package.
99
100     properties:
101       linux,code: true
102
103       azoteq,use-prox:
104         $ref: /schemas/types.yaml#/definitions/flag
105         description:
106           If present, specifies that Hall-effect sensor reporting should
107           use the device's wide-range proximity threshold instead of its
108           close-range touch threshold (default).
109
110     required:
111       - linux,code
112
113     additionalProperties: false
114
115 if:
116   properties:
117     compatible:
118       contains:
119         enum:
120           - azoteq,iqs624-keys
121           - azoteq,iqs625-keys
122 then:
123   patternProperties:
124     "^hall-switch-(north|south)$": false
125
126 required:
127   - compatible
128   - linux,keycodes
129
130 additionalProperties: false
131
132 ...