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 i2c_client *client = bt541->client;
258 bt541->supplies[0].supply = "vdd";
259 bt541->supplies[1].supply = "vddo";
261 ARRAY_SIZE(bt541->supplies),
262 bt541->supplies);
271 static int zinitix_send_power_on_sequence(struct bt541_ts_data *bt541)
274 struct i2c_client *client = bt541->client;
311 static void zinitix_report_finger(struct bt541_ts_data *bt541, int slot,
318 dev_dbg(&bt541->client->dev, "unknown finger event %#02x\n",
326 input_mt_slot(bt541->input_dev, slot);
327 if (input_mt_report_slot_state(bt541->input_dev, MT_TOOL_FINGER,
329 touchscreen_report_pos(bt541->input_dev,
330 &bt541->prop, x, y, true);
331 input_report_abs(bt541->input_dev,
333 dev_dbg(&bt541->client->dev, "finger %d %s (%u, %u)\n",
337 dev_dbg(&bt541->client->dev, "finger %d up (%u, %u)\n",
344 struct bt541_ts_data *bt541 = bt541_handler;
345 struct i2c_client *client = bt541->client;
353 error = zinitix_read_data(bt541->client, BT541_POINT_STATUS_REG,
366 zinitix_report_finger(bt541, i, p);
369 input_mt_sync_frame(bt541->input_dev);
370 input_sync(bt541->input_dev);
373 zinitix_write_cmd(bt541->client, BT541_CLEAR_INT_STATUS_CMD);
377 static int zinitix_start(struct bt541_ts_data *bt541)
381 error = regulator_bulk_enable(ARRAY_SIZE(bt541->supplies),
382 bt541->supplies);
384 dev_err(&bt541->client->dev,
391 error = zinitix_send_power_on_sequence(bt541);
393 dev_err(&bt541->client->dev,
398 error = zinitix_init_touch(bt541);
400 dev_err(&bt541->client->dev,
405 enable_irq(bt541->client->irq);
410 static int zinitix_stop(struct bt541_ts_data *bt541)
414 disable_irq(bt541->client->irq);
416 error = regulator_bulk_disable(ARRAY_SIZE(bt541->supplies),
417 bt541->supplies);
419 dev_err(&bt541->client->dev,
429 struct bt541_ts_data *bt541 = input_get_drvdata(dev);
431 return zinitix_start(bt541);
436 struct bt541_ts_data *bt541 = input_get_drvdata(dev);
438 zinitix_stop(bt541);
441 static int zinitix_init_input_dev(struct bt541_ts_data *bt541)
446 input_dev = devm_input_allocate_device(&bt541->client->dev);
448 dev_err(&bt541->client->dev,
453 input_set_drvdata(input_dev, bt541);
454 bt541->input_dev = input_dev;
467 touchscreen_parse_properties(input_dev, true, &bt541->prop);
468 if (!bt541->prop.max_x || !bt541->prop.max_y) {
469 dev_err(&bt541->client->dev,
477 dev_err(&bt541->client->dev,
484 dev_err(&bt541->client->dev,
494 struct bt541_ts_data *bt541;
503 bt541 = devm_kzalloc(&client->dev, sizeof(*bt541), GFP_KERNEL);
504 if (!bt541)
507 bt541->client = client;
508 i2c_set_clientdata(client, bt541);
510 error = zinitix_init_regulators(bt541);
520 client->name, bt541);
526 error = zinitix_init_input_dev(bt541);
534 &bt541->zinitix_mode);
537 bt541->zinitix_mode = DEFAULT_TOUCH_POINT_MODE;
540 if (bt541->zinitix_mode != 2) {
547 bt541->zinitix_mode);
559 struct bt541_ts_data *bt541 = i2c_get_clientdata(client);
561 mutex_lock(&bt541->input_dev->mutex);
563 if (bt541->input_dev->users)
564 zinitix_stop(bt541);
566 mutex_unlock(&bt541->input_dev->mutex);
574 struct bt541_ts_data *bt541 = i2c_get_clientdata(client);
577 mutex_lock(&bt541->input_dev->mutex);
579 if (bt541->input_dev->users)
580 ret = zinitix_start(bt541);
582 mutex_unlock(&bt541->input_dev->mutex);
591 { .compatible = "zinitix,bt541" },