| # Copyright 2023 Google LLC |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| 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; |
| }; |
| |
| compatible: "gpio-kbd-matrix" |
| |
| include: |
| - name: kbd-matrix-common.yaml |
| property-blocklist: |
| - row-size |
| - col-size |
| |
| properties: |
| row-gpios: |
| type: phandle-array |
| required: true |
| description: | |
| GPIO for the keyboard matrix rows, up to 8 different GPIOs. All row GPIO |
| pins must have interrupt support. |
| |
| col-gpios: |
| type: phandle-array |
| required: true |
| description: | |
| GPIO for the keyboard matrix columns, supports up to 32 different GPIOs. |
| When unselected, this pin will be either driven to inactive state or |
| configured to high impedance (input) depending on the col-drive-inactive |
| property. |
| |
| col-drive-inactive: |
| type: boolean |
| description: | |
| If enabled, unselected column GPIOs will be driven to inactive state. |
| Default to configure unselected column GPIOs to high impedance. |