Lines Matching defs:sx8654
96 struct sx8654 {
109 static inline void sx865x_penrelease(struct sx8654 *ts)
119 struct sx8654 *ts = from_timer(ts, t, timer);
130 struct sx8654 *ts = handle;
194 struct sx8654 *sx8654 = handle;
200 irqsrc = i2c_smbus_read_byte_data(sx8654->client,
202 dev_dbg(&sx8654->client->dev, "irqsrc = 0x%x", irqsrc);
208 dev_dbg(&sx8654->client->dev, "pen release interrupt");
210 input_report_key(sx8654->input, BTN_TOUCH, 0);
211 input_sync(sx8654->input);
215 dev_dbg(&sx8654->client->dev, "pen touch interrupt");
217 retval = i2c_master_recv(sx8654->client, data, sizeof(data));
228 touchscreen_report_pos(sx8654->input, &sx8654->props, x, y,
230 input_report_key(sx8654->input, BTN_TOUCH, 1);
231 input_sync(sx8654->input);
233 dev_dbg(&sx8654->client->dev, "point(%4d,%4d)\n", x, y);
240 static int sx8654_reset(struct sx8654 *ts)
261 struct sx8654 *sx8654 = input_get_drvdata(dev);
262 struct i2c_client *client = sx8654->client;
286 struct sx8654 *sx8654 = input_get_drvdata(dev);
287 struct i2c_client *client = sx8654->client;
292 if (!sx8654->data->has_irq_penrelease)
293 del_timer_sync(&sx8654->timer);
296 error = i2c_smbus_write_byte(client, sx8654->data->cmd_manual);
312 struct sx8654 *sx8654;
320 sx8654 = devm_kzalloc(&client->dev, sizeof(*sx8654), GFP_KERNEL);
321 if (!sx8654)
324 sx8654->gpio_reset = devm_gpiod_get_optional(&client->dev, "reset",
326 if (IS_ERR(sx8654->gpio_reset)) {
327 error = PTR_ERR(sx8654->gpio_reset);
335 sx8654->data = device_get_match_data(&client->dev);
336 if (!sx8654->data)
337 sx8654->data = (const struct sx865x_data *)id->driver_data;
338 if (!sx8654->data) {
343 if (!sx8654->data->has_irq_penrelease) {
345 timer_setup(&sx8654->timer, sx865x_penrelease_timer_handler, 0);
346 spin_lock_init(&sx8654->lock);
364 touchscreen_parse_properties(input, false, &sx8654->props);
366 sx8654->client = client;
367 sx8654->input = input;
369 input_set_drvdata(sx8654->input, sx8654);
371 error = sx8654_reset(sx8654);
378 sx8654->data->chan_mask);
384 if (sx8654->data->has_reg_irqmask) {
402 NULL, sx8654->data->irqh,
404 client->name, sx8654);
415 error = input_register_device(sx8654->input);
444 .compatible = "semtech,sx8654",
469 .name = "sx8654",