Lines Matching refs:data
132 struct mutex data_lock; /* lock for updating driver data */
170 struct sht3x_data *data,
176 mutex_lock(&data->i2c_lock);
195 mutex_unlock(&data->i2c_lock);
221 struct sht3x_data *data = dev_get_drvdata(dev);
222 struct i2c_client *client = data->client;
223 u16 interval_ms = mode_to_update_interval[data->mode];
229 mutex_lock(&data->data_lock);
238 if (time_after(jiffies, data->last_update + interval_jiffies)) {
239 ret = sht3x_read_from_command(client, data, data->command, buf,
240 sizeof(buf), data->wait_time);
245 data->temperature = sht3x_extract_temperature(val);
247 data->humidity = sht3x_extract_humidity(val);
248 data->last_update = jiffies;
252 mutex_unlock(&data->data_lock);
256 return data;
263 struct sht3x_data *data = sht3x_update_client(dev);
265 if (IS_ERR(data))
266 return PTR_ERR(data);
268 return sprintf(buf, "%d\n", data->temperature);
274 struct sht3x_data *data = sht3x_update_client(dev);
276 if (IS_ERR(data))
277 return PTR_ERR(data);
279 return sprintf(buf, "%u\n", data->humidity);
285 static int limits_update(struct sht3x_data *data)
294 struct i2c_client *client = data->client;
298 ret = sht3x_read_from_command(client, data,
308 data->temperature_limits[index] = temperature;
309 data->humidity_limits[index] = humidity;
319 struct sht3x_data *data = dev_get_drvdata(dev);
321 int temperature_limit = data->temperature_limits[index];
330 struct sht3x_data *data = dev_get_drvdata(dev);
332 u32 humidity_limit = data->humidity_limits[index];
350 struct sht3x_data *data = dev_get_drvdata(dev);
351 struct i2c_client *client = data->client;
374 mutex_lock(&data->i2c_lock);
376 mutex_unlock(&data->i2c_lock);
381 data->temperature_limits[index] = temperature;
382 data->humidity_limits[index] = humidity;
393 struct sht3x_data *data = dev_get_drvdata(dev);
402 mutex_lock(&data->data_lock);
404 data->humidity_limits[index]);
405 mutex_unlock(&data->data_lock);
417 struct sht3x_data *data = dev_get_drvdata(dev);
425 mutex_lock(&data->data_lock);
426 ret = limit_store(dev, count, index, data->temperature_limits[index],
428 mutex_unlock(&data->data_lock);
433 static void sht3x_select_command(struct sht3x_data *data)
438 * will wait until the data is ready. For non blocking mode, we
441 if (data->mode > 0) {
442 data->command = sht3x_cmd_measure_periodic_mode;
443 data->wait_time = 0;
444 } else if (data->setup.blocking_io) {
445 data->command = data->setup.high_precision ?
448 data->wait_time = 0;
450 if (data->setup.high_precision) {
451 data->command = sht3x_cmd_measure_nonblocking_hpm;
452 data->wait_time = SHT3X_NONBLOCKING_WAIT_TIME_HPM;
454 data->command = sht3x_cmd_measure_nonblocking_lpm;
455 data->wait_time = SHT3X_NONBLOCKING_WAIT_TIME_LPM;
465 struct sht3x_data *data = dev_get_drvdata(dev);
466 struct i2c_client *client = data->client;
468 ret = sht3x_read_from_command(client, data, sht3x_cmd_read_status_reg,
524 struct sht3x_data *data = dev_get_drvdata(dev);
525 struct i2c_client *client = data->client;
533 mutex_lock(&data->i2c_lock);
542 mutex_unlock(&data->i2c_lock);
551 struct sht3x_data *data = dev_get_drvdata(dev);
554 mode_to_update_interval[data->mode]);
566 struct sht3x_data *data = dev_get_drvdata(dev);
567 struct i2c_client *client = data->client;
575 mutex_lock(&data->data_lock);
577 if (mode == data->mode) {
578 mutex_unlock(&data->data_lock);
582 mutex_lock(&data->i2c_lock);
589 if (data->mode > 0) {
594 data->mode = 0;
598 if (data->setup.high_precision)
610 data->mode = mode;
611 sht3x_select_command(data);
614 mutex_unlock(&data->i2c_lock);
615 mutex_unlock(&data->data_lock);
670 struct sht3x_data *data;
689 data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
690 if (!data)
693 data->setup.blocking_io = false;
694 data->setup.high_precision = true;
695 data->mode = 0;
696 data->last_update = jiffies - msecs_to_jiffies(3000);
697 data->client = client;
701 data->setup = *(struct sht3x_platform_data *)dev->platform_data;
703 sht3x_select_command(data);
705 mutex_init(&data->i2c_lock);
706 mutex_init(&data->data_lock);
715 ret = limits_update(data);
726 data,