Lines Matching refs:data

181 static void vt8231_init_device(struct vt8231_data *data);
183 static inline int vt8231_read_value(struct vt8231_data *data, u8 reg) in vt8231_read_value() argument
185 return inb_p(data->addr + reg); in vt8231_read_value()
188 static inline void vt8231_write_value(struct vt8231_data *data, u8 reg, in vt8231_write_value() argument
191 outb_p(value, data->addr + reg); in vt8231_write_value()
200 struct vt8231_data *data = vt8231_update_device(dev); in show_in() local
202 return sprintf(buf, "%d\n", ((data->in[nr] - 3) * 10000) / 958); in show_in()
210 struct vt8231_data *data = vt8231_update_device(dev); in show_in_min() local
212 return sprintf(buf, "%d\n", ((data->in_min[nr] - 3) * 10000) / 958); in show_in_min()
220 struct vt8231_data *data = vt8231_update_device(dev); in show_in_max() local
222 return sprintf(buf, "%d\n", (((data->in_max[nr] - 3) * 10000) / 958)); in show_in_max()
230 struct vt8231_data *data = dev_get_drvdata(dev); in set_in_min() local
238 mutex_lock(&data->update_lock); in set_in_min()
239 data->in_min[nr] = clamp_val(((val * 958) / 10000) + 3, 0, 255); in set_in_min()
240 vt8231_write_value(data, regvoltmin[nr], data->in_min[nr]); in set_in_min()
241 mutex_unlock(&data->update_lock); in set_in_min()
250 struct vt8231_data *data = dev_get_drvdata(dev); in set_in_max() local
258 mutex_lock(&data->update_lock); in set_in_max()
259 data->in_max[nr] = clamp_val(((val * 958) / 10000) + 3, 0, 255); in set_in_max()
260 vt8231_write_value(data, regvoltmax[nr], data->in_max[nr]); in set_in_max()
261 mutex_unlock(&data->update_lock); in set_in_max()
269 struct vt8231_data *data = vt8231_update_device(dev); in show_in5() local
272 (((data->in[5] - 3) * 10000 * 54) / (958 * 34))); in show_in5()
278 struct vt8231_data *data = vt8231_update_device(dev); in show_in5_min() local
281 (((data->in_min[5] - 3) * 10000 * 54) / (958 * 34))); in show_in5_min()
287 struct vt8231_data *data = vt8231_update_device(dev); in show_in5_max() local
290 (((data->in_max[5] - 3) * 10000 * 54) / (958 * 34))); in show_in5_max()
296 struct vt8231_data *data = dev_get_drvdata(dev); in set_in5_min() local
304 mutex_lock(&data->update_lock); in set_in5_min()
305 data->in_min[5] = clamp_val(((val * 958 * 34) / (10000 * 54)) + 3, in set_in5_min()
307 vt8231_write_value(data, regvoltmin[5], data->in_min[5]); in set_in5_min()
308 mutex_unlock(&data->update_lock); in set_in5_min()
315 struct vt8231_data *data = dev_get_drvdata(dev); in set_in5_max() local
323 mutex_lock(&data->update_lock); in set_in5_max()
324 data->in_max[5] = clamp_val(((val * 958 * 34) / (10000 * 54)) + 3, in set_in5_max()
326 vt8231_write_value(data, regvoltmax[5], data->in_max[5]); in set_in5_max()
327 mutex_unlock(&data->update_lock); in set_in5_max()
353 struct vt8231_data *data = vt8231_update_device(dev); in show_temp0() local
354 return sprintf(buf, "%d\n", data->temp[0] * 250); in show_temp0()
360 struct vt8231_data *data = vt8231_update_device(dev); in show_temp0_max() local
361 return sprintf(buf, "%d\n", data->temp_max[0] * 1000); in show_temp0_max()
367 struct vt8231_data *data = vt8231_update_device(dev); in show_temp0_min() local
368 return sprintf(buf, "%d\n", data->temp_min[0] * 1000); in show_temp0_min()
374 struct vt8231_data *data = dev_get_drvdata(dev); in set_temp0_max() local
382 mutex_lock(&data->update_lock); in set_temp0_max()
383 data->temp_max[0] = clamp_val((val + 500) / 1000, 0, 255); in set_temp0_max()
384 vt8231_write_value(data, regtempmax[0], data->temp_max[0]); in set_temp0_max()
385 mutex_unlock(&data->update_lock); in set_temp0_max()
391 struct vt8231_data *data = dev_get_drvdata(dev); in set_temp0_min() local
399 mutex_lock(&data->update_lock); in set_temp0_min()
400 data->temp_min[0] = clamp_val((val + 500) / 1000, 0, 255); in set_temp0_min()
401 vt8231_write_value(data, regtempmin[0], data->temp_min[0]); in set_temp0_min()
402 mutex_unlock(&data->update_lock); in set_temp0_min()
411 struct vt8231_data *data = vt8231_update_device(dev); in show_temp() local
412 return sprintf(buf, "%d\n", TEMP_FROM_REG(data->temp[nr])); in show_temp()
420 struct vt8231_data *data = vt8231_update_device(dev); in show_temp_max() local
421 return sprintf(buf, "%d\n", TEMP_MAXMIN_FROM_REG(data->temp_max[nr])); in show_temp_max()
429 struct vt8231_data *data = vt8231_update_device(dev); in show_temp_min() local
430 return sprintf(buf, "%d\n", TEMP_MAXMIN_FROM_REG(data->temp_min[nr])); in show_temp_min()
438 struct vt8231_data *data = dev_get_drvdata(dev); in set_temp_max() local
446 mutex_lock(&data->update_lock); in set_temp_max()
447 data->temp_max[nr] = clamp_val(TEMP_MAXMIN_TO_REG(val), 0, 255); in set_temp_max()
448 vt8231_write_value(data, regtempmax[nr], data->temp_max[nr]); in set_temp_max()
449 mutex_unlock(&data->update_lock); in set_temp_max()
457 struct vt8231_data *data = dev_get_drvdata(dev); in set_temp_min() local
465 mutex_lock(&data->update_lock); in set_temp_min()
466 data->temp_min[nr] = clamp_val(TEMP_MAXMIN_TO_REG(val), 0, 255); in set_temp_min()
467 vt8231_write_value(data, regtempmin[nr], data->temp_min[nr]); in set_temp_min()
468 mutex_unlock(&data->update_lock); in set_temp_min()
501 struct vt8231_data *data = vt8231_update_device(dev); in show_fan() local
502 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[nr], in show_fan()
503 DIV_FROM_REG(data->fan_div[nr]))); in show_fan()
511 struct vt8231_data *data = vt8231_update_device(dev); in show_fan_min() local
512 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan_min[nr], in show_fan_min()
513 DIV_FROM_REG(data->fan_div[nr]))); in show_fan_min()
521 struct vt8231_data *data = vt8231_update_device(dev); in show_fan_div() local
522 return sprintf(buf, "%d\n", DIV_FROM_REG(data->fan_div[nr])); in show_fan_div()
530 struct vt8231_data *data = dev_get_drvdata(dev); in set_fan_min() local
538 mutex_lock(&data->update_lock); in set_fan_min()
539 data->fan_min[nr] = FAN_TO_REG(val, DIV_FROM_REG(data->fan_div[nr])); in set_fan_min()
540 vt8231_write_value(data, VT8231_REG_FAN_MIN(nr), data->fan_min[nr]); in set_fan_min()
541 mutex_unlock(&data->update_lock); in set_fan_min()
548 struct vt8231_data *data = dev_get_drvdata(dev); in set_fan_div() local
552 int old = vt8231_read_value(data, VT8231_REG_FANDIV); in set_fan_div()
553 long min = FAN_FROM_REG(data->fan_min[nr], in set_fan_div()
554 DIV_FROM_REG(data->fan_div[nr])); in set_fan_div()
561 mutex_lock(&data->update_lock); in set_fan_div()
564 data->fan_div[nr] = 0; in set_fan_div()
567 data->fan_div[nr] = 1; in set_fan_div()
570 data->fan_div[nr] = 2; in set_fan_div()
573 data->fan_div[nr] = 3; in set_fan_div()
579 mutex_unlock(&data->update_lock); in set_fan_div()
584 data->fan_min[nr] = FAN_TO_REG(min, DIV_FROM_REG(data->fan_div[nr])); in set_fan_div()
585 vt8231_write_value(data, VT8231_REG_FAN_MIN(nr), data->fan_min[nr]); in set_fan_div()
587 old = (old & 0x0f) | (data->fan_div[1] << 6) | (data->fan_div[0] << 4); in set_fan_div()
588 vt8231_write_value(data, VT8231_REG_FANDIV, old); in set_fan_div()
589 mutex_unlock(&data->update_lock); in set_fan_div()
609 struct vt8231_data *data = vt8231_update_device(dev); in show_alarms() local
610 return sprintf(buf, "%d\n", data->alarms); in show_alarms()
618 struct vt8231_data *data = vt8231_update_device(dev); in show_alarm() local
619 return sprintf(buf, "%u\n", (data->alarms >> bitnr) & 1); in show_alarm()
639 struct vt8231_data *data = dev_get_drvdata(dev); in show_name() local
640 return sprintf(buf, "%s\n", data->name); in show_name()
787 struct vt8231_data *data; in vt8231_probe() local
799 data = devm_kzalloc(&pdev->dev, sizeof(struct vt8231_data), GFP_KERNEL); in vt8231_probe()
800 if (!data) in vt8231_probe()
803 platform_set_drvdata(pdev, data); in vt8231_probe()
804 data->addr = res->start; in vt8231_probe()
805 data->name = "vt8231"; in vt8231_probe()
807 mutex_init(&data->update_lock); in vt8231_probe()
808 vt8231_init_device(data); in vt8231_probe()
816 data->uch_config = vt8231_read_value(data, VT8231_REG_UCH_CONFIG); in vt8231_probe()
819 if (ISTEMP(i, data->uch_config)) { in vt8231_probe()
828 if (ISVOLT(i, data->uch_config)) { in vt8231_probe()
836 data->hwmon_dev = hwmon_device_register(&pdev->dev); in vt8231_probe()
837 if (IS_ERR(data->hwmon_dev)) { in vt8231_probe()
838 err = PTR_ERR(data->hwmon_dev); in vt8231_probe()
856 struct vt8231_data *data = platform_get_drvdata(pdev); in vt8231_remove() local
859 hwmon_device_unregister(data->hwmon_dev); in vt8231_remove()
872 static void vt8231_init_device(struct vt8231_data *data) in vt8231_init_device() argument
874 vt8231_write_value(data, VT8231_REG_TEMP1_CONFIG, 0); in vt8231_init_device()
875 vt8231_write_value(data, VT8231_REG_TEMP2_CONFIG, 0); in vt8231_init_device()
880 struct vt8231_data *data = dev_get_drvdata(dev); in vt8231_update_device() local
884 mutex_lock(&data->update_lock); in vt8231_update_device()
886 if (time_after(jiffies, data->last_updated + HZ + HZ / 2) in vt8231_update_device()
887 || !data->valid) { in vt8231_update_device()
889 if (ISVOLT(i, data->uch_config)) { in vt8231_update_device()
890 data->in[i] = vt8231_read_value(data, in vt8231_update_device()
892 data->in_min[i] = vt8231_read_value(data, in vt8231_update_device()
894 data->in_max[i] = vt8231_read_value(data, in vt8231_update_device()
899 data->fan[i] = vt8231_read_value(data, in vt8231_update_device()
901 data->fan_min[i] = vt8231_read_value(data, in vt8231_update_device()
905 low = vt8231_read_value(data, VT8231_REG_TEMP_LOW01); in vt8231_update_device()
907 | (vt8231_read_value(data, VT8231_REG_TEMP_LOW25) << 4); in vt8231_update_device()
909 if (ISTEMP(i, data->uch_config)) { in vt8231_update_device()
910 data->temp[i] = (vt8231_read_value(data, in vt8231_update_device()
913 data->temp_max[i] = vt8231_read_value(data, in vt8231_update_device()
915 data->temp_min[i] = vt8231_read_value(data, in vt8231_update_device()
920 i = vt8231_read_value(data, VT8231_REG_FANDIV); in vt8231_update_device()
921 data->fan_div[0] = (i >> 4) & 0x03; in vt8231_update_device()
922 data->fan_div[1] = i >> 6; in vt8231_update_device()
923 data->alarms = vt8231_read_value(data, VT8231_REG_ALARM1) | in vt8231_update_device()
924 (vt8231_read_value(data, VT8231_REG_ALARM2) << 8); in vt8231_update_device()
927 if (!data->fan[0] && data->fan_min[0]) in vt8231_update_device()
928 data->alarms |= 0x40; in vt8231_update_device()
929 else if (data->fan[0] && !data->fan_min[0]) in vt8231_update_device()
930 data->alarms &= ~0x40; in vt8231_update_device()
932 if (!data->fan[1] && data->fan_min[1]) in vt8231_update_device()
933 data->alarms |= 0x80; in vt8231_update_device()
934 else if (data->fan[1] && !data->fan_min[1]) in vt8231_update_device()
935 data->alarms &= ~0x80; in vt8231_update_device()
937 data->last_updated = jiffies; in vt8231_update_device()
938 data->valid = 1; in vt8231_update_device()
941 mutex_unlock(&data->update_lock); in vt8231_update_device()
943 return data; in vt8231_update_device()