gpio-keys

Description

Group of GPIO-bound input keys.

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.

Examples

#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.

zephyr,suspend-action

string

Action taken by driver on key GPIOs when device is suspended.

none:
  No action - GPIO pins are not reconfigured.
  Useful when the GPIO controller does not support GPIO_DISCONNECTED.

disconnect-with-pupd:
  This option is provided mainly for backwards compatibility.
  You probably want to use `full-disconnect` instead.

  GPIO pins are reconfigured in GPIO_DISCONNECTED state using a call
  to gpio_pin_configure_dt() which is identical to `full-disconnect`
  if Devicetree does not contain flag GPIO_PULL_DOWN or GPIO_PULL_UP.
  Otherwise, the behavior is implementation-defined:
  - the requested pull-down/pull-up resistor may or may not be enabled
  - the GPIO controller driver may reject the request (-ENOTSUP)

full-disconnect:
  Fully disconnect GPIO pins (reconfigure without PU/PD flags)

  GPIO pins are reconfigured in GPIO_DISCONNECTED state using a call
  to gpio_pin_configure() with all flags from Devicetree unchanged,
  except GPIO_PULL_DOWN and GPIO_PULL_UP which are masked out.

  This should place GPIO pins in an high-impedance/"floating" state.

The default value is `disconnect-with-pupd` for backwards compatibility.

Default value: disconnect-with-pupd

Legal values: none, disconnect-with-pupd, full-disconnect

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.