| # 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 <marek.vasut@gmail.com> | |
| 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: input.yaml# | |
| - $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: true | |
| 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; | |
| }; |