Lines Matching refs:data

14  * 3. Adjust time to wait for data to be ready based on selected operation mode
177 static void ccs811_set_wakeup(struct ccs811_data *data, bool enable)
179 if (!data->wakeup_gpio)
182 gpiod_set_value(data->wakeup_gpio, enable);
190 static int ccs811_get_measurement(struct ccs811_data *data)
194 ccs811_set_wakeup(data, true);
198 ret = i2c_smbus_read_byte_data(data->client, CCS811_STATUS);
209 ret = i2c_smbus_read_i2c_block_data(data->client,
211 (char *)&data->buffer);
212 ccs811_set_wakeup(data, false);
221 struct ccs811_data *data = iio_priv(indio_dev);
229 mutex_lock(&data->lock);
230 ret = ccs811_get_measurement(data);
232 mutex_unlock(&data->lock);
239 *val = be16_to_cpu(data->buffer.raw_data) &
244 *val = be16_to_cpu(data->buffer.raw_data) >> 10;
250 *val = be16_to_cpu(data->buffer.co2);
254 *val = be16_to_cpu(data->buffer.voc);
264 mutex_unlock(&data->lock);
308 struct ccs811_data *data = iio_priv(indio_dev);
311 ret = i2c_smbus_read_byte_data(data->client, CCS811_MEAS_MODE);
320 data->drdy_trig_on = state;
322 return i2c_smbus_write_byte_data(data->client, CCS811_MEAS_MODE, ret);
333 struct ccs811_data *data = iio_priv(indio_dev);
334 struct i2c_client *client = data->client;
338 sizeof(data->scan.channels),
339 (u8 *)data->scan.channels);
341 dev_err(&client->dev, "cannot read sensor data\n");
345 iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
357 struct ccs811_data *data = iio_priv(indio_dev);
359 if (data->drdy_trig_on)
360 iio_trigger_poll(data->drdy_trig);
408 struct ccs811_data *data;
416 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data));
420 data = iio_priv(indio_dev);
422 data->client = client;
424 data->wakeup_gpio = devm_gpiod_get_optional(&client->dev, "wakeup",
426 if (IS_ERR(data->wakeup_gpio))
427 return PTR_ERR(data->wakeup_gpio);
429 ccs811_set_wakeup(data, true);
433 ccs811_set_wakeup(data, false);
440 ccs811_set_wakeup(data, false);
446 ccs811_set_wakeup(data, false);
452 ccs811_set_wakeup(data, false);
458 ccs811_set_wakeup(data, false);
464 ccs811_set_wakeup(data, false);
468 ccs811_set_wakeup(data, false);
470 mutex_init(&data->lock);
491 data->drdy_trig = devm_iio_trigger_alloc(&client->dev,
495 if (!data->drdy_trig) {
500 data->drdy_trig->dev.parent = &client->dev;
501 data->drdy_trig->ops = &ccs811_trigger_ops;
502 iio_trigger_set_drvdata(data->drdy_trig, indio_dev);
503 ret = iio_trigger_register(data->drdy_trig);
507 indio_dev->trig = iio_trigger_get(data->drdy_trig);
528 if (data->drdy_trig)
529 iio_trigger_unregister(data->drdy_trig);
539 struct ccs811_data *data = iio_priv(indio_dev);
543 if (data->drdy_trig)
544 iio_trigger_unregister(data->drdy_trig);