Lines Matching refs:ts

151 static bool tsc2007_is_pen_down(struct tsc2007 *ts)  in tsc2007_is_pen_down()  argument
167 if (!ts->get_pendown_state) in tsc2007_is_pen_down()
170 return ts->get_pendown_state(&ts->client->dev); in tsc2007_is_pen_down()
175 struct tsc2007 *ts = handle; in tsc2007_soft_irq() local
176 struct input_dev *input = ts->input; in tsc2007_soft_irq()
180 while (!ts->stopped && tsc2007_is_pen_down(ts)) { in tsc2007_soft_irq()
183 tsc2007_read_values(ts, &tc); in tsc2007_soft_irq()
185 rt = tsc2007_calculate_pressure(ts, &tc); in tsc2007_soft_irq()
187 if (!rt && !ts->get_pendown_state) { in tsc2007_soft_irq()
196 if (rt <= ts->max_rt) { in tsc2007_soft_irq()
197 dev_dbg(&ts->client->dev, in tsc2007_soft_irq()
214 dev_dbg(&ts->client->dev, "ignored pressure %d\n", rt); in tsc2007_soft_irq()
217 wait_event_timeout(ts->wait, ts->stopped, ts->poll_period); in tsc2007_soft_irq()
220 dev_dbg(&ts->client->dev, "UP\n"); in tsc2007_soft_irq()
226 if (ts->clear_penirq) in tsc2007_soft_irq()
227 ts->clear_penirq(); in tsc2007_soft_irq()
234 struct tsc2007 *ts = handle; in tsc2007_hard_irq() local
236 if (tsc2007_is_pen_down(ts)) in tsc2007_hard_irq()
239 if (ts->clear_penirq) in tsc2007_hard_irq()
240 ts->clear_penirq(); in tsc2007_hard_irq()
245 static void tsc2007_stop(struct tsc2007 *ts) in tsc2007_stop() argument
247 ts->stopped = true; in tsc2007_stop()
249 wake_up(&ts->wait); in tsc2007_stop()
251 disable_irq(ts->irq); in tsc2007_stop()
256 struct tsc2007 *ts = input_get_drvdata(input_dev); in tsc2007_open() local
259 ts->stopped = false; in tsc2007_open()
262 enable_irq(ts->irq); in tsc2007_open()
265 err = tsc2007_xfer(ts, PWRDOWN); in tsc2007_open()
267 tsc2007_stop(ts); in tsc2007_open()
276 struct tsc2007 *ts = input_get_drvdata(input_dev); in tsc2007_close() local
278 tsc2007_stop(ts); in tsc2007_close()
285 struct tsc2007 *ts = i2c_get_clientdata(client); in tsc2007_get_pendown_state_gpio() local
287 return !gpio_get_value(ts->gpio); in tsc2007_get_pendown_state_gpio()
290 static int tsc2007_probe_dt(struct i2c_client *client, struct tsc2007 *ts) in tsc2007_probe_dt() argument
302 ts->max_rt = val32; in tsc2007_probe_dt()
304 ts->max_rt = MAX_12BIT; in tsc2007_probe_dt()
307 ts->fuzzx = val32; in tsc2007_probe_dt()
310 ts->fuzzy = val32; in tsc2007_probe_dt()
313 ts->fuzzz = val32; in tsc2007_probe_dt()
316 ts->poll_period = msecs_to_jiffies(val64); in tsc2007_probe_dt()
318 ts->poll_period = msecs_to_jiffies(1); in tsc2007_probe_dt()
321 ts->x_plate_ohms = val32; in tsc2007_probe_dt()
327 ts->gpio = of_get_gpio(np, 0); in tsc2007_probe_dt()
328 if (gpio_is_valid(ts->gpio)) in tsc2007_probe_dt()
329 ts->get_pendown_state = tsc2007_get_pendown_state_gpio; in tsc2007_probe_dt()
333 ts->gpio); in tsc2007_probe_dt()
338 static int tsc2007_probe_dt(struct i2c_client *client, struct tsc2007 *ts) in tsc2007_probe_dt() argument
345 static int tsc2007_probe_pdev(struct i2c_client *client, struct tsc2007 *ts, in tsc2007_probe_pdev() argument
349 ts->model = pdata->model; in tsc2007_probe_pdev()
350 ts->x_plate_ohms = pdata->x_plate_ohms; in tsc2007_probe_pdev()
351 ts->max_rt = pdata->max_rt ? : MAX_12BIT; in tsc2007_probe_pdev()
352 ts->poll_period = msecs_to_jiffies(pdata->poll_period ? : 1); in tsc2007_probe_pdev()
353 ts->get_pendown_state = pdata->get_pendown_state; in tsc2007_probe_pdev()
354 ts->clear_penirq = pdata->clear_penirq; in tsc2007_probe_pdev()
355 ts->fuzzx = pdata->fuzzx; in tsc2007_probe_pdev()
356 ts->fuzzy = pdata->fuzzy; in tsc2007_probe_pdev()
357 ts->fuzzz = pdata->fuzzz; in tsc2007_probe_pdev()
379 struct tsc2007 *ts; in tsc2007_probe() local
387 ts = devm_kzalloc(&client->dev, sizeof(struct tsc2007), GFP_KERNEL); in tsc2007_probe()
388 if (!ts) in tsc2007_probe()
392 err = tsc2007_probe_pdev(client, ts, pdata, id); in tsc2007_probe()
394 err = tsc2007_probe_dt(client, ts); in tsc2007_probe()
402 i2c_set_clientdata(client, ts); in tsc2007_probe()
404 ts->client = client; in tsc2007_probe()
405 ts->irq = client->irq; in tsc2007_probe()
406 ts->input = input_dev; in tsc2007_probe()
407 init_waitqueue_head(&ts->wait); in tsc2007_probe()
409 snprintf(ts->phys, sizeof(ts->phys), in tsc2007_probe()
413 input_dev->phys = ts->phys; in tsc2007_probe()
419 input_set_drvdata(input_dev, ts); in tsc2007_probe()
424 input_set_abs_params(input_dev, ABS_X, 0, MAX_12BIT, ts->fuzzx, 0); in tsc2007_probe()
425 input_set_abs_params(input_dev, ABS_Y, 0, MAX_12BIT, ts->fuzzy, 0); in tsc2007_probe()
427 ts->fuzzz, 0); in tsc2007_probe()
446 err = devm_request_threaded_irq(&client->dev, ts->irq, in tsc2007_probe()
449 client->dev.driver->name, ts); in tsc2007_probe()
452 ts->irq, err); in tsc2007_probe()
456 tsc2007_stop(ts); in tsc2007_probe()