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 | ||
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. | |
31 | ||
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. | |
35 | ||
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. | |
43 | ||
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. | |
47 | ||
48 | ||
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; | |
58 | ||
59 | row-gpios = <&gpx2 0 3 3 0 | |
60 | &gpx2 1 3 3 0>; | |
61 | ||
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>; | |
70 | ||
71 | key_1 { | |
72 | keypad,row = <0>; | |
73 | keypad,column = <3>; | |
74 | linux,code = <2>; | |
75 | }; | |
76 | ||
77 | key_2 { | |
78 | keypad,row = <0>; | |
79 | keypad,column = <4>; | |
80 | linux,code = <3>; | |
81 | }; | |
82 | ||
83 | key_3 { | |
84 | keypad,row = <0>; | |
85 | keypad,column = <5>; | |
86 | linux,code = <4>; | |
87 | }; | |
88 | }; |