Commit e8ec34ed authored by Jihed Chaibi's avatar Jihed Chaibi Committed by Dmitry Torokhov
Browse files

dt-bindings: input: ti,twl4030-keypad: convert to DT schema



Convert the legacy TXT binding for the TWL4030 keypad module
to the modern YAML DT schema format. This adds formal validation
and improves documentation by inheriting from the matrix-keymap schema.

Signed-off-by: default avatarJihed Chaibi <jihed.chaibi.dev@gmail.com>
Reviewed-by: default avatarRob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20250819222823.157943-1-jihed.chaibi.dev@gmail.com


Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 3c297278
Loading
Loading
Loading
Loading
+59 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/input/ti,twl4030-keypad.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Texas Instruments TWL4030-family Keypad Controller

maintainers:
  - Peter Ujfalusi <peter.ujfalusi@gmail.com>

description:
  TWL4030's Keypad controller is used to interface a SoC with a matrix-type
  keypad device. The keypad controller supports multiple row and column lines.
  A key can be placed at each intersection of a unique row and a unique column.
  The keypad controller can sense a key-press and key-release and report the
  event using a interrupt to the cpu.

allOf:
  - $ref: matrix-keymap.yaml#

properties:
  compatible:
    const: ti,twl4030-keypad

  interrupts:
    maxItems: 1

required:
  - compatible
  - interrupts
  - keypad,num-rows
  - keypad,num-columns
  - linux,keymap

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/input/input.h>

    keypad {
        compatible = "ti,twl4030-keypad";
        interrupts = <1>;
        keypad,num-rows = <8>;
        keypad,num-columns = <8>;
        linux,keymap = <
            /* row 0 */
            MATRIX_KEY(0, 0, KEY_1)
            MATRIX_KEY(0, 1, KEY_2)
            MATRIX_KEY(0, 2, KEY_3)

            /* ...and so on for a full 8x8 matrix... */

            /* row 7 */
            MATRIX_KEY(7, 6, KEY_Y)
            MATRIX_KEY(7, 7, KEY_Z)
        >;
    };
+0 −27
Original line number Diff line number Diff line
* TWL4030's Keypad Controller device tree bindings

TWL4030's Keypad controller is used to interface a SoC with a matrix-type
keypad device. The keypad controller supports multiple row and column lines.
A key can be placed at each intersection of a unique row and a unique column.
The keypad controller can sense a key-press and key-release and report the
event using a interrupt to the cpu.

This binding is based on the matrix-keymap binding with the following
changes:

 * keypad,num-rows and keypad,num-columns are required.

Required SoC Specific Properties:
- compatible: should be one of the following
   - "ti,twl4030-keypad": For controllers compatible with twl4030 keypad
      controller.
- interrupt: should be one of the following
   - <1>: For controllers compatible with twl4030 keypad controller.

Example:
	twl_keypad: keypad {
		compatible = "ti,twl4030-keypad";
		interrupts = <1>;
		keypad,num-rows = <8>;
		keypad,num-columns = <8>;
	};