]>
Commit | Line | Data |
---|---|---|
b3d6ac3e TA |
1 | * Samsung's Keypad Controller device tree bindings |
2 | ||
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. | |
8 | ||
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. | |
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 | ||
21 | Required 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 | ||
b3d6ac3e TA |
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 | ||
41cc2aaf TA |
36 | - pinctrl-0: Should specify pin control groups used for this controller. |
37 | - pinctrl-names: Should contain only one value - "default". | |
38 | ||
b3d6ac3e TA |
39 | Optional Properties specific to linux: |
40 | - linux,keypad-no-autorepeat: do no enable autorepeat feature. | |
41 | - linux,keypad-wakeup: use any event on keypad as wakeup event. | |
42 | ||
43 | ||
44 | Example: | |
45 | keypad@100A0000 { | |
46 | compatible = "samsung,s5pv210-keypad"; | |
47 | reg = <0x100A0000 0x100>; | |
48 | interrupts = <173>; | |
49 | samsung,keypad-num-rows = <2>; | |
50 | samsung,keypad-num-columns = <8>; | |
51 | linux,input-no-autorepeat; | |
52 | linux,input-wakeup; | |
53 | ||
41cc2aaf TA |
54 | pinctrl-names = "default"; |
55 | pinctrl-0 = <&keypad_rows &keypad_columns>; | |
b3d6ac3e TA |
56 | |
57 | key_1 { | |
58 | keypad,row = <0>; | |
59 | keypad,column = <3>; | |
60 | linux,code = <2>; | |
61 | }; | |
62 | ||
63 | key_2 { | |
64 | keypad,row = <0>; | |
65 | keypad,column = <4>; | |
66 | linux,code = <3>; | |
67 | }; | |
68 | ||
69 | key_3 { | |
70 | keypad,row = <0>; | |
71 | keypad,column = <5>; | |
72 | linux,code = <4>; | |
73 | }; | |
74 | }; |