wm831x_ts
wm831x_ts->pen_down = true;
wm831x_ts->pen_down = false;
input_report_abs(wm831x_ts->input_dev, data_types[i],
if (!wm831x_ts->pen_down) {
disable_irq_nosync(wm831x_ts->data_irq);
if (wm831x_ts->pressure)
input_report_abs(wm831x_ts->input_dev,
input_report_key(wm831x_ts->input_dev, BTN_TOUCH, 0);
schedule_work(&wm831x_ts->pd_data_work);
input_report_key(wm831x_ts->input_dev, BTN_TOUCH, 1);
input_sync(wm831x_ts->input_dev);
struct wm831x_ts *wm831x_ts = irq_data;
struct wm831x *wm831x = wm831x_ts->wm831x;
if (wm831x_ts->pen_down)
disable_irq_nosync(wm831x_ts->pd_irq);
if (wm831x_ts->pressure)
wm831x_ts->pen_down = true;
schedule_work(&wm831x_ts->pd_data_work);
struct wm831x_ts *wm831x_ts = input_get_drvdata(idev);
struct wm831x *wm831x = wm831x_ts->wm831x;
struct wm831x_ts *wm831x_ts = input_get_drvdata(idev);
struct wm831x *wm831x = wm831x_ts->wm831x;
synchronize_irq(wm831x_ts->data_irq);
synchronize_irq(wm831x_ts->pd_irq);
flush_work(&wm831x_ts->pd_data_work);
if (wm831x_ts->pen_down) {
disable_irq(wm831x_ts->data_irq);
enable_irq(wm831x_ts->pd_irq);
wm831x_ts->pen_down = false;
struct wm831x_ts *wm831x_ts;
wm831x_ts = devm_kzalloc(&pdev->dev, sizeof(struct wm831x_ts),
if (!wm831x_ts || !input_dev) {
wm831x_ts->wm831x = wm831x;
wm831x_ts->input_dev = input_dev;
INIT_WORK(&wm831x_ts->pd_data_work, wm831x_pd_data_work);
wm831x_ts->data_irq = wm831x_irq(wm831x,
wm831x_ts->data_irq = pdata->data_irq;
wm831x_ts->pd_irq = wm831x_irq(wm831x,
wm831x_ts->pd_irq = pdata->pd_irq;
wm831x_ts->pressure = pdata->pressure;
wm831x_ts->pressure = true;
wm831x_ts->pressure = false;
error = request_threaded_irq(wm831x_ts->data_irq,
"Touchscreen data", wm831x_ts);
wm831x_ts->data_irq, error);
error = request_threaded_irq(wm831x_ts->pd_irq,
"Touchscreen pen down", wm831x_ts);
wm831x_ts->pd_irq, error);
if (wm831x_ts->pressure)
input_set_drvdata(input_dev, wm831x_ts);
platform_set_drvdata(pdev, wm831x_ts);
free_irq(wm831x_ts->pd_irq, wm831x_ts);
free_irq(wm831x_ts->data_irq, wm831x_ts);
struct wm831x_ts *wm831x_ts = platform_get_drvdata(pdev);
free_irq(wm831x_ts->pd_irq, wm831x_ts);
free_irq(wm831x_ts->data_irq, wm831x_ts);
struct wm831x_ts *wm831x_ts =
container_of(work, struct wm831x_ts, pd_data_work);
if (wm831x_ts->pen_down) {
enable_irq(wm831x_ts->data_irq);
dev_dbg(wm831x_ts->wm831x->dev, "IRQ PD->DATA done\n");
enable_irq(wm831x_ts->pd_irq);
dev_dbg(wm831x_ts->wm831x->dev, "IRQ DATA->PD done\n");
struct wm831x_ts *wm831x_ts = irq_data;
struct wm831x *wm831x = wm831x_ts->wm831x;
if (wm831x_ts->pressure)