FocalTech touch controller

The focaltech controller is connected to host processor
via i2c. The controller generates interrupts when the
user touches the panel. The host controller is expected
to read the touch coordinates over i2c and pass the coordinates
to the rest of the system.

Required properties:

 - compatible		: should be "focaltech,5x06"
 - reg			: i2c slave address of the device
 - interrupt-parent	: parent of interrupt
 - interrupts		: touch sample interrupt to indicate presense or release
				of fingers on the panel.
 - vdd-supply		: Power supply needed to power up the device
 - vcc_i2c-supply	: Power source required to power up i2c bus
 - focaltech,family-id	: family identification of the controller
 - focaltech,irq-gpio	: irq gpio which is to provide interrupts to host,
				same as "interrupts" node. It will also
				contain active low or active high information.
 - focaltech,reset-gpio	: reset gpio to control the reset of chip
 - focaltech,display-coords : display coordinates in pixels. It is a four
				tuple consisting of min x, min y, max x and
				max y values
 - focaltech,group-id	: group id of this device
 - focaltech,num-max-touches	 : maximum number of touches supported
 - focaltech,hard-reset-delay-ms : hard reset delay in ms
 - focaltech,soft-reset-delay-ms : soft reset delay in ms
 - focaltech,fw-delay-aa-ms : specify the delay in ms after programming 0xaa
				register for firmware upgrade
 - focaltech,fw-delay-55-ms : specify the delay in ms after programming 0x55
				register for firmware upgrade
 - focaltech,fw-upgrade-id1 : specify the upgrade id1 for firmware upgrade
 - focaltech,fw-upgrade-id2 : specify the upgrade id2 for firmware upgrade
 - focaltech,fw-delay-readid-ms : specify the read id delay in ms for firmware upgrade
 - focaltech,fw-delay-era-flsh-ms : specify the erase flash delay in ms for firmware upgrade

Optional properties:

 - focaltech,name	: name of the controller
 - focaltech,i2c-pull-up : to specify pull up is required
 - focaltech,no-force-update : to specify force update is allowed
 - focaltech,button-map : button map of key codes. The number
 - focaltech,fw-vkey-support	: specify if virtual keys are supported through firmware
				of key codes depend on panel
 - focaltech,fw-auto-cal	: specify whether calibration is needed after firmware upgrade
 - focaltech,fw-vkey-support	: specify if virtual keys are supported through firmware
 - focaltech,ignore-id-check : specify ignore family-id check
 - focaltech,panel-coords : panel coordinates for the chip in pixels.
				It is a four tuple consisting of min x,
				min y, max x and max y values
 - focaltech,fw-name	: specify the firmware file name

Example:
	i2c@f9923000{
		focaltech@38{
			compatible = "focaltech,5x06";
			reg = <0x38>;
			interrupt-parent = <&msmgpio>;
			interrupts = <1 0x2>;
			vdd-supply = <&pm8110_l19>;
			vcc_i2c-supply = <&pm8110_l14>;
			focaltech,name = "ft6x06";
			focaltech,family-id = <0x06>;
			focaltech,reset-gpio = <&msmgpio 0 0x00>;
			focaltech,irq-gpio = <&msmgpio 1 0x00>;
			focaltech,display-coords = <0 0 480 800>;
			focaltech,panel-coords = <0 0 480 800>;
			focaltech,button-map= <139 102 158>;
			focaltech,no-force-update;
			focaltech,i2c-pull-up;
			focaltech,group-id = <1>;
			focaltech,hard-reset-delay = <20>;
			focaltech,soft-reset-delay = <150>;
			focaltech,num-max-touches = <2>;
			focaltech,fw-name = "ft_8610_qrd_fw.bin";
			focaltech,fw-delay-aa-ms = <100>;
			focaltech,fw-delay-55-ms = <30>;
			focaltech,fw-upgrade-id1 = <0x79>;
			focaltech,fw-upgrade-id2 = <0x08>;
			focaltech,fw-delay-readid-ms = <10>;
			focaltech,fw-delay-era-flsh-ms = <2000>;
			focaltech,fw-auto-cal;
		};
	};
