xref: /openbmc/linux/Documentation/devicetree/bindings/input/qcom,pm8xxx-keypad.txt (revision e5451c8f8330e03ad3cfa16048b4daf961af434f)
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