Lines Matching refs:ts

89 bool tsc2007_is_pen_down(struct tsc2007 *ts)
105 if (!ts->get_pendown_state)
108 return ts->get_pendown_state(&ts->client->dev);
113 struct tsc2007 *ts = handle;
114 struct input_dev *input = ts->input;
118 while (!ts->stopped && tsc2007_is_pen_down(ts)) {
122 mutex_lock(&ts->mlock);
123 tsc2007_read_values(ts, &tc);
124 mutex_unlock(&ts->mlock);
126 rt = tsc2007_calculate_resistance(ts, &tc);
128 if (!rt && !ts->get_pendown_state) {
137 if (rt <= ts->max_rt) {
138 dev_dbg(&ts->client->dev,
142 rt = ts->max_rt - rt;
157 dev_dbg(&ts->client->dev, "ignored pressure %d\n", rt);
160 wait_event_timeout(ts->wait, ts->stopped, ts->poll_period);
163 dev_dbg(&ts->client->dev, "UP\n");
169 if (ts->clear_penirq)
170 ts->clear_penirq();
175 static void tsc2007_stop(struct tsc2007 *ts)
177 ts->stopped = true;
179 wake_up(&ts->wait);
181 disable_irq(ts->irq);
186 struct tsc2007 *ts = input_get_drvdata(input_dev);
189 ts->stopped = false;
192 enable_irq(ts->irq);
195 err = tsc2007_xfer(ts, PWRDOWN);
197 tsc2007_stop(ts);
206 struct tsc2007 *ts = input_get_drvdata(input_dev);
208 tsc2007_stop(ts);
214 struct tsc2007 *ts = i2c_get_clientdata(client);
216 return gpiod_get_value_cansleep(ts->gpiod);
219 static int tsc2007_probe_properties(struct device *dev, struct tsc2007 *ts)
225 ts->max_rt = val32;
227 ts->max_rt = MAX_12BIT;
230 ts->fuzzx = val32;
233 ts->fuzzy = val32;
236 ts->fuzzz = val32;
239 ts->poll_period = msecs_to_jiffies(val64);
241 ts->poll_period = msecs_to_jiffies(1);
244 ts->x_plate_ohms = val32;
250 ts->gpiod = devm_gpiod_get_optional(dev, NULL, GPIOD_IN);
251 if (IS_ERR(ts->gpiod))
252 return PTR_ERR(ts->gpiod);
254 if (ts->gpiod)
255 ts->get_pendown_state = tsc2007_get_pendown_state_gpio;
262 static int tsc2007_probe_pdev(struct device *dev, struct tsc2007 *ts,
266 ts->model = pdata->model;
267 ts->x_plate_ohms = pdata->x_plate_ohms;
268 ts->max_rt = pdata->max_rt ? : MAX_12BIT;
269 ts->poll_period = msecs_to_jiffies(pdata->poll_period ? : 1);
270 ts->get_pendown_state = pdata->get_pendown_state;
271 ts->clear_penirq = pdata->clear_penirq;
272 ts->fuzzx = pdata->fuzzx;
273 ts->fuzzy = pdata->fuzzy;
274 ts->fuzzz = pdata->fuzzz;
297 struct tsc2007 *ts;
305 ts = devm_kzalloc(&client->dev, sizeof(struct tsc2007), GFP_KERNEL);
306 if (!ts)
310 err = tsc2007_probe_pdev(&client->dev, ts, pdata, id);
312 err = tsc2007_probe_properties(&client->dev, ts);
320 i2c_set_clientdata(client, ts);
322 ts->client = client;
323 ts->irq = client->irq;
324 ts->input = input_dev;
326 init_waitqueue_head(&ts->wait);
327 mutex_init(&ts->mlock);
329 snprintf(ts->phys, sizeof(ts->phys),
333 input_dev->phys = ts->phys;
339 input_set_drvdata(input_dev, ts);
343 input_set_abs_params(input_dev, ABS_X, 0, MAX_12BIT, ts->fuzzx, 0);
344 input_set_abs_params(input_dev, ABS_Y, 0, MAX_12BIT, ts->fuzzy, 0);
346 ts->fuzzz, 0);
365 err = devm_request_threaded_irq(&client->dev, ts->irq,
368 client->dev.driver->name, ts);
371 ts->irq, err);
375 tsc2007_stop(ts);
378 err = tsc2007_xfer(ts, PWRDOWN);
392 err = tsc2007_iio_configure(ts);