blob: 7cdc07dd4dd6854ab09eec2604e4082e83842b4e [file] [log] [blame]
# 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.