14a83eecfSAnilKumar Ch* GPIO driven matrix keypad device tree bindings
24a83eecfSAnilKumar Ch
34a83eecfSAnilKumar ChGPIO driven matrix keypad is used to interface a SoC with a matrix keypad.
44a83eecfSAnilKumar ChThe matrix keypad supports multiple row and column lines, a key can be
54a83eecfSAnilKumar Chplaced at each intersection of a unique row and a unique column. The matrix
64a83eecfSAnilKumar Chkeypad can sense a key-press and key-release by means of GPIO lines and
74a83eecfSAnilKumar Chreport the event using GPIO interrupts to the cpu.
84a83eecfSAnilKumar Ch
94a83eecfSAnilKumar ChRequired Properties:
104a83eecfSAnilKumar Ch- compatible:		Should be "gpio-matrix-keypad"
114a83eecfSAnilKumar Ch- row-gpios:		List of gpios used as row lines. The gpio specifier
124a83eecfSAnilKumar Ch			for this property depends on the gpio controller to
134a83eecfSAnilKumar Ch			which these row lines are connected.
144a83eecfSAnilKumar Ch- col-gpios:		List of gpios used as column lines. The gpio specifier
154a83eecfSAnilKumar Ch			for this property depends on the gpio controller to
164a83eecfSAnilKumar Ch			which these column lines are connected.
174a83eecfSAnilKumar Ch- linux,keymap:		The definition can be found at
184a83eecfSAnilKumar Ch			bindings/input/matrix-keymap.txt
194a83eecfSAnilKumar Ch
204a83eecfSAnilKumar ChOptional Properties:
214a83eecfSAnilKumar Ch- linux,no-autorepeat:	do no enable autorepeat feature.
22aeda5003SDmitry Torokhov- wakeup-source:	use any event on keypad as wakeup event.
2371a0151cSSudeep Holla			(Legacy property supported: "linux,wakeup")
244a83eecfSAnilKumar Ch- debounce-delay-ms:	debounce interval in milliseconds
254a83eecfSAnilKumar Ch- col-scan-delay-us:	delay, measured in microseconds, that is needed
264a83eecfSAnilKumar Ch			before we can scan keypad after activating column gpio
27aa0e26bbSDavid Rivshin- drive-inactive-cols:	drive inactive columns during scan,
28aa0e26bbSDavid Rivshin			default is to turn inactive columns into inputs.
294a83eecfSAnilKumar Ch
304a83eecfSAnilKumar ChExample:
314a83eecfSAnilKumar Ch	matrix-keypad {
324a83eecfSAnilKumar Ch		compatible = "gpio-matrix-keypad";
334a83eecfSAnilKumar Ch		debounce-delay-ms = <5>;
344a83eecfSAnilKumar Ch		col-scan-delay-us = <2>;
354a83eecfSAnilKumar Ch
364a83eecfSAnilKumar Ch		row-gpios = <&gpio2 25 0
374a83eecfSAnilKumar Ch			     &gpio2 26 0
384a83eecfSAnilKumar Ch			     &gpio2 27 0>;
394a83eecfSAnilKumar Ch
404a83eecfSAnilKumar Ch		col-gpios = <&gpio2 21 0
414a83eecfSAnilKumar Ch			     &gpio2 22 0>;
424a83eecfSAnilKumar Ch
434a83eecfSAnilKumar Ch		linux,keymap = <0x0000008B
444a83eecfSAnilKumar Ch				0x0100009E
454a83eecfSAnilKumar Ch				0x02000069
464a83eecfSAnilKumar Ch				0x0001006A
474a83eecfSAnilKumar Ch				0x0101001C
484a83eecfSAnilKumar Ch				0x0201006C>;
494a83eecfSAnilKumar Ch	};
50