Lines Matching refs:data

562 static u8 dme1737_read(const struct dme1737_data *data, u8 reg)  in dme1737_read()  argument
564 struct i2c_client *client = data->client; in dme1737_read()
576 outb(reg, data->addr); in dme1737_read()
577 val = inb(data->addr + 1); in dme1737_read()
583 static s32 dme1737_write(const struct dme1737_data *data, u8 reg, u8 val) in dme1737_write() argument
585 struct i2c_client *client = data->client; in dme1737_write()
597 outb(reg, data->addr); in dme1737_write()
598 outb(val, data->addr + 1); in dme1737_write()
606 struct dme1737_data *data = dev_get_drvdata(dev); in dme1737_update_device() local
610 mutex_lock(&data->update_lock); in dme1737_update_device()
613 if (time_after(jiffies, data->last_vbat + 600 * HZ) || !data->valid) { in dme1737_update_device()
614 dme1737_write(data, DME1737_REG_CONFIG, dme1737_read(data, in dme1737_update_device()
616 data->last_vbat = jiffies; in dme1737_update_device()
620 if (time_after(jiffies, data->last_update + HZ) || !data->valid) { in dme1737_update_device()
621 if (data->has_features & HAS_VID) { in dme1737_update_device()
622 data->vid = dme1737_read(data, DME1737_REG_VID) & in dme1737_update_device()
627 for (ix = 0; ix < ARRAY_SIZE(data->in); ix++) { in dme1737_update_device()
633 if (ix == 7 && !(data->has_features & HAS_IN7)) in dme1737_update_device()
635 data->in[ix] = dme1737_read(data, in dme1737_update_device()
637 data->in_min[ix] = dme1737_read(data, in dme1737_update_device()
639 data->in_max[ix] = dme1737_read(data, in dme1737_update_device()
644 for (ix = 0; ix < ARRAY_SIZE(data->temp); ix++) { in dme1737_update_device()
652 data->temp[ix] = dme1737_read(data, in dme1737_update_device()
654 data->temp_min[ix] = dme1737_read(data, in dme1737_update_device()
656 data->temp_max[ix] = dme1737_read(data, in dme1737_update_device()
658 if (data->has_features & HAS_TEMP_OFFSET) { in dme1737_update_device()
659 data->temp_offset[ix] = dme1737_read(data, in dme1737_update_device()
671 if (ix == 5 && !(data->has_features & HAS_IN7)) in dme1737_update_device()
673 lsb[ix] = dme1737_read(data, in dme1737_update_device()
676 for (ix = 0; ix < ARRAY_SIZE(data->in); ix++) { in dme1737_update_device()
677 if (ix == 7 && !(data->has_features & HAS_IN7)) in dme1737_update_device()
679 data->in[ix] |= (lsb[DME1737_REG_IN_LSB[ix]] << in dme1737_update_device()
682 for (ix = 0; ix < ARRAY_SIZE(data->temp); ix++) { in dme1737_update_device()
683 data->temp[ix] |= (lsb[DME1737_REG_TEMP_LSB[ix]] << in dme1737_update_device()
688 for (ix = 0; ix < ARRAY_SIZE(data->fan); ix++) { in dme1737_update_device()
693 if (!(data->has_features & HAS_FAN(ix))) in dme1737_update_device()
695 data->fan[ix] = dme1737_read(data, in dme1737_update_device()
697 data->fan[ix] |= dme1737_read(data, in dme1737_update_device()
699 data->fan_min[ix] = dme1737_read(data, in dme1737_update_device()
701 data->fan_min[ix] |= dme1737_read(data, in dme1737_update_device()
703 data->fan_opt[ix] = dme1737_read(data, in dme1737_update_device()
707 data->fan_max[ix - 4] = dme1737_read(data, in dme1737_update_device()
713 for (ix = 0; ix < ARRAY_SIZE(data->pwm); ix++) { in dme1737_update_device()
718 if (!(data->has_features & HAS_PWM(ix))) in dme1737_update_device()
720 data->pwm[ix] = dme1737_read(data, in dme1737_update_device()
722 data->pwm_freq[ix] = dme1737_read(data, in dme1737_update_device()
726 data->pwm_config[ix] = dme1737_read(data, in dme1737_update_device()
728 data->pwm_min[ix] = dme1737_read(data, in dme1737_update_device()
732 for (ix = 0; ix < ARRAY_SIZE(data->pwm_rr); ix++) { in dme1737_update_device()
733 data->pwm_rr[ix] = dme1737_read(data, in dme1737_update_device()
738 for (ix = 0; ix < ARRAY_SIZE(data->zone_low); ix++) { in dme1737_update_device()
740 if ((ix == 2) && !(data->has_features & HAS_ZONE3)) in dme1737_update_device()
743 if ((ix == 1) && (data->type == sch5127)) { in dme1737_update_device()
744 data->zone_low[1] = dme1737_read(data, in dme1737_update_device()
746 data->zone_abs[1] = dme1737_read(data, in dme1737_update_device()
749 data->zone_low[ix] = dme1737_read(data, in dme1737_update_device()
751 data->zone_abs[ix] = dme1737_read(data, in dme1737_update_device()
755 if (data->has_features & HAS_ZONE_HYST) { in dme1737_update_device()
756 for (ix = 0; ix < ARRAY_SIZE(data->zone_hyst); ix++) { in dme1737_update_device()
757 data->zone_hyst[ix] = dme1737_read(data, in dme1737_update_device()
763 data->alarms = dme1737_read(data, in dme1737_update_device()
769 if (data->alarms & 0x80) { in dme1737_update_device()
770 data->alarms |= dme1737_read(data, in dme1737_update_device()
772 data->alarms |= dme1737_read(data, in dme1737_update_device()
781 if (!data->client) { in dme1737_update_device()
782 if (data->alarms & 0xff0000) in dme1737_update_device()
783 dme1737_write(data, DME1737_REG_ALARM3, 0xff); in dme1737_update_device()
784 if (data->alarms & 0xff00) in dme1737_update_device()
785 dme1737_write(data, DME1737_REG_ALARM2, 0xff); in dme1737_update_device()
786 if (data->alarms & 0xff) in dme1737_update_device()
787 dme1737_write(data, DME1737_REG_ALARM1, 0xff); in dme1737_update_device()
790 data->last_update = jiffies; in dme1737_update_device()
791 data->valid = 1; in dme1737_update_device()
794 mutex_unlock(&data->update_lock); in dme1737_update_device()
796 return data; in dme1737_update_device()
812 struct dme1737_data *data = dme1737_update_device(dev); in show_in() local
821 res = IN_FROM_REG(data->in[ix], data->in_nominal[ix], 16); in show_in()
824 res = IN_FROM_REG(data->in_min[ix], data->in_nominal[ix], 8); in show_in()
827 res = IN_FROM_REG(data->in_max[ix], data->in_nominal[ix], 8); in show_in()
830 res = (data->alarms >> DME1737_BIT_ALARM_IN[ix]) & 0x01; in show_in()
843 struct dme1737_data *data = dev_get_drvdata(dev); in set_in() local
855 mutex_lock(&data->update_lock); in set_in()
858 data->in_min[ix] = IN_TO_REG(val, data->in_nominal[ix]); in set_in()
859 dme1737_write(data, DME1737_REG_IN_MIN(ix), in set_in()
860 data->in_min[ix]); in set_in()
863 data->in_max[ix] = IN_TO_REG(val, data->in_nominal[ix]); in set_in()
864 dme1737_write(data, DME1737_REG_IN_MAX(ix), in set_in()
865 data->in_max[ix]); in set_in()
870 mutex_unlock(&data->update_lock); in set_in()
890 struct dme1737_data *data = dme1737_update_device(dev); in show_temp() local
899 res = TEMP_FROM_REG(data->temp[ix], 16); in show_temp()
902 res = TEMP_FROM_REG(data->temp_min[ix], 8); in show_temp()
905 res = TEMP_FROM_REG(data->temp_max[ix], 8); in show_temp()
908 res = TEMP_FROM_REG(data->temp_offset[ix], 8); in show_temp()
911 res = (data->alarms >> DME1737_BIT_ALARM_TEMP[ix]) & 0x01; in show_temp()
914 res = (((u16)data->temp[ix] & 0xff00) == 0x8000); in show_temp()
927 struct dme1737_data *data = dev_get_drvdata(dev); in set_temp() local
939 mutex_lock(&data->update_lock); in set_temp()
942 data->temp_min[ix] = TEMP_TO_REG(val); in set_temp()
943 dme1737_write(data, DME1737_REG_TEMP_MIN(ix), in set_temp()
944 data->temp_min[ix]); in set_temp()
947 data->temp_max[ix] = TEMP_TO_REG(val); in set_temp()
948 dme1737_write(data, DME1737_REG_TEMP_MAX(ix), in set_temp()
949 data->temp_max[ix]); in set_temp()
952 data->temp_offset[ix] = TEMP_TO_REG(val); in set_temp()
953 dme1737_write(data, DME1737_REG_TEMP_OFFSET(ix), in set_temp()
954 data->temp_offset[ix]); in set_temp()
959 mutex_unlock(&data->update_lock); in set_temp()
978 struct dme1737_data *data = dme1737_update_device(dev); in show_zone() local
988 if ((ix == 1) && (data->config2 & 0x02)) in show_zone()
994 res = TEMP_FROM_REG(data->zone_low[ix], 8) - in show_zone()
995 TEMP_HYST_FROM_REG(data->zone_hyst[ix == 2], ix); in show_zone()
998 res = TEMP_FROM_REG(data->zone_low[ix], 8); in show_zone()
1002 res = TEMP_FROM_REG(data->zone_low[ix], 8) + in show_zone()
1003 TEMP_RANGE_FROM_REG(data->pwm_freq[ix]); in show_zone()
1006 res = TEMP_FROM_REG(data->zone_abs[ix], 8); in show_zone()
1019 struct dme1737_data *data = dev_get_drvdata(dev); in set_zone() local
1031 mutex_lock(&data->update_lock); in set_zone()
1035 data->zone_low[ix] = dme1737_read(data, in set_zone()
1038 data->zone_hyst[ix == 2] = TEMP_HYST_TO_REG( in set_zone()
1039 TEMP_FROM_REG(data->zone_low[ix], 8) - in set_zone()
1040 val, ix, dme1737_read(data, in set_zone()
1042 dme1737_write(data, DME1737_REG_ZONE_HYST(ix == 2), in set_zone()
1043 data->zone_hyst[ix == 2]); in set_zone()
1046 data->zone_low[ix] = TEMP_TO_REG(val); in set_zone()
1047 dme1737_write(data, DME1737_REG_ZONE_LOW(ix), in set_zone()
1048 data->zone_low[ix]); in set_zone()
1052 data->zone_low[ix] = dme1737_read(data, in set_zone()
1058 data->pwm_freq[ix] = TEMP_RANGE_TO_REG(val - in set_zone()
1059 TEMP_FROM_REG(data->zone_low[ix], 8), in set_zone()
1060 dme1737_read(data, in set_zone()
1062 dme1737_write(data, DME1737_REG_PWM_FREQ(ix), in set_zone()
1063 data->pwm_freq[ix]); in set_zone()
1066 data->zone_abs[ix] = TEMP_TO_REG(val); in set_zone()
1067 dme1737_write(data, DME1737_REG_ZONE_ABS(ix), in set_zone()
1068 data->zone_abs[ix]); in set_zone()
1073 mutex_unlock(&data->update_lock); in set_zone()
1092 struct dme1737_data *data = dme1737_update_device(dev); in show_fan() local
1101 res = FAN_FROM_REG(data->fan[ix], in show_fan()
1103 FAN_TPC_FROM_REG(data->fan_opt[ix])); in show_fan()
1106 res = FAN_FROM_REG(data->fan_min[ix], in show_fan()
1108 FAN_TPC_FROM_REG(data->fan_opt[ix])); in show_fan()
1112 res = FAN_MAX_FROM_REG(data->fan_max[ix - 4]); in show_fan()
1115 res = (data->alarms >> DME1737_BIT_ALARM_FAN[ix]) & 0x01; in show_fan()
1119 res = FAN_TYPE_FROM_REG(data->fan_opt[ix]); in show_fan()
1132 struct dme1737_data *data = dev_get_drvdata(dev); in set_fan() local
1144 mutex_lock(&data->update_lock); in set_fan()
1148 data->fan_min[ix] = FAN_TO_REG(val, 0); in set_fan()
1151 data->fan_opt[ix] = dme1737_read(data, in set_fan()
1154 data->fan_min[ix] = FAN_TO_REG(val, in set_fan()
1155 FAN_TPC_FROM_REG(data->fan_opt[ix])); in set_fan()
1157 dme1737_write(data, DME1737_REG_FAN_MIN(ix), in set_fan()
1158 data->fan_min[ix] & 0xff); in set_fan()
1159 dme1737_write(data, DME1737_REG_FAN_MIN(ix) + 1, in set_fan()
1160 data->fan_min[ix] >> 8); in set_fan()
1164 data->fan_max[ix - 4] = FAN_MAX_TO_REG(val); in set_fan()
1165 dme1737_write(data, DME1737_REG_FAN_MAX(ix), in set_fan()
1166 data->fan_max[ix - 4]); in set_fan()
1177 data->fan_opt[ix] = FAN_TYPE_TO_REG(val, dme1737_read(data, in set_fan()
1179 dme1737_write(data, DME1737_REG_FAN_OPT(ix), in set_fan()
1180 data->fan_opt[ix]); in set_fan()
1186 mutex_unlock(&data->update_lock); in set_fan()
1208 struct dme1737_data *data = dme1737_update_device(dev); in show_pwm() local
1217 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 0) in show_pwm()
1220 res = data->pwm[ix]; in show_pwm()
1223 res = PWM_FREQ_FROM_REG(data->pwm_freq[ix]); in show_pwm()
1229 res = PWM_EN_FROM_REG(data->pwm_config[ix]); in show_pwm()
1233 res = PWM_RR_FROM_REG(data->pwm_rr[ix > 0], ix); in show_pwm()
1237 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 2) in show_pwm()
1238 res = PWM_ACZ_FROM_REG(data->pwm_config[ix]); in show_pwm()
1240 res = data->pwm_acz[ix]; in show_pwm()
1244 if (PWM_OFF_FROM_REG(data->pwm_rr[0], ix)) in show_pwm()
1245 res = data->pwm_min[ix]; in show_pwm()
1251 res = data->pwm_min[ix]; in show_pwm()
1271 struct dme1737_data *data = dev_get_drvdata(dev); in set_pwm() local
1283 mutex_lock(&data->update_lock); in set_pwm()
1286 data->pwm[ix] = clamp_val(val, 0, 255); in set_pwm()
1287 dme1737_write(data, DME1737_REG_PWM(ix), data->pwm[ix]); in set_pwm()
1290 data->pwm_freq[ix] = PWM_FREQ_TO_REG(val, dme1737_read(data, in set_pwm()
1292 dme1737_write(data, DME1737_REG_PWM_FREQ(ix), in set_pwm()
1293 data->pwm_freq[ix]); in set_pwm()
1305 data->pwm_config[ix] = dme1737_read(data, in set_pwm()
1307 if (val == PWM_EN_FROM_REG(data->pwm_config[ix])) { in set_pwm()
1312 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 2) { in set_pwm()
1314 data->pwm_acz[ix] = PWM_ACZ_FROM_REG( in set_pwm()
1315 data->pwm_config[ix]); in set_pwm()
1317 data->pwm_rr[ix > 0] = dme1737_read(data, in set_pwm()
1319 data->pwm_rr_en &= ~(1 << ix); in set_pwm()
1320 if (PWM_RR_EN_FROM_REG(data->pwm_rr[ix > 0], ix)) { in set_pwm()
1321 data->pwm_rr_en |= (1 << ix); in set_pwm()
1322 data->pwm_rr[ix > 0] = PWM_RR_EN_TO_REG(0, ix, in set_pwm()
1323 data->pwm_rr[ix > 0]); in set_pwm()
1324 dme1737_write(data, in set_pwm()
1326 data->pwm_rr[ix > 0]); in set_pwm()
1336 data->pwm_config[ix] = PWM_EN_TO_REG(0, in set_pwm()
1337 data->pwm_config[ix]); in set_pwm()
1338 dme1737_write(data, DME1737_REG_PWM_CONFIG(ix), in set_pwm()
1339 data->pwm_config[ix]); in set_pwm()
1343 data->pwm_config[ix] = PWM_EN_TO_REG(1, in set_pwm()
1344 data->pwm_config[ix]); in set_pwm()
1345 dme1737_write(data, DME1737_REG_PWM_CONFIG(ix), in set_pwm()
1346 data->pwm_config[ix]); in set_pwm()
1359 data->pwm_config[ix] = PWM_ACZ_TO_REG( in set_pwm()
1360 data->pwm_acz[ix], in set_pwm()
1361 data->pwm_config[ix]); in set_pwm()
1362 dme1737_write(data, DME1737_REG_PWM_CONFIG(ix), in set_pwm()
1363 data->pwm_config[ix]); in set_pwm()
1365 if (data->pwm_rr_en & (1 << ix)) { in set_pwm()
1366 data->pwm_rr[ix > 0] = PWM_RR_EN_TO_REG(1, ix, in set_pwm()
1367 dme1737_read(data, in set_pwm()
1369 dme1737_write(data, in set_pwm()
1371 data->pwm_rr[ix > 0]); in set_pwm()
1379 data->pwm_config[ix] = dme1737_read(data, in set_pwm()
1381 data->pwm_rr[ix > 0] = dme1737_read(data, in set_pwm()
1385 data->pwm_rr[ix > 0] = PWM_RR_TO_REG(val, ix, in set_pwm()
1386 data->pwm_rr[ix > 0]); in set_pwm()
1392 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 2) { in set_pwm()
1393 data->pwm_rr[ix > 0] = PWM_RR_EN_TO_REG(val > 0, ix, in set_pwm()
1394 data->pwm_rr[ix > 0]); in set_pwm()
1396 dme1737_write(data, DME1737_REG_PWM_RR(ix > 0), in set_pwm()
1397 data->pwm_rr[ix > 0]); in set_pwm()
1410 data->pwm_config[ix] = dme1737_read(data, in set_pwm()
1412 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 2) { in set_pwm()
1417 data->pwm_config[ix] = PWM_ACZ_TO_REG(val, in set_pwm()
1418 data->pwm_config[ix]); in set_pwm()
1419 dme1737_write(data, DME1737_REG_PWM_CONFIG(ix), in set_pwm()
1420 data->pwm_config[ix]); in set_pwm()
1426 data->pwm_acz[ix] = val; in set_pwm()
1432 data->pwm_min[ix] = dme1737_read(data, in set_pwm()
1440 if (val > ((data->pwm_min[ix] + 1) / 2)) { in set_pwm()
1441 data->pwm_rr[0] = PWM_OFF_TO_REG(1, ix, in set_pwm()
1442 dme1737_read(data, in set_pwm()
1445 data->pwm_rr[0] = PWM_OFF_TO_REG(0, ix, in set_pwm()
1446 dme1737_read(data, in set_pwm()
1449 dme1737_write(data, DME1737_REG_PWM_RR(0), in set_pwm()
1450 data->pwm_rr[0]); in set_pwm()
1454 data->pwm_min[ix] = clamp_val(val, 0, 255); in set_pwm()
1455 dme1737_write(data, DME1737_REG_PWM_MIN(ix), in set_pwm()
1456 data->pwm_min[ix]); in set_pwm()
1462 mutex_unlock(&data->update_lock); in set_pwm()
1475 struct dme1737_data *data = i2c_get_clientdata(client); in show_vrm() local
1477 return sprintf(buf, "%d\n", data->vrm); in show_vrm()
1483 struct dme1737_data *data = dev_get_drvdata(dev); in set_vrm() local
1494 data->vrm = val; in set_vrm()
1501 struct dme1737_data *data = dme1737_update_device(dev); in show_vid() local
1503 return sprintf(buf, "%d\n", vid_from_reg(data->vid, data->vrm)); in show_vid()
1509 struct dme1737_data *data = dev_get_drvdata(dev); in show_name() local
1511 return sprintf(buf, "%s\n", data->name); in show_name()
2073 struct dme1737_data *data = dev_get_drvdata(dev); in dme1737_remove_files() local
2077 if (data->has_features & HAS_FAN(ix)) { in dme1737_remove_files()
2084 if (data->has_features & HAS_PWM(ix)) { in dme1737_remove_files()
2087 if ((data->has_features & HAS_PWM_MIN) && ix < 3) { in dme1737_remove_files()
2094 if (data->has_features & HAS_TEMP_OFFSET) in dme1737_remove_files()
2096 if (data->has_features & HAS_VID) in dme1737_remove_files()
2098 if (data->has_features & HAS_ZONE3) in dme1737_remove_files()
2100 if (data->has_features & HAS_ZONE_HYST) in dme1737_remove_files()
2102 if (data->has_features & HAS_IN7) in dme1737_remove_files()
2106 if (!data->client) in dme1737_remove_files()
2112 struct dme1737_data *data = dev_get_drvdata(dev); in dme1737_create_files() local
2116 if (!data->client) { in dme1737_create_files()
2128 if (data->has_features & HAS_TEMP_OFFSET) { in dme1737_create_files()
2134 if (data->has_features & HAS_VID) { in dme1737_create_files()
2139 if (data->has_features & HAS_ZONE3) { in dme1737_create_files()
2144 if (data->has_features & HAS_ZONE_HYST) { in dme1737_create_files()
2149 if (data->has_features & HAS_IN7) { in dme1737_create_files()
2157 if (data->has_features & HAS_FAN(ix)) { in dme1737_create_files()
2167 if (data->has_features & HAS_PWM(ix)) { in dme1737_create_files()
2172 if ((data->has_features & HAS_PWM_MIN) && (ix < 3)) { in dme1737_create_files()
2185 if (data->config & 0x02) { in dme1737_create_files()
2194 if (data->has_features & HAS_TEMP_OFFSET) { in dme1737_create_files()
2198 if (data->has_features & HAS_ZONE3) { in dme1737_create_files()
2202 if (data->has_features & HAS_ZONE_HYST) { in dme1737_create_files()
2209 if (data->has_features & HAS_PWM(ix)) { in dme1737_create_files()
2213 if ((data->has_features & HAS_PWM_MIN) && in dme1737_create_files()
2224 if ((data->has_features & HAS_PWM(ix)) && in dme1737_create_files()
2225 (PWM_EN_FROM_REG(data->pwm_config[ix]) == 1)) { in dme1737_create_files()
2243 struct dme1737_data *data = dev_get_drvdata(dev); in dme1737_init_device() local
2244 struct i2c_client *client = data->client; in dme1737_init_device()
2249 data->in_nominal = IN_NOMINAL(data->type); in dme1737_init_device()
2251 data->config = dme1737_read(data, DME1737_REG_CONFIG); in dme1737_init_device()
2253 if (!(data->config & 0x01)) { in dme1737_init_device()
2261 data->config |= 0x01; in dme1737_init_device()
2262 dme1737_write(data, DME1737_REG_CONFIG, data->config); in dme1737_init_device()
2265 if (!(data->config & 0x04)) { in dme1737_init_device()
2275 data->config2 = dme1737_read(data, DME1737_REG_CONFIG2); in dme1737_init_device()
2277 if (data->config2 & 0x04) in dme1737_init_device()
2278 data->has_features |= HAS_FAN(2); in dme1737_init_device()
2286 data->has_features |= HAS_FAN(3) | HAS_PWM(2); in dme1737_init_device()
2294 if (dme1737_i2c_get_features(0x2e, data) && in dme1737_init_device()
2295 dme1737_i2c_get_features(0x4e, data)) { in dme1737_init_device()
2302 data->has_features |= HAS_FAN(0) | HAS_FAN(1) | HAS_PWM(0) | HAS_PWM(1); in dme1737_init_device()
2305 switch (data->type) { in dme1737_init_device()
2307 data->has_features |= HAS_TEMP_OFFSET | HAS_VID | HAS_ZONE3 | in dme1737_init_device()
2311 data->has_features |= HAS_TEMP_OFFSET | HAS_ZONE3 | in dme1737_init_device()
2315 data->has_features |= HAS_ZONE3; in dme1737_init_device()
2318 data->has_features |= HAS_FAN(2) | HAS_PWM(2) | HAS_IN7; in dme1737_init_device()
2326 (data->has_features & HAS_PWM(2)) ? "yes" : "no", in dme1737_init_device()
2327 (data->has_features & HAS_PWM(4)) ? "yes" : "no", in dme1737_init_device()
2328 (data->has_features & HAS_PWM(5)) ? "yes" : "no", in dme1737_init_device()
2329 (data->has_features & HAS_FAN(2)) ? "yes" : "no", in dme1737_init_device()
2330 (data->has_features & HAS_FAN(3)) ? "yes" : "no", in dme1737_init_device()
2331 (data->has_features & HAS_FAN(4)) ? "yes" : "no", in dme1737_init_device()
2332 (data->has_features & HAS_FAN(5)) ? "yes" : "no"); in dme1737_init_device()
2334 reg = dme1737_read(data, DME1737_REG_TACH_PWM); in dme1737_init_device()
2354 if (!(data->config & 0x02)) { in dme1737_init_device()
2356 data->pwm_config[ix] = dme1737_read(data, in dme1737_init_device()
2358 if ((data->has_features & HAS_PWM(ix)) && in dme1737_init_device()
2359 (PWM_EN_FROM_REG(data->pwm_config[ix]) == -1)) { in dme1737_init_device()
2363 data->pwm_config[ix] = PWM_EN_TO_REG(1, in dme1737_init_device()
2364 data->pwm_config[ix]); in dme1737_init_device()
2365 dme1737_write(data, DME1737_REG_PWM(ix), 0); in dme1737_init_device()
2366 dme1737_write(data, in dme1737_init_device()
2368 data->pwm_config[ix]); in dme1737_init_device()
2374 data->pwm_acz[0] = 1; /* pwm1 -> zone1 */ in dme1737_init_device()
2375 data->pwm_acz[1] = 2; /* pwm2 -> zone2 */ in dme1737_init_device()
2376 data->pwm_acz[2] = 4; /* pwm3 -> zone3 */ in dme1737_init_device()
2379 if (data->has_features & HAS_VID) in dme1737_init_device()
2380 data->vrm = vid_which_vrm(); in dme1737_init_device()
2391 static int dme1737_i2c_get_features(int sio_cip, struct dme1737_data *data) in dme1737_i2c_get_features() argument
2426 data->has_features |= HAS_FAN(5); in dme1737_i2c_get_features()
2428 data->has_features |= HAS_PWM(5); in dme1737_i2c_get_features()
2430 data->has_features |= HAS_FAN(4); in dme1737_i2c_get_features()
2432 data->has_features |= HAS_PWM(4); in dme1737_i2c_get_features()
2476 struct dme1737_data *data; in dme1737_i2c_probe() local
2480 data = devm_kzalloc(dev, sizeof(struct dme1737_data), GFP_KERNEL); in dme1737_i2c_probe()
2481 if (!data) in dme1737_i2c_probe()
2484 i2c_set_clientdata(client, data); in dme1737_i2c_probe()
2485 data->type = id->driver_data; in dme1737_i2c_probe()
2486 data->client = client; in dme1737_i2c_probe()
2487 data->name = client->name; in dme1737_i2c_probe()
2488 mutex_init(&data->update_lock); in dme1737_i2c_probe()
2505 data->hwmon_dev = hwmon_device_register(dev); in dme1737_i2c_probe()
2506 if (IS_ERR(data->hwmon_dev)) { in dme1737_i2c_probe()
2508 err = PTR_ERR(data->hwmon_dev); in dme1737_i2c_probe()
2521 struct dme1737_data *data = i2c_get_clientdata(client); in dme1737_i2c_remove() local
2523 hwmon_device_unregister(data->hwmon_dev); in dme1737_i2c_remove()
2639 struct dme1737_data *data; in dme1737_isa_probe() local
2651 data = devm_kzalloc(dev, sizeof(struct dme1737_data), GFP_KERNEL); in dme1737_isa_probe()
2652 if (!data) in dme1737_isa_probe()
2655 data->addr = res->start; in dme1737_isa_probe()
2656 platform_set_drvdata(pdev, data); in dme1737_isa_probe()
2663 data->type = sch311x; in dme1737_isa_probe()
2666 data->type = sch5127; in dme1737_isa_probe()
2669 company = dme1737_read(data, DME1737_REG_COMPANY); in dme1737_isa_probe()
2670 device = dme1737_read(data, DME1737_REG_DEVICE); in dme1737_isa_probe()
2674 data->type = sch311x; in dme1737_isa_probe()
2677 data->type = sch5127; in dme1737_isa_probe()
2683 if (data->type == sch5127) in dme1737_isa_probe()
2684 data->name = "sch5127"; in dme1737_isa_probe()
2686 data->name = "sch311x"; in dme1737_isa_probe()
2689 mutex_init(&data->update_lock); in dme1737_isa_probe()
2692 data->type == sch5127 ? "SCH5127" : "SCH311x", data->addr); in dme1737_isa_probe()
2709 data->hwmon_dev = hwmon_device_register(dev); in dme1737_isa_probe()
2710 if (IS_ERR(data->hwmon_dev)) { in dme1737_isa_probe()
2712 err = PTR_ERR(data->hwmon_dev); in dme1737_isa_probe()
2725 struct dme1737_data *data = platform_get_drvdata(pdev); in dme1737_isa_remove() local
2727 hwmon_device_unregister(data->hwmon_dev); in dme1737_isa_remove()