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