Kernel-4.18.0-80.el8_gpio-keys

Device-Tree bindings for input/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>;
        };
        ...