1*4882a593SmuzhiyunQualcomm PM8xxx PMIC Keypad 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunPROPERTIES 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun- compatible: 6*4882a593Smuzhiyun Usage: required 7*4882a593Smuzhiyun Value type: <string> 8*4882a593Smuzhiyun Definition: must be one of: 9*4882a593Smuzhiyun "qcom,pm8058-keypad" 10*4882a593Smuzhiyun "qcom,pm8921-keypad" 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun- reg: 13*4882a593Smuzhiyun Usage: required 14*4882a593Smuzhiyun Value type: <prop-encoded-array> 15*4882a593Smuzhiyun Definition: address of keypad control register 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun- interrupts: 18*4882a593Smuzhiyun Usage: required 19*4882a593Smuzhiyun Value type: <prop-encoded-array> 20*4882a593Smuzhiyun Definition: the first interrupt specifies the key sense interrupt 21*4882a593Smuzhiyun and the second interrupt specifies the key stuck interrupt. 22*4882a593Smuzhiyun The format of the specifier is defined by the binding 23*4882a593Smuzhiyun document describing the node's interrupt parent. 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun- linux,keymap: 26*4882a593Smuzhiyun Usage: required 27*4882a593Smuzhiyun Value type: <prop-encoded-array> 28*4882a593Smuzhiyun Definition: the linux keymap. More information can be found in 29*4882a593Smuzhiyun input/matrix-keymap.txt. 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun- linux,keypad-no-autorepeat: 32*4882a593Smuzhiyun Usage: optional 33*4882a593Smuzhiyun Value type: <bool> 34*4882a593Smuzhiyun Definition: don't enable autorepeat feature. 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun- wakeup-source: 37*4882a593Smuzhiyun Usage: optional 38*4882a593Smuzhiyun Value type: <bool> 39*4882a593Smuzhiyun Definition: use any event on keypad as wakeup event. 40*4882a593Smuzhiyun (Legacy property supported: "linux,keypad-wakeup") 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun- keypad,num-rows: 43*4882a593Smuzhiyun Usage: required 44*4882a593Smuzhiyun Value type: <u32> 45*4882a593Smuzhiyun Definition: number of rows in the keymap. More information can be found 46*4882a593Smuzhiyun in input/matrix-keymap.txt. 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun- keypad,num-columns: 49*4882a593Smuzhiyun Usage: required 50*4882a593Smuzhiyun Value type: <u32> 51*4882a593Smuzhiyun Definition: number of columns in the keymap. More information can be 52*4882a593Smuzhiyun found in input/matrix-keymap.txt. 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun- debounce: 55*4882a593Smuzhiyun Usage: optional 56*4882a593Smuzhiyun Value type: <u32> 57*4882a593Smuzhiyun Definition: time in microseconds that key must be pressed or release 58*4882a593Smuzhiyun for key sense interrupt to trigger. 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun- scan-delay: 61*4882a593Smuzhiyun Usage: optional 62*4882a593Smuzhiyun Value type: <u32> 63*4882a593Smuzhiyun Definition: time in microseconds to pause between successive scans 64*4882a593Smuzhiyun of the matrix array. 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun- row-hold: 67*4882a593Smuzhiyun Usage: optional 68*4882a593Smuzhiyun Value type: <u32> 69*4882a593Smuzhiyun Definition: time in nanoseconds to pause between scans of each row in 70*4882a593Smuzhiyun the matrix array. 71*4882a593Smuzhiyun 72*4882a593SmuzhiyunEXAMPLE 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun keypad@148 { 75*4882a593Smuzhiyun compatible = "qcom,pm8921-keypad"; 76*4882a593Smuzhiyun reg = <0x148>; 77*4882a593Smuzhiyun interrupt-parent = <&pmicintc>; 78*4882a593Smuzhiyun interrupts = <74 1>, <75 1>; 79*4882a593Smuzhiyun linux,keymap = < 80*4882a593Smuzhiyun MATRIX_KEY(0, 0, KEY_VOLUMEUP) 81*4882a593Smuzhiyun MATRIX_KEY(0, 1, KEY_VOLUMEDOWN) 82*4882a593Smuzhiyun MATRIX_KEY(0, 2, KEY_CAMERA_FOCUS) 83*4882a593Smuzhiyun MATRIX_KEY(0, 3, KEY_CAMERA) 84*4882a593Smuzhiyun >; 85*4882a593Smuzhiyun keypad,num-rows = <1>; 86*4882a593Smuzhiyun keypad,num-columns = <5>; 87*4882a593Smuzhiyun debounce = <15>; 88*4882a593Smuzhiyun scan-delay = <32>; 89*4882a593Smuzhiyun row-hold = <91500>; 90*4882a593Smuzhiyun }; 91