186ea5e6bSStephen BoydQualcomm PM8xxx PMIC Keypad 286ea5e6bSStephen Boyd 386ea5e6bSStephen BoydPROPERTIES 486ea5e6bSStephen Boyd 586ea5e6bSStephen Boyd- compatible: 686ea5e6bSStephen Boyd Usage: required 786ea5e6bSStephen Boyd Value type: <string> 886ea5e6bSStephen Boyd Definition: must be one of: 986ea5e6bSStephen Boyd "qcom,pm8058-keypad" 1086ea5e6bSStephen Boyd "qcom,pm8921-keypad" 1186ea5e6bSStephen Boyd 1286ea5e6bSStephen Boyd- reg: 1386ea5e6bSStephen Boyd Usage: required 1486ea5e6bSStephen Boyd Value type: <prop-encoded-array> 1586ea5e6bSStephen Boyd Definition: address of keypad control register 1686ea5e6bSStephen Boyd 1786ea5e6bSStephen Boyd- interrupts: 1886ea5e6bSStephen Boyd Usage: required 1986ea5e6bSStephen Boyd Value type: <prop-encoded-array> 2086ea5e6bSStephen Boyd Definition: the first interrupt specifies the key sense interrupt 2186ea5e6bSStephen Boyd and the second interrupt specifies the key stuck interrupt. 2286ea5e6bSStephen Boyd The format of the specifier is defined by the binding 2386ea5e6bSStephen Boyd document describing the node's interrupt parent. 2486ea5e6bSStephen Boyd 2586ea5e6bSStephen Boyd- linux,keymap: 2686ea5e6bSStephen Boyd Usage: required 2786ea5e6bSStephen Boyd Value type: <prop-encoded-array> 2886ea5e6bSStephen Boyd Definition: the linux keymap. More information can be found in 2986ea5e6bSStephen Boyd input/matrix-keymap.txt. 3086ea5e6bSStephen Boyd 3186ea5e6bSStephen Boyd- linux,keypad-no-autorepeat: 3286ea5e6bSStephen Boyd Usage: optional 3386ea5e6bSStephen Boyd Value type: <bool> 3486ea5e6bSStephen Boyd Definition: don't enable autorepeat feature. 3586ea5e6bSStephen Boyd 3627469652SDmitry Torokhov- wakeup-source: 3786ea5e6bSStephen Boyd Usage: optional 3886ea5e6bSStephen Boyd Value type: <bool> 3986ea5e6bSStephen Boyd Definition: use any event on keypad as wakeup event. 40*71a0151cSSudeep Holla (Legacy property supported: "linux,keypad-wakeup") 4186ea5e6bSStephen Boyd 4286ea5e6bSStephen Boyd- keypad,num-rows: 4386ea5e6bSStephen Boyd Usage: required 4486ea5e6bSStephen Boyd Value type: <u32> 4586ea5e6bSStephen Boyd Definition: number of rows in the keymap. More information can be found 4686ea5e6bSStephen Boyd in input/matrix-keymap.txt. 4786ea5e6bSStephen Boyd 4886ea5e6bSStephen Boyd- keypad,num-columns: 4986ea5e6bSStephen Boyd Usage: required 5086ea5e6bSStephen Boyd Value type: <u32> 5186ea5e6bSStephen Boyd Definition: number of columns in the keymap. More information can be 5286ea5e6bSStephen Boyd found in input/matrix-keymap.txt. 5386ea5e6bSStephen Boyd 5486ea5e6bSStephen Boyd- debounce: 5586ea5e6bSStephen Boyd Usage: optional 5686ea5e6bSStephen Boyd Value type: <u32> 5786ea5e6bSStephen Boyd Definition: time in microseconds that key must be pressed or release 5886ea5e6bSStephen Boyd for key sense interrupt to trigger. 5986ea5e6bSStephen Boyd 6086ea5e6bSStephen Boyd- scan-delay: 6186ea5e6bSStephen Boyd Usage: optional 6286ea5e6bSStephen Boyd Value type: <u32> 6386ea5e6bSStephen Boyd Definition: time in microseconds to pause between successive scans 6486ea5e6bSStephen Boyd of the matrix array. 6586ea5e6bSStephen Boyd 6686ea5e6bSStephen Boyd- row-hold: 6786ea5e6bSStephen Boyd Usage: optional 6886ea5e6bSStephen Boyd Value type: <u32> 6986ea5e6bSStephen Boyd Definition: time in nanoseconds to pause between scans of each row in 7086ea5e6bSStephen Boyd the matrix array. 7186ea5e6bSStephen Boyd 7286ea5e6bSStephen BoydEXAMPLE 7386ea5e6bSStephen Boyd 7486ea5e6bSStephen Boyd keypad@148 { 7586ea5e6bSStephen Boyd compatible = "qcom,pm8921-keypad"; 7686ea5e6bSStephen Boyd reg = <0x148>; 7786ea5e6bSStephen Boyd interrupt-parent = <&pmicintc>; 7886ea5e6bSStephen Boyd interrupts = <74 1>, <75 1>; 7986ea5e6bSStephen Boyd linux,keymap = < 8086ea5e6bSStephen Boyd MATRIX_KEY(0, 0, KEY_VOLUMEUP) 8186ea5e6bSStephen Boyd MATRIX_KEY(0, 1, KEY_VOLUMEDOWN) 8286ea5e6bSStephen Boyd MATRIX_KEY(0, 2, KEY_CAMERA_FOCUS) 8386ea5e6bSStephen Boyd MATRIX_KEY(0, 3, KEY_CAMERA) 8486ea5e6bSStephen Boyd >; 8586ea5e6bSStephen Boyd keypad,num-rows = <1>; 8686ea5e6bSStephen Boyd keypad,num-columns = <5>; 8786ea5e6bSStephen Boyd debounce = <15>; 8886ea5e6bSStephen Boyd scan-delay = <32>; 8986ea5e6bSStephen Boyd row-hold = <91500>; 9086ea5e6bSStephen Boyd }; 91