]> git.ipfire.org Git - thirdparty/u-boot.git/blame - Bindings/input/gpio-keys.yaml
Squashed 'dts/upstream/' changes from aaba2d45dc2a..b35b9bd1d4ee
[thirdparty/u-boot.git] / Bindings / input / gpio-keys.yaml
CommitLineData
53633a89
TR
1# SPDX-License-Identifier: GPL-2.0-only
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/input/gpio-keys.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: GPIO attached keys
8
9maintainers:
10 - Rob Herring <robh@kernel.org>
11
12properties:
13 compatible:
14 enum:
15 - gpio-keys
16 - gpio-keys-polled
17
18 autorepeat: true
19
20 label:
21 description: Name of entire device
22
23 poll-interval: true
24
25patternProperties:
26 "^(button|event|key|switch|(button|event|key|switch)-[a-z0-9-]+|[a-z0-9-]+-(button|event|key|switch))$":
27 $ref: input.yaml#
28
29 properties:
30 gpios:
31 maxItems: 1
32
33 interrupts:
93743d24
TR
34 oneOf:
35 - items:
36 - description: Optional key interrupt or wakeup interrupt
37 - items:
38 - description: Key interrupt
39 - description: Wakeup interrupt
40
41 interrupt-names:
42 description:
43 Optional interrupt names, can be used to specify a separate dedicated
44 wake-up interrupt in addition to the gpio irq
45 oneOf:
46 - items:
47 - enum: [ irq, wakeup ]
48 - items:
49 - const: irq
50 - const: wakeup
53633a89
TR
51
52 label:
53 description: Descriptive name of the key.
54
55 linux,code:
56 description: Key / Axis code to emit.
57
58 linux,input-type:
59 default: 1 # EV_KEY
60
61 linux,input-value:
62 description: |
63 If linux,input-type is EV_ABS or EV_REL then this
64 value is sent for events this button generates when pressed.
65 EV_ABS/EV_REL axis will generate an event with a value of 0
66 when all buttons with linux,input-type == type and
67 linux,code == axis are released. This value is interpreted
68 as a signed 32 bit value, e.g. to make a button generate a
69 value of -1 use:
70
71 linux,input-value = <0xffffffff>; /* -1 */
72
73 $ref: /schemas/types.yaml#/definitions/uint32
74
75 debounce-interval:
76 description:
77 Debouncing interval time in milliseconds. If not specified defaults to 5.
78 $ref: /schemas/types.yaml#/definitions/uint32
79
80 default: 5
81
82 wakeup-source:
83 description: Button can wake-up the system.
84
85 wakeup-event-action:
86 description: |
87 Specifies whether the key should wake the system when asserted, when
88 deasserted, or both. This property is only valid for keys that wake up the
89 system (e.g., when the "wakeup-source" property is also provided).
90
91 Supported values are defined in linux-event-codes.h:
92
93 EV_ACT_ANY - both asserted and deasserted
94 EV_ACT_ASSERTED - asserted
95 EV_ACT_DEASSERTED - deasserted
96 $ref: /schemas/types.yaml#/definitions/uint32
97 enum: [0, 1, 2]
98
99 linux,can-disable:
100 description:
101 Indicates that button is connected to dedicated (not shared) interrupt
102 which can be disabled to suppress events from the button.
103 type: boolean
104
105 required:
106 - linux,code
107
108 anyOf:
109 - required:
110 - interrupts
111 - required:
112 - interrupts-extended
113 - required:
114 - gpios
115
93743d24
TR
116 allOf:
117 - if:
118 properties:
119 interrupts:
120 minItems: 2
121 required:
122 - interrupts
123 then:
124 properties:
125 interrupt-names:
126 minItems: 2
127 required:
128 - interrupt-names
129
53633a89
TR
130 dependencies:
131 wakeup-event-action: [ wakeup-source ]
132 linux,input-value: [ gpios ]
133
134 unevaluatedProperties: false
135
136allOf:
137 - $ref: input.yaml#
138 - if:
139 properties:
140 compatible:
141 const: gpio-keys-polled
142 then:
143 required:
144 - poll-interval
145 else:
146 properties:
147 poll-interval: false
148
149additionalProperties: false
150
151examples:
152 - |
153 #include <dt-bindings/interrupt-controller/irq.h>
154
155 gpio-keys {
156 compatible = "gpio-keys";
157 autorepeat;
158
159 key-up {
160 label = "GPIO Key UP";
161 linux,code = <103>;
162 gpios = <&gpio1 0 1>;
163 };
164
165 key-down {
166 label = "GPIO Key DOWN";
167 linux,code = <108>;
168 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
169 };
93743d24
TR
170
171 key-wakeup {
172 label = "GPIO Key WAKEUP";
173 linux,code = <143>;
174 interrupts-extended = <&intc 2 IRQ_TYPE_EDGE_FALLING>,
175 <&intc_wakeup 0 IRQ_TYPE_LEVEL_HIGH>;
176 interrupt-names = "irq", "wakeup";
177 wakeup-source;
178 };
53633a89
TR
179 };
180
181...