Lines Matching refs:data

403 static int w83627hf_read_value(struct w83627hf_data *data, u16 reg);
404 static int w83627hf_write_value(struct w83627hf_data *data, u16 reg, u16 value);
405 static void w83627hf_update_fan_div(struct w83627hf_data *data);
412 struct w83627hf_data *data = w83627hf_update_device(dev); in w83627hf_suspend() local
414 mutex_lock(&data->update_lock); in w83627hf_suspend()
415 data->scfg1 = w83627hf_read_value(data, W83781D_REG_SCFG1); in w83627hf_suspend()
416 data->scfg2 = w83627hf_read_value(data, W83781D_REG_SCFG2); in w83627hf_suspend()
417 mutex_unlock(&data->update_lock); in w83627hf_suspend()
424 struct w83627hf_data *data = dev_get_drvdata(dev); in w83627hf_resume() local
425 int i, num_temps = (data->type == w83697hf) ? 2 : 3; in w83627hf_resume()
428 mutex_lock(&data->update_lock); in w83627hf_resume()
431 if (((data->type == w83697hf) && (i == 1)) || in w83627hf_resume()
432 ((data->type != w83627hf && data->type != w83697hf) in w83627hf_resume()
435 w83627hf_write_value(data, W83781D_REG_IN_MAX(i), in w83627hf_resume()
436 data->in_max[i]); in w83627hf_resume()
437 w83627hf_write_value(data, W83781D_REG_IN_MIN(i), in w83627hf_resume()
438 data->in_min[i]); in w83627hf_resume()
441 w83627hf_write_value(data, W83627HF_REG_FAN_MIN(i), in w83627hf_resume()
442 data->fan_min[i]); in w83627hf_resume()
444 w83627hf_write_value(data, w83627hf_reg_temp_over[i], in w83627hf_resume()
445 data->temp_max[i]); in w83627hf_resume()
446 w83627hf_write_value(data, w83627hf_reg_temp_hyst[i], in w83627hf_resume()
447 data->temp_max_hyst[i]); in w83627hf_resume()
451 if (data->type == w83627thf || data->type == w83637hf || in w83627hf_resume()
452 data->type == w83687thf) in w83627hf_resume()
453 w83627hf_write_value(data, W83627THF_REG_VRM_OVT_CFG, in w83627hf_resume()
454 data->vrm_ovt); in w83627hf_resume()
455 w83627hf_write_value(data, W83781D_REG_SCFG1, data->scfg1); in w83627hf_resume()
456 w83627hf_write_value(data, W83781D_REG_SCFG2, data->scfg2); in w83627hf_resume()
459 data->valid = 0; in w83627hf_resume()
460 mutex_unlock(&data->update_lock); in w83627hf_resume()
488 struct w83627hf_data *data = w83627hf_update_device(dev); in show_in_input() local
489 return sprintf(buf, "%ld\n", (long)IN_FROM_REG(data->in[nr])); in show_in_input()
495 struct w83627hf_data *data = w83627hf_update_device(dev); in show_in_min() local
496 return sprintf(buf, "%ld\n", (long)IN_FROM_REG(data->in_min[nr])); in show_in_min()
502 struct w83627hf_data *data = w83627hf_update_device(dev); in show_in_max() local
503 return sprintf(buf, "%ld\n", (long)IN_FROM_REG(data->in_max[nr])); in show_in_max()
510 struct w83627hf_data *data = dev_get_drvdata(dev); in store_in_min() local
518 mutex_lock(&data->update_lock); in store_in_min()
519 data->in_min[nr] = IN_TO_REG(val); in store_in_min()
520 w83627hf_write_value(data, W83781D_REG_IN_MIN(nr), data->in_min[nr]); in store_in_min()
521 mutex_unlock(&data->update_lock); in store_in_min()
529 struct w83627hf_data *data = dev_get_drvdata(dev); in store_in_max() local
537 mutex_lock(&data->update_lock); in store_in_max()
538 data->in_max[nr] = IN_TO_REG(val); in store_in_max()
539 w83627hf_write_value(data, W83781D_REG_IN_MAX(nr), data->in_max[nr]); in store_in_max()
540 mutex_unlock(&data->update_lock); in store_in_max()
561 static ssize_t show_in_0(struct w83627hf_data *data, char *buf, u8 reg) in show_in_0() argument
565 if ((data->vrm_ovt & 0x01) && in show_in_0()
566 (w83627thf == data->type || w83637hf == data->type in show_in_0()
567 || w83687thf == data->type)) in show_in_0()
580 struct w83627hf_data *data = w83627hf_update_device(dev); in show_regs_in_0() local
581 return show_in_0(data, buf, data->in[0]); in show_regs_in_0()
586 struct w83627hf_data *data = w83627hf_update_device(dev); in show_regs_in_min0() local
587 return show_in_0(data, buf, data->in_min[0]); in show_regs_in_min0()
592 struct w83627hf_data *data = w83627hf_update_device(dev); in show_regs_in_max0() local
593 return show_in_0(data, buf, data->in_max[0]); in show_regs_in_max0()
599 struct w83627hf_data *data = dev_get_drvdata(dev); in store_regs_in_min0() local
607 mutex_lock(&data->update_lock); in store_regs_in_min0()
609 if ((data->vrm_ovt & 0x01) && in store_regs_in_min0()
610 (w83627thf == data->type || w83637hf == data->type in store_regs_in_min0()
611 || w83687thf == data->type)) in store_regs_in_min0()
614 data->in_min[0] = in store_regs_in_min0()
618 data->in_min[0] = IN_TO_REG(val); in store_regs_in_min0()
620 w83627hf_write_value(data, W83781D_REG_IN_MIN(0), data->in_min[0]); in store_regs_in_min0()
621 mutex_unlock(&data->update_lock); in store_regs_in_min0()
628 struct w83627hf_data *data = dev_get_drvdata(dev); in store_regs_in_max0() local
636 mutex_lock(&data->update_lock); in store_regs_in_max0()
638 if ((data->vrm_ovt & 0x01) && in store_regs_in_max0()
639 (w83627thf == data->type || w83637hf == data->type in store_regs_in_max0()
640 || w83687thf == data->type)) in store_regs_in_max0()
643 data->in_max[0] = in store_regs_in_max0()
647 data->in_max[0] = IN_TO_REG(val); in store_regs_in_max0()
649 w83627hf_write_value(data, W83781D_REG_IN_MAX(0), data->in_max[0]); in store_regs_in_max0()
650 mutex_unlock(&data->update_lock); in store_regs_in_max0()
664 struct w83627hf_data *data = w83627hf_update_device(dev); in show_fan_input() local
665 return sprintf(buf, "%ld\n", FAN_FROM_REG(data->fan[nr], in show_fan_input()
666 (long)DIV_FROM_REG(data->fan_div[nr]))); in show_fan_input()
672 struct w83627hf_data *data = w83627hf_update_device(dev); in show_fan_min() local
673 return sprintf(buf, "%ld\n", FAN_FROM_REG(data->fan_min[nr], in show_fan_min()
674 (long)DIV_FROM_REG(data->fan_div[nr]))); in show_fan_min()
681 struct w83627hf_data *data = dev_get_drvdata(dev); in store_fan_min() local
689 mutex_lock(&data->update_lock); in store_fan_min()
690 data->fan_min[nr] = FAN_TO_REG(val, DIV_FROM_REG(data->fan_div[nr])); in store_fan_min()
691 w83627hf_write_value(data, W83627HF_REG_FAN_MIN(nr), in store_fan_min()
692 data->fan_min[nr]); in store_fan_min()
694 mutex_unlock(&data->update_lock); in store_fan_min()
711 struct w83627hf_data *data = w83627hf_update_device(dev); in show_temp() local
713 u16 tmp = data->temp[nr]; in show_temp()
723 struct w83627hf_data *data = w83627hf_update_device(dev); in show_temp_max() local
725 u16 tmp = data->temp_max[nr]; in show_temp_max()
735 struct w83627hf_data *data = w83627hf_update_device(dev); in show_temp_max_hyst() local
737 u16 tmp = data->temp_max_hyst[nr]; in show_temp_max_hyst()
747 struct w83627hf_data *data = dev_get_drvdata(dev); in store_temp_max() local
757 mutex_lock(&data->update_lock); in store_temp_max()
758 data->temp_max[nr] = tmp; in store_temp_max()
759 w83627hf_write_value(data, w83627hf_reg_temp_over[nr], tmp); in store_temp_max()
760 mutex_unlock(&data->update_lock); in store_temp_max()
769 struct w83627hf_data *data = dev_get_drvdata(dev); in store_temp_max_hyst() local
779 mutex_lock(&data->update_lock); in store_temp_max_hyst()
780 data->temp_max_hyst[nr] = tmp; in store_temp_max_hyst()
781 w83627hf_write_value(data, w83627hf_reg_temp_hyst[nr], tmp); in store_temp_max_hyst()
782 mutex_unlock(&data->update_lock); in store_temp_max_hyst()
801 struct w83627hf_data *data = w83627hf_update_device(dev); in show_vid_reg() local
802 return sprintf(buf, "%ld\n", (long) vid_from_reg(data->vid, data->vrm)); in show_vid_reg()
809 struct w83627hf_data *data = dev_get_drvdata(dev); in show_vrm_reg() local
810 return sprintf(buf, "%ld\n", (long) data->vrm); in show_vrm_reg()
815 struct w83627hf_data *data = dev_get_drvdata(dev); in store_vrm_reg() local
825 data->vrm = val; in store_vrm_reg()
834 struct w83627hf_data *data = w83627hf_update_device(dev); in show_alarms_reg() local
835 return sprintf(buf, "%ld\n", (long) data->alarms); in show_alarms_reg()
842 struct w83627hf_data *data = w83627hf_update_device(dev); in show_alarm() local
844 return sprintf(buf, "%u\n", (data->alarms >> bitnr) & 1); in show_alarm()
865 struct w83627hf_data *data = w83627hf_update_device(dev); in show_beep_mask() local
867 (long)BEEP_MASK_FROM_REG(data->beep_mask)); in show_beep_mask()
874 struct w83627hf_data *data = dev_get_drvdata(dev); in store_beep_mask() local
882 mutex_lock(&data->update_lock); in store_beep_mask()
885 data->beep_mask = (data->beep_mask & 0x8000) in store_beep_mask()
887 w83627hf_write_value(data, W83781D_REG_BEEP_INTS1, in store_beep_mask()
888 data->beep_mask & 0xff); in store_beep_mask()
889 w83627hf_write_value(data, W83781D_REG_BEEP_INTS3, in store_beep_mask()
890 ((data->beep_mask) >> 16) & 0xff); in store_beep_mask()
891 w83627hf_write_value(data, W83781D_REG_BEEP_INTS2, in store_beep_mask()
892 (data->beep_mask >> 8) & 0xff); in store_beep_mask()
894 mutex_unlock(&data->update_lock); in store_beep_mask()
904 struct w83627hf_data *data = w83627hf_update_device(dev); in show_beep() local
906 return sprintf(buf, "%u\n", (data->beep_mask >> bitnr) & 1); in show_beep()
913 struct w83627hf_data *data = dev_get_drvdata(dev); in store_beep() local
926 mutex_lock(&data->update_lock); in store_beep()
928 data->beep_mask |= (1 << bitnr); in store_beep()
930 data->beep_mask &= ~(1 << bitnr); in store_beep()
933 reg = w83627hf_read_value(data, W83781D_REG_BEEP_INTS1); in store_beep()
938 w83627hf_write_value(data, W83781D_REG_BEEP_INTS1, reg); in store_beep()
940 reg = w83627hf_read_value(data, W83781D_REG_BEEP_INTS2); in store_beep()
945 w83627hf_write_value(data, W83781D_REG_BEEP_INTS2, reg); in store_beep()
947 reg = w83627hf_read_value(data, W83781D_REG_BEEP_INTS3); in store_beep()
952 w83627hf_write_value(data, W83781D_REG_BEEP_INTS3, reg); in store_beep()
954 mutex_unlock(&data->update_lock); in store_beep()
996 struct w83627hf_data *data = w83627hf_update_device(dev); in show_fan_div() local
998 (long) DIV_FROM_REG(data->fan_div[nr])); in show_fan_div()
1011 struct w83627hf_data *data = dev_get_drvdata(dev); in store_fan_div() local
1021 mutex_lock(&data->update_lock); in store_fan_div()
1024 min = FAN_FROM_REG(data->fan_min[nr], in store_fan_div()
1025 DIV_FROM_REG(data->fan_div[nr])); in store_fan_div()
1027 data->fan_div[nr] = DIV_TO_REG(val); in store_fan_div()
1029 reg = (w83627hf_read_value(data, nr==2 ? W83781D_REG_PIN : W83781D_REG_VID_FANDIV) in store_fan_div()
1031 | ((data->fan_div[nr] & 0x03) << (nr==0 ? 4 : 6)); in store_fan_div()
1032 w83627hf_write_value(data, nr==2 ? W83781D_REG_PIN : W83781D_REG_VID_FANDIV, reg); in store_fan_div()
1034 reg = (w83627hf_read_value(data, W83781D_REG_VBAT) in store_fan_div()
1036 | ((data->fan_div[nr] & 0x04) << (3 + nr)); in store_fan_div()
1037 w83627hf_write_value(data, W83781D_REG_VBAT, reg); in store_fan_div()
1040 data->fan_min[nr] = FAN_TO_REG(min, DIV_FROM_REG(data->fan_div[nr])); in store_fan_div()
1041 w83627hf_write_value(data, W83627HF_REG_FAN_MIN(nr), data->fan_min[nr]); in store_fan_div()
1043 mutex_unlock(&data->update_lock); in store_fan_div()
1058 struct w83627hf_data *data = w83627hf_update_device(dev); in show_pwm() local
1059 return sprintf(buf, "%ld\n", (long) data->pwm[nr]); in show_pwm()
1067 struct w83627hf_data *data = dev_get_drvdata(dev); in store_pwm() local
1075 mutex_lock(&data->update_lock); in store_pwm()
1077 if (data->type == w83627thf) { in store_pwm()
1079 data->pwm[nr] = PWM_TO_REG(val) & 0xf0; in store_pwm()
1080 w83627hf_write_value(data, in store_pwm()
1081 W836X7HF_REG_PWM(data->type, nr), in store_pwm()
1082 data->pwm[nr] | in store_pwm()
1083 (w83627hf_read_value(data, in store_pwm()
1084 W836X7HF_REG_PWM(data->type, nr)) & 0x0f)); in store_pwm()
1086 data->pwm[nr] = PWM_TO_REG(val); in store_pwm()
1087 w83627hf_write_value(data, in store_pwm()
1088 W836X7HF_REG_PWM(data->type, nr), in store_pwm()
1089 data->pwm[nr]); in store_pwm()
1092 mutex_unlock(&data->update_lock); in store_pwm()
1104 struct w83627hf_data *data = w83627hf_update_device(dev); in show_pwm_enable() local
1105 return sprintf(buf, "%d\n", data->pwm_enable[nr]); in show_pwm_enable()
1113 struct w83627hf_data *data = dev_get_drvdata(dev); in store_pwm_enable() local
1124 mutex_lock(&data->update_lock); in store_pwm_enable()
1125 data->pwm_enable[nr] = val; in store_pwm_enable()
1126 reg = w83627hf_read_value(data, W83627THF_REG_PWM_ENABLE[nr]); in store_pwm_enable()
1129 w83627hf_write_value(data, W83627THF_REG_PWM_ENABLE[nr], reg); in store_pwm_enable()
1130 mutex_unlock(&data->update_lock); in store_pwm_enable()
1145 struct w83627hf_data *data = w83627hf_update_device(dev); in show_pwm_freq() local
1146 if (data->type == w83627hf) in show_pwm_freq()
1148 pwm_freq_from_reg_627hf(data->pwm_freq[nr])); in show_pwm_freq()
1151 pwm_freq_from_reg(data->pwm_freq[nr])); in show_pwm_freq()
1159 struct w83627hf_data *data = dev_get_drvdata(dev); in store_pwm_freq() local
1168 mutex_lock(&data->update_lock); in store_pwm_freq()
1170 if (data->type == w83627hf) { in store_pwm_freq()
1171 data->pwm_freq[nr] = pwm_freq_to_reg_627hf(val); in store_pwm_freq()
1172 w83627hf_write_value(data, W83627HF_REG_PWM_FREQ, in store_pwm_freq()
1173 (data->pwm_freq[nr] << (nr*4)) | in store_pwm_freq()
1174 (w83627hf_read_value(data, in store_pwm_freq()
1177 data->pwm_freq[nr] = pwm_freq_to_reg(val); in store_pwm_freq()
1178 w83627hf_write_value(data, W83637HF_REG_PWM_FREQ[nr], in store_pwm_freq()
1179 data->pwm_freq[nr]); in store_pwm_freq()
1182 mutex_unlock(&data->update_lock); in store_pwm_freq()
1198 struct w83627hf_data *data = w83627hf_update_device(dev); in show_temp_type() local
1199 return sprintf(buf, "%ld\n", (long) data->sens[nr]); in show_temp_type()
1207 struct w83627hf_data *data = dev_get_drvdata(dev); in store_temp_type() local
1216 mutex_lock(&data->update_lock); in store_temp_type()
1220 tmp = w83627hf_read_value(data, W83781D_REG_SCFG1); in store_temp_type()
1221 w83627hf_write_value(data, W83781D_REG_SCFG1, in store_temp_type()
1223 tmp = w83627hf_read_value(data, W83781D_REG_SCFG2); in store_temp_type()
1224 w83627hf_write_value(data, W83781D_REG_SCFG2, in store_temp_type()
1226 data->sens[nr] = val; in store_temp_type()
1229 tmp = w83627hf_read_value(data, W83781D_REG_SCFG1); in store_temp_type()
1230 w83627hf_write_value(data, W83781D_REG_SCFG1, in store_temp_type()
1232 tmp = w83627hf_read_value(data, W83781D_REG_SCFG2); in store_temp_type()
1233 w83627hf_write_value(data, W83781D_REG_SCFG2, in store_temp_type()
1235 data->sens[nr] = val; in store_temp_type()
1242 tmp = w83627hf_read_value(data, W83781D_REG_SCFG1); in store_temp_type()
1243 w83627hf_write_value(data, W83781D_REG_SCFG1, in store_temp_type()
1245 data->sens[nr] = val; in store_temp_type()
1254 mutex_unlock(&data->update_lock); in store_temp_type()
1269 struct w83627hf_data *data = dev_get_drvdata(dev); in show_name() local
1271 return sprintf(buf, "%s\n", data->name); in show_name()
1421 struct w83627hf_data *data; in w83627hf_probe() local
1441 data = devm_kzalloc(dev, sizeof(struct w83627hf_data), GFP_KERNEL); in w83627hf_probe()
1442 if (!data) in w83627hf_probe()
1445 data->addr = res->start; in w83627hf_probe()
1446 data->type = sio_data->type; in w83627hf_probe()
1447 data->name = names[sio_data->type]; in w83627hf_probe()
1448 mutex_init(&data->lock); in w83627hf_probe()
1449 mutex_init(&data->update_lock); in w83627hf_probe()
1450 platform_set_drvdata(pdev, data); in w83627hf_probe()
1457 data->fan_min[i] = w83627hf_read_value( in w83627hf_probe()
1458 data, W83627HF_REG_FAN_MIN(i)); in w83627hf_probe()
1459 w83627hf_update_fan_div(data); in w83627hf_probe()
1467 if (data->type == w83627hf || data->type == w83697hf) in w83627hf_probe()
1494 if (data->type != w83697hf) in w83627hf_probe()
1529 if (data->type != w83697hf && data->vid != 0xff) { in w83627hf_probe()
1531 data->vrm = vid_which_vrm(); in w83627hf_probe()
1538 if (data->type == w83627thf || data->type == w83637hf in w83627hf_probe()
1539 || data->type == w83687thf) { in w83627hf_probe()
1545 if (data->type == w83637hf || data->type == w83687thf) in w83627hf_probe()
1554 if (data->type != w83627hf) in w83627hf_probe()
1561 if (data->type == w83627thf || data->type == w83637hf in w83627hf_probe()
1562 || data->type == w83687thf) { in w83627hf_probe()
1569 data->hwmon_dev = hwmon_device_register(dev); in w83627hf_probe()
1570 if (IS_ERR(data->hwmon_dev)) { in w83627hf_probe()
1571 err = PTR_ERR(data->hwmon_dev); in w83627hf_probe()
1585 struct w83627hf_data *data = platform_get_drvdata(pdev); in w83627hf_remove() local
1587 hwmon_device_unregister(data->hwmon_dev); in w83627hf_remove()
1597 static inline void w83627hf_set_bank(struct w83627hf_data *data, u16 reg) in w83627hf_set_bank() argument
1600 outb_p(W83781D_REG_BANK, data->addr + W83781D_ADDR_REG_OFFSET); in w83627hf_set_bank()
1601 outb_p(reg >> 8, data->addr + W83781D_DATA_REG_OFFSET); in w83627hf_set_bank()
1606 static inline void w83627hf_reset_bank(struct w83627hf_data *data, u16 reg) in w83627hf_reset_bank() argument
1609 outb_p(W83781D_REG_BANK, data->addr + W83781D_ADDR_REG_OFFSET); in w83627hf_reset_bank()
1610 outb_p(0, data->addr + W83781D_DATA_REG_OFFSET); in w83627hf_reset_bank()
1614 static int w83627hf_read_value(struct w83627hf_data *data, u16 reg) in w83627hf_read_value() argument
1618 mutex_lock(&data->lock); in w83627hf_read_value()
1624 w83627hf_set_bank(data, reg); in w83627hf_read_value()
1625 outb_p(reg & 0xff, data->addr + W83781D_ADDR_REG_OFFSET); in w83627hf_read_value()
1626 res = inb_p(data->addr + W83781D_DATA_REG_OFFSET); in w83627hf_read_value()
1629 data->addr + W83781D_ADDR_REG_OFFSET); in w83627hf_read_value()
1631 (res << 8) + inb_p(data->addr + in w83627hf_read_value()
1634 w83627hf_reset_bank(data, reg); in w83627hf_read_value()
1635 mutex_unlock(&data->lock); in w83627hf_read_value()
1700 static int w83627hf_write_value(struct w83627hf_data *data, u16 reg, u16 value) in w83627hf_write_value() argument
1704 mutex_lock(&data->lock); in w83627hf_write_value()
1709 w83627hf_set_bank(data, reg); in w83627hf_write_value()
1710 outb_p(reg & 0xff, data->addr + W83781D_ADDR_REG_OFFSET); in w83627hf_write_value()
1713 data->addr + W83781D_DATA_REG_OFFSET); in w83627hf_write_value()
1715 data->addr + W83781D_ADDR_REG_OFFSET); in w83627hf_write_value()
1718 data->addr + W83781D_DATA_REG_OFFSET); in w83627hf_write_value()
1719 w83627hf_reset_bank(data, reg); in w83627hf_write_value()
1720 mutex_unlock(&data->lock); in w83627hf_write_value()
1726 struct w83627hf_data *data = platform_get_drvdata(pdev); in w83627hf_init_device() local
1728 enum chips type = data->type; in w83627hf_init_device()
1735 w83627hf_write_value(data, W83781D_REG_I2C_SUBADDR, 0x89); in w83627hf_init_device()
1736 w83627hf_write_value(data, W83781D_REG_I2C_ADDR, force_i2c); in w83627hf_init_device()
1741 int lo = w83627hf_read_value(data, W83781D_REG_VID_FANDIV); in w83627hf_init_device()
1742 int hi = w83627hf_read_value(data, W83781D_REG_CHIPID); in w83627hf_init_device()
1743 data->vid = (lo & 0x0f) | ((hi & 0x01) << 4); in w83627hf_init_device()
1745 data->vid = w83627thf_read_gpio5(pdev); in w83627hf_init_device()
1747 data->vid = w83687thf_read_vid(pdev); in w83627hf_init_device()
1752 data->vrm_ovt = in w83627hf_init_device()
1753 w83627hf_read_value(data, W83627THF_REG_VRM_OVT_CFG); in w83627hf_init_device()
1756 tmp = w83627hf_read_value(data, W83781D_REG_SCFG1); in w83627hf_init_device()
1759 data->sens[i - 1] = 4; in w83627hf_init_device()
1762 (data, in w83627hf_init_device()
1764 data->sens[i - 1] = 1; in w83627hf_init_device()
1766 data->sens[i - 1] = 2; in w83627hf_init_device()
1774 tmp = w83627hf_read_value(data, W83627HF_REG_TEMP2_CONFIG); in w83627hf_init_device()
1778 w83627hf_write_value(data, W83627HF_REG_TEMP2_CONFIG, in w83627hf_init_device()
1784 tmp = w83627hf_read_value(data, in w83627hf_init_device()
1789 w83627hf_write_value(data, in w83627hf_init_device()
1796 w83627hf_write_value(data, W83781D_REG_CONFIG, in w83627hf_init_device()
1797 (w83627hf_read_value(data, in w83627hf_init_device()
1802 tmp = w83627hf_read_value(data, W83781D_REG_VBAT); in w83627hf_init_device()
1804 w83627hf_write_value(data, W83781D_REG_VBAT, tmp | 0x01); in w83627hf_init_device()
1807 static void w83627hf_update_fan_div(struct w83627hf_data *data) in w83627hf_update_fan_div() argument
1811 reg = w83627hf_read_value(data, W83781D_REG_VID_FANDIV); in w83627hf_update_fan_div()
1812 data->fan_div[0] = (reg >> 4) & 0x03; in w83627hf_update_fan_div()
1813 data->fan_div[1] = (reg >> 6) & 0x03; in w83627hf_update_fan_div()
1814 if (data->type != w83697hf) { in w83627hf_update_fan_div()
1815 data->fan_div[2] = (w83627hf_read_value(data, in w83627hf_update_fan_div()
1818 reg = w83627hf_read_value(data, W83781D_REG_VBAT); in w83627hf_update_fan_div()
1819 data->fan_div[0] |= (reg >> 3) & 0x04; in w83627hf_update_fan_div()
1820 data->fan_div[1] |= (reg >> 4) & 0x04; in w83627hf_update_fan_div()
1821 if (data->type != w83697hf) in w83627hf_update_fan_div()
1822 data->fan_div[2] |= (reg >> 5) & 0x04; in w83627hf_update_fan_div()
1827 struct w83627hf_data *data = dev_get_drvdata(dev); in w83627hf_update_device() local
1828 int i, num_temps = (data->type == w83697hf) ? 2 : 3; in w83627hf_update_device()
1829 int num_pwms = (data->type == w83697hf) ? 2 : 3; in w83627hf_update_device()
1831 mutex_lock(&data->update_lock); in w83627hf_update_device()
1833 if (time_after(jiffies, data->last_updated + HZ + HZ / 2) in w83627hf_update_device()
1834 || !data->valid) { in w83627hf_update_device()
1837 if (((data->type == w83697hf) && (i == 1)) || in w83627hf_update_device()
1838 ((data->type != w83627hf && data->type != w83697hf) in w83627hf_update_device()
1841 data->in[i] = in w83627hf_update_device()
1842 w83627hf_read_value(data, W83781D_REG_IN(i)); in w83627hf_update_device()
1843 data->in_min[i] = in w83627hf_update_device()
1844 w83627hf_read_value(data, in w83627hf_update_device()
1846 data->in_max[i] = in w83627hf_update_device()
1847 w83627hf_read_value(data, in w83627hf_update_device()
1851 data->fan[i] = in w83627hf_update_device()
1852 w83627hf_read_value(data, W83627HF_REG_FAN(i)); in w83627hf_update_device()
1853 data->fan_min[i] = in w83627hf_update_device()
1854 w83627hf_read_value(data, in w83627hf_update_device()
1858 u8 tmp = w83627hf_read_value(data, in w83627hf_update_device()
1859 W836X7HF_REG_PWM(data->type, i)); in w83627hf_update_device()
1861 if (data->type == w83627thf) in w83627hf_update_device()
1863 data->pwm[i] = tmp; in w83627hf_update_device()
1865 (data->type == w83627hf || data->type == w83697hf)) in w83627hf_update_device()
1868 if (data->type == w83627hf) { in w83627hf_update_device()
1869 u8 tmp = w83627hf_read_value(data, in w83627hf_update_device()
1871 data->pwm_freq[0] = tmp & 0x07; in w83627hf_update_device()
1872 data->pwm_freq[1] = (tmp >> 4) & 0x07; in w83627hf_update_device()
1873 } else if (data->type != w83627thf) { in w83627hf_update_device()
1875 data->pwm_freq[i - 1] = in w83627hf_update_device()
1876 w83627hf_read_value(data, in w83627hf_update_device()
1878 if (i == 2 && (data->type == w83697hf)) in w83627hf_update_device()
1882 if (data->type != w83627hf) { in w83627hf_update_device()
1884 u8 tmp = w83627hf_read_value(data, in w83627hf_update_device()
1886 data->pwm_enable[i] = in w83627hf_update_device()
1892 data->temp[i] = w83627hf_read_value( in w83627hf_update_device()
1893 data, w83627hf_reg_temp[i]); in w83627hf_update_device()
1894 data->temp_max[i] = w83627hf_read_value( in w83627hf_update_device()
1895 data, w83627hf_reg_temp_over[i]); in w83627hf_update_device()
1896 data->temp_max_hyst[i] = w83627hf_read_value( in w83627hf_update_device()
1897 data, w83627hf_reg_temp_hyst[i]); in w83627hf_update_device()
1900 w83627hf_update_fan_div(data); in w83627hf_update_device()
1902 data->alarms = in w83627hf_update_device()
1903 w83627hf_read_value(data, W83781D_REG_ALARM1) | in w83627hf_update_device()
1904 (w83627hf_read_value(data, W83781D_REG_ALARM2) << 8) | in w83627hf_update_device()
1905 (w83627hf_read_value(data, W83781D_REG_ALARM3) << 16); in w83627hf_update_device()
1906 i = w83627hf_read_value(data, W83781D_REG_BEEP_INTS2); in w83627hf_update_device()
1907 data->beep_mask = (i << 8) | in w83627hf_update_device()
1908 w83627hf_read_value(data, W83781D_REG_BEEP_INTS1) | in w83627hf_update_device()
1909 w83627hf_read_value(data, W83781D_REG_BEEP_INTS3) << 16; in w83627hf_update_device()
1910 data->last_updated = jiffies; in w83627hf_update_device()
1911 data->valid = 1; in w83627hf_update_device()
1914 mutex_unlock(&data->update_lock); in w83627hf_update_device()
1916 return data; in w83627hf_update_device()