Device tree bindings for Microchip CAP11xx based capacitive touch sensors

The node for this device must be a child of a I2C controller node, as the
device communication via I2C only.

Required properties:

	compatible:		Must contain one of:
					"microchip,cap1106"
					"microchip,cap1126"
					"microchip,cap1188"

	reg:			The I2C slave address of the device.

	interrupts:		Property describing the interrupt line the
				device's ALERT#/CM_IRQ# pin is connected to.
				The device only has one interrupt source.

Optional properties:

	autorepeat:		Enables the Linux input system's autorepeat
				feature on the input device.

	microchip,sensor-gain:	Defines the gain of the sensor circuitry. This
				effectively controls the sensitivity, as a
				smaller delta capacitance is required to
				generate the same delta count values.
				Valid values are 1, 2, 4, and 8.
				By default, a gain of 1 is set.

	microchip,irq-active-high:	By default the interrupt pin is active low
				open drain. This property allows using the active
				high push-pull output.

	linux,keycodes:		Specifies an array of numeric keycode values to
				be used for the channels. If this property is
				omitted, KEY_A, KEY_B, etc are used as
				defaults. The array must have exactly six
				entries.

Example:

i2c_controller {
	cap1106@28 {
		compatible = "microchip,cap1106";
		interrupt-parent = <&gpio1>;
		interrupts = <0 0>;
		reg = <0x28>;
		autorepeat;
		microchip,sensor-gain = <2>;

		linux,keycodes = <103>,		/* KEY_UP */
				 <106>,		/* KEY_RIGHT */
				 <108>,		/* KEY_DOWN */
				 <105>,		/* KEY_LEFT */
				 <109>,		/* KEY_PAGEDOWN */
				 <104>;		/* KEY_PAGEUP */

		#address-cells = <1>;
		#size-cells = <0>;

		usr@0 {
			label = "cap11xx:green:usr0";
			reg = <0>;
		};

		usr@1 {
			label = "cap11xx:green:usr1";
			reg = <1>;
		};

		alive@2 {
			label = "cap11xx:green:alive";
			reg = <2>;
			linux,default_trigger = "heartbeat";
		};
	};
}
