Lines Matching refs:data

55 /* Each client has this additional data */
121 static int ADT7X10_REG_TO_TEMP(struct adt7x10_data *data, s16 reg)
124 if (!(data->config & ADT7X10_RESOLUTION))
135 static int adt7x10_temp_read(struct adt7x10_data *data, int index, long *val)
140 mutex_lock(&data->update_lock);
141 if (index == adt7x10_temperature && !data->valid) {
143 ret = adt7x10_temp_ready(data->regmap);
145 mutex_unlock(&data->update_lock);
148 data->valid = true;
150 mutex_unlock(&data->update_lock);
152 ret = regmap_read(data->regmap, ADT7X10_REG_TEMP[index], &regval);
156 *val = ADT7X10_REG_TO_TEMP(data, regval);
160 static int adt7x10_temp_write(struct adt7x10_data *data, int index, long temp)
164 mutex_lock(&data->update_lock);
165 ret = regmap_write(data->regmap, ADT7X10_REG_TEMP[index],
167 mutex_unlock(&data->update_lock);
171 static int adt7x10_hyst_read(struct adt7x10_data *data, int index, long *val)
175 mutex_lock(&data->update_lock);
176 ret = regmap_read(data->regmap, ADT7X10_T_HYST, &hyst);
178 mutex_unlock(&data->update_lock);
182 ret = regmap_read(data->regmap, ADT7X10_REG_TEMP[index], &temp);
183 mutex_unlock(&data->update_lock);
197 *val = ADT7X10_REG_TO_TEMP(data, temp) - hyst;
201 static int adt7x10_hyst_write(struct adt7x10_data *data, long hyst)
206 mutex_lock(&data->update_lock);
209 ret = regmap_read(data->regmap, ADT7X10_T_ALARM_HIGH, &regval);
213 limit = ADT7X10_REG_TO_TEMP(data, regval);
218 ret = regmap_write(data->regmap, ADT7X10_T_HYST, regval);
220 mutex_unlock(&data->update_lock);
224 static int adt7x10_alarm_read(struct adt7x10_data *data, int index, long *val)
229 ret = regmap_read(data->regmap, ADT7X10_STATUS, &status);
238 static umode_t adt7x10_is_visible(const void *data,
265 struct adt7x10_data *data = dev_get_drvdata(dev);
269 return adt7x10_temp_read(data, adt7x10_temperature, val);
271 return adt7x10_temp_read(data, adt7x10_t_alarm_high, val);
273 return adt7x10_temp_read(data, adt7x10_t_alarm_low, val);
275 return adt7x10_temp_read(data, adt7x10_t_crit, val);
277 return adt7x10_hyst_read(data, adt7x10_t_alarm_high, val);
279 return adt7x10_hyst_read(data, adt7x10_t_alarm_low, val);
281 return adt7x10_hyst_read(data, adt7x10_t_crit, val);
283 return adt7x10_alarm_read(data, ADT7X10_STAT_T_LOW, val);
285 return adt7x10_alarm_read(data, ADT7X10_STAT_T_HIGH, val);
287 return adt7x10_alarm_read(data, ADT7X10_STAT_T_CRIT, val);
296 struct adt7x10_data *data = dev_get_drvdata(dev);
300 return adt7x10_temp_write(data, adt7x10_t_alarm_high, val);
302 return adt7x10_temp_write(data, adt7x10_t_alarm_low, val);
304 return adt7x10_temp_write(data, adt7x10_t_crit, val);
306 return adt7x10_hyst_write(data, val);
333 struct adt7x10_data *data = private;
335 regmap_write(data->regmap, ADT7X10_CONFIG, data->oldconfig);
341 struct adt7x10_data *data;
346 data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
347 if (!data)
350 data->regmap = regmap;
352 dev_set_drvdata(dev, data);
353 mutex_init(&data->update_lock);
361 data->oldconfig = config;
366 data->config = data->oldconfig;
367 data->config &= ~(ADT7X10_MODE_MASK | ADT7X10_CT_POLARITY |
369 data->config |= ADT7X10_FULL | ADT7X10_RESOLUTION | ADT7X10_EVENT_MODE;
371 if (data->config != data->oldconfig) {
372 ret = regmap_write(regmap, ADT7X10_CONFIG, data->config);
375 ret = devm_add_action_or_reset(dev, adt7x10_restore_config, data);
379 dev_dbg(dev, "Config %02x\n", data->config);
381 hdev = devm_hwmon_device_register_with_info(dev, name, data,
402 struct adt7x10_data *data = dev_get_drvdata(dev);
404 return regmap_write(data->regmap, ADT7X10_CONFIG,
405 data->config | ADT7X10_PD);
410 struct adt7x10_data *data = dev_get_drvdata(dev);
412 return regmap_write(data->regmap, ADT7X10_CONFIG, data->config);