Lines Matching refs:data
167 static inline int vt8231_read_value(struct vt8231_data *data, u8 reg)
169 return inb_p(data->addr + reg);
172 static inline void vt8231_write_value(struct vt8231_data *data, u8 reg,
175 outb_p(value, data->addr + reg);
180 struct vt8231_data *data = dev_get_drvdata(dev);
184 mutex_lock(&data->update_lock);
186 if (time_after(jiffies, data->last_updated + HZ + HZ / 2)
187 || !data->valid) {
189 if (ISVOLT(i, data->uch_config)) {
190 data->in[i] = vt8231_read_value(data,
192 data->in_min[i] = vt8231_read_value(data,
194 data->in_max[i] = vt8231_read_value(data,
199 data->fan[i] = vt8231_read_value(data,
201 data->fan_min[i] = vt8231_read_value(data,
205 low = vt8231_read_value(data, VT8231_REG_TEMP_LOW01);
207 | (vt8231_read_value(data, VT8231_REG_TEMP_LOW25) << 4);
209 if (ISTEMP(i, data->uch_config)) {
210 data->temp[i] = (vt8231_read_value(data,
213 data->temp_max[i] = vt8231_read_value(data,
215 data->temp_min[i] = vt8231_read_value(data,
220 i = vt8231_read_value(data, VT8231_REG_FANDIV);
221 data->fan_div[0] = (i >> 4) & 0x03;
222 data->fan_div[1] = i >> 6;
223 data->alarms = vt8231_read_value(data, VT8231_REG_ALARM1) |
224 (vt8231_read_value(data, VT8231_REG_ALARM2) << 8);
227 if (!data->fan[0] && data->fan_min[0])
228 data->alarms |= 0x40;
229 else if (data->fan[0] && !data->fan_min[0])
230 data->alarms &= ~0x40;
232 if (!data->fan[1] && data->fan_min[1])
233 data->alarms |= 0x80;
234 else if (data->fan[1] && !data->fan_min[1])
235 data->alarms &= ~0x80;
237 data->last_updated = jiffies;
238 data->valid = true;
241 mutex_unlock(&data->update_lock);
243 return data;
252 struct vt8231_data *data = vt8231_update_device(dev);
254 return sprintf(buf, "%d\n", ((data->in[nr] - 3) * 10000) / 958);
262 struct vt8231_data *data = vt8231_update_device(dev);
264 return sprintf(buf, "%d\n", ((data->in_min[nr] - 3) * 10000) / 958);
272 struct vt8231_data *data = vt8231_update_device(dev);
274 return sprintf(buf, "%d\n", (((data->in_max[nr] - 3) * 10000) / 958));
282 struct vt8231_data *data = dev_get_drvdata(dev);
290 mutex_lock(&data->update_lock);
291 data->in_min[nr] = clamp_val(((val * 958) / 10000) + 3, 0, 255);
292 vt8231_write_value(data, regvoltmin[nr], data->in_min[nr]);
293 mutex_unlock(&data->update_lock);
302 struct vt8231_data *data = dev_get_drvdata(dev);
310 mutex_lock(&data->update_lock);
311 data->in_max[nr] = clamp_val(((val * 958) / 10000) + 3, 0, 255);
312 vt8231_write_value(data, regvoltmax[nr], data->in_max[nr]);
313 mutex_unlock(&data->update_lock);
321 struct vt8231_data *data = vt8231_update_device(dev);
324 (((data->in[5] - 3) * 10000 * 54) / (958 * 34)));
330 struct vt8231_data *data = vt8231_update_device(dev);
333 (((data->in_min[5] - 3) * 10000 * 54) / (958 * 34)));
339 struct vt8231_data *data = vt8231_update_device(dev);
342 (((data->in_max[5] - 3) * 10000 * 54) / (958 * 34)));
349 struct vt8231_data *data = dev_get_drvdata(dev);
357 mutex_lock(&data->update_lock);
358 data->in_min[5] = clamp_val(((val * 958 * 34) / (10000 * 54)) + 3,
360 vt8231_write_value(data, regvoltmin[5], data->in_min[5]);
361 mutex_unlock(&data->update_lock);
369 struct vt8231_data *data = dev_get_drvdata(dev);
377 mutex_lock(&data->update_lock);
378 data->in_max[5] = clamp_val(((val * 958 * 34) / (10000 * 54)) + 3,
380 vt8231_write_value(data, regvoltmax[5], data->in_max[5]);
381 mutex_unlock(&data->update_lock);
409 struct vt8231_data *data = vt8231_update_device(dev);
410 return sprintf(buf, "%d\n", data->temp[0] * 250);
416 struct vt8231_data *data = vt8231_update_device(dev);
417 return sprintf(buf, "%d\n", data->temp_max[0] * 1000);
423 struct vt8231_data *data = vt8231_update_device(dev);
424 return sprintf(buf, "%d\n", data->temp_min[0] * 1000);
431 struct vt8231_data *data = dev_get_drvdata(dev);
439 mutex_lock(&data->update_lock);
440 data->temp_max[0] = clamp_val((val + 500) / 1000, 0, 255);
441 vt8231_write_value(data, regtempmax[0], data->temp_max[0]);
442 mutex_unlock(&data->update_lock);
449 struct vt8231_data *data = dev_get_drvdata(dev);
457 mutex_lock(&data->update_lock);
458 data->temp_min[0] = clamp_val((val + 500) / 1000, 0, 255);
459 vt8231_write_value(data, regtempmin[0], data->temp_min[0]);
460 mutex_unlock(&data->update_lock);
469 struct vt8231_data *data = vt8231_update_device(dev);
470 return sprintf(buf, "%d\n", TEMP_FROM_REG(data->temp[nr]));
478 struct vt8231_data *data = vt8231_update_device(dev);
479 return sprintf(buf, "%d\n", TEMP_MAXMIN_FROM_REG(data->temp_max[nr]));
487 struct vt8231_data *data = vt8231_update_device(dev);
488 return sprintf(buf, "%d\n", TEMP_MAXMIN_FROM_REG(data->temp_min[nr]));
497 struct vt8231_data *data = dev_get_drvdata(dev);
505 mutex_lock(&data->update_lock);
506 data->temp_max[nr] = clamp_val(TEMP_MAXMIN_TO_REG(val), 0, 255);
507 vt8231_write_value(data, regtempmax[nr], data->temp_max[nr]);
508 mutex_unlock(&data->update_lock);
517 struct vt8231_data *data = dev_get_drvdata(dev);
525 mutex_lock(&data->update_lock);
526 data->temp_min[nr] = clamp_val(TEMP_MAXMIN_TO_REG(val), 0, 255);
527 vt8231_write_value(data, regtempmin[nr], data->temp_min[nr]);
528 mutex_unlock(&data->update_lock);
563 struct vt8231_data *data = vt8231_update_device(dev);
564 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[nr],
565 DIV_FROM_REG(data->fan_div[nr])));
573 struct vt8231_data *data = vt8231_update_device(dev);
574 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan_min[nr],
575 DIV_FROM_REG(data->fan_div[nr])));
583 struct vt8231_data *data = vt8231_update_device(dev);
584 return sprintf(buf, "%d\n", DIV_FROM_REG(data->fan_div[nr]));
593 struct vt8231_data *data = dev_get_drvdata(dev);
601 mutex_lock(&data->update_lock);
602 data->fan_min[nr] = FAN_TO_REG(val, DIV_FROM_REG(data->fan_div[nr]));
603 vt8231_write_value(data, VT8231_REG_FAN_MIN(nr), data->fan_min[nr]);
604 mutex_unlock(&data->update_lock);
612 struct vt8231_data *data = dev_get_drvdata(dev);
616 int old = vt8231_read_value(data, VT8231_REG_FANDIV);
617 long min = FAN_FROM_REG(data->fan_min[nr],
618 DIV_FROM_REG(data->fan_div[nr]));
625 mutex_lock(&data->update_lock);
628 data->fan_div[nr] = 0;
631 data->fan_div[nr] = 1;
634 data->fan_div[nr] = 2;
637 data->fan_div[nr] = 3;
643 mutex_unlock(&data->update_lock);
648 data->fan_min[nr] = FAN_TO_REG(min, DIV_FROM_REG(data->fan_div[nr]));
649 vt8231_write_value(data, VT8231_REG_FAN_MIN(nr), data->fan_min[nr]);
651 old = (old & 0x0f) | (data->fan_div[1] << 6) | (data->fan_div[0] << 4);
652 vt8231_write_value(data, VT8231_REG_FANDIV, old);
653 mutex_unlock(&data->update_lock);
668 struct vt8231_data *data = vt8231_update_device(dev);
669 return sprintf(buf, "%d\n", data->alarms);
677 struct vt8231_data *data = vt8231_update_device(dev);
678 return sprintf(buf, "%u\n", (data->alarms >> bitnr) & 1);
698 struct vt8231_data *data = dev_get_drvdata(dev);
699 return sprintf(buf, "%s\n", data->name);
819 static void vt8231_init_device(struct vt8231_data *data)
821 vt8231_write_value(data, VT8231_REG_TEMP1_CONFIG, 0);
822 vt8231_write_value(data, VT8231_REG_TEMP2_CONFIG, 0);
828 struct vt8231_data *data;
840 data = devm_kzalloc(&pdev->dev, sizeof(struct vt8231_data), GFP_KERNEL);
841 if (!data)
844 platform_set_drvdata(pdev, data);
845 data->addr = res->start;
846 data->name = DRIVER_NAME;
848 mutex_init(&data->update_lock);
849 vt8231_init_device(data);
857 data->uch_config = vt8231_read_value(data, VT8231_REG_UCH_CONFIG);
860 if (ISTEMP(i, data->uch_config)) {
869 if (ISVOLT(i, data->uch_config)) {
877 data->hwmon_dev = hwmon_device_register(&pdev->dev);
878 if (IS_ERR(data->hwmon_dev)) {
879 err = PTR_ERR(data->hwmon_dev);
897 struct vt8231_data *data = platform_get_drvdata(pdev);
900 hwmon_device_unregister(data->hwmon_dev);