Merge tag 'v3.3.7' into 3.3/master
[zen-stable.git] / Documentation / devicetree / bindings / input / samsung-keypad.txt
blobce3e394c0e64942527af9a7aa6523b62aa03847e
1 * Samsung's Keypad Controller device tree bindings
3 Samsung's Keypad controller is used to interface a SoC with a matrix-type
4 keypad device. The keypad controller supports multiple row and column lines.
5 A key can be placed at each intersection of a unique row and a unique column.
6 The keypad controller can sense a key-press and key-release and report the
7 event using a interrupt to the cpu.
9 Required 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.
16 - reg: physical base address of the controller and length of memory mapped
17   region.
19 - interrupts: The interrupt number to the cpu.
21 Required Board Specific Properties:
22 - samsung,keypad-num-rows: Number of row lines connected to the keypad
23   controller.
25 - samsung,keypad-num-columns: Number of column lines connected to the
26   keypad controller.
28 - row-gpios: List of gpios used as row lines. The gpio specifier for
29   this property depends on the gpio controller to which these row lines
30   are connected.
32 - col-gpios: List of gpios used as column lines. The gpio specifier for
33   this property depends on the gpio controller to which these column
34   lines are connected.
36 - Keys represented as child nodes: Each key connected to the keypad
37   controller is represented as a child node to the keypad controller
38   device node and should include the following properties.
39   - keypad,row: the row number to which the key is connected.
40   - keypad,column: the column number to which the key is connected.
41   - linux,code: the key-code to be reported when the key is pressed
42     and released.
44 Optional Properties specific to linux:
45 - linux,keypad-no-autorepeat: do no enable autorepeat feature.
46 - linux,keypad-wakeup: use any event on keypad as wakeup event.
49 Example:
50         keypad@100A0000 {
51                 compatible = "samsung,s5pv210-keypad";
52                 reg = <0x100A0000 0x100>;
53                 interrupts = <173>;
54                 samsung,keypad-num-rows = <2>;
55                 samsung,keypad-num-columns = <8>;
56                 linux,input-no-autorepeat;
57                 linux,input-wakeup;
59                 row-gpios = <&gpx2 0 3 3 0
60                              &gpx2 1 3 3 0>;
62                 col-gpios = <&gpx1 0 3 0 0
63                              &gpx1 1 3 0 0
64                              &gpx1 2 3 0 0
65                              &gpx1 3 3 0 0
66                              &gpx1 4 3 0 0
67                              &gpx1 5 3 0 0
68                              &gpx1 6 3 0 0
69                              &gpx1 7 3 0 0>;
71                 key_1 {
72                         keypad,row = <0>;
73                         keypad,column = <3>;
74                         linux,code = <2>;
75                 };
77                 key_2 {
78                         keypad,row = <0>;
79                         keypad,column = <4>;
80                         linux,code = <3>;
81                 };
83                 key_3 {
84                         keypad,row = <0>;
85                         keypad,column = <5>;
86                         linux,code = <4>;
87                 };
88         };