Button Control
Kernel driver for navigating apps with 1 or 2 GPIO buttons. Kernel-driver counterpart to
Drivers/ButtonControl, exposing a KEYBOARD_TYPE device (tactility/drivers/keyboard.h)
instead of an LVGL encoder indev.
Devicetree binding: tactility,button-control (see bindings/tactility,button-control.yaml).
Modes
- One-button (
pin-secondaryabsent): short press =LV_KEY_NEXT, long press =LV_KEY_ENTER. - Two-button (
pin-secondarypresent): primary short =LV_KEY_ENTER, primary long =LV_KEY_ESC, secondary short =LV_KEY_NEXT, secondary long =LV_KEY_PREV.
Short vs. long press is only decided when the button is released, by comparing the hold
duration against long-press-ms - not at the moment it's pressed.
Example
buttons {
compatible = "tactility,button-control";
pin-primary = <&gpio0 37 GPIO_FLAG_NONE>;
pin-secondary = <&gpio0 39 GPIO_FLAG_NONE>;
};