description: > GPIO button(s) that emulate UI navigation keys, for boards with only 1 or 2 physical buttons instead of a full keyboard or touchscreen. Exposes a KEYBOARD_TYPE device: each button's short/long press is translated to an LVGL navigation key, decided once the button is released (so a long press is only recognized after release, matching how long a button was actually held). compatible: "tactility,button-control" properties: pin-primary: type: phandles required: true description: > Primary button GPIO pin. One-button mode (pin-secondary absent): short press = select next, long press = press/enter. Two-button mode (pin-secondary present): short press = press/enter, long press = close app. pin-secondary: type: phandles default: GPIO_PIN_SPEC_NONE description: > Optional secondary button GPIO pin. When present, enables two-button mode: short press = select next, long press = select previous. When absent, the device runs in one-button mode (see pin-primary). active-low: type: boolean default: true description: Whether a pressed button reads as a logic low level debounce-ms: type: int default: 20 description: Minimum time between recognized level changes, for software debouncing long-press-ms: type: int default: 500 description: Minimum hold duration (from press to release) recognized as a long press