Lines Matching refs:haptics

86 	struct drv2665_data *haptics =  in drv2665_worker()  local
91 error = regmap_read(haptics->regmap, DRV2665_STATUS, &read_buf); in drv2665_worker()
93 dev_err(&haptics->client->dev, in drv2665_worker()
99 error = regmap_bulk_write(haptics->regmap, in drv2665_worker()
104 dev_err(&haptics->client->dev, in drv2665_worker()
114 struct drv2665_data *haptics = input_get_drvdata(input); in drv2665_haptics_play() local
116 schedule_work(&haptics->work); in drv2665_haptics_play()
123 struct drv2665_data *haptics = input_get_drvdata(input); in drv2665_close() local
126 cancel_work_sync(&haptics->work); in drv2665_close()
128 error = regmap_update_bits(haptics->regmap, in drv2665_close()
131 dev_err(&haptics->client->dev, in drv2665_close()
140 static int drv2665_init(struct drv2665_data *haptics) in drv2665_init() argument
144 error = regmap_register_patch(haptics->regmap, in drv2665_init()
148 dev_err(&haptics->client->dev, in drv2665_init()
170 struct drv2665_data *haptics; in drv2665_probe() local
173 haptics = devm_kzalloc(&client->dev, sizeof(*haptics), GFP_KERNEL); in drv2665_probe()
174 if (!haptics) in drv2665_probe()
177 haptics->regulator = devm_regulator_get(&client->dev, "vbat"); in drv2665_probe()
178 if (IS_ERR(haptics->regulator)) { in drv2665_probe()
179 error = PTR_ERR(haptics->regulator); in drv2665_probe()
185 haptics->input_dev = devm_input_allocate_device(&client->dev); in drv2665_probe()
186 if (!haptics->input_dev) { in drv2665_probe()
191 haptics->input_dev->name = "drv2665:haptics"; in drv2665_probe()
192 haptics->input_dev->dev.parent = client->dev.parent; in drv2665_probe()
193 haptics->input_dev->close = drv2665_close; in drv2665_probe()
194 input_set_drvdata(haptics->input_dev, haptics); in drv2665_probe()
195 input_set_capability(haptics->input_dev, EV_FF, FF_RUMBLE); in drv2665_probe()
197 error = input_ff_create_memless(haptics->input_dev, NULL, in drv2665_probe()
205 INIT_WORK(&haptics->work, drv2665_worker); in drv2665_probe()
207 haptics->client = client; in drv2665_probe()
208 i2c_set_clientdata(client, haptics); in drv2665_probe()
210 haptics->regmap = devm_regmap_init_i2c(client, &drv2665_regmap_config); in drv2665_probe()
211 if (IS_ERR(haptics->regmap)) { in drv2665_probe()
212 error = PTR_ERR(haptics->regmap); in drv2665_probe()
218 error = drv2665_init(haptics); in drv2665_probe()
224 error = input_register_device(haptics->input_dev); in drv2665_probe()
236 struct drv2665_data *haptics = dev_get_drvdata(dev); in drv2665_suspend() local
239 mutex_lock(&haptics->input_dev->mutex); in drv2665_suspend()
241 if (haptics->input_dev->users) { in drv2665_suspend()
242 ret = regmap_update_bits(haptics->regmap, DRV2665_CTRL_2, in drv2665_suspend()
246 regulator_disable(haptics->regulator); in drv2665_suspend()
250 ret = regulator_disable(haptics->regulator); in drv2665_suspend()
253 regmap_update_bits(haptics->regmap, in drv2665_suspend()
259 mutex_unlock(&haptics->input_dev->mutex); in drv2665_suspend()
265 struct drv2665_data *haptics = dev_get_drvdata(dev); in drv2665_resume() local
268 mutex_lock(&haptics->input_dev->mutex); in drv2665_resume()
270 if (haptics->input_dev->users) { in drv2665_resume()
271 ret = regulator_enable(haptics->regulator); in drv2665_resume()
277 ret = regmap_update_bits(haptics->regmap, DRV2665_CTRL_2, in drv2665_resume()
281 regulator_disable(haptics->regulator); in drv2665_resume()
288 mutex_unlock(&haptics->input_dev->mutex); in drv2665_resume()