Lines Matching +full:power +full:- +full:supplies
1 // SPDX-License-Identifier: GPL-2.0-only
147 struct regulator_bulk_data supplies[2]; member
160 return ret < 0 ? ret : -EIO; in zinitix_read_data()
164 return ret < 0 ? ret : -EIO; ; in zinitix_read_data()
176 return ret < 0 ? ret : -EIO; in zinitix_write_u16()
188 return ret < 0 ? ret : -EIO; in zinitix_write_cmd()
195 struct i2c_client *client = bt541->client; in zinitix_init_touch()
201 dev_err(&client->dev, "Failed to write reset command\n"); in zinitix_init_touch()
207 dev_err(&client->dev, in zinitix_init_touch()
214 bt541->prop.max_x); in zinitix_init_touch()
219 bt541->prop.max_y); in zinitix_init_touch()
229 bt541->zinitix_mode); in zinitix_init_touch()
234 bt541->zinitix_mode); in zinitix_init_touch()
255 struct i2c_client *client = bt541->client; in zinitix_init_regulators()
258 bt541->supplies[0].supply = "vdd"; in zinitix_init_regulators()
259 bt541->supplies[1].supply = "vddo"; in zinitix_init_regulators()
260 error = devm_regulator_bulk_get(&client->dev, in zinitix_init_regulators()
261 ARRAY_SIZE(bt541->supplies), in zinitix_init_regulators()
262 bt541->supplies); in zinitix_init_regulators()
264 dev_err(&client->dev, "Failed to get regulators: %d\n", error); in zinitix_init_regulators()
274 struct i2c_client *client = bt541->client; in zinitix_send_power_on_sequence()
278 dev_err(&client->dev, in zinitix_send_power_on_sequence()
279 "Failed to send power sequence(vendor cmd enable)\n"); in zinitix_send_power_on_sequence()
286 dev_err(&client->dev, in zinitix_send_power_on_sequence()
287 "Failed to send power sequence (intn clear)\n"); in zinitix_send_power_on_sequence()
294 dev_err(&client->dev, in zinitix_send_power_on_sequence()
295 "Failed to send power sequence (nvm init)\n"); in zinitix_send_power_on_sequence()
302 dev_err(&client->dev, in zinitix_send_power_on_sequence()
303 "Failed to send power sequence (program start)\n"); in zinitix_send_power_on_sequence()
316 if (unlikely(!(p->sub_status & in zinitix_report_finger()
318 dev_dbg(&bt541->client->dev, "unknown finger event %#02x\n", in zinitix_report_finger()
319 p->sub_status); in zinitix_report_finger()
323 x = le16_to_cpu(p->x); in zinitix_report_finger()
324 y = le16_to_cpu(p->y); in zinitix_report_finger()
326 input_mt_slot(bt541->input_dev, slot); in zinitix_report_finger()
327 if (input_mt_report_slot_state(bt541->input_dev, MT_TOOL_FINGER, in zinitix_report_finger()
328 !(p->sub_status & SUB_BIT_UP))) { in zinitix_report_finger()
329 touchscreen_report_pos(bt541->input_dev, in zinitix_report_finger()
330 &bt541->prop, x, y, true); in zinitix_report_finger()
331 input_report_abs(bt541->input_dev, in zinitix_report_finger()
332 ABS_MT_TOUCH_MAJOR, p->width); in zinitix_report_finger()
333 dev_dbg(&bt541->client->dev, "finger %d %s (%u, %u)\n", in zinitix_report_finger()
334 slot, p->sub_status & SUB_BIT_DOWN ? "down" : "move", in zinitix_report_finger()
337 dev_dbg(&bt541->client->dev, "finger %d up (%u, %u)\n", in zinitix_report_finger()
345 struct i2c_client *client = bt541->client; in zinitix_ts_irq_handler()
353 error = zinitix_read_data(bt541->client, BT541_POINT_STATUS_REG, in zinitix_ts_irq_handler()
356 dev_err(&client->dev, "Failed to read in touchpoint struct\n"); in zinitix_ts_irq_handler()
365 if (p->sub_status & SUB_BIT_EXIST) in zinitix_ts_irq_handler()
369 input_mt_sync_frame(bt541->input_dev); in zinitix_ts_irq_handler()
370 input_sync(bt541->input_dev); in zinitix_ts_irq_handler()
373 zinitix_write_cmd(bt541->client, BT541_CLEAR_INT_STATUS_CMD); in zinitix_ts_irq_handler()
381 error = regulator_bulk_enable(ARRAY_SIZE(bt541->supplies), in zinitix_start()
382 bt541->supplies); in zinitix_start()
384 dev_err(&bt541->client->dev, in zinitix_start()
393 dev_err(&bt541->client->dev, in zinitix_start()
394 "Error while sending power-on sequence: %d\n", error); in zinitix_start()
400 dev_err(&bt541->client->dev, in zinitix_start()
405 enable_irq(bt541->client->irq); in zinitix_start()
414 disable_irq(bt541->client->irq); in zinitix_stop()
416 error = regulator_bulk_disable(ARRAY_SIZE(bt541->supplies), in zinitix_stop()
417 bt541->supplies); in zinitix_stop()
419 dev_err(&bt541->client->dev, in zinitix_stop()
446 input_dev = devm_input_allocate_device(&bt541->client->dev); in zinitix_init_input_dev()
448 dev_err(&bt541->client->dev, in zinitix_init_input_dev()
450 return -ENOMEM; in zinitix_init_input_dev()
454 bt541->input_dev = input_dev; in zinitix_init_input_dev()
456 input_dev->name = "Zinitix Capacitive TouchScreen"; in zinitix_init_input_dev()
457 input_dev->phys = "input/ts"; in zinitix_init_input_dev()
458 input_dev->id.bustype = BUS_I2C; in zinitix_init_input_dev()
459 input_dev->open = zinitix_input_open; in zinitix_init_input_dev()
460 input_dev->close = zinitix_input_close; in zinitix_init_input_dev()
467 touchscreen_parse_properties(input_dev, true, &bt541->prop); in zinitix_init_input_dev()
468 if (!bt541->prop.max_x || !bt541->prop.max_y) { in zinitix_init_input_dev()
469 dev_err(&bt541->client->dev, in zinitix_init_input_dev()
470 "Touchscreen-size-x and/or touchscreen-size-y not set in dts\n"); in zinitix_init_input_dev()
471 return -EINVAL; in zinitix_init_input_dev()
477 dev_err(&bt541->client->dev, in zinitix_init_input_dev()
484 dev_err(&bt541->client->dev, in zinitix_init_input_dev()
497 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { in zinitix_ts_probe()
498 dev_err(&client->dev, in zinitix_ts_probe()
500 return -ENXIO; in zinitix_ts_probe()
503 bt541 = devm_kzalloc(&client->dev, sizeof(*bt541), GFP_KERNEL); in zinitix_ts_probe()
505 return -ENOMEM; in zinitix_ts_probe()
507 bt541->client = client; in zinitix_ts_probe()
512 dev_err(&client->dev, in zinitix_ts_probe()
517 error = devm_request_threaded_irq(&client->dev, client->irq, in zinitix_ts_probe()
520 client->name, bt541); in zinitix_ts_probe()
522 dev_err(&client->dev, "Failed to request IRQ: %d\n", error); in zinitix_ts_probe()
528 dev_err(&client->dev, in zinitix_ts_probe()
533 error = device_property_read_u32(&client->dev, "zinitix,mode", in zinitix_ts_probe()
534 &bt541->zinitix_mode); in zinitix_ts_probe()
537 bt541->zinitix_mode = DEFAULT_TOUCH_POINT_MODE; in zinitix_ts_probe()
540 if (bt541->zinitix_mode != 2) { in zinitix_ts_probe()
545 dev_err(&client->dev, in zinitix_ts_probe()
547 bt541->zinitix_mode); in zinitix_ts_probe()
548 return -EINVAL; in zinitix_ts_probe()
551 irq_set_status_flags(client->irq, IRQ_NOAUTOEN); in zinitix_ts_probe()
561 mutex_lock(&bt541->input_dev->mutex); in zinitix_suspend()
563 if (bt541->input_dev->users) in zinitix_suspend()
566 mutex_unlock(&bt541->input_dev->mutex); in zinitix_suspend()
577 mutex_lock(&bt541->input_dev->mutex); in zinitix_resume()
579 if (bt541->input_dev->users) in zinitix_resume()
582 mutex_unlock(&bt541->input_dev->mutex); in zinitix_resume()
600 .name = "Zinitix-TS",