diff --git a/drivers/input/touchscreen/focaltech_0flash_mmi/focaltech_core.c b/drivers/input/touchscreen/focaltech_0flash_mmi/focaltech_core.c index ae2941b2c04c..0a97fdb1502f 100755 --- a/drivers/input/touchscreen/focaltech_0flash_mmi/focaltech_core.c +++ b/drivers/input/touchscreen/focaltech_0flash_mmi/focaltech_core.c @@ -68,9 +68,6 @@ extern void fts_mmi_dev_unregister(struct fts_ts_data *ts_data); #define FTS_DRIVER_NAME "fts_ts" #define INTERVAL_READ_REG 200 /* unit:ms */ #define TIMEOUT_READ_REG 1000 /* unit:ms */ -#if FTS_USB_DETECT_EN -bool FTS_USB_detect_flag; -#endif #if FTS_POWER_SOURCE_CUST_EN #define FTS_VTG_MIN_UV 2800000 #define FTS_VTG_MAX_UV 3300000 @@ -852,7 +849,7 @@ void fts_cable_detect_func(bool force_renew) { struct fts_ts_data *ts_data = fts_data; uint8_t connect_status = 0; - connect_status = FTS_USB_detect_flag; + connect_status = ts_data->usb_detect_flag; if ((connect_status != ts_data->usb_connected) || force_renew) { if (connect_status) { @@ -1944,6 +1941,7 @@ static void fts_ts_late_resume(struct early_suspend *handler) #endif #endif +#ifndef CONFIG_INPUT_TOUCHSCREEN_MMI #if FTS_USB_DETECT_EN static int fts_charger_notifier_callback(struct notifier_block *nb, unsigned long val, void *v) { @@ -1964,7 +1962,7 @@ static int fts_charger_notifier_callback(struct notifier_block *nb, FTS_ERROR("Couldn't get POWER_SUPPLY_PROP_ONLINE rc=%d\n", ret); return ret; } else { - FTS_USB_detect_flag = prop.intval; + ts->usb_detect_flag = prop.intval; //FTS_ERROR("usb prop.intval =%d\n", prop.intval); } } @@ -1972,6 +1970,7 @@ static int fts_charger_notifier_callback(struct notifier_block *nb, return 0; } #endif +#endif static int fts_ts_probe_entry(struct fts_ts_data *ts_data) { @@ -2181,6 +2180,7 @@ static int fts_ts_probe_entry(struct fts_ts_data *ts_data) #endif #endif +#ifndef CONFIG_INPUT_TOUCHSCREEN_MMI #if FTS_USB_DETECT_EN ts_data->usb_connected = 0x00; ts_data->charger_notif.notifier_call = fts_charger_notifier_callback; @@ -2190,6 +2190,7 @@ static int fts_ts_probe_entry(struct fts_ts_data *ts_data) goto err_register_charger_notify_failed; } #endif +#endif #ifdef CONFIG_INPUT_TOUCHSCREEN_MMI fts_mmi_dev_register(ts_data); @@ -2198,11 +2199,13 @@ static int fts_ts_probe_entry(struct fts_ts_data *ts_data) FTS_FUNC_EXIT(); return 0; +#ifndef CONFIG_INPUT_TOUCHSCREEN_MMI #if FTS_USB_DETECT_EN err_register_charger_notify_failed: if (ts_data->charger_notif.notifier_call) power_supply_unreg_notifier(&ts_data->charger_notif); #endif +#endif err_irq_req: #if FTS_POWER_SOURCE_CUST_EN @@ -2238,10 +2241,12 @@ static int fts_ts_remove_entry(struct fts_ts_data *ts_data) fts_mmi_dev_unregister(ts_data); #endif +#ifndef CONFIG_INPUT_TOUCHSCREEN_MMI #if FTS_USB_DETECT_EN if (ts_data->charger_notif.notifier_call) power_supply_unreg_notifier(&ts_data->charger_notif); #endif +#endif #if FTS_POINT_REPORT_CHECK_EN fts_point_report_check_exit(ts_data); diff --git a/drivers/input/touchscreen/focaltech_0flash_mmi/focaltech_core.h b/drivers/input/touchscreen/focaltech_0flash_mmi/focaltech_core.h index 09de8518c518..291a434aecff 100755 --- a/drivers/input/touchscreen/focaltech_0flash_mmi/focaltech_core.h +++ b/drivers/input/touchscreen/focaltech_0flash_mmi/focaltech_core.h @@ -240,6 +240,7 @@ struct fts_ts_data { #endif #if FTS_USB_DETECT_EN + bool usb_detect_flag; uint8_t usb_connected; struct notifier_block charger_notif; #endif diff --git a/drivers/input/touchscreen/focaltech_0flash_mmi/focaltech_ts_mmi.c b/drivers/input/touchscreen/focaltech_0flash_mmi/focaltech_ts_mmi.c index a16d726ebb45..e683d7f54ded 100644 --- a/drivers/input/touchscreen/focaltech_0flash_mmi/focaltech_ts_mmi.c +++ b/drivers/input/touchscreen/focaltech_0flash_mmi/focaltech_ts_mmi.c @@ -191,6 +191,18 @@ static int fts_mmi_firmware_update(struct device *dev, char *fwname) return 0; } +#if FTS_USB_DETECT_EN +static int fts_mmi_charger_mode(struct device *dev, int mode) +{ + struct fts_ts_data *ts_data; + + GET_TS_DATA(dev); + ts_data->usb_detect_flag = !!mode; + + return 0; +} +#endif + static int fts_mmi_panel_state(struct device *dev, enum ts_mmi_pm_mode from, enum ts_mmi_pm_mode to) { @@ -385,6 +397,9 @@ static struct ts_mmi_methods fts_mmi_methods = { .drv_irq = fts_mmi_methods_drv_irq, #if FTS_POWER_SOURCE_CUST_EN .power = fts_mmi_methods_power, +#endif +#if FTS_USB_DETECT_EN + .charger_mode = fts_mmi_charger_mode, #endif /* Firmware */ .firmware_update = fts_mmi_firmware_update,