Merge tag 'firewire-fixes-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / input / samsung,s3c6410-keypad.yaml
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
7 title: Samsung SoC series Keypad Controller
8
9 description:
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
16 maintainers:
17   - Krzysztof Kozlowski <krzk@kernel.org>
18
19 properties:
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
59 patternProperties:
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
84 required:
85   - compatible
86   - reg
87   - interrupts
88   - samsung,keypad-num-columns
89   - samsung,keypad-num-rows
90
91 additionalProperties: false
92
93 examples:
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     };