Re: [PATCH v5 3/7] dt-bindings: input: matrix_keypad - convert to YAML

Manuel Traut
2025-02-19T16:41:10Z

On Fri, Jan 10, 2025 at 06:49:02AM +0100, Markus Burri wrote:
> Convert the gpio-matrix-keypad bindings from text to DT schema.
>
> Signed-off-by: Markus Burri <markus.burri@mt.com>

Reviewed-by: Manuel Traut <manuel.traut@mt.com>

> ---
> .../bindings/input/gpio-matrix-keypad.txt | 49 -----------
> .../bindings/input/gpio-matrix-keypad.yaml | 88 +++++++++++++++++++
> .../bindings/power/wakeup-source.txt | 2 +-
> 3 files changed, 89 insertions(+), 50 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt
> create mode 100644 Documentation/devicetree/bindings/input/gpio-matrix-keypad.yaml
>
> diff --git a/Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt b/Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt
> deleted file mode 100644
> index 570dc10..0000000
> --- a/Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt
> +++ /dev/null
> @@ -1,49 +0,0 @@
> -* GPIO driven matrix keypad device tree bindings
> -
> -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.
> -
> -Required Properties:
> -- compatible: Should be "gpio-matrix-keypad"
> -- row-gpios: 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: 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: The definition can be found at
> - bindings/input/matrix-keymap.txt
> -
> -Optional Properties:
> -- linux,no-autorepeat: do no enable autorepeat feature.
> -- wakeup-source: use any event on keypad as wakeup event.
> - (Legacy property supported: "linux,wakeup")
> -- debounce-delay-ms: debounce interval in milliseconds
> -- col-scan-delay-us: delay, measured in microseconds, that is needed
> - before we can scan keypad after activating column gpio
> -- drive-inactive-cols: drive inactive columns during scan,
> - default is to turn inactive columns into inputs.
> -
> -Example:
> - 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>;
> - };
> diff --git a/Documentation/devicetree/bindings/input/gpio-matrix-keypad.yaml b/Documentation/devicetree/bindings/input/gpio-matrix-keypad.yaml
> new file mode 100644
> index 0000000..0f348b9
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/gpio-matrix-keypad.yaml
> @@ -0,0 +1,88 @@
> +# 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.
> +
> +
> + 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
> +
> + drive-inactive-cols:
> + type: boolean
> + description:
> + Drive inactive columns during scan,
> + default is to turn inactive columns into inputs.
> +
> +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>;
> + };
> diff --git a/Documentation/devicetree/bindings/power/wakeup-source.txt b/Documentation/devicetree/bindings/power/wakeup-source.txt
> index 27f1797..66bb016 100644
> --- a/Documentation/devicetree/bindings/power/wakeup-source.txt
> +++ b/Documentation/devicetree/bindings/power/wakeup-source.txt
> @@ -23,7 +23,7 @@ List of legacy properties and respective binding document
>
> 1. "gpio-key,wakeup" Documentation/devicetree/bindings/input/gpio-keys{,-polled}.txt
> 2. "has-tpo" Documentation/devicetree/bindings/rtc/rtc-opal.txt
> -3. "linux,wakeup" Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt
> +3. "linux,wakeup" Documentation/devicetree/bindings/input/gpio-matrix-keypad.yaml
> Documentation/devicetree/bindings/mfd/tc3589x.txt
> Documentation/devicetree/bindings/input/touchscreen/ti,ads7843.yaml
> 4. "linux,keypad-wakeup" Documentation/devicetree/bindings/input/qcom,pm8921-keypad.yaml
> --
> 2.39.5
>