Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ae53ed6f authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "input: touchscreen: ft5x06: fix firmware force update issue"

parents f1157c77 a8578953
Loading
Loading
Loading
Loading
+41 −12
Original line number Diff line number Diff line
@@ -22,7 +22,11 @@ Required properties:
 - 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.
				max y values
 - focaltech,name	: name of the controller
 - focaltech,group-id	: group id of this device
 - focaltech,hard-reset-delay-ms : hard reset delay in ms
 - focaltech,soft-reset-delay-ms : soft reset delay in ms

Optional properties:

@@ -32,22 +36,47 @@ Optional properties:
 - 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
				of key codes depend on panel.
				of key codes depend on panel
 - focaltech,fw-name	: specify the firmware file name
 - focaltech,fw-delay-aa-ms : specify the "aa" delay in ms for firmware upgrade
 - focaltech,fw-delay-55-ms : specify the "55" delay in ms 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
 - 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

Example:
	i2c@f9924000 {
		ft5x06_ts@38 {
	i2c@f9923000{
		focaltech@38{
			compatible = "focaltech,5x06";
			reg = <0x38>;
			interrupt-parent = <&msmgpio>;
			interrupts = <61 0x2>;
			vdd-supply = <&pm8941_l22>;
			vcc_i2c-supply = <&pm8941_s3>;
			focaltech,reset-gpio = <&msmgpio 60 0x00>;
			focaltech,irq-gpio = <&msmgpio 61 0x00>;
			focaltech,panel-coords = <0 0 480 800>;
			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,button-map= <158 102 139 217>;
			focaltech,family-id = <0x0a>;
			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;
		};
	};
+402 −252

File changed.

Preview size limit exceeded, changes collapsed.

+19 −0
Original line number Diff line number Diff line
@@ -23,7 +23,20 @@
#define FT5X36_ID		0x14
#define FT6X06_ID		0x06

struct fw_upgrade_info {
	bool auto_cal;
	u16 delay_aa;
	u16 delay_55;
	u8 upgrade_id_1;
	u8 upgrade_id_2;
	u16 delay_readid;
	u16 delay_erase_flash;
};

struct ft5x06_ts_platform_data {
	struct fw_upgrade_info info;
	const char *name;
	const char *fw_name;
	u32 irqflags;
	u32 irq_gpio;
	u32 irq_gpio_flags;
@@ -38,8 +51,14 @@ struct ft5x06_ts_platform_data {
	u32 panel_miny;
	u32 panel_maxx;
	u32 panel_maxy;
	u32 group_id;
	u32 hard_rst_dly;
	u32 soft_rst_dly;
	u32 num_max_touches;
	bool fw_vkey_support;
	bool no_force_update;
	bool i2c_pull_up;
	bool ignore_id_check;
	int (*power_init)(bool);
	int (*power_on)(bool);
};