Lines Matching defs:touch

230 static inline void set_scan_rate(struct synaptics_i2c *touch, int scan_rate)
232 touch->scan_ms = MSEC_PER_SEC / scan_rate;
233 touch->scan_rate_param = scan_rate;
335 static bool synaptics_i2c_get_input(struct synaptics_i2c *touch)
337 struct input_dev *input = touch->input;
343 if (synaptics_i2c_check_error(touch->client))
347 data = synaptics_i2c_reg_get(touch->client, DATA_REG0);
354 xy_delta = synaptics_i2c_word_get(touch->client, REL_X_REG) & 0xffff;
373 struct synaptics_i2c *touch = dev_id;
375 mod_delayed_work(system_wq, &touch->dwork, 0);
380 static void synaptics_i2c_check_params(struct synaptics_i2c *touch)
384 if (scan_rate != touch->scan_rate_param)
385 set_scan_rate(touch, scan_rate);
387 if (no_decel != touch->no_decel_param) {
388 touch->no_decel_param = no_decel;
392 if (no_filter != touch->no_filter_param) {
393 touch->no_filter_param = no_filter;
397 if (reduce_report != touch->reduce_report_param) {
398 touch->reduce_report_param = reduce_report;
403 synaptics_i2c_reset_config(touch->client);
407 static unsigned long synaptics_i2c_adjust_delay(struct synaptics_i2c *touch,
413 delay = touch->scan_ms;
415 touch->no_data_count = 0;
417 nodata_count_thres = NO_DATA_THRES / touch->scan_ms;
418 if (touch->no_data_count < nodata_count_thres)
419 touch->no_data_count++;
434 struct synaptics_i2c *touch =
438 synaptics_i2c_check_params(touch);
440 have_data = synaptics_i2c_get_input(touch);
441 delay = synaptics_i2c_adjust_delay(touch, have_data);
451 mod_delayed_work(system_wq, &touch->dwork, delay);
456 struct synaptics_i2c *touch = input_get_drvdata(input);
459 ret = synaptics_i2c_reset_config(touch->client);
464 mod_delayed_work(system_wq, &touch->dwork,
472 struct synaptics_i2c *touch = input_get_drvdata(input);
475 synaptics_i2c_reg_set(touch->client, INTERRUPT_EN_REG, 0);
477 cancel_delayed_work_sync(&touch->dwork);
480 synaptics_i2c_reg_set(touch->client, DEV_CONTROL_REG, DEEP_SLEEP);
483 static void synaptics_i2c_set_input_params(struct synaptics_i2c *touch)
485 struct input_dev *input = touch->input;
487 input->name = touch->client->name;
488 input->phys = touch->client->adapter->name;
490 input->id.version = synaptics_i2c_word_get(touch->client,
492 input->dev.parent = &touch->client->dev;
495 input_set_drvdata(input, touch);
509 struct synaptics_i2c *touch;
511 touch = kzalloc(sizeof(struct synaptics_i2c), GFP_KERNEL);
512 if (!touch)
515 touch->client = client;
516 touch->no_decel_param = no_decel;
517 touch->scan_rate_param = scan_rate;
518 set_scan_rate(touch, scan_rate);
519 INIT_DELAYED_WORK(&touch->dwork, synaptics_i2c_work_handler);
521 return touch;
527 struct synaptics_i2c *touch;
529 touch = synaptics_i2c_touch_create(client);
530 if (!touch)
540 touch->input = input_allocate_device();
541 if (!touch->input) {
546 synaptics_i2c_set_input_params(touch);
549 dev_dbg(&touch->client->dev,
550 "Requesting IRQ: %d\n", touch->client->irq);
552 ret = request_irq(touch->client->irq, synaptics_i2c_irq,
554 DRIVER_NAME, touch);
556 dev_warn(&touch->client->dev,
560 synaptics_i2c_reg_set(touch->client,
566 dev_dbg(&touch->client->dev,
570 ret = input_register_device(touch->input);
577 i2c_set_clientdata(client, touch);
582 input_free_device(touch->input);
584 kfree(touch);
591 struct synaptics_i2c *touch = i2c_get_clientdata(client);
594 free_irq(client->irq, touch);
596 input_unregister_device(touch->input);
597 kfree(touch);
603 struct synaptics_i2c *touch = i2c_get_clientdata(client);
605 cancel_delayed_work_sync(&touch->dwork);
608 synaptics_i2c_reg_set(touch->client, DEV_CONTROL_REG, DEEP_SLEEP);
617 struct synaptics_i2c *touch = i2c_get_clientdata(client);
623 mod_delayed_work(system_wq, &touch->dwork,