xref: /linux/Documentation/devicetree/bindings/input/samsung,s3c6410-keypad.yaml (revision 594ce0b8a998aa4d05827cd7c0d0dcec9a1e3ae2)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/input/samsung,s3c6410-keypad.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Samsung SoC series Keypad Controller
8
9description:
10  Samsung SoC Keypad controller is used to interface a SoC with a matrix-type
11  keypad device. The keypad controller supports multiple row and column lines.
12  A key can be placed at each intersection of a unique row and a unique column.
13  The keypad controller can sense a key-press and key-release and report the
14  event using a interrupt to the cpu.
15
16maintainers:
17  - Krzysztof Kozlowski <krzk@kernel.org>
18
19properties:
20  compatible:
21    enum:
22      - samsung,s3c6410-keypad
23      - samsung,s5pv210-keypad
24
25  reg:
26    maxItems: 1
27
28  clocks:
29    maxItems: 1
30
31  clock-names:
32    items:
33      - const: keypad
34
35  interrupts:
36    maxItems: 1
37
38  wakeup-source: true
39
40  linux,input-no-autorepeat:
41    type: boolean
42    description:
43      Do no enable autorepeat feature.
44
45  linux,input-wakeup:
46    type: boolean
47    deprecated: true
48
49  samsung,keypad-num-columns:
50    $ref: /schemas/types.yaml#/definitions/uint32
51    description:
52      Number of column lines connected to the keypad controller.
53
54  samsung,keypad-num-rows:
55    $ref: /schemas/types.yaml#/definitions/uint32
56    description:
57      Number of row lines connected to the keypad controller.
58
59patternProperties:
60  '^key-[0-9a-z]+$':
61    type: object
62    $ref: input.yaml#
63    additionalProperties: false
64    description:
65      Each key connected to the keypad controller is represented as a child
66      node to the keypad controller device node.
67
68    properties:
69      keypad,column:
70        $ref: /schemas/types.yaml#/definitions/uint32
71        description: The column number to which the key is connected.
72
73      keypad,row:
74        $ref: /schemas/types.yaml#/definitions/uint32
75        description: The row number to which the key is connected.
76
77      linux,code: true
78
79    required:
80      - keypad,column
81      - keypad,row
82      - linux,code
83
84required:
85  - compatible
86  - reg
87  - interrupts
88  - samsung,keypad-num-columns
89  - samsung,keypad-num-rows
90
91additionalProperties: false
92
93examples:
94  - |
95    #include <dt-bindings/clock/exynos4.h>
96    #include <dt-bindings/interrupt-controller/arm-gic.h>
97
98    keypad@100a0000 {
99        compatible = "samsung,s5pv210-keypad";
100        reg = <0x100a0000 0x100>;
101        interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
102        clocks = <&clock CLK_KEYIF>;
103        clock-names = "keypad";
104
105        samsung,keypad-num-rows = <2>;
106        samsung,keypad-num-columns = <8>;
107        linux,input-no-autorepeat;
108        wakeup-source;
109
110        key-1 {
111            keypad,row = <0>;
112            keypad,column = <3>;
113            linux,code = <2>;
114        };
115
116        key-2 {
117            keypad,row = <0>;
118            keypad,column = <4>;
119            linux,code = <3>;
120        };
121    };
122