xref: /linux/Documentation/devicetree/bindings/input/cirrus,ep9307-keypad.yaml (revision 55d0969c451159cff86949b38c39171cab962069)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/input/cirrus,ep9307-keypad.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Cirrus ep93xx keypad
8
9maintainers:
10  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
11
12allOf:
13  - $ref: /schemas/input/matrix-keymap.yaml#
14
15description:
16  The KPP is designed to interface with a keypad matrix with 2-point contact
17  or 3-point contact keys. The KPP is designed to simplify the software task
18  of scanning a keypad matrix. The KPP is capable of detecting, debouncing,
19  and decoding one or multiple keys pressed simultaneously on a keypad.
20
21properties:
22  compatible:
23    oneOf:
24      - const: cirrus,ep9307-keypad
25      - items:
26          - enum:
27              - cirrus,ep9312-keypad
28              - cirrus,ep9315-keypad
29          - const: cirrus,ep9307-keypad
30
31  reg:
32    maxItems: 1
33
34  interrupts:
35    maxItems: 1
36
37  clocks:
38    maxItems: 1
39
40  debounce-delay-ms:
41    description: |
42          Time in microseconds that key must be pressed or
43          released for state change interrupt to trigger.
44
45  cirrus,prescale:
46    description: row/column counter pre-scaler load value
47    $ref: /schemas/types.yaml#/definitions/uint16
48    maximum: 1023
49
50required:
51  - compatible
52  - reg
53  - interrupts
54  - clocks
55  - linux,keymap
56
57unevaluatedProperties: false
58
59examples:
60  - |
61    #include <dt-bindings/input/input.h>
62    #include <dt-bindings/clock/cirrus,ep9301-syscon.h>
63    keypad@800f0000 {
64        compatible = "cirrus,ep9307-keypad";
65        reg = <0x800f0000 0x0c>;
66        interrupt-parent = <&vic0>;
67        interrupts = <29>;
68        clocks = <&eclk EP93XX_CLK_KEYPAD>;
69        pinctrl-names = "default";
70        pinctrl-0 = <&keypad_default_pins>;
71        linux,keymap = <KEY_UP>,
72                       <KEY_DOWN>,
73                       <KEY_VOLUMEDOWN>,
74                       <KEY_HOME>,
75                       <KEY_RIGHT>,
76                       <KEY_LEFT>,
77                       <KEY_ENTER>,
78                       <KEY_VOLUMEUP>,
79                       <KEY_F6>,
80                       <KEY_F8>,
81                       <KEY_F9>,
82                       <KEY_F10>,
83                       <KEY_F1>,
84                       <KEY_F2>,
85                       <KEY_F3>,
86                       <KEY_POWER>;
87    };
88