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