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,
162 struct drv2665_data *haptics;
165 haptics = devm_kzalloc(&client->dev, sizeof(*haptics), GFP_KERNEL);
166 if (!haptics)
169 haptics->regulator = devm_regulator_get(&client->dev, "vbat");
170 if (IS_ERR(haptics->regulator)) {
171 error = PTR_ERR(haptics->regulator);
177 haptics->input_dev = devm_input_allocate_device(&client->dev);
178 if (!haptics->input_dev) {
183 haptics->input_dev->name = "drv2665:haptics";
184 haptics->input_dev->dev.parent = client->dev.parent;
185 haptics->input_dev->close = drv2665_close;
186 input_set_drvdata(haptics->input_dev, haptics);
187 input_set_capability(haptics->input_dev, EV_FF, FF_RUMBLE);
189 error = input_ff_create_memless(haptics->input_dev, NULL,
197 INIT_WORK(&haptics->work, drv2665_worker);
199 haptics->client = client;
200 i2c_set_clientdata(client, haptics);
202 haptics->regmap = devm_regmap_init_i2c(client, &drv2665_regmap_config);
203 if (IS_ERR(haptics->regmap)) {
204 error = PTR_ERR(haptics->regmap);
210 error = drv2665_init(haptics);
216 error = input_register_device(haptics->input_dev);
228 struct drv2665_data *haptics = dev_get_drvdata(dev);
231 mutex_lock(&haptics->input_dev->mutex);
233 if (haptics->input_dev->users) {
234 ret = regmap_update_bits(haptics->regmap, DRV2665_CTRL_2,
238 regulator_disable(haptics->regulator);
242 ret = regulator_disable(haptics->regulator);
245 regmap_update_bits(haptics->regmap,
251 mutex_unlock(&haptics->input_dev->mutex);
257 struct drv2665_data *haptics = dev_get_drvdata(dev);
260 mutex_lock(&haptics->input_dev->mutex);
262 if (haptics->input_dev->users) {
263 ret = regulator_enable(haptics->regulator);
269 ret = regmap_update_bits(haptics->regmap, DRV2665_CTRL_2,
273 regulator_disable(haptics->regulator);
280 mutex_unlock(&haptics->input_dev->mutex);
303 .name = "drv2665-haptics",
311 MODULE_DESCRIPTION("TI DRV2665 haptics driver");