The latest development version of this page may be more current than this released 4.0.0 version.

gpio-keys

Vendor: Generic or vendor-independent

Note

An implementation of a driver matching this compatible is available in drivers/input/input_gpio_keys.c.

Description

Zephyr Input GPIO KEYS parent node

This defines a group of buttons that can generate input events. Each button
is defined in a child node of the gpio-keys node and defines a specific key
code.

For example:

#include <zephyr/dt-bindings/input/input-event-codes.h>

/ {
       buttons {
               compatible = "gpio-keys";
               button_0 {
                       gpios = <&gpio0 13 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
                       zephyr,code = <INPUT_KEY_0>;
               };
       };
};

Properties

Top level properties

These property descriptions apply to “gpio-keys” nodes themselves. This page also describes child node properties in the following sections.

Properties not inherited from the base binding file.

Name

Type

Details

debounce-interval-ms

int

Debouncing interval time in milliseconds.
If not specified defaults to 30.

Default value: 30

polling-mode

boolean

Do not use interrupts for the key GPIOs, poll the pin periodically at the
specified debounce-interval-ms instead.

no-disconnect

boolean

Do not try to disconnect the pin on suspend. Can be used if the GPIO
controller does not support the GPIO_DISCONNECTED flag.

Child node properties

Name

Type

Details

gpios

phandle-array

This property is required.

label

string

Descriptive name of the key

See Important properties for more information.

zephyr,code

int

Key code to emit.