Lines Matching defs:bu21029

153 #define DRIVER_NAME		"bu21029"
165 static void bu21029_touch_report(struct bu21029_ts_data *bu21029, const u8 *buf)
169 s32 max_pressure = input_abs_get_max(bu21029->in_dev, ABS_PRESSURE);
196 rz *= bu21029->x_plate_ohms;
200 touchscreen_report_pos(bu21029->in_dev, &bu21029->prop,
202 input_report_abs(bu21029->in_dev, ABS_PRESSURE,
204 input_report_key(bu21029->in_dev, BTN_TOUCH, 1);
205 input_sync(bu21029->in_dev);
212 struct bu21029_ts_data *bu21029 = from_timer(bu21029, t, timer);
214 input_report_abs(bu21029->in_dev, ABS_PRESSURE, 0);
215 input_report_key(bu21029->in_dev, BTN_TOUCH, 0);
216 input_sync(bu21029->in_dev);
221 struct bu21029_ts_data *bu21029 = data;
229 error = i2c_smbus_read_i2c_block_data(bu21029->client, BU21029_AUTOSCAN,
234 bu21029_touch_report(bu21029, buf);
237 mod_timer(&bu21029->timer,
244 static void bu21029_put_chip_in_reset(struct bu21029_ts_data *bu21029)
246 if (bu21029->reset_gpios) {
247 gpiod_set_value_cansleep(bu21029->reset_gpios, 1);
254 struct bu21029_ts_data *bu21029 = input_get_drvdata(dev);
255 struct i2c_client *i2c = bu21029->client;
269 error = regulator_enable(bu21029->vdd);
276 if (bu21029->reset_gpios) {
277 gpiod_set_value_cansleep(bu21029->reset_gpios, 0);
314 enable_irq(bu21029->client->irq);
318 bu21029_put_chip_in_reset(bu21029);
319 regulator_disable(bu21029->vdd);
325 struct bu21029_ts_data *bu21029 = input_get_drvdata(dev);
327 disable_irq(bu21029->client->irq);
328 del_timer_sync(&bu21029->timer);
330 bu21029_put_chip_in_reset(bu21029);
331 regulator_disable(bu21029->vdd);
337 struct bu21029_ts_data *bu21029;
350 bu21029 = devm_kzalloc(&client->dev, sizeof(*bu21029), GFP_KERNEL);
351 if (!bu21029)
355 &bu21029->x_plate_ohms);
362 bu21029->vdd = devm_regulator_get(&client->dev, "vdd");
363 if (IS_ERR(bu21029->vdd)) {
364 error = PTR_ERR(bu21029->vdd);
371 bu21029->reset_gpios = devm_gpiod_get_optional(&client->dev,
373 if (IS_ERR(bu21029->reset_gpios)) {
374 error = PTR_ERR(bu21029->reset_gpios);
387 bu21029->client = client;
388 bu21029->in_dev = in_dev;
389 timer_setup(&bu21029->timer, bu21029_touch_release, 0);
400 touchscreen_parse_properties(in_dev, false, &bu21029->prop);
402 input_set_drvdata(in_dev, bu21029);
407 IRQF_ONESHOT, DRIVER_NAME, bu21029);
421 i2c_set_clientdata(client, bu21029);
429 struct bu21029_ts_data *bu21029 = i2c_get_clientdata(i2c);
432 mutex_lock(&bu21029->in_dev->mutex);
433 if (bu21029->in_dev->users)
434 bu21029_stop_chip(bu21029->in_dev);
435 mutex_unlock(&bu21029->in_dev->mutex);
444 struct bu21029_ts_data *bu21029 = i2c_get_clientdata(i2c);
447 mutex_lock(&bu21029->in_dev->mutex);
448 if (bu21029->in_dev->users)
449 bu21029_start_chip(bu21029->in_dev);
450 mutex_unlock(&bu21029->in_dev->mutex);
465 { .compatible = "rohm,bu21029" },