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-cols:	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:
- keypad,active-high:
			Let the driver know that buttons are active high. Default is
			active low. This is a boolean property.
- keypad,skip-rows: Gpios that can be configured as drive but are not part of
			the scan matrix keypad and might be used as something else. It is
			an array that can addresses each row by the row number, starting
			from 0 upto max keypad,num-rows - 1.
- keypad,skip-cols: Gpios that can be configured as sense lines but are not part of
			the scan matrix keypad and might be used as something else. It is
			an array that can addresses each col by the col number, starting
			from 0 upto max keypad,num-columns - 1.
- 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>;
	}
