Lines Matching defs:haptics

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