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