Lines Matching refs:data

61  *   struct aht10_data - All the data required to operate an AHT10/AHT20 chip
79 * @meas_size: measurements data size
99 * @data: the data associated with this AHT10/AHT20 chip
102 static int aht10_init(struct aht10_data *data)
108 struct i2c_client *client = data->client;
130 * @data: the data containing the time to compare
133 static int aht10_polltime_expired(struct aht10_data *data)
136 ktime_t difference = ktime_sub(current_time, data->previous_poll_time);
138 return ktime_after(difference, data->min_poll_interval);
145 * @raw_data: data frame received from sensor(including crc as the last byte)
146 * @count: size of the data frame
159 * aht10_read_values() - read and parse the raw data from the AHT10/AHT20
160 * @data: the struct aht10_data to use for the lock
163 static int aht10_read_values(struct aht10_data *data)
169 struct i2c_client *client = data->client;
171 mutex_lock(&data->lock);
172 if (!aht10_polltime_expired(data)) {
173 mutex_unlock(&data->lock);
179 mutex_unlock(&data->lock);
185 res = i2c_master_recv(client, raw_data, data->meas_size);
186 if (res != data->meas_size) {
187 mutex_unlock(&data->lock);
193 if (data->crc8 && crc8_check(raw_data, data->meas_size)) {
194 mutex_unlock(&data->lock);
209 data->temperature = (int)temp - 50000;
210 data->humidity = hum;
211 data->previous_poll_time = ktime_get_boottime();
213 mutex_unlock(&data->lock);
222 static ssize_t aht10_interval_write(struct aht10_data *data,
225 data->min_poll_interval = ms_to_ktime(clamp_val(val, 2000, LONG_MAX));
233 static ssize_t aht10_interval_read(struct aht10_data *data,
236 *val = ktime_to_ms(data->min_poll_interval);
243 static int aht10_temperature1_read(struct aht10_data *data, long *val)
247 res = aht10_read_values(data);
251 *val = data->temperature;
258 static int aht10_humidity1_read(struct aht10_data *data, long *val)
262 res = aht10_read_values(data);
266 *val = data->humidity;
270 static umode_t aht10_hwmon_visible(const void *data, enum hwmon_sensor_types type,
287 struct aht10_data *data = dev_get_drvdata(dev);
291 return aht10_temperature1_read(data, val);
293 return aht10_humidity1_read(data, val);
295 return aht10_interval_read(data, val);
304 struct aht10_data *data = dev_get_drvdata(dev);
308 return aht10_interval_write(data, val);
338 struct aht10_data *data;
344 data = devm_kzalloc(device, sizeof(*data), GFP_KERNEL);
345 if (!data)
348 data->min_poll_interval = ms_to_ktime(AHT10_DEFAULT_MIN_POLL_INTERVAL);
349 data->client = client;
353 data->meas_size = AHT20_MEAS_SIZE;
354 data->crc8 = true;
358 data->meas_size = AHT10_MEAS_SIZE;
362 mutex_init(&data->lock);
364 res = aht10_init(data);
368 res = aht10_read_values(data);
374 data,