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_nested(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;
176 struct vcnl4035_data *data = iio_priv(indio_dev);
183 ret = vcnl4035_set_pm_runtime_state(data, true);
193 ret = regmap_read(data->regmap, reg, &raw_data);
200 vcnl4035_set_pm_runtime_state(data, false);
204 if (data->als_it_val)
205 *val = data->als_it_val * 100;
209 if (!data->als_it_val)
212 *val2 = data->als_it_val * 2 * 1000;
224 struct vcnl4035_data *data = iio_priv(indio_dev);
231 ret = vcnl4035_set_pm_runtime_state(data, true);
235 ret = regmap_update_bits(data->regmap, VCNL4035_ALS_CONF,
239 data->als_it_val = val / 100;
241 vcnl4035_set_pm_runtime_state(data, false);
254 struct vcnl4035_data *data = iio_priv(indio_dev);
260 *val = data->als_thresh_high;
263 *val = data->als_thresh_low;
270 *val = data->als_persistence;
283 struct vcnl4035_data *data = iio_priv(indio_dev);
292 if (val < data->als_thresh_low)
294 ret = regmap_write(data->regmap, VCNL4035_ALS_THDH,
298 data->als_thresh_high = val;
300 if (val > data->als_thresh_high)
302 ret = regmap_write(data->regmap, VCNL4035_ALS_THDL,
306 data->als_thresh_low = val;
313 ret = regmap_update_bits(data->regmap, VCNL4035_ALS_CONF,
316 data->als_persistence = val;
400 static int vcnl4035_set_als_power_state(struct vcnl4035_data *data, u8 status)
402 return regmap_update_bits(data->regmap, VCNL4035_ALS_CONF,
407 static int vcnl4035_init(struct vcnl4035_data *data)
412 ret = regmap_read(data->regmap, VCNL4035_DEV_ID, &id);
414 dev_err(&data->client->dev, "Failed to read DEV_ID register\n");
420 dev_err(&data->client->dev, "Wrong id, got %x, expected %x\n",
425 ret = vcnl4035_set_als_power_state(data, VCNL4035_MODE_ALS_ENABLE);
430 ret = regmap_update_bits(data->regmap, VCNL4035_ALS_CONF,
434 dev_err(&data->client->dev, "set white channel enable %d\n",
440 ret = regmap_update_bits(data->regmap, VCNL4035_ALS_CONF,
444 dev_err(&data->client->dev, "set default ALS IT returned %d\n",
448 data->als_it_val = VCNL4035_ALS_IT_DEFAULT;
451 ret = regmap_update_bits(data->regmap, VCNL4035_ALS_CONF,
455 dev_err(&data->client->dev, "set default PERS returned %d\n",
459 data->als_persistence = VCNL4035_ALS_PERS_DEFAULT;
462 ret = regmap_write(data->regmap, VCNL4035_ALS_THDH,
465 dev_err(&data->client->dev, "set default THDH returned %d\n",
469 data->als_thresh_high = VCNL4035_ALS_THDH_DEFAULT;
472 ret = regmap_write(data->regmap, VCNL4035_ALS_THDL,
475 dev_err(&data->client->dev, "set default THDL returned %d\n",
479 data->als_thresh_low = VCNL4035_ALS_THDL_DEFAULT;
508 struct vcnl4035_data *data = iio_priv(indio_dev);
510 data->drdy_trigger0 = devm_iio_trigger_alloc(
513 if (!data->drdy_trigger0)
516 data->drdy_trigger0->ops = &vcnl4035_trigger_ops;
517 iio_trigger_set_drvdata(data->drdy_trigger0, indio_dev);
519 data->drdy_trigger0);
521 dev_err(&data->client->dev, "iio trigger register failed\n");
530 dev_err(&data->client->dev, "iio triggered buffer setup failed\n");
535 ret = devm_request_threaded_irq(&data->client->dev, data->client->irq,
540 dev_err(&data->client->dev, "request irq %d for trigger0 failed\n",
541 data->client->irq);
547 struct vcnl4035_data *data;
552 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data));
562 data = iio_priv(indio_dev);
564 data->client = client;
565 data->regmap = regmap;
573 ret = vcnl4035_init(data);
602 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);