Lines Matching defs:bt541

193 static int zinitix_init_touch(struct bt541_ts_data *bt541)
195 struct i2c_client *client = bt541->client;
214 bt541->prop.max_x);
219 bt541->prop.max_y);
229 bt541->zinitix_mode);
234 bt541->zinitix_mode);
253 static int zinitix_init_regulators(struct bt541_ts_data *bt541)
255 struct device *dev = &bt541->client->dev;
264 bt541->supplies[0].supply = "vdd";
265 bt541->supplies[1].supply = "vddo";
268 bt541->supplies[0].supply = "vcca";
269 bt541->supplies[1].supply = "vdd";
272 ARRAY_SIZE(bt541->supplies),
273 bt541->supplies);
282 static int zinitix_send_power_on_sequence(struct bt541_ts_data *bt541)
285 struct i2c_client *client = bt541->client;
322 static void zinitix_report_finger(struct bt541_ts_data *bt541, int slot,
329 dev_dbg(&bt541->client->dev, "unknown finger event %#02x\n",
337 input_mt_slot(bt541->input_dev, slot);
338 if (input_mt_report_slot_state(bt541->input_dev, MT_TOOL_FINGER,
340 touchscreen_report_pos(bt541->input_dev,
341 &bt541->prop, x, y, true);
342 input_report_abs(bt541->input_dev,
344 dev_dbg(&bt541->client->dev, "finger %d %s (%u, %u)\n",
348 dev_dbg(&bt541->client->dev, "finger %d up (%u, %u)\n",
355 struct bt541_ts_data *bt541 = bt541_handler;
356 struct i2c_client *client = bt541->client;
364 error = zinitix_read_data(bt541->client, ZINITIX_POINT_STATUS_REG,
377 zinitix_report_finger(bt541, i, p);
380 input_mt_sync_frame(bt541->input_dev);
381 input_sync(bt541->input_dev);
384 zinitix_write_cmd(bt541->client, ZINITIX_CLEAR_INT_STATUS_CMD);
388 static int zinitix_start(struct bt541_ts_data *bt541)
392 error = regulator_bulk_enable(ARRAY_SIZE(bt541->supplies),
393 bt541->supplies);
395 dev_err(&bt541->client->dev,
402 error = zinitix_send_power_on_sequence(bt541);
404 dev_err(&bt541->client->dev,
409 error = zinitix_init_touch(bt541);
411 dev_err(&bt541->client->dev,
416 enable_irq(bt541->client->irq);
421 static int zinitix_stop(struct bt541_ts_data *bt541)
425 disable_irq(bt541->client->irq);
427 error = regulator_bulk_disable(ARRAY_SIZE(bt541->supplies),
428 bt541->supplies);
430 dev_err(&bt541->client->dev,
440 struct bt541_ts_data *bt541 = input_get_drvdata(dev);
442 return zinitix_start(bt541);
447 struct bt541_ts_data *bt541 = input_get_drvdata(dev);
449 zinitix_stop(bt541);
452 static int zinitix_init_input_dev(struct bt541_ts_data *bt541)
457 input_dev = devm_input_allocate_device(&bt541->client->dev);
459 dev_err(&bt541->client->dev,
464 input_set_drvdata(input_dev, bt541);
465 bt541->input_dev = input_dev;
478 touchscreen_parse_properties(input_dev, true, &bt541->prop);
479 if (!bt541->prop.max_x || !bt541->prop.max_y) {
480 dev_err(&bt541->client->dev,
488 dev_err(&bt541->client->dev,
495 dev_err(&bt541->client->dev,
505 struct bt541_ts_data *bt541;
514 bt541 = devm_kzalloc(&client->dev, sizeof(*bt541), GFP_KERNEL);
515 if (!bt541)
518 bt541->client = client;
519 i2c_set_clientdata(client, bt541);
521 error = zinitix_init_regulators(bt541);
531 client->name, bt541);
537 error = zinitix_init_input_dev(bt541);
545 &bt541->zinitix_mode);
548 bt541->zinitix_mode = DEFAULT_TOUCH_POINT_MODE;
551 if (bt541->zinitix_mode != 2) {
558 bt541->zinitix_mode);
568 struct bt541_ts_data *bt541 = i2c_get_clientdata(client);
570 mutex_lock(&bt541->input_dev->mutex);
572 if (input_device_enabled(bt541->input_dev))
573 zinitix_stop(bt541);
575 mutex_unlock(&bt541->input_dev->mutex);
583 struct bt541_ts_data *bt541 = i2c_get_clientdata(client);
586 mutex_lock(&bt541->input_dev->mutex);
588 if (input_device_enabled(bt541->input_dev))
589 ret = zinitix_start(bt541);
591 mutex_unlock(&bt541->input_dev->mutex);
610 { .compatible = "zinitix,bt541" },