Goodix GT9xx series touch controller

Required properties:

 - compatible		: Should be "goodix,gt9xx", compatible with the
			  of_match_table defined in driver.
 - reg			: I2C slave address of the device.
 - interrupt-parent	: Parent of interrupt.
 - interrupts		: Configuration of touch panel  interrupt controller.
 - irq-gpio		: Interrupt gpio which is to provide interrupts to
			  host, same as "interrupts" node.
 - rst-gpio		: Reset gpio to control the reset of chip.

 - irq-flags = <2>;	: 1 for rising edge trigger, 2 for failing edge trigger

Optional properties:

 - vdd_ana-supply	: Power supply needed to power up the device, when use
			  external regulator, do not add this property.

 - vcc_i2c-supply	: Power source required to power up i2c bus.
			  GT9xx series can provide 1.8V from internal
			  LDO, add this properties base on hardware design.
 - pinctrl-names	: Pinctrl related properties, generally this is used
			  for enable irq-gpio output function.
 - touchscreen-max-id	: generally no need to change this value keep the default
			  is OK, if you want support active pen this value must
			  no less then 11.
 - touchscreen-key-map	: Specify the touch panel key code if you want support
			  touch buttons on the device surface.
 - goodix,int-sync	: Set this with 1 if you use non-fixed I2C address.
 - goodix,esd-protect	: Start ESD check function when driver installed.
 - goodix,auto-update-cfg : Update config before firmware update.
 - goodix,power-off-sleep : Power off when enter sleep mode.
 - goodix,pen-suppress-finger : Set to 1 if you want suppress finger touch point
				when there have a pen detected.
 - goodix,cfg-groupX	: Touch screen controller config data group X, where X
			  represent sensor ID.
		 	  Driver supports maximum six config groups. driver
			  will select config group depending on sensor id.

Example:

gt9xx@5d {
	compatible = "goodix,gt9xx";
	reg = <0x5d>; 
	status = "okay";
	interrupt-parent = <&msm_gpio>;
	interrupts = <13 0x2800>;
	pinctrl-names = "default", "int-output-low","int-output-high", "int-input";
	pinctrl-0 = <&ts_int_default>;
	pinctrl-1 = <&ts_int_output_low>;
	pinctrl-2 = <&ts_int_output_high>;
	pinctrl-3 = <&ts_int_input>;

	reset-gpios = <&msm_gpio 12 0x0>;
	irq-gpios = <&msm_gpio 13 0x2800>;
	irq-flags = <2>;

	touchscreen-max-id = <11>;
	touchscreen-size-x = <1080>;
	touchscreen-size-y = <1920>;
	touchscreen-max-w = <512>;
	touchscreen-max-p = <512>;
	touchscreen-key-map = <172>, <158>; /*KEY_HOMEPAGE=172, KEY_BACK=158，KEY_MENU=139*/
	
	goodix,slide-wakeup = <0>;
	goodix,type-a-report = <0>;
	goodix,driver-send-cfg = <0>;
	goodix,resume-in-workqueue = <0>;
	goodix,int-sync = <1>;
	goodix,swap-x2y = <0>;
	goodix,esd-protect = <1>;
	goodix,auto-update-cfg = <0>;
	goodix,power-off-sleep = <0>;
	goodix,pen-suppress-finger = <0>;
	goodix,cfg-group0 = [
		53 D0 02 00 05 05 F5 D5 21 48 2D 0F 5A 41 0E 05 00 00 32 32 20 00 05 14 14 1A 14 8B 2B 00
	];
};

