gpio-kbd-matrix

Vendor: Generic or vendor-independent

Description

GPIO based keyboard matrix input device

Implement an input device for a GPIO based keyboard matrix.

Example configuration:

kbd-matrix {
        compatible = "gpio-kbd-matrix";
        row-gpios = <&gpio0 0 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>,
                    <&gpio0 1 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
        col-gpios = <&gpio0 2 GPIO_ACTIVE_LOW>,
                    <&gpio0 3 GPIO_ACTIVE_LOW>,
                    <&gpio0 4 GPIO_ACTIVE_LOW>;
        no-ghostkey-check;
};

Properties

Properties not inherited from the base binding file.

Name

Type

Details

row-gpios

phandle-array

GPIO for the keyboard matrix rows, up to 8 different GPIOs.  All row GPIO
pins must have interrupt support.

This property is required.

col-gpios

phandle-array

GPIO for the keyboard matrix columns, supports up to 32 different GPIOs.
The pins will be driven according to the GPIO_ACTIVE_HIGH or
GPIO_ACTIVE_LOW flags when selected, high impedance when not selected.

This property is required.

poll-period-ms

int

Defines the poll period in msecs between between matrix scans. Defaults
to 5ms if unsepcified.

Default value: 5

poll-timeout-ms

int

How long to wait before going from polling back to idle state. Defaults
to 100ms if unspecified.

Default value: 100

debounce-down-ms

int

Debouncing time for a key press event. Defaults to 10ms if unspecified.

Default value: 10

debounce-up-ms

int

Debouncing time for a key release event. Defaults to 20ms if unspecified.

Default value: 20

settle-time-us

int

Delay between setting column output and reading the row values. Defaults
to 50us if unspecified.

Default value: 50

no-ghostkey-check

boolean

Ignore the ghost key checking in the driver if the diodes are used
in the matrix hardware.