Lines Matching refs:data
91 static int adt7x10_write_byte(struct device *dev, u8 reg, u8 data) in adt7x10_write_byte() argument
94 return d->ops->write_byte(dev, reg, data); in adt7x10_write_byte()
103 static int adt7x10_write_word(struct device *dev, u8 reg, u16 data) in adt7x10_write_word() argument
106 return d->ops->write_word(dev, reg, data); in adt7x10_write_word()
152 struct adt7x10_data *data = dev_get_drvdata(dev); in adt7x10_update_temp() local
155 mutex_lock(&data->update_lock); in adt7x10_update_temp()
157 if (time_after(jiffies, data->last_updated + HZ + HZ / 2) in adt7x10_update_temp()
158 || !data->valid) { in adt7x10_update_temp()
174 data->temp[0] = temp; in adt7x10_update_temp()
175 data->last_updated = jiffies; in adt7x10_update_temp()
176 data->valid = true; in adt7x10_update_temp()
180 mutex_unlock(&data->update_lock); in adt7x10_update_temp()
186 struct adt7x10_data *data = dev_get_drvdata(dev); in adt7x10_fill_cache() local
190 for (i = 1; i < ARRAY_SIZE(data->temp); i++) { in adt7x10_fill_cache()
197 data->temp[i] = ret; in adt7x10_fill_cache()
206 data->hyst = ret; in adt7x10_fill_cache()
217 static int ADT7X10_REG_TO_TEMP(struct adt7x10_data *data, s16 reg) in ADT7X10_REG_TO_TEMP() argument
220 if (!(data->config & ADT7X10_RESOLUTION)) in ADT7X10_REG_TO_TEMP()
238 struct adt7x10_data *data = dev_get_drvdata(dev); in adt7x10_show_temp() local
249 return sprintf(buf, "%d\n", ADT7X10_REG_TO_TEMP(data, in adt7x10_show_temp()
250 data->temp[attr->index])); in adt7x10_show_temp()
258 struct adt7x10_data *data = dev_get_drvdata(dev); in adt7x10_set_temp() local
267 mutex_lock(&data->update_lock); in adt7x10_set_temp()
268 data->temp[nr] = ADT7X10_TEMP_TO_REG(temp); in adt7x10_set_temp()
269 ret = adt7x10_write_word(dev, ADT7X10_REG_TEMP[nr], data->temp[nr]); in adt7x10_set_temp()
272 mutex_unlock(&data->update_lock); in adt7x10_set_temp()
281 struct adt7x10_data *data = dev_get_drvdata(dev); in adt7x10_show_t_hyst() local
285 hyst = (data->hyst & ADT7X10_T_HYST_MASK) * 1000; in adt7x10_show_t_hyst()
294 ADT7X10_REG_TO_TEMP(data, data->temp[nr]) - hyst); in adt7x10_show_t_hyst()
301 struct adt7x10_data *data = dev_get_drvdata(dev); in adt7x10_set_t_hyst() local
309 limit = ADT7X10_REG_TO_TEMP(data, data->temp[1]); in adt7x10_set_t_hyst()
311 data->hyst = clamp_val(DIV_ROUND_CLOSEST(limit - hyst, 1000), in adt7x10_set_t_hyst()
313 ret = adt7x10_write_byte(dev, ADT7X10_T_HYST, data->hyst); in adt7x10_set_t_hyst()
338 struct adt7x10_data *data = dev_get_drvdata(dev); in adt7x10_show_name() local
340 return sprintf(buf, "%s\n", data->name); in adt7x10_show_name()
385 struct adt7x10_data *data; in adt7x10_probe() local
388 data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); in adt7x10_probe()
389 if (!data) in adt7x10_probe()
392 data->ops = ops; in adt7x10_probe()
393 data->name = name; in adt7x10_probe()
395 dev_set_drvdata(dev, data); in adt7x10_probe()
396 mutex_init(&data->update_lock); in adt7x10_probe()
404 data->oldconfig = ret; in adt7x10_probe()
409 data->config = data->oldconfig; in adt7x10_probe()
410 data->config &= ~(ADT7X10_MODE_MASK | ADT7X10_CT_POLARITY | in adt7x10_probe()
412 data->config |= ADT7X10_FULL | ADT7X10_RESOLUTION | ADT7X10_EVENT_MODE; in adt7x10_probe()
414 if (data->config != data->oldconfig) { in adt7x10_probe()
415 ret = adt7x10_write_byte(dev, ADT7X10_CONFIG, data->config); in adt7x10_probe()
419 dev_dbg(dev, "Config %02x\n", data->config); in adt7x10_probe()
441 data->hwmon_dev = hwmon_device_register(dev); in adt7x10_probe()
442 if (IS_ERR(data->hwmon_dev)) { in adt7x10_probe()
443 ret = PTR_ERR(data->hwmon_dev); in adt7x10_probe()
458 hwmon_device_unregister(data->hwmon_dev); in adt7x10_probe()
465 adt7x10_write_byte(dev, ADT7X10_CONFIG, data->oldconfig); in adt7x10_probe()
472 struct adt7x10_data *data = dev_get_drvdata(dev); in adt7x10_remove() local
477 hwmon_device_unregister(data->hwmon_dev); in adt7x10_remove()
478 if (data->name) in adt7x10_remove()
481 if (data->oldconfig != data->config) in adt7x10_remove()
482 adt7x10_write_byte(dev, ADT7X10_CONFIG, data->oldconfig); in adt7x10_remove()
491 struct adt7x10_data *data = dev_get_drvdata(dev); in adt7x10_suspend() local
494 data->config | ADT7X10_PD); in adt7x10_suspend()
499 struct adt7x10_data *data = dev_get_drvdata(dev); in adt7x10_resume() local
501 return adt7x10_write_byte(dev, ADT7X10_CONFIG, data->config); in adt7x10_resume()