Lines Matching refs:haptics
78 struct drv2665_data *haptics = in drv2665_worker() local
83 error = regmap_read(haptics->regmap, DRV2665_STATUS, &read_buf); in drv2665_worker()
85 dev_err(&haptics->client->dev, in drv2665_worker()
91 error = regmap_bulk_write(haptics->regmap, in drv2665_worker()
96 dev_err(&haptics->client->dev, in drv2665_worker()
106 struct drv2665_data *haptics = input_get_drvdata(input); in drv2665_haptics_play() local
108 schedule_work(&haptics->work); in drv2665_haptics_play()
115 struct drv2665_data *haptics = input_get_drvdata(input); in drv2665_close() local
118 cancel_work_sync(&haptics->work); in drv2665_close()
120 error = regmap_update_bits(haptics->regmap, DRV2665_CTRL_2, in drv2665_close()
123 dev_err(&haptics->client->dev, in drv2665_close()
132 static int drv2665_init(struct drv2665_data *haptics) in drv2665_init() argument
136 error = regmap_register_patch(haptics->regmap, in drv2665_init()
140 dev_err(&haptics->client->dev, in drv2665_init()
161 struct drv2665_data *haptics; in drv2665_probe() local
164 haptics = devm_kzalloc(&client->dev, sizeof(*haptics), GFP_KERNEL); in drv2665_probe()
165 if (!haptics) in drv2665_probe()
168 haptics->regulator = devm_regulator_get(&client->dev, "vbat"); in drv2665_probe()
169 if (IS_ERR(haptics->regulator)) { in drv2665_probe()
170 error = PTR_ERR(haptics->regulator); in drv2665_probe()
176 haptics->input_dev = devm_input_allocate_device(&client->dev); in drv2665_probe()
177 if (!haptics->input_dev) { in drv2665_probe()
182 haptics->input_dev->name = "drv2665:haptics"; in drv2665_probe()
183 haptics->input_dev->dev.parent = client->dev.parent; in drv2665_probe()
184 haptics->input_dev->close = drv2665_close; in drv2665_probe()
185 input_set_drvdata(haptics->input_dev, haptics); in drv2665_probe()
186 input_set_capability(haptics->input_dev, EV_FF, FF_RUMBLE); in drv2665_probe()
188 error = input_ff_create_memless(haptics->input_dev, NULL, in drv2665_probe()
196 INIT_WORK(&haptics->work, drv2665_worker); in drv2665_probe()
198 haptics->client = client; in drv2665_probe()
199 i2c_set_clientdata(client, haptics); in drv2665_probe()
201 haptics->regmap = devm_regmap_init_i2c(client, &drv2665_regmap_config); in drv2665_probe()
202 if (IS_ERR(haptics->regmap)) { in drv2665_probe()
203 error = PTR_ERR(haptics->regmap); in drv2665_probe()
209 error = drv2665_init(haptics); in drv2665_probe()
215 error = input_register_device(haptics->input_dev); in drv2665_probe()
227 struct drv2665_data *haptics = dev_get_drvdata(dev); in drv2665_suspend() local
230 mutex_lock(&haptics->input_dev->mutex); in drv2665_suspend()
232 if (input_device_enabled(haptics->input_dev)) { in drv2665_suspend()
233 ret = regmap_update_bits(haptics->regmap, DRV2665_CTRL_2, in drv2665_suspend()
237 regulator_disable(haptics->regulator); in drv2665_suspend()
241 ret = regulator_disable(haptics->regulator); in drv2665_suspend()
244 regmap_update_bits(haptics->regmap, in drv2665_suspend()
250 mutex_unlock(&haptics->input_dev->mutex); in drv2665_suspend()
256 struct drv2665_data *haptics = dev_get_drvdata(dev); in drv2665_resume() local
259 mutex_lock(&haptics->input_dev->mutex); in drv2665_resume()
261 if (input_device_enabled(haptics->input_dev)) { in drv2665_resume()
262 ret = regulator_enable(haptics->regulator); in drv2665_resume()
268 ret = regmap_update_bits(haptics->regmap, DRV2665_CTRL_2, in drv2665_resume()
272 regulator_disable(haptics->regulator); in drv2665_resume()
279 mutex_unlock(&haptics->input_dev->mutex); in drv2665_resume()