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
28 #include <mach/regs-ac97.h>
93 * to buffer up samples otherwise we end up spinning polling in wm97xx_acc_pen_down()
94 * for samples. The controller can't have a suitably low in wm97xx_acc_pen_down()
117 dev_dbg(wm->dev, "Raw coordinates: x=%x, y=%x, p=%x\n", in wm97xx_acc_pen_down()
120 /* are samples valid */ in wm97xx_acc_pen_down()
124 goto up; in wm97xx_acc_pen_down()
128 input_report_abs(wm->input_dev, ABS_X, x & 0xfff); in wm97xx_acc_pen_down()
129 input_report_abs(wm->input_dev, ABS_Y, y & 0xfff); in wm97xx_acc_pen_down()
130 input_report_abs(wm->input_dev, ABS_PRESSURE, p & 0xfff); in wm97xx_acc_pen_down()
131 input_report_key(wm->input_dev, BTN_TOUCH, (p != 0)); in wm97xx_acc_pen_down()
132 input_sync(wm->input_dev); in wm97xx_acc_pen_down()
135 up: in wm97xx_acc_pen_down()
144 if (wm->ac97 == NULL) in wm97xx_acc_startup()
145 return -ENODEV; in wm97xx_acc_startup()
149 if (wm->id != cinfo[idx].id) in wm97xx_acc_startup()
155 wm->acc_rate = cinfo[sp_idx].code; in wm97xx_acc_startup()
156 wm->acc_slot = ac97_touch_slot; in wm97xx_acc_startup()
157 dev_info(wm->dev, in wm97xx_acc_startup()
158 "zylonite accelerated touchscreen driver, %d samples/sec\n", in wm97xx_acc_startup()
167 enable_irq(wm->pen_irq); in wm97xx_irq_enable()
169 disable_irq_nosync(wm->pen_irq); in wm97xx_irq_enable()
191 wm->pen_irq = gpio_to_irq(gpio_touch_irq); in zylonite_wm97xx_probe()
192 irq_set_irq_type(wm->pen_irq, IRQ_TYPE_EDGE_BOTH); in zylonite_wm97xx_probe()
219 .name = "wm97xx-touch",