# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/input/gpio-matrix-keypad.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: GPIO matrix keypad maintainers: - Marek Vasut description: GPIO driven matrix keypad is used to interface a SoC with a matrix keypad. The matrix keypad supports multiple row and column lines, a key can be placed at each intersection of a unique row and a unique column. The matrix keypad can sense a key-press and key-release by means of GPIO lines and report the event using GPIO interrupts to the cpu. allOf: - $ref: /schemas/input/matrix-keymap.yaml# properties: compatible: const: gpio-matrix-keypad row-gpios: description: List of GPIOs used as row lines. The gpio specifier for this property depends on the gpio controller to which these row lines are connected. col-gpios: description: List of GPIOs used as column lines. The gpio specifier for this property depends on the gpio controller to which these column lines are connected. linux,keymap: true linux,no-autorepeat: type: boolean description: Do not enable autorepeat feature. gpio-activelow: type: boolean description: Force GPIO polarity to active low. In the absence of this property GPIOs are treated as active high. debounce-delay-ms: description: Debounce interval in milliseconds. default: 0 col-scan-delay-us: description: Delay, measured in microseconds, that is needed before we can scan keypad after activating column gpio. default: 0 all-cols-on-delay-us: description: Delay, measured in microseconds, that is needed after activating all column gpios. default: 0 drive-inactive-cols: type: boolean description: Drive inactive columns during scan, default is to turn inactive columns into inputs. wakeup-source: true required: - compatible - row-gpios - col-gpios - linux,keymap additionalProperties: false examples: - | matrix-keypad { compatible = "gpio-matrix-keypad"; debounce-delay-ms = <5>; col-scan-delay-us = <2>; row-gpios = <&gpio2 25 0 &gpio2 26 0 &gpio2 27 0>; col-gpios = <&gpio2 21 0 &gpio2 22 0>; linux,keymap = <0x0000008B 0x0100009E 0x02000069 0x0001006A 0x0101001C 0x0201006C>; wakeup-source; };