1Device-Tree bindings for input/keyboard/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 - wakeup-event-action: Specifies whether the key should wake the 30 system when asserted, when deasserted, or both. This property is 31 only valid for keys that wake up the system (e.g., when the 32 "wakeup-source" property is also provided). 33 Supported values are defined in linux-event-codes.h: 34 EV_ACT_ASSERTED - asserted 35 EV_ACT_DEASSERTED - deasserted 36 EV_ACT_ANY - both asserted and deasserted 37 - linux,can-disable: Boolean, indicates that button is connected 38 to dedicated (not shared) interrupt which can be disabled to 39 suppress events from the button. 40 41Example nodes: 42 43 gpio-keys { 44 compatible = "gpio-keys"; 45 autorepeat; 46 47 up { 48 label = "GPIO Key UP"; 49 linux,code = <103>; 50 gpios = <&gpio1 0 1>; 51 }; 52 53 down { 54 label = "GPIO Key DOWN"; 55 linux,code = <108>; 56 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 57 }; 58 ... 59