Qualcomm QPNP keypad controller

The qpnp-keypad driver supports the PMIC keypad controller module
in the Qualcomm PMICs. This controller supports 10 x 8 (row x col)
configuration and is connected to the host processor on the
SPMI interface.

Required properties:
- compatible:		Must be "qcom,qpnp-keypad"
- reg:			Specifies the SPMI address and size for the keypad controller
- interrupts:		Specifies the interrupt associated with keypad controller
- interrupt-names: 	The names of the 2 interrupts assocaited with the keypad
			controller. They are - "kp-sense" and "kp-stuck".
- keypad,num-rows:	Number of rows used in the keypad configuration. These
			rows are the number of PMIC gpios configured as drive
			lines. Possible values: Max = 10, Min = 2.
- keypad,num-columns:	Number of columns used in the keypad configuration. These
			cols are number of PMIC gpios configured as sense lines.
			Possible values: Max = 8, Min = 1.
- linux,keymap:		Row-column-keycode mapping. It is an array of packed
			entries containing the equivalent of row, column and
			linux key-code. Each value represented as
			(row << 24 | column << 16 | key-code)

Optional Properties:
- qcom,scan-delay-ms:	Wait time in milliseconds before each keypad scan.
			This is used to determine if the key has been stuck.
			Possible values: 1, 2, 4, 8, 16, 32, 64, 128ms.
- qcom,row-hold-ns:	Wait time in nanoseconds between each row assertion.
			Configured based on last-row scan delay.
			Possible values: 31250, 62500, 125000, 250000ns.
- qcom,debounce-ms:	Wait time in milliseconds before the column data is
			sampled for key	press detection.
			Possible values: 5, 10, 15, 20ms.
- qcom,wakeup:		Configure the keypad as a wakeup source. This is a
			boolean property.
- linux,keypad-no-autorepeat:
			Disables the auto-repeat feature for the keys. This
			is a boolean property.

Example:

	qcom,keypad@a800 {
		compatible = "qcom,qpnp-keypad";
		reg = <0xA800 0x100>;
		interrupts = <0x1 0xA8 0x0>,
			     <0x1 0xA8 0x1>;
		interrupt-names = "kp-sense", "kp-stuck";
		keypad,num-rows = <2>;
		keypad,num-cols = <2>;
		qcom,scan-delay-ms = <128>;
		qcom,row-hold-ns = <31250>;
		qcom,debounce-ms = <20>;
		qcom,wakeup;
		linux,keymap = <0x00000001 0x00010002
			       0x01000003 0x01010004>;
	}
