xref: /linux/Documentation/devicetree/bindings/input/ti,twl4030-keypad.yaml (revision db28b8ae363b9d05ab3779127514d2e81fe03ab1)
1*e8ec34edSJihed Chaibi# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*e8ec34edSJihed Chaibi%YAML 1.2
3*e8ec34edSJihed Chaibi---
4*e8ec34edSJihed Chaibi$id: http://devicetree.org/schemas/input/ti,twl4030-keypad.yaml#
5*e8ec34edSJihed Chaibi$schema: http://devicetree.org/meta-schemas/core.yaml#
6*e8ec34edSJihed Chaibi
7*e8ec34edSJihed Chaibititle: Texas Instruments TWL4030-family Keypad Controller
8*e8ec34edSJihed Chaibi
9*e8ec34edSJihed Chaibimaintainers:
10*e8ec34edSJihed Chaibi  - Peter Ujfalusi <peter.ujfalusi@gmail.com>
11*e8ec34edSJihed Chaibi
12*e8ec34edSJihed Chaibidescription:
13*e8ec34edSJihed Chaibi  TWL4030's Keypad controller is used to interface a SoC with a matrix-type
14*e8ec34edSJihed Chaibi  keypad device. The keypad controller supports multiple row and column lines.
15*e8ec34edSJihed Chaibi  A key can be placed at each intersection of a unique row and a unique column.
16*e8ec34edSJihed Chaibi  The keypad controller can sense a key-press and key-release and report the
17*e8ec34edSJihed Chaibi  event using a interrupt to the cpu.
18*e8ec34edSJihed Chaibi
19*e8ec34edSJihed ChaibiallOf:
20*e8ec34edSJihed Chaibi  - $ref: matrix-keymap.yaml#
21*e8ec34edSJihed Chaibi
22*e8ec34edSJihed Chaibiproperties:
23*e8ec34edSJihed Chaibi  compatible:
24*e8ec34edSJihed Chaibi    const: ti,twl4030-keypad
25*e8ec34edSJihed Chaibi
26*e8ec34edSJihed Chaibi  interrupts:
27*e8ec34edSJihed Chaibi    maxItems: 1
28*e8ec34edSJihed Chaibi
29*e8ec34edSJihed Chaibirequired:
30*e8ec34edSJihed Chaibi  - compatible
31*e8ec34edSJihed Chaibi  - interrupts
32*e8ec34edSJihed Chaibi  - keypad,num-rows
33*e8ec34edSJihed Chaibi  - keypad,num-columns
34*e8ec34edSJihed Chaibi  - linux,keymap
35*e8ec34edSJihed Chaibi
36*e8ec34edSJihed ChaibiunevaluatedProperties: false
37*e8ec34edSJihed Chaibi
38*e8ec34edSJihed Chaibiexamples:
39*e8ec34edSJihed Chaibi  - |
40*e8ec34edSJihed Chaibi    #include <dt-bindings/input/input.h>
41*e8ec34edSJihed Chaibi
42*e8ec34edSJihed Chaibi    keypad {
43*e8ec34edSJihed Chaibi        compatible = "ti,twl4030-keypad";
44*e8ec34edSJihed Chaibi        interrupts = <1>;
45*e8ec34edSJihed Chaibi        keypad,num-rows = <8>;
46*e8ec34edSJihed Chaibi        keypad,num-columns = <8>;
47*e8ec34edSJihed Chaibi        linux,keymap = <
48*e8ec34edSJihed Chaibi            /* row 0 */
49*e8ec34edSJihed Chaibi            MATRIX_KEY(0, 0, KEY_1)
50*e8ec34edSJihed Chaibi            MATRIX_KEY(0, 1, KEY_2)
51*e8ec34edSJihed Chaibi            MATRIX_KEY(0, 2, KEY_3)
52*e8ec34edSJihed Chaibi
53*e8ec34edSJihed Chaibi            /* ...and so on for a full 8x8 matrix... */
54*e8ec34edSJihed Chaibi
55*e8ec34edSJihed Chaibi            /* row 7 */
56*e8ec34edSJihed Chaibi            MATRIX_KEY(7, 6, KEY_Y)
57*e8ec34edSJihed Chaibi            MATRIX_KEY(7, 7, KEY_Z)
58*e8ec34edSJihed Chaibi        >;
59*e8ec34edSJihed Chaibi    };
60