1* Samsung's Keypad Controller device tree bindings
2
3Samsung's Keypad controller is used to interface a SoC with a matrix-type
4keypad device. The keypad controller supports multiple row and column lines.
5A key can be placed at each intersection of a unique row and a unique column.
6The keypad controller can sense a key-press and key-release and report the
7event using a interrupt to the cpu.
8
9Required SoC Specific Properties:
10- compatible: should be one of the following
11  - "samsung,s3c6410-keypad": For controllers compatible with s3c6410 keypad
12    controller.
13  - "samsung,s5pv210-keypad": For controllers compatible with s5pv210 keypad
14    controller.
15
16- reg: physical base address of the controller and length of memory mapped
17  region.
18
19- interrupts: The interrupt number to the cpu.
20
21Required Board Specific Properties:
22- samsung,keypad-num-rows: Number of row lines connected to the keypad
23  controller.
24
25- samsung,keypad-num-columns: Number of column lines connected to the
26  keypad controller.
27
28- Keys represented as child nodes: Each key connected to the keypad
29  controller is represented as a child node to the keypad controller
30  device node and should include the following properties.
31  - keypad,row: the row number to which the key is connected.
32  - keypad,column: the column number to which the key is connected.
33  - linux,code: the key-code to be reported when the key is pressed
34    and released.
35
36- pinctrl-0: Should specify pin control groups used for this controller.
37- pinctrl-names: Should contain only one value - "default".
38
39Optional Properties:
40- wakeup-source: use any event on keypad as wakeup event.
41
42Optional Properties specific to linux:
43- linux,keypad-no-autorepeat: do no enable autorepeat feature.
44
45
46Example:
47	keypad@100A0000 {
48		compatible = "samsung,s5pv210-keypad";
49		reg = <0x100A0000 0x100>;
50		interrupts = <173>;
51		samsung,keypad-num-rows = <2>;
52		samsung,keypad-num-columns = <8>;
53		linux,input-no-autorepeat;
54		linux,input-wakeup;
55
56		pinctrl-names = "default";
57		pinctrl-0 = <&keypad_rows &keypad_columns>;
58
59		key_1 {
60			keypad,row = <0>;
61			keypad,column = <3>;
62			linux,code = <2>;
63		};
64
65		key_2 {
66			keypad,row = <0>;
67			keypad,column = <4>;
68			linux,code = <3>;
69		};
70
71		key_3 {
72			keypad,row = <0>;
73			keypad,column = <5>;
74			linux,code = <4>;
75		};
76	};
77