hc
2023-11-30 6c9be420e167ee7ce45c0309586f09ddab28ac15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Device-Tree bindings for input/keyboard/gpio_keys.c keyboard driver
 
Required properties:
   - compatible = "gpio-keys";
 
Optional properties:
   - autorepeat: Boolean, Enable auto repeat feature of Linux input
     subsystem.
   - label: String, name of the input device.
 
Each button (key) is represented as a sub-node of "gpio-keys":
Subnode properties:
 
   - gpios: OF device-tree gpio specification.
   - interrupts: the interrupt line for that input.
   - label: Descriptive name of the key.
   - linux,code: Keycode to emit.
 
Note that either "interrupts" or "gpios" properties can be omitted, but not
both at the same time. Specifying both properties is allowed.
 
Optional subnode-properties:
   - linux,input-type: Specify event type this button/key generates.
     If not specified defaults to <1> == EV_KEY.
   - debounce-interval: Debouncing interval time in milliseconds.
     If not specified defaults to 5.
   - wakeup-source: Boolean, button can wake-up the system.
            (Legacy property supported: "gpio-key,wakeup")
   - wakeup-event-action: Specifies whether the key should wake the
     system when asserted, when deasserted, or both. This property is
     only valid for keys that wake up the system (e.g., when the
     "wakeup-source" property is also provided).
     Supported values are defined in linux-event-codes.h:
       EV_ACT_ASSERTED        - asserted
       EV_ACT_DEASSERTED    - deasserted
       EV_ACT_ANY        - both asserted and deasserted
   - linux,can-disable: Boolean, indicates that button is connected
     to dedicated (not shared) interrupt which can be disabled to
     suppress events from the button.
 
Example nodes:
 
   gpio-keys {
           compatible = "gpio-keys";
           autorepeat;
 
           up {
               label = "GPIO Key UP";
               linux,code = <103>;
               gpios = <&gpio1 0 1>;
           };
 
           down {
               label = "GPIO Key DOWN";
               linux,code = <108>;
               interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
           };
           ...