| # 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: /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; |
| }; |