Lines Matching refs:data

122 static int lm95234_fill_cache(struct lm95234_data *data,  in lm95234_fill_cache()  argument
131 data->interval = msecs_to_jiffies(update_intervals[ret & 0x03]); in lm95234_fill_cache()
133 for (i = 0; i < ARRAY_SIZE(data->tcrit1); i++) { in lm95234_fill_cache()
137 data->tcrit1[i] = ret; in lm95234_fill_cache()
139 for (i = 0; i < ARRAY_SIZE(data->tcrit2); i++) { in lm95234_fill_cache()
143 data->tcrit2[i] = ret; in lm95234_fill_cache()
145 for (i = 0; i < ARRAY_SIZE(data->toffset); i++) { in lm95234_fill_cache()
149 data->toffset[i] = ret; in lm95234_fill_cache()
155 data->thyst = ret; in lm95234_fill_cache()
160 data->sensor_type = ret; in lm95234_fill_cache()
165 static int lm95234_update_device(struct lm95234_data *data) in lm95234_update_device() argument
167 struct i2c_client *client = data->client; in lm95234_update_device()
170 mutex_lock(&data->update_lock); in lm95234_update_device()
172 if (time_after(jiffies, data->last_updated + data->interval) || in lm95234_update_device()
173 !data->valid) { in lm95234_update_device()
176 if (!data->valid) { in lm95234_update_device()
177 ret = lm95234_fill_cache(data, client); in lm95234_update_device()
182 data->valid = false; in lm95234_update_device()
183 for (i = 0; i < ARRAY_SIZE(data->temp); i++) { in lm95234_update_device()
184 ret = lm95234_read_temp(client, i, &data->temp[i]); in lm95234_update_device()
192 data->status = ret; in lm95234_update_device()
197 data->status |= ret << 8; in lm95234_update_device()
202 data->status |= ret << 16; in lm95234_update_device()
204 data->last_updated = jiffies; in lm95234_update_device()
205 data->valid = true; in lm95234_update_device()
209 mutex_unlock(&data->update_lock); in lm95234_update_device()
217 struct lm95234_data *data = dev_get_drvdata(dev); in show_temp() local
219 int ret = lm95234_update_device(data); in show_temp()
225 DIV_ROUND_CLOSEST(data->temp[index] * 125, 32)); in show_temp()
231 struct lm95234_data *data = dev_get_drvdata(dev); in show_alarm() local
233 int ret = lm95234_update_device(data); in show_alarm()
238 return sprintf(buf, "%u", !!(data->status & mask)); in show_alarm()
244 struct lm95234_data *data = dev_get_drvdata(dev); in show_type() local
246 int ret = lm95234_update_device(data); in show_type()
251 return sprintf(buf, data->sensor_type & mask ? "1\n" : "2\n"); in show_type()
257 struct lm95234_data *data = dev_get_drvdata(dev); in set_type() local
260 int ret = lm95234_update_device(data); in set_type()
272 mutex_lock(&data->update_lock); in set_type()
274 data->sensor_type |= mask; in set_type()
276 data->sensor_type &= ~mask; in set_type()
277 data->valid = false; in set_type()
278 i2c_smbus_write_byte_data(data->client, LM95234_REG_REM_MODEL, in set_type()
279 data->sensor_type); in set_type()
280 mutex_unlock(&data->update_lock); in set_type()
288 struct lm95234_data *data = dev_get_drvdata(dev); in show_tcrit2() local
290 int ret = lm95234_update_device(data); in show_tcrit2()
295 return sprintf(buf, "%u", data->tcrit2[index] * 1000); in show_tcrit2()
301 struct lm95234_data *data = dev_get_drvdata(dev); in set_tcrit2() local
304 int ret = lm95234_update_device(data); in set_tcrit2()
315 mutex_lock(&data->update_lock); in set_tcrit2()
316 data->tcrit2[index] = val; in set_tcrit2()
317 i2c_smbus_write_byte_data(data->client, LM95234_REG_TCRIT2(index), val); in set_tcrit2()
318 mutex_unlock(&data->update_lock); in set_tcrit2()
326 struct lm95234_data *data = dev_get_drvdata(dev); in show_tcrit2_hyst() local
328 int ret = lm95234_update_device(data); in show_tcrit2_hyst()
335 ((int)data->tcrit2[index] - (int)data->thyst) * 1000); in show_tcrit2_hyst()
341 struct lm95234_data *data = dev_get_drvdata(dev); in show_tcrit1() local
344 return sprintf(buf, "%u", data->tcrit1[index] * 1000); in show_tcrit1()
350 struct lm95234_data *data = dev_get_drvdata(dev); in set_tcrit1() local
352 int ret = lm95234_update_device(data); in set_tcrit1()
364 mutex_lock(&data->update_lock); in set_tcrit1()
365 data->tcrit1[index] = val; in set_tcrit1()
366 i2c_smbus_write_byte_data(data->client, LM95234_REG_TCRIT1(index), val); in set_tcrit1()
367 mutex_unlock(&data->update_lock); in set_tcrit1()
375 struct lm95234_data *data = dev_get_drvdata(dev); in show_tcrit1_hyst() local
377 int ret = lm95234_update_device(data); in show_tcrit1_hyst()
384 ((int)data->tcrit1[index] - (int)data->thyst) * 1000); in show_tcrit1_hyst()
391 struct lm95234_data *data = dev_get_drvdata(dev); in set_tcrit1_hyst() local
393 int ret = lm95234_update_device(data); in set_tcrit1_hyst()
404 val = clamp_val((int)data->tcrit1[index] - val, 0, 31); in set_tcrit1_hyst()
406 mutex_lock(&data->update_lock); in set_tcrit1_hyst()
407 data->thyst = val; in set_tcrit1_hyst()
408 i2c_smbus_write_byte_data(data->client, LM95234_REG_TCRIT_HYST, val); in set_tcrit1_hyst()
409 mutex_unlock(&data->update_lock); in set_tcrit1_hyst()
417 struct lm95234_data *data = dev_get_drvdata(dev); in show_offset() local
419 int ret = lm95234_update_device(data); in show_offset()
424 return sprintf(buf, "%d", data->toffset[index] * 500); in show_offset()
430 struct lm95234_data *data = dev_get_drvdata(dev); in set_offset() local
432 int ret = lm95234_update_device(data); in set_offset()
445 mutex_lock(&data->update_lock); in set_offset()
446 data->toffset[index] = val; in set_offset()
447 i2c_smbus_write_byte_data(data->client, LM95234_REG_OFFSET(index), val); in set_offset()
448 mutex_unlock(&data->update_lock); in set_offset()
456 struct lm95234_data *data = dev_get_drvdata(dev); in show_interval() local
457 int ret = lm95234_update_device(data); in show_interval()
463 DIV_ROUND_CLOSEST(data->interval * 1000, HZ)); in show_interval()
469 struct lm95234_data *data = dev_get_drvdata(dev); in set_interval() local
470 int ret = lm95234_update_device(data); in set_interval()
486 mutex_lock(&data->update_lock); in set_interval()
487 data->interval = msecs_to_jiffies(update_intervals[regval]); in set_interval()
488 i2c_smbus_write_byte_data(data->client, LM95234_REG_CONVRATE, regval); in set_interval()
489 mutex_unlock(&data->update_lock); in set_interval()
720 struct lm95234_data *data; in lm95234_probe() local
724 data = devm_kzalloc(dev, sizeof(struct lm95234_data), GFP_KERNEL); in lm95234_probe()
725 if (!data) in lm95234_probe()
728 data->client = client; in lm95234_probe()
729 mutex_init(&data->update_lock); in lm95234_probe()
736 data->groups[0] = &lm95234_common_group; in lm95234_probe()
738 data->groups[1] = &lm95234_group; in lm95234_probe()
741 data, data->groups); in lm95234_probe()