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