Lines Matching full:ts

253 int gslx680_set_pinctrl_state(struct gsl_ts *ts, struct pinctrl_state *state)  in gslx680_set_pinctrl_state()  argument
258 ret = pinctrl_select_state(ts->pinctrl, state); in gslx680_set_pinctrl_state()
266 static int gslX680_init(struct gsl_ts *ts) in gslX680_init() argument
268 struct device_node *np = ts->client->dev.of_node; in gslX680_init()
272 ts->irq = of_get_named_gpio_flags(np, "touch-gpio", 0, NULL); in gslX680_init()
273 ts->rst = of_get_named_gpio_flags(np, "reset-gpio", 0, NULL); in gslX680_init()
278 if (gpio_request(ts->rst, NULL) != 0) { in gslX680_init()
279 gpio_free(ts->rst); in gslX680_init()
286 ts->pinctrl = devm_pinctrl_get(&ts->client->dev); in gslX680_init()
287 if (IS_ERR(ts->pinctrl)) { in gslX680_init()
288 ret = PTR_ERR(ts->pinctrl); in gslX680_init()
292 ts->pins_default = in gslX680_init()
293 pinctrl_lookup_state(ts->pinctrl, PINCTRL_STATE_DEFAULT); in gslX680_init()
294 //if (IS_ERR(ts->pins_default)) in gslX680_init()
297 ts->pins_sleep = pinctrl_lookup_state(ts->pinctrl, PINCTRL_STATE_SLEEP); in gslX680_init()
298 //if (IS_ERR(ts->pins_sleep)) in gslX680_init()
301 ts->pins_inactive = pinctrl_lookup_state(ts->pinctrl, "inactive"); in gslX680_init()
302 //if (IS_ERR(ts->pins_inactive)) in gslX680_init()
305 err = gpio_request(ts->rst, "tp reset"); in gslX680_init()
311 gslx680_set_pinctrl_state(ts, ts->pins_default); in gslX680_init()
312 gpio_direction_output(ts->rst, 1); in gslX680_init()
313 gpio_set_value(ts->rst, 1); in gslX680_init()
318 static int gslX680_shutdown_low(struct gsl_ts *ts) in gslX680_shutdown_low() argument
321 gpio_direction_output(ts->rst, 0); in gslX680_shutdown_low()
322 gpio_set_value(ts->rst, 0); in gslX680_shutdown_low()
327 static int gslX680_shutdown_high(struct gsl_ts *ts) in gslX680_shutdown_high() argument
330 gpio_direction_output(ts->rst, 1); in gslX680_shutdown_high()
331 gpio_set_value(ts->rst, 1); in gslX680_shutdown_high()
447 struct gsl_ts *ts = in gsl_load_fw() local
449 struct fw_data const *ptr_fw = ts->ts_cfg->fw_ptr; in gsl_load_fw()
451 source_len = ts->ts_cfg->fw_size; in gsl_load_fw()
509 struct gsl_ts *ts = in startup_chip() local
516 gsl_DataInit(ts->ts_cfg->cfg_id); in startup_chip()
556 static void init_chip(struct i2c_client *client, struct gsl_ts *ts) in init_chip() argument
562 gslX680_shutdown_low(ts); in init_chip()
564 gslX680_shutdown_high(ts); in init_chip()
579 static void check_mem_data(struct i2c_client *client, struct gsl_ts *ts) in check_mem_data() argument
587 init_chip(client, ts); in check_mem_data()
606 struct gsl_ts *ts = in gsl_config_read_proc() local
627 seq_printf(m, "%d\n", ts->ts_cfg->cfg_id[tmp]); in gsl_config_read_proc()
657 struct gsl_ts *ts = in gsl_config_write_proc() local
714 ts->ts_cfg->cfg_id[tmp1] = tmp; in gsl_config_write_proc()
846 static void report_key(struct gsl_ts *ts, u16 x, u16 y) in report_key() argument
856 input_report_key(ts->input, key, 1); in report_key()
857 input_sync(ts->input); in report_key()
867 static void report_data(struct gsl_ts *ts, u16 x, u16 y, u8 pressure, u8 id) in report_data() argument
873 int max_x = ts->ts_cfg->max_x; in report_data()
874 int max_y = ts->ts_cfg->max_y; in report_data()
883 //report_key(ts, x, y); in report_data()
890 input_mt_slot(ts->input_dev, id); in report_data()
891 input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID, id); in report_data()
892 input_report_abs(ts->input_dev, ABS_MT_POSITION_X, x); in report_data()
893 input_report_abs(ts->input_dev, ABS_MT_POSITION_Y, y); in report_data()
894 input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, w); in report_data()
895 input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, w); in report_data()
899 if (ts->ts_cfg->quirks == GSL_QUIRK_VR) { in report_data()
902 input_event(ts->input, EV_MSC, MSC_SCAN, 0x90001); in report_data()
903 input_report_key(ts->input, 0x110, 1); in report_data()
904 input_sync(ts->input); in report_data()
910 input_report_rel(ts->input, REL_Y, -delt_x); in report_data()
911 input_report_rel(ts->input, REL_X, -delt_y); in report_data()
912 input_sync(ts->input); in report_data()
921 input_mt_slot(ts->input, id); in report_data()
922 //input_report_abs(ts->input, ABS_MT_TRACKING_ID, id); in report_data()
923 input_mt_report_slot_state(ts->input, MT_TOOL_FINGER, 1); in report_data()
924 input_report_abs(ts->input, ABS_MT_TOUCH_MAJOR, pressure); in report_data()
925 if (ts->ts_cfg->x_pol) in report_data()
926 input_report_abs(ts->input, ABS_MT_POSITION_X, max_x - x); in report_data()
928 input_report_abs(ts->input, ABS_MT_POSITION_X, x); in report_data()
929 if (ts->ts_cfg->y_pol) in report_data()
930 input_report_abs(ts->input, ABS_MT_POSITION_Y, (max_y - y)); in report_data()
932 input_report_abs(ts->input, ABS_MT_POSITION_Y, (y)); in report_data()
933 input_report_abs(ts->input, ABS_MT_WIDTH_MAJOR, 1); in report_data()
936 input_report_abs(ts->input, ABS_MT_TRACKING_ID, id); in report_data()
937 input_report_abs(ts->input, ABS_MT_TOUCH_MAJOR, pressure); in report_data()
938 input_report_abs(ts->input, ABS_MT_POSITION_X, x); in report_data()
939 input_report_abs(ts->input, ABS_MT_POSITION_Y, y); in report_data()
940 input_report_abs(ts->input, ABS_MT_WIDTH_MAJOR, 1); in report_data()
941 input_mt_sync(ts->input); in report_data()
946 void glsx680_ts_irq_disable(struct gsl_ts *ts) in glsx680_ts_irq_disable() argument
950 spin_lock_irqsave(&ts->irq_lock, irqflags); in glsx680_ts_irq_disable()
951 if (!ts->flag_irq_is_disable) { in glsx680_ts_irq_disable()
952 disable_irq_nosync(ts->client->irq); in glsx680_ts_irq_disable()
953 ts->flag_irq_is_disable = 1; in glsx680_ts_irq_disable()
955 spin_unlock_irqrestore(&ts->irq_lock, irqflags); in glsx680_ts_irq_disable()
958 void glsx680_ts_irq_enable(struct gsl_ts *ts) in glsx680_ts_irq_enable() argument
962 spin_lock_irqsave(&ts->irq_lock, irqflags); in glsx680_ts_irq_enable()
963 if (ts->flag_irq_is_disable) { in glsx680_ts_irq_enable()
964 enable_irq(ts->client->irq); in glsx680_ts_irq_enable()
965 ts->flag_irq_is_disable = 0; in glsx680_ts_irq_enable()
967 spin_unlock_irqrestore(&ts->irq_lock, irqflags); in glsx680_ts_irq_enable()
982 struct gsl_ts *ts = container_of(work, struct gsl_ts, work); in gslX680_ts_worker() local
996 rc = gsl_ts_read(ts->client, 0x80, ts->touch_data, ts->dd->data_size); in gslX680_ts_worker()
998 dev_err(&ts->client->dev, "read failed\n"); in gslX680_ts_worker()
1002 touches = ts->touch_data[ts->dd->touch_index]; in gslX680_ts_worker()
1010 join_bytes((ts-> in gslX680_ts_worker()
1011 touch_data[ts->dd->x_index + 4 * i + 1] & 0xf), in gslX680_ts_worker()
1012 ts->touch_data[ts->dd->x_index + 4 * i]); in gslX680_ts_worker()
1014 join_bytes(ts->touch_data[ts->dd->y_index + 4 * i + 1], in gslX680_ts_worker()
1015 ts->touch_data[ts->dd->y_index + 4 * i]); in gslX680_ts_worker()
1017 ((ts->touch_data[ts->dd->x_index + 4 * i + 1] & 0xf0) >> 4); in gslX680_ts_worker()
1021 cinfo.finger_num = (ts->touch_data[3] << 24) | (ts->touch_data[2] << 16) in gslX680_ts_worker()
1022 | (ts->touch_data[1] << 8) | (ts->touch_data[0]); in gslX680_ts_worker()
1031 gsl_ts_write(ts->client, 0xf0, buf, 4); in gslX680_ts_worker()
1038 gsl_ts_write(ts->client, 0x8, buf, 4); in gslX680_ts_worker()
1054 x = join_bytes((ts-> in gslX680_ts_worker()
1055 touch_data[ts->dd->x_index + 4 * i + 1] & 0xf), in gslX680_ts_worker()
1056 ts->touch_data[ts->dd->x_index + 4 * i]); in gslX680_ts_worker()
1057 y = join_bytes(ts->touch_data[ts->dd->y_index + 4 * i + 1], in gslX680_ts_worker()
1058 ts->touch_data[ts->dd->y_index + 4 * i]); in gslX680_ts_worker()
1059 id = ts->touch_data[ts->dd->id_index + 4 * i] >> 4; in gslX680_ts_worker()
1069 report_data(ts, x_new, y_new, 10, id); in gslX680_ts_worker()
1089 input_event(ts->input, EV_MSC, MSC_SCAN, 0x90001); in gslX680_ts_worker()
1090 input_report_key(ts->input, 0x110, 0); in gslX680_ts_worker()
1091 input_sync(ts->input); in gslX680_ts_worker()
1096 input_mt_slot(ts->input, i); in gslX680_ts_worker()
1097 //input_report_abs(ts->input, ABS_MT_TRACKING_ID, -1); in gslX680_ts_worker()
1098 input_mt_report_slot_state(ts->input, MT_TOOL_FINGER, in gslX680_ts_worker()
1109 //input_report_abs(ts->input, ABS_MT_TOUCH_MAJOR, 0); in gslX680_ts_worker()
1110 //input_report_abs(ts->input, ABS_MT_WIDTH_MAJOR, 0); in gslX680_ts_worker()
1111 //input_mt_sync(ts->input); in gslX680_ts_worker()
1127 input_report_key(ts->input, in gslX680_ts_worker()
1129 input_sync(ts->input); in gslX680_ts_worker()
1130 input_report_key(ts->input, in gslX680_ts_worker()
1132 input_sync(ts->input); in gslX680_ts_worker()
1136 input_report_key(ts->input, in gslX680_ts_worker()
1138 input_sync(ts->input); in gslX680_ts_worker()
1139 input_report_key(ts->input, in gslX680_ts_worker()
1141 input_sync(ts->input); in gslX680_ts_worker()
1146 input_report_key(ts->input, in gslX680_ts_worker()
1148 input_sync(ts->input); in gslX680_ts_worker()
1149 input_report_key(ts->input, in gslX680_ts_worker()
1151 input_sync(ts->input); in gslX680_ts_worker()
1155 input_report_key(ts->input, in gslX680_ts_worker()
1157 input_sync(ts->input); in gslX680_ts_worker()
1158 input_report_key(ts->input, in gslX680_ts_worker()
1160 input_sync(ts->input); in gslX680_ts_worker()
1172 //queue_work(gsl_timer_workqueue,&ts->click_work); in gslX680_ts_worker()
1177 input_report_key(ts->input, key_array[4], 1); in gslX680_ts_worker()
1178 input_sync(ts->input); in gslX680_ts_worker()
1179 input_report_key(ts->input, key_array[4], 0); in gslX680_ts_worker()
1180 input_sync(ts->input); in gslX680_ts_worker()
1192 input_report_key(ts->input, in gslX680_ts_worker()
1194 input_sync(ts->input); in gslX680_ts_worker()
1195 input_report_key(ts->input, in gslX680_ts_worker()
1197 input_sync(ts->input); in gslX680_ts_worker()
1200 input_report_key(ts->input, in gslX680_ts_worker()
1202 input_sync(ts->input); in gslX680_ts_worker()
1203 input_report_key(ts->input, in gslX680_ts_worker()
1205 input_sync(ts->input); in gslX680_ts_worker()
1211 input_report_key(ts->input, in gslX680_ts_worker()
1213 input_sync(ts->input); in gslX680_ts_worker()
1214 input_report_key(ts->input, in gslX680_ts_worker()
1216 input_sync(ts->input); in gslX680_ts_worker()
1219 input_report_key(ts->input, in gslX680_ts_worker()
1221 input_sync(ts->input); in gslX680_ts_worker()
1222 input_report_key(ts->input, in gslX680_ts_worker()
1224 input_sync(ts->input); in gslX680_ts_worker()
1235 input_report_key(ts->input, key, 0); in gslX680_ts_worker()
1236 input_sync(ts->input); in gslX680_ts_worker()
1243 input_sync(ts->input); in gslX680_ts_worker()
1250 glsx680_ts_irq_enable(ts); in gslX680_ts_worker()
1276 struct gsl_ts *ts = in gsl_monitor_worker() local
1285 //gsl_ts_read(ts->client, 0x80, read_buf, 4); in gsl_monitor_worker()
1289 gsl_ts_read(ts->client, 0xb0, read_buf, 4); in gsl_monitor_worker()
1303 gsl_ts_read(ts->client, 0xb4, read_buf, 4); in gsl_monitor_worker()
1326 gsl_ts_read(ts->client, 0xbc, read_buf, 4); in gsl_monitor_worker()
1344 gsl_ts_write(ts->client, 0xf0, write_buf, 4); in gsl_monitor_worker()
1345 gsl_ts_read(ts->client, 0x10, read_buf, 4); in gsl_monitor_worker()
1346 gsl_ts_read(ts->client, 0x10, read_buf, 4); in gsl_monitor_worker()
1366 init_chip(ts->client, ts); in gsl_monitor_worker()
1371 //queue_delayed_work(gsl_monitor_workqueue, &ts->gsl_monitor_work, 100); in gsl_monitor_worker()
1377 ///struct gsl_ts *ts = dev_id; in gsl_ts_irq()
1378 struct gsl_ts *ts = (struct gsl_ts *)dev_id; in gsl_ts_irq() local
1381 glsx680_ts_irq_disable(ts); in gsl_ts_irq()
1383 if (!work_pending(&ts->work)) { in gsl_ts_irq()
1384 queue_work(ts->wq, &ts->work); in gsl_ts_irq()
1391 static int gslX680_ts_init(struct i2c_client *client, struct gsl_ts *ts) in gslX680_ts_init() argument
1396 int max_x = ts->ts_cfg->max_x; in gslX680_ts_init()
1397 int max_y = ts->ts_cfg->max_y; in gslX680_ts_init()
1401 ts->dd = &devices[ts->device_id]; in gslX680_ts_init()
1403 if (ts->device_id == 0) { in gslX680_ts_init()
1404 ts->dd->data_size = in gslX680_ts_init()
1405 MAX_FINGERS * ts->dd->touch_bytes + ts->dd->touch_meta_data; in gslX680_ts_init()
1406 ts->dd->touch_index = 0; in gslX680_ts_init()
1409 ts->touch_data = in gslX680_ts_init()
1410 devm_kzalloc(&client->dev, ts->dd->data_size, GFP_KERNEL); in gslX680_ts_init()
1411 if (!ts->touch_data) { in gslX680_ts_init()
1416 input_device = devm_input_allocate_device(&ts->client->dev); in gslX680_ts_init()
1422 ts->input = input_device; in gslX680_ts_init()
1426 input_set_drvdata(input_device, ts); in gslX680_ts_init()
1475 //ts->irq = client->irq; in gslX680_ts_init()
1477 ts->wq = create_singlethread_workqueue("kworkqueue_ts"); in gslX680_ts_init()
1478 if (!ts->wq) { in gslX680_ts_init()
1482 flush_workqueue(ts->wq); in gslX680_ts_init()
1484 INIT_WORK(&ts->work, gslX680_ts_worker); in gslX680_ts_init()
1493 destroy_workqueue(ts->wq); in gslX680_ts_init()
1502 struct gsl_ts *ts = dev_get_drvdata(dev);
1508 cancel_delayed_work_sync(&ts->gsl_monitor_work);
1512 //cancel_work_sync(&ts->click_work);
1514 disable_irq_nosync(ts->irq);
1516 gslX680_shutdown_low(ts);
1522 input_mt_slot(ts->input, i);
1523 input_report_abs(ts->input, ABS_MT_TRACKING_ID, -1);
1524 input_mt_report_slot_state(ts->input, MT_TOOL_FINGER, false);
1527 input_mt_sync(ts->input);
1529 input_sync(ts->input);
1531 report_data(ts, 1, 1, 10, 1);
1532 input_sync(ts->input);
1544 struct gsl_ts *ts = dev_get_drvdata(dev);
1548 gslX680_shutdown_high(ts);
1550 reset_chip(ts->client);
1551 startup_chip(ts->client);
1552 check_mem_data(ts->client, ts);
1557 input_mt_slot(ts->input, i);
1558 input_report_abs(ts->input, ABS_MT_TRACKING_ID, -1);
1559 input_mt_report_slot_state(ts->input, MT_TOOL_FINGER, false);
1562 input_mt_sync(ts->input);
1564 input_sync(ts->input);
1568 queue_delayed_work(gsl_monitor_workqueue, &ts->gsl_monitor_work, 300);
1572 //queue_work(gsl_timer_workqueue,&ts->click_work);
1575 disable_irq_nosync(ts->irq);
1576 enable_irq(ts->irq);
1585 struct gsl_ts *ts = container_of(tp_d, struct gsl_ts, tp); in gsl_ts_early_suspend() local
1587 //gsl_ts_suspend(&ts->client->dev); in gsl_ts_early_suspend()
1590 cancel_delayed_work_sync(&ts->gsl_monitor_work); in gsl_ts_early_suspend()
1593 glsx680_ts_irq_disable(ts); in gsl_ts_early_suspend()
1594 cancel_work_sync(&ts->work); in gsl_ts_early_suspend()
1600 input_mt_slot(ts->input, i); in gsl_ts_early_suspend()
1601 input_report_abs(ts->input, ABS_MT_TRACKING_ID, -1); in gsl_ts_early_suspend()
1602 input_mt_report_slot_state(ts->input, MT_TOOL_FINGER, false); in gsl_ts_early_suspend()
1605 input_mt_sync(ts->input); in gsl_ts_early_suspend()
1607 input_sync(ts->input); in gsl_ts_early_suspend()
1609 report_data(ts, 1, 1, 10, 1); in gsl_ts_early_suspend()
1610 input_sync(ts->input); in gsl_ts_early_suspend()
1612 gslX680_shutdown_low(ts); in gsl_ts_early_suspend()
1618 struct gsl_ts *ts = container_of(tp_d, struct gsl_ts, tp); in gsl_ts_late_resume() local
1620 //gsl_ts_resume(&ts->client->dev); in gsl_ts_late_resume()
1624 gslX680_shutdown_high(ts); in gsl_ts_late_resume()
1626 reset_chip(ts->client); in gsl_ts_late_resume()
1627 startup_chip(ts->client); in gsl_ts_late_resume()
1628 check_mem_data(ts->client, ts); in gsl_ts_late_resume()
1633 input_mt_slot(ts->input, i); in gsl_ts_late_resume()
1634 input_report_abs(ts->input, ABS_MT_TRACKING_ID, -1); in gsl_ts_late_resume()
1635 input_mt_report_slot_state(ts->input, MT_TOOL_FINGER, false); in gsl_ts_late_resume()
1638 input_mt_sync(ts->input); in gsl_ts_late_resume()
1640 input_sync(ts->input); in gsl_ts_late_resume()
1644 queue_delayed_work(gsl_monitor_workqueue, &ts->gsl_monitor_work, 300); in gsl_ts_late_resume()
1646 glsx680_ts_irq_enable(ts); in gsl_ts_late_resume()
1655 struct gsl_ts *ts = container_of(h, struct gsl_ts, early_suspend); in gsl_ts_early_suspend() local
1657 //gsl_ts_suspend(&ts->client->dev); in gsl_ts_early_suspend()
1660 cancel_delayed_work_sync(&ts->gsl_monitor_work); in gsl_ts_early_suspend()
1663 glsx680_ts_irq_disable(ts); in gsl_ts_early_suspend()
1664 cancel_work_sync(&ts->work); in gsl_ts_early_suspend()
1670 input_mt_slot(ts->input, i); in gsl_ts_early_suspend()
1671 input_report_abs(ts->input, ABS_MT_TRACKING_ID, -1); in gsl_ts_early_suspend()
1672 input_mt_report_slot_state(ts->input, MT_TOOL_FINGER, false); in gsl_ts_early_suspend()
1675 input_mt_sync(ts->input); in gsl_ts_early_suspend()
1677 input_sync(ts->input); in gsl_ts_early_suspend()
1679 report_data(ts, 1, 1, 10, 1); in gsl_ts_early_suspend()
1680 input_sync(ts->input); in gsl_ts_early_suspend()
1682 gslX680_shutdown_low(ts); in gsl_ts_early_suspend()
1688 struct gsl_ts *ts = container_of(h, struct gsl_ts, early_suspend); in gsl_ts_late_resume() local
1690 //gsl_ts_resume(&ts->client->dev); in gsl_ts_late_resume()
1695 gslX680_shutdown_high(ts); in gsl_ts_late_resume()
1697 reset_chip(ts->client); in gsl_ts_late_resume()
1698 startup_chip(ts->client); in gsl_ts_late_resume()
1699 check_mem_data(ts->client, ts); in gsl_ts_late_resume()
1704 input_mt_slot(ts->input, i); in gsl_ts_late_resume()
1705 input_report_abs(ts->input, ABS_MT_TRACKING_ID, -1); in gsl_ts_late_resume()
1706 input_mt_report_slot_state(ts->input, MT_TOOL_FINGER, false); in gsl_ts_late_resume()
1709 input_mt_sync(ts->input); in gsl_ts_late_resume()
1711 input_sync(ts->input); in gsl_ts_late_resume()
1715 queue_delayed_work(gsl_monitor_workqueue, &ts->gsl_monitor_work, 300); in gsl_ts_late_resume()
1717 glsx680_ts_irq_enable(ts); in gsl_ts_late_resume()
1734 struct gsl_ts *ts; in gsl_ts_probe() local
1745 ts = devm_kzalloc(&client->dev, sizeof(*ts), GFP_KERNEL); in gsl_ts_probe()
1746 if (!ts) in gsl_ts_probe()
1753 ts->ts_cfg = (const struct gsl_ts_cfg *)match->data; in gsl_ts_probe()
1755 ts->tp.tp_suspend = gsl_ts_early_suspend; in gsl_ts_probe()
1756 ts->tp.tp_resume = gsl_ts_late_resume; in gsl_ts_probe()
1757 tp_register_fb(&ts->tp); in gsl_ts_probe()
1759 ts->client = client; in gsl_ts_probe()
1760 i2c_set_clientdata(client, ts); in gsl_ts_probe()
1761 //ts->device_id = id->driver_data; in gsl_ts_probe()
1763 gslX680_init(ts); in gsl_ts_probe()
1764 rc = gslX680_ts_init(client, ts); in gsl_ts_probe()
1773 init_chip(ts->client, ts); in gsl_ts_probe()
1774 check_mem_data(ts->client, ts); in gsl_ts_probe()
1775 spin_lock_init(&ts->irq_lock); in gsl_ts_probe()
1776 client->irq = gpio_to_irq(ts->irq); in gsl_ts_probe()
1778 client->name, ts); in gsl_ts_probe()
1785 //rc = device_create_file(&ts->input->dev, &dev_attr_debug_enable); in gsl_ts_probe()
1789 ts->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; in gsl_ts_probe()
1790 //ts->early_suspend.level = EARLY_SUSPEND_LEVEL_DISABLE_FB + 1; in gsl_ts_probe()
1791 ts->early_suspend.suspend = gsl_ts_early_suspend; in gsl_ts_probe()
1792 ts->early_suspend.resume = gsl_ts_late_resume; in gsl_ts_probe()
1793 register_early_suspend(&ts->early_suspend); in gsl_ts_probe()
1798 INIT_DELAYED_WORK(&ts->gsl_monitor_work, gsl_monitor_worker); in gsl_ts_probe()
1801 queue_delayed_work(gsl_monitor_workqueue, &ts->gsl_monitor_work, 1000); in gsl_ts_probe()
1806 INIT_WORK(&ts->click_work, click_timer_worker); in gsl_ts_probe()
1808 queue_work(gsl_timer_workqueue, &ts->click_work); in gsl_ts_probe()
1840 struct gsl_ts *ts = i2c_get_clientdata(client); in gsl_ts_remove() local
1843 unregister_early_suspend(&ts->early_suspend); in gsl_ts_remove()
1847 cancel_delayed_work_sync(&ts->gsl_monitor_work); in gsl_ts_remove()
1852 cancel_work_sync(&ts->click_work); in gsl_ts_remove()
1857 cancel_work_sync(&ts->work); in gsl_ts_remove()
1858 free_irq(ts->client->irq, ts); in gsl_ts_remove()
1859 destroy_workqueue(ts->wq); in gsl_ts_remove()
1860 //device_remove_file(&ts->input->dev, &dev_attr_debug_enable); in gsl_ts_remove()