Lines Matching refs:data

70 static inline bool vcnl4035_is_triggered(struct vcnl4035_data *data)
75 ret = regmap_read(data->regmap, VCNL4035_INT_FLAG, &reg);
86 struct vcnl4035_data *data = iio_priv(indio_dev);
88 if (vcnl4035_is_triggered(data)) {
94 iio_trigger_poll_chained(data->drdy_trigger0);
106 struct vcnl4035_data *data = iio_priv(indio_dev);
111 ret = regmap_read(data->regmap, VCNL4035_ALS_DATA, (int *)buffer);
113 dev_err(&data->client->dev,
130 struct vcnl4035_data *data = iio_priv(indio_dev);
134 return regmap_update_bits(data->regmap, VCNL4035_ALS_CONF,
144 static int vcnl4035_set_pm_runtime_state(struct vcnl4035_data *data, bool on)
147 struct device *dev = &data->client->dev;
178 struct vcnl4035_data *data = iio_priv(indio_dev);
185 ret = vcnl4035_set_pm_runtime_state(data, true);
195 ret = regmap_read(data->regmap, reg, &raw_data);
202 vcnl4035_set_pm_runtime_state(data, false);
206 if (data->als_it_val)
207 *val = data->als_it_val * 100;
211 if (!data->als_it_val)
214 *val2 = data->als_it_val * 2 * 1000;
226 struct vcnl4035_data *data = iio_priv(indio_dev);
233 ret = vcnl4035_set_pm_runtime_state(data, true);
237 ret = regmap_update_bits(data->regmap, VCNL4035_ALS_CONF,
241 data->als_it_val = val / 100;
243 vcnl4035_set_pm_runtime_state(data, false);
256 struct vcnl4035_data *data = iio_priv(indio_dev);
262 *val = data->als_thresh_high;
265 *val = data->als_thresh_low;
272 *val = data->als_persistence;
285 struct vcnl4035_data *data = iio_priv(indio_dev);
294 if (val < data->als_thresh_low)
296 ret = regmap_write(data->regmap, VCNL4035_ALS_THDH,
300 data->als_thresh_high = val;
302 if (val > data->als_thresh_high)
304 ret = regmap_write(data->regmap, VCNL4035_ALS_THDL,
308 data->als_thresh_low = val;
315 ret = regmap_update_bits(data->regmap, VCNL4035_ALS_CONF,
318 data->als_persistence = val;
402 static int vcnl4035_set_als_power_state(struct vcnl4035_data *data, u8 status)
404 return regmap_update_bits(data->regmap, VCNL4035_ALS_CONF,
409 static int vcnl4035_init(struct vcnl4035_data *data)
414 ret = regmap_read(data->regmap, VCNL4035_DEV_ID, &id);
416 dev_err(&data->client->dev, "Failed to read DEV_ID register\n");
422 dev_err(&data->client->dev, "Wrong id, got %x, expected %x\n",
427 ret = vcnl4035_set_als_power_state(data, VCNL4035_MODE_ALS_ENABLE);
432 ret = regmap_update_bits(data->regmap, VCNL4035_ALS_CONF,
436 dev_err(&data->client->dev, "set white channel enable %d\n",
442 ret = regmap_update_bits(data->regmap, VCNL4035_ALS_CONF,
446 dev_err(&data->client->dev, "set default ALS IT returned %d\n",
450 data->als_it_val = VCNL4035_ALS_IT_DEFAULT;
453 ret = regmap_update_bits(data->regmap, VCNL4035_ALS_CONF,
457 dev_err(&data->client->dev, "set default PERS returned %d\n",
461 data->als_persistence = VCNL4035_ALS_PERS_DEFAULT;
464 ret = regmap_write(data->regmap, VCNL4035_ALS_THDH,
467 dev_err(&data->client->dev, "set default THDH returned %d\n",
471 data->als_thresh_high = VCNL4035_ALS_THDH_DEFAULT;
474 ret = regmap_write(data->regmap, VCNL4035_ALS_THDL,
477 dev_err(&data->client->dev, "set default THDL returned %d\n",
481 data->als_thresh_low = VCNL4035_ALS_THDL_DEFAULT;
510 struct vcnl4035_data *data = iio_priv(indio_dev);
512 data->drdy_trigger0 = devm_iio_trigger_alloc(
515 if (!data->drdy_trigger0)
518 data->drdy_trigger0->dev.parent = indio_dev->dev.parent;
519 data->drdy_trigger0->ops = &vcnl4035_trigger_ops;
520 iio_trigger_set_drvdata(data->drdy_trigger0, indio_dev);
522 data->drdy_trigger0);
524 dev_err(&data->client->dev, "iio trigger register failed\n");
533 dev_err(&data->client->dev, "iio triggered buffer setup failed\n");
538 ret = devm_request_threaded_irq(&data->client->dev, data->client->irq,
543 dev_err(&data->client->dev, "request irq %d for trigger0 failed\n",
544 data->client->irq);
551 struct vcnl4035_data *data;
556 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data));
566 data = iio_priv(indio_dev);
568 data->client = client;
569 data->regmap = regmap;
577 ret = vcnl4035_init(data);
606 vcnl4035_set_als_power_state(data, VCNL4035_MODE_ALS_DISABLE);
626 struct vcnl4035_data *data = iio_priv(indio_dev);
629 ret = vcnl4035_set_als_power_state(data, VCNL4035_MODE_ALS_DISABLE);
630 regcache_mark_dirty(data->regmap);
638 struct vcnl4035_data *data = iio_priv(indio_dev);
641 regcache_sync(data->regmap);
642 ret = vcnl4035_set_als_power_state(data, VCNL4035_MODE_ALS_ENABLE);
647 msleep(data->als_it_val * 100);