blob: a53569aa0ee7741be0ddf55bd02e4596db5b161c [file] [log] [blame]
Tom Rini6bb92fc2024-05-20 09:54:58 -06001# 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 };