xref: /linux/Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt (revision 4a83eecff65bd327bf5cb3b400b96fa975c73308)
1*4a83eecfSAnilKumar Ch* GPIO driven matrix keypad device tree bindings
2*4a83eecfSAnilKumar Ch
3*4a83eecfSAnilKumar ChGPIO driven matrix keypad is used to interface a SoC with a matrix keypad.
4*4a83eecfSAnilKumar ChThe matrix keypad supports multiple row and column lines, a key can be
5*4a83eecfSAnilKumar Chplaced at each intersection of a unique row and a unique column. The matrix
6*4a83eecfSAnilKumar Chkeypad can sense a key-press and key-release by means of GPIO lines and
7*4a83eecfSAnilKumar Chreport the event using GPIO interrupts to the cpu.
8*4a83eecfSAnilKumar Ch
9*4a83eecfSAnilKumar ChRequired Properties:
10*4a83eecfSAnilKumar Ch- compatible:		Should be "gpio-matrix-keypad"
11*4a83eecfSAnilKumar Ch- row-gpios:		List of gpios used as row lines. The gpio specifier
12*4a83eecfSAnilKumar Ch			for this property depends on the gpio controller to
13*4a83eecfSAnilKumar Ch			which these row lines are connected.
14*4a83eecfSAnilKumar Ch- col-gpios:		List of gpios used as column lines. The gpio specifier
15*4a83eecfSAnilKumar Ch			for this property depends on the gpio controller to
16*4a83eecfSAnilKumar Ch			which these column lines are connected.
17*4a83eecfSAnilKumar Ch- linux,keymap:		The definition can be found at
18*4a83eecfSAnilKumar Ch			bindings/input/matrix-keymap.txt
19*4a83eecfSAnilKumar Ch
20*4a83eecfSAnilKumar ChOptional Properties:
21*4a83eecfSAnilKumar Ch- linux,no-autorepeat:	do no enable autorepeat feature.
22*4a83eecfSAnilKumar Ch- linux,wakeup:		use any event on keypad as wakeup event.
23*4a83eecfSAnilKumar Ch- debounce-delay-ms:	debounce interval in milliseconds
24*4a83eecfSAnilKumar Ch- col-scan-delay-us:	delay, measured in microseconds, that is needed
25*4a83eecfSAnilKumar Ch			before we can scan keypad after activating column gpio
26*4a83eecfSAnilKumar Ch
27*4a83eecfSAnilKumar ChExample:
28*4a83eecfSAnilKumar Ch	matrix-keypad {
29*4a83eecfSAnilKumar Ch		compatible = "gpio-matrix-keypad";
30*4a83eecfSAnilKumar Ch		debounce-delay-ms = <5>;
31*4a83eecfSAnilKumar Ch		col-scan-delay-us = <2>;
32*4a83eecfSAnilKumar Ch
33*4a83eecfSAnilKumar Ch		row-gpios = <&gpio2 25 0
34*4a83eecfSAnilKumar Ch			     &gpio2 26 0
35*4a83eecfSAnilKumar Ch			     &gpio2 27 0>;
36*4a83eecfSAnilKumar Ch
37*4a83eecfSAnilKumar Ch		col-gpios = <&gpio2 21 0
38*4a83eecfSAnilKumar Ch			     &gpio2 22 0>;
39*4a83eecfSAnilKumar Ch
40*4a83eecfSAnilKumar Ch		linux,keymap = <0x0000008B
41*4a83eecfSAnilKumar Ch				0x0100009E
42*4a83eecfSAnilKumar Ch				0x02000069
43*4a83eecfSAnilKumar Ch				0x0001006A
44*4a83eecfSAnilKumar Ch				0x0101001C
45*4a83eecfSAnilKumar Ch				0x0201006C>;
46*4a83eecfSAnilKumar Ch	};
47