162306a36Sopenharmony_ciQualcomm PM8xxx PMIC Keypad
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciPROPERTIES
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci- compatible:
662306a36Sopenharmony_ci	Usage: required
762306a36Sopenharmony_ci	Value type: <string>
862306a36Sopenharmony_ci	Definition: must be one of:
962306a36Sopenharmony_ci		    "qcom,pm8058-keypad"
1062306a36Sopenharmony_ci		    "qcom,pm8921-keypad"
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci- reg:
1362306a36Sopenharmony_ci	Usage: required
1462306a36Sopenharmony_ci	Value type: <prop-encoded-array>
1562306a36Sopenharmony_ci	Definition: address of keypad control register
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci- interrupts:
1862306a36Sopenharmony_ci	Usage: required
1962306a36Sopenharmony_ci	Value type: <prop-encoded-array>
2062306a36Sopenharmony_ci	Definition: the first interrupt specifies the key sense interrupt
2162306a36Sopenharmony_ci		    and the second interrupt specifies the key stuck interrupt.
2262306a36Sopenharmony_ci		    The format of the specifier is defined by the binding
2362306a36Sopenharmony_ci		    document describing the node's interrupt parent.
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci- linux,keymap:
2662306a36Sopenharmony_ci	Usage: required
2762306a36Sopenharmony_ci	Value type: <prop-encoded-array>
2862306a36Sopenharmony_ci	Definition: the linux keymap. More information can be found in
2962306a36Sopenharmony_ci		    input/matrix-keymap.txt.
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci- linux,keypad-no-autorepeat:
3262306a36Sopenharmony_ci	Usage: optional
3362306a36Sopenharmony_ci	Value type: <bool>
3462306a36Sopenharmony_ci	Definition: don't enable autorepeat feature.
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci- wakeup-source:
3762306a36Sopenharmony_ci	Usage: optional
3862306a36Sopenharmony_ci	Value type: <bool>
3962306a36Sopenharmony_ci	Definition: use any event on keypad as wakeup event.
4062306a36Sopenharmony_ci		    (Legacy property supported: "linux,keypad-wakeup")
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci- keypad,num-rows:
4362306a36Sopenharmony_ci	Usage: required
4462306a36Sopenharmony_ci	Value type: <u32>
4562306a36Sopenharmony_ci	Definition: number of rows in the keymap. More information can be found
4662306a36Sopenharmony_ci		    in input/matrix-keymap.txt.
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci- keypad,num-columns:
4962306a36Sopenharmony_ci	Usage: required
5062306a36Sopenharmony_ci	Value type: <u32>
5162306a36Sopenharmony_ci	Definition: number of columns in the keymap. More information can be
5262306a36Sopenharmony_ci		    found in input/matrix-keymap.txt.
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci- debounce:
5562306a36Sopenharmony_ci	Usage: optional
5662306a36Sopenharmony_ci	Value type: <u32>
5762306a36Sopenharmony_ci	Definition: time in microseconds that key must be pressed or release
5862306a36Sopenharmony_ci		    for key sense interrupt to trigger.
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci- scan-delay:
6162306a36Sopenharmony_ci	Usage: optional
6262306a36Sopenharmony_ci	Value type: <u32>
6362306a36Sopenharmony_ci	Definition: time in microseconds to pause between successive scans
6462306a36Sopenharmony_ci		    of the matrix array.
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci- row-hold:
6762306a36Sopenharmony_ci	Usage: optional
6862306a36Sopenharmony_ci	Value type: <u32>
6962306a36Sopenharmony_ci	Definition: time in nanoseconds to pause between scans of each row in
7062306a36Sopenharmony_ci		    the matrix array.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ciEXAMPLE
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci	keypad@148 {
7562306a36Sopenharmony_ci		compatible = "qcom,pm8921-keypad";
7662306a36Sopenharmony_ci		reg = <0x148>;
7762306a36Sopenharmony_ci		interrupt-parent = <&pmicintc>;
7862306a36Sopenharmony_ci		interrupts = <74 1>, <75 1>;
7962306a36Sopenharmony_ci		linux,keymap = <
8062306a36Sopenharmony_ci			MATRIX_KEY(0, 0, KEY_VOLUMEUP)
8162306a36Sopenharmony_ci			MATRIX_KEY(0, 1, KEY_VOLUMEDOWN)
8262306a36Sopenharmony_ci			MATRIX_KEY(0, 2, KEY_CAMERA_FOCUS)
8362306a36Sopenharmony_ci			MATRIX_KEY(0, 3, KEY_CAMERA)
8462306a36Sopenharmony_ci			>;
8562306a36Sopenharmony_ci		keypad,num-rows = <1>;
8662306a36Sopenharmony_ci		keypad,num-columns = <5>;
8762306a36Sopenharmony_ci		debounce = <15>;
8862306a36Sopenharmony_ci		scan-delay = <32>;
8962306a36Sopenharmony_ci		row-hold = <91500>;
9062306a36Sopenharmony_ci	};
91