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