18c2ecf20Sopenharmony_ciQualcomm PM8xxx PMIC Keypad
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciPROPERTIES
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci- compatible:
68c2ecf20Sopenharmony_ci	Usage: required
78c2ecf20Sopenharmony_ci	Value type: <string>
88c2ecf20Sopenharmony_ci	Definition: must be one of:
98c2ecf20Sopenharmony_ci		    "qcom,pm8058-keypad"
108c2ecf20Sopenharmony_ci		    "qcom,pm8921-keypad"
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci- reg:
138c2ecf20Sopenharmony_ci	Usage: required
148c2ecf20Sopenharmony_ci	Value type: <prop-encoded-array>
158c2ecf20Sopenharmony_ci	Definition: address of keypad control register
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci- interrupts:
188c2ecf20Sopenharmony_ci	Usage: required
198c2ecf20Sopenharmony_ci	Value type: <prop-encoded-array>
208c2ecf20Sopenharmony_ci	Definition: the first interrupt specifies the key sense interrupt
218c2ecf20Sopenharmony_ci		    and the second interrupt specifies the key stuck interrupt.
228c2ecf20Sopenharmony_ci		    The format of the specifier is defined by the binding
238c2ecf20Sopenharmony_ci		    document describing the node's interrupt parent.
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci- linux,keymap:
268c2ecf20Sopenharmony_ci	Usage: required
278c2ecf20Sopenharmony_ci	Value type: <prop-encoded-array>
288c2ecf20Sopenharmony_ci	Definition: the linux keymap. More information can be found in
298c2ecf20Sopenharmony_ci		    input/matrix-keymap.txt.
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci- linux,keypad-no-autorepeat:
328c2ecf20Sopenharmony_ci	Usage: optional
338c2ecf20Sopenharmony_ci	Value type: <bool>
348c2ecf20Sopenharmony_ci	Definition: don't enable autorepeat feature.
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci- wakeup-source:
378c2ecf20Sopenharmony_ci	Usage: optional
388c2ecf20Sopenharmony_ci	Value type: <bool>
398c2ecf20Sopenharmony_ci	Definition: use any event on keypad as wakeup event.
408c2ecf20Sopenharmony_ci		    (Legacy property supported: "linux,keypad-wakeup")
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci- keypad,num-rows:
438c2ecf20Sopenharmony_ci	Usage: required
448c2ecf20Sopenharmony_ci	Value type: <u32>
458c2ecf20Sopenharmony_ci	Definition: number of rows in the keymap. More information can be found
468c2ecf20Sopenharmony_ci		    in input/matrix-keymap.txt.
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci- keypad,num-columns:
498c2ecf20Sopenharmony_ci	Usage: required
508c2ecf20Sopenharmony_ci	Value type: <u32>
518c2ecf20Sopenharmony_ci	Definition: number of columns in the keymap. More information can be
528c2ecf20Sopenharmony_ci		    found in input/matrix-keymap.txt.
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci- debounce:
558c2ecf20Sopenharmony_ci	Usage: optional
568c2ecf20Sopenharmony_ci	Value type: <u32>
578c2ecf20Sopenharmony_ci	Definition: time in microseconds that key must be pressed or release
588c2ecf20Sopenharmony_ci		    for key sense interrupt to trigger.
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ci- scan-delay:
618c2ecf20Sopenharmony_ci	Usage: optional
628c2ecf20Sopenharmony_ci	Value type: <u32>
638c2ecf20Sopenharmony_ci	Definition: time in microseconds to pause between successive scans
648c2ecf20Sopenharmony_ci		    of the matrix array.
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci- row-hold:
678c2ecf20Sopenharmony_ci	Usage: optional
688c2ecf20Sopenharmony_ci	Value type: <u32>
698c2ecf20Sopenharmony_ci	Definition: time in nanoseconds to pause between scans of each row in
708c2ecf20Sopenharmony_ci		    the matrix array.
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ciEXAMPLE
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ci	keypad@148 {
758c2ecf20Sopenharmony_ci		compatible = "qcom,pm8921-keypad";
768c2ecf20Sopenharmony_ci		reg = <0x148>;
778c2ecf20Sopenharmony_ci		interrupt-parent = <&pmicintc>;
788c2ecf20Sopenharmony_ci		interrupts = <74 1>, <75 1>;
798c2ecf20Sopenharmony_ci		linux,keymap = <
808c2ecf20Sopenharmony_ci			MATRIX_KEY(0, 0, KEY_VOLUMEUP)
818c2ecf20Sopenharmony_ci			MATRIX_KEY(0, 1, KEY_VOLUMEDOWN)
828c2ecf20Sopenharmony_ci			MATRIX_KEY(0, 2, KEY_CAMERA_FOCUS)
838c2ecf20Sopenharmony_ci			MATRIX_KEY(0, 3, KEY_CAMERA)
848c2ecf20Sopenharmony_ci			>;
858c2ecf20Sopenharmony_ci		keypad,num-rows = <1>;
868c2ecf20Sopenharmony_ci		keypad,num-columns = <5>;
878c2ecf20Sopenharmony_ci		debounce = <15>;
888c2ecf20Sopenharmony_ci		scan-delay = <32>;
898c2ecf20Sopenharmony_ci		row-hold = <91500>;
908c2ecf20Sopenharmony_ci	};
91