Provided by: freebsd-manpages_12.2-1_all bug

NAME

       gpiokeys — GPIO keys device driver

SYNOPSIS

       To compile this driver into the kernel, place the following lines in your kernel configuration file:

             options FDT
             device gpio
             device gpiokeys

       Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):

             gpiokeys_load="YES"

DESCRIPTION

       The  gpiokeys driver provides a way to represent a set of general purpose inputs as a keyboard(4) device.
       At the moment the driver supports only FDT(4) based systems.  The DTS determines what pins are mapped  to
       buttons  and  what  key  codes are generated for each virtual button.  The keyboard(4) device can be used
       from userland to monitor for input changes.

       On an FDT(4) based system the DTS part for a gpiokeys device usually looks like:

       / {

               ...

               gpio_keys {
                       compatible = "gpio-keys";

                       btn1 {
                               label = "button1";
                               linux,code = <KEY_1>;
                               gpios = <&gpio 0 3 GPIO_ACTIVE_LOW>
                       };

                       btn2 {
                               label = "button2";
                               linux,code = <KEY_2>;
                               gpios = <&gpio 0 4 GPIO_ACTIVE_LOW>
                       };
               };
       };

       For more details about the gpios property, please consult /usr/src/sys/dts/bindings-gpio.txt.

       The gpiokeys driver supports two properties for specifying a key code.

       The property freebsd,code specifies a FreeBSD native scancode compatible with kbdmap(5) keyboard maps.

       The property linux,code specifies an evdev scancode.  That scancode is internally translated to a  native
       scancode.   Note  that not all evdev scancodes have corresponding native scancodes.  If a scancode cannot
       be translated, then a diagnostic message is printed and the input is ignored.

       The property label is a descriptive name of a button.  It is used for  diagnostic  messages  only.   This
       property is optional.  If not set, the node name is used in its place.

       The property autorepeat determines whether autorepeat is enabled for a button.

       The  property  debounce-interval  defines debouncing interval time in milliseconds.  If not specified the
       interval defaults to 5.

SEE ALSO

       fdt(4), gpio(4), keyboard(4), kbdmap(5)

HISTORY

       The gpiokeys manual page first appeared in FreeBSD 12.2.

AUTHORS

       The gpiokeys driver was written by  Oleksandr  Tymoshenko  <gonzo@FreeBSD.org>.   This  manual  page  was
       written by
       Andriy Gapon <avg@FreeBSD.org>.

Debian                                           August 5, 2020                                      GPIOKEYS(4)