Re: [PATCH v4 7/9] devicetree: bindings: Document PM8921/8058 keypads

Josh Cartwright
2014-02-28T13:58:10Z

On Thu, Feb 27, 2014 at 05:55:18PM -0800, Stephen Boyd wrote:
> Document the keypad device found on PM8921 and PM8058 PMICs.
[..]
> +++ b/Documentation/devicetree/bindings/input/qcom,pm8xxx-keypad.txt
> @@ -0,0 +1,72 @@
> +Qualcomm PM8xxx PMIC Keypad
> +
> +PROPERTIES
> +
> +- compatible:
> + Usage: required
> + Value type: <string>
> + Definition: must be one of:
> + "qcom,pm8058-keypad"
> + "qcom,pm8921-keypad"
> +- interrupts:
> + Usage: required
> + Value type: <prop-encoded-array>
> + Definition: the first interrupt specifies the key sense interrupt
> + and the second interrupt specifies the key stuck interrupt.
> + The format of the specifier is defined by the binding
> + document describing the node's interrupt parent.
> +
> +- linux,keymap:
> + Usage: required
> + Value type: <prop-encoded-array>
> + Definition: the linux keymap. More information can be found in
> + input/matrix-keymap.txt.
> +
> +- keypad,num-rows:
> + Usage: required
> + Value type: <u32>
> + Definition: number of rows in the keymap. More information can be found
> + in input/matrix-keymap.txt.
> +
> +- keypad,num-columns:
> + Usage: required
> + Value type: <u32>
> + Definition: number of columns in the keymap. More information can be
> + found in input/matrix-keymap.txt.
> +
> +- debounce:
> + Usage: optional
> + Value type: <u32>
> + Definition: time in microseconds that key must be pressed or release
> + for key sense interrupt to trigger.
> +
> +- scan-delay:
> + Usage: optional
> + Value type: <u32>
> + Definition: time in microseconds to pause between successive scans
> + of the matrix array.
> +
> +- row-hold:
> + Usage: optional
> + Value type: <u32>
> + Definition: time in nanoseconds to pause between scans of each row in
> + the matrix array.

- linux,wakeup?
- linux,no-auto-repeat?

> +
> +EXAMPLE
> +
> + keypad {
> + compatible = "qcom,pm8921-keypad";
> + interrupt-parent = <&pmicintc>;
> + interrupts = <74 1>, <75 1>;
> + linux,keymap = <
> + MATRIX_KEY(0, 0, KEY_VOLUMEUP)
> + MATRIX_KEY(0, 1, KEY_VOLUMEDOWN)
> + MATRIX_KEY(0, 2, KEY_CAMERA_FOCUS)
> + MATRIX_KEY(0, 3, KEY_CAMERA)
> + >;
> + keypad,num-rows = <1>;
> + keypad,num-columns = <5>;
> + debounce = <15>;
> + scan-delay = <32>;
> + row-hold = <91500>;
> + };

It odd to me that these newly created bindings don't have 'reg'
properties, even though the device clearly has a register region.

I suppose it makes sense from a "port over from platform data to DT"
perspective, as these drivers have just assumed the location of their
registers to be fixed; however I suspect things will need to be changed
if/when we hope to share these drivers with pm8841/pm8941 and beyond...

--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,