Lines Matching refs:bu21013_data

421 static void bu21013_free_irq(struct bu21013_ts_data *bu21013_data)  in bu21013_free_irq()  argument
423 bu21013_data->touch_stopped = true; in bu21013_free_irq()
424 wake_up(&bu21013_data->wait); in bu21013_free_irq()
425 free_irq(bu21013_data->irq, bu21013_data); in bu21013_free_irq()
435 static void bu21013_cs_disable(struct bu21013_ts_data *bu21013_data) in bu21013_cs_disable() argument
439 error = gpio_direction_output(bu21013_data->chip->cs_pin, 0); in bu21013_cs_disable()
441 dev_warn(&bu21013_data->client->dev, in bu21013_cs_disable()
445 gpio_set_value(bu21013_data->chip->cs_pin, 0); in bu21013_cs_disable()
447 gpio_free(bu21013_data->chip->cs_pin); in bu21013_cs_disable()
503 struct bu21013_ts_data *bu21013_data; in bu21013_probe() local
524 bu21013_data = kzalloc(sizeof(struct bu21013_ts_data), GFP_KERNEL); in bu21013_probe()
526 if (!bu21013_data || !in_dev) { in bu21013_probe()
532 bu21013_data->in_dev = in_dev; in bu21013_probe()
533 bu21013_data->chip = pdata; in bu21013_probe()
534 bu21013_data->client = client; in bu21013_probe()
535 bu21013_data->irq = gpio_to_irq(pdata->touch_pin); in bu21013_probe()
537 bu21013_data->regulator = regulator_get(&client->dev, "avdd"); in bu21013_probe()
538 if (IS_ERR(bu21013_data->regulator)) { in bu21013_probe()
540 error = PTR_ERR(bu21013_data->regulator); in bu21013_probe()
544 error = regulator_enable(bu21013_data->regulator); in bu21013_probe()
550 bu21013_data->touch_stopped = false; in bu21013_probe()
551 init_waitqueue_head(&bu21013_data->wait); in bu21013_probe()
562 error = bu21013_init_chip(bu21013_data); in bu21013_probe()
581 input_set_drvdata(in_dev, bu21013_data); in bu21013_probe()
583 error = request_threaded_irq(bu21013_data->irq, NULL, bu21013_gpio_irq, in bu21013_probe()
586 DRIVER_TP, bu21013_data); in bu21013_probe()
589 bu21013_data->irq); in bu21013_probe()
600 i2c_set_clientdata(client, bu21013_data); in bu21013_probe()
605 bu21013_free_irq(bu21013_data); in bu21013_probe()
607 bu21013_cs_disable(bu21013_data); in bu21013_probe()
609 regulator_disable(bu21013_data->regulator); in bu21013_probe()
611 regulator_put(bu21013_data->regulator); in bu21013_probe()
614 kfree(bu21013_data); in bu21013_probe()
627 struct bu21013_ts_data *bu21013_data = i2c_get_clientdata(client); in bu21013_remove() local
629 bu21013_free_irq(bu21013_data); in bu21013_remove()
631 bu21013_cs_disable(bu21013_data); in bu21013_remove()
633 input_unregister_device(bu21013_data->in_dev); in bu21013_remove()
635 regulator_disable(bu21013_data->regulator); in bu21013_remove()
636 regulator_put(bu21013_data->regulator); in bu21013_remove()
638 kfree(bu21013_data); in bu21013_remove()
655 struct bu21013_ts_data *bu21013_data = dev_get_drvdata(dev); in bu21013_suspend() local
656 struct i2c_client *client = bu21013_data->client; in bu21013_suspend()
658 bu21013_data->touch_stopped = true; in bu21013_suspend()
660 enable_irq_wake(bu21013_data->irq); in bu21013_suspend()
662 disable_irq(bu21013_data->irq); in bu21013_suspend()
664 regulator_disable(bu21013_data->regulator); in bu21013_suspend()
678 struct bu21013_ts_data *bu21013_data = dev_get_drvdata(dev); in bu21013_resume() local
679 struct i2c_client *client = bu21013_data->client; in bu21013_resume()
682 retval = regulator_enable(bu21013_data->regulator); in bu21013_resume()
688 retval = bu21013_init_chip(bu21013_data); in bu21013_resume()
694 bu21013_data->touch_stopped = false; in bu21013_resume()
697 disable_irq_wake(bu21013_data->irq); in bu21013_resume()
699 enable_irq(bu21013_data->irq); in bu21013_resume()