Lines Matching +full:up +full:- +full:samples

1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * zylonite-wm97xx.c -- Zylonite Continuous Touch screen driver
27 #include <sound/pxa2xx-lib.h>
92 * to buffer up samples otherwise we end up spinning polling in wm97xx_acc_pen_down()
93 * for samples. The controller can't have a suitably low in wm97xx_acc_pen_down()
116 dev_dbg(wm->dev, "Raw coordinates: x=%x, y=%x, p=%x\n", in wm97xx_acc_pen_down()
119 /* are samples valid */ in wm97xx_acc_pen_down()
123 goto up; in wm97xx_acc_pen_down()
127 input_report_abs(wm->input_dev, ABS_X, x & 0xfff); in wm97xx_acc_pen_down()
128 input_report_abs(wm->input_dev, ABS_Y, y & 0xfff); in wm97xx_acc_pen_down()
129 input_report_abs(wm->input_dev, ABS_PRESSURE, p & 0xfff); in wm97xx_acc_pen_down()
130 input_report_key(wm->input_dev, BTN_TOUCH, (p != 0)); in wm97xx_acc_pen_down()
131 input_sync(wm->input_dev); in wm97xx_acc_pen_down()
134 up: in wm97xx_acc_pen_down()
143 if (wm->ac97 == NULL) in wm97xx_acc_startup()
144 return -ENODEV; in wm97xx_acc_startup()
148 if (wm->id != cinfo[idx].id) in wm97xx_acc_startup()
154 wm->acc_rate = cinfo[sp_idx].code; in wm97xx_acc_startup()
155 wm->acc_slot = ac97_touch_slot; in wm97xx_acc_startup()
156 dev_info(wm->dev, in wm97xx_acc_startup()
157 "zylonite accelerated touchscreen driver, %d samples/sec\n", in wm97xx_acc_startup()
177 gpio_touch_irq = devm_gpiod_get(&pdev->dev, "touch", GPIOD_IN); in zylonite_wm97xx_probe()
180 dev_err(&pdev->dev, "Cannot get irq gpio: %d\n", err); in zylonite_wm97xx_probe()
184 wm->pen_irq = gpiod_to_irq(gpio_touch_irq); in zylonite_wm97xx_probe()
185 irq_set_irq_type(wm->pen_irq, IRQ_TYPE_EDGE_BOTH); in zylonite_wm97xx_probe()
212 .name = "wm97xx-touch",