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