hc
2023-10-25 6c2073b7aa40e29d0eca7d571dd7bc590c7ecaa7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
* Freescale i.MX Keypad Port(KPP) device tree bindings
 
The KPP is designed to interface with a keypad matrix with 2-point contact
or 3-point contact keys. The KPP is designed to simplify the software task
of scanning a keypad matrix. The KPP is capable of detecting, debouncing,
and decoding one or multiple keys pressed simultaneously on a keypad.
 
Required SoC Specific Properties:
- compatible: Should be "fsl,<soc>-kpp".
 
- reg: Physical base address of the KPP and length of memory mapped
  region.
 
- interrupts: The KPP interrupt number to the CPU(s).
 
- clocks: The clock provided by the SoC to the KPP. Some SoCs use dummy
clock(The clock for the KPP is provided by the SoCs automatically).
 
Required Board Specific Properties:
- pinctrl-names: The definition can be found at
pinctrl/pinctrl-bindings.txt.
 
- pinctrl-0: The definition can be found at
pinctrl/pinctrl-bindings.txt.
 
- linux,keymap: The definition can be found at
bindings/input/matrix-keymap.txt.
 
Example:
kpp: kpp@73f94000 {
   compatible = "fsl,imx51-kpp", "fsl,imx21-kpp";
   reg = <0x73f94000 0x4000>;
   interrupts = <60>;
   clocks = <&clks 0>;
   pinctrl-names = "default";
   pinctrl-0 = <&pinctrl_kpp_1>;
   linux,keymap = <0x00000067    /* KEY_UP */
           0x0001006c    /* KEY_DOWN */
           0x00020072    /* KEY_VOLUMEDOWN */
           0x00030066    /* KEY_HOME */
           0x0100006a    /* KEY_RIGHT */
           0x01010069    /* KEY_LEFT */
           0x0102001c    /* KEY_ENTER */
           0x01030073    /* KEY_VOLUMEUP */
           0x02000040    /* KEY_F6 */
           0x02010042    /* KEY_F8 */
           0x02020043    /* KEY_F9 */
           0x02030044    /* KEY_F10 */
           0x0300003b    /* KEY_F1 */
           0x0301003c    /* KEY_F2 */
           0x0302003d    /* KEY_F3 */
           0x03030074>;    /* KEY_POWER */
};