blob: 159cd9d9fe573c7315cc5066409dae6c8c478e94 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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:
34 maxItems: 1
35
36 label:
37 description: Descriptive name of the key.
38
39 linux,code:
40 description: Key / Axis code to emit.
41
42 linux,input-type:
43 default: 1 # EV_KEY
44
45 linux,input-value:
46 description: |
47 If linux,input-type is EV_ABS or EV_REL then this
48 value is sent for events this button generates when pressed.
49 EV_ABS/EV_REL axis will generate an event with a value of 0
50 when all buttons with linux,input-type == type and
51 linux,code == axis are released. This value is interpreted
52 as a signed 32 bit value, e.g. to make a button generate a
53 value of -1 use:
54
55 linux,input-value = <0xffffffff>; /* -1 */
56
57 $ref: /schemas/types.yaml#/definitions/uint32
58
59 debounce-interval:
60 description:
61 Debouncing interval time in milliseconds. If not specified defaults to 5.
62 $ref: /schemas/types.yaml#/definitions/uint32
63
64 default: 5
65
66 wakeup-source:
67 description: Button can wake-up the system.
68
69 wakeup-event-action:
70 description: |
71 Specifies whether the key should wake the system when asserted, when
72 deasserted, or both. This property is only valid for keys that wake up the
73 system (e.g., when the "wakeup-source" property is also provided).
74
75 Supported values are defined in linux-event-codes.h:
76
77 EV_ACT_ANY - both asserted and deasserted
78 EV_ACT_ASSERTED - asserted
79 EV_ACT_DEASSERTED - deasserted
80 $ref: /schemas/types.yaml#/definitions/uint32
81 enum: [0, 1, 2]
82
83 linux,can-disable:
84 description:
85 Indicates that button is connected to dedicated (not shared) interrupt
86 which can be disabled to suppress events from the button.
87 type: boolean
88
89 required:
90 - linux,code
91
92 anyOf:
93 - required:
94 - interrupts
95 - required:
96 - interrupts-extended
97 - required:
98 - gpios
99
100 dependencies:
101 wakeup-event-action: [ wakeup-source ]
102 linux,input-value: [ gpios ]
103
104 unevaluatedProperties: false
105
106allOf:
107 - $ref: input.yaml#
108 - if:
109 properties:
110 compatible:
111 const: gpio-keys-polled
112 then:
113 required:
114 - poll-interval
115 else:
116 properties:
117 poll-interval: false
118
119additionalProperties: false
120
121examples:
122 - |
123 #include <dt-bindings/interrupt-controller/irq.h>
124
125 gpio-keys {
126 compatible = "gpio-keys";
127 autorepeat;
128
129 key-up {
130 label = "GPIO Key UP";
131 linux,code = <103>;
132 gpios = <&gpio1 0 1>;
133 };
134
135 key-down {
136 label = "GPIO Key DOWN";
137 linux,code = <108>;
138 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
139 };
140 };
141
142...