Changeset 819
- Timestamp:
- 06/17/00 22:33:50 (9 years ago)
- Files:
-
- lm-sensors/trunk/CHANGES (modified) (1 diff)
- lm-sensors/trunk/doc/chips/w83781d (modified) (1 diff)
- lm-sensors/trunk/kernel/chips/w83781d.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
lm-sensors/trunk/CHANGES
r807 r819 23 23 Module w83781d: Fix sensor2&3 selection, enable VBAT (in8) monitoring 24 24 Module w83781d: Remove as99127f entries for in7-8, pwm3-4, sensor1-3 25 Module w83781d: Fis as99127f fan speed (was 66% too high) 25 26 Module w83781d: Improve beep input checking 26 27 Program i2cdump: Add Winbond-style bank selection lm-sensors/trunk/doc/chips/w83781d
r807 r819 149 149 The as99127f support was developed without the benefit of a datasheet. 150 150 In most cases it is treated as a w83781d. 151 This support is BETA. One user has reported problems with fans stopping. 151 This support is BETA. One user has reported problems with fans stopping 152 occasionally. 152 153 153 154 Known problems: 154 - Fans read about 30% low.155 155 - -12V readings a little high (-9.5V to -10.5V) 156 156 - Problems with diode/thermistor settings (supported?) lm-sensors/trunk/kernel/chips/w83781d.c
r807 r819 168 168 254); 169 169 } 170 extern inline u8 AS_FAN_TO_REG(long rpm, int div) 171 { 172 if (rpm == 0) 173 return 255; 174 rpm = SENSORS_LIMIT(rpm, 1, 1000000); 175 return SENSORS_LIMIT((810000 + rpm * div / 2) / (rpm * div), 1, 176 254); 177 } 170 178 171 179 #define FAN_FROM_REG(val,div) ((val)==0?-1:(val)==255?0:1350000/((val)*(div))) 180 #define AS_FAN_FROM_REG(val,div) \ 181 ((val)==0?-1:(val)==255?0:810000/((val)*(div))) 172 182 173 183 #define TEMP_TO_REG(val) (SENSORS_LIMIT(((val)<0?(((val)-5)/10):\ … … 1299 1309 (w83781d_read_value(client, W83781D_REG_VBAT) | 0x01)); 1300 1310 } 1301 w83781d_write_value(client, W83781D_REG_FAN_MIN(1), 1302 FAN_TO_REG(W83781D_INIT_FAN_MIN_1, 2)); 1303 w83781d_write_value(client, W83781D_REG_FAN_MIN(2), 1304 FAN_TO_REG(W83781D_INIT_FAN_MIN_2, 2)); 1305 w83781d_write_value(client, W83781D_REG_FAN_MIN(3), 1306 FAN_TO_REG(W83781D_INIT_FAN_MIN_3, 2)); 1311 if (type == as99127f) { 1312 w83781d_write_value(client, W83781D_REG_FAN_MIN(1), 1313 AS_FAN_TO_REG(W83781D_INIT_FAN_MIN_1, 2)); 1314 w83781d_write_value(client, W83781D_REG_FAN_MIN(2), 1315 AS_FAN_TO_REG(W83781D_INIT_FAN_MIN_2, 2)); 1316 w83781d_write_value(client, W83781D_REG_FAN_MIN(3), 1317 AS_FAN_TO_REG(W83781D_INIT_FAN_MIN_3, 2)); 1318 } else { 1319 w83781d_write_value(client, W83781D_REG_FAN_MIN(1), 1320 FAN_TO_REG(W83781D_INIT_FAN_MIN_1, 2)); 1321 w83781d_write_value(client, W83781D_REG_FAN_MIN(2), 1322 FAN_TO_REG(W83781D_INIT_FAN_MIN_2, 2)); 1323 w83781d_write_value(client, W83781D_REG_FAN_MIN(3), 1324 FAN_TO_REG(W83781D_INIT_FAN_MIN_3, 2)); 1325 } 1307 1326 1308 1327 w83781d_write_value(client, W83781D_REG_TEMP_OVER, … … 1522 1541 else if (operation == SENSORS_PROC_REAL_READ) { 1523 1542 w83781d_update_client(client); 1524 results[0] = FAN_FROM_REG(data->fan_min[nr - 1], 1525 DIV_FROM_REG(data-> 1526 fan_div[nr - 1])); 1527 results[1] = 1528 FAN_FROM_REG(data->fan[nr - 1], 1529 DIV_FROM_REG(data->fan_div[nr - 1])); 1543 if(data->type == as99127f) { 1544 results[0] = AS_FAN_FROM_REG(data->fan_min[nr - 1], 1545 DIV_FROM_REG(data->fan_div[nr - 1])); 1546 results[1] = AS_FAN_FROM_REG(data->fan[nr - 1], 1547 DIV_FROM_REG(data->fan_div[nr - 1])); 1548 } else { 1549 results[0] = FAN_FROM_REG(data->fan_min[nr - 1], 1550 DIV_FROM_REG(data->fan_div[nr - 1])); 1551 results[1] = FAN_FROM_REG(data->fan[nr - 1], 1552 DIV_FROM_REG(data->fan_div[nr - 1])); 1553 } 1530 1554 *nrels_mag = 2; 1531 1555 } else if (operation == SENSORS_PROC_REAL_WRITE) { 1532 1556 if (*nrels_mag >= 1) { 1533 data->fan_min[nr - 1] = FAN_TO_REG(results[0], 1534 DIV_FROM_REG 1535 (data-> 1536 fan_div[nr - 1537 1])); 1557 if(data->type == as99127f) { 1558 data->fan_min[nr - 1] = 1559 AS_FAN_TO_REG(results[0], 1560 DIV_FROM_REG(data->fan_div[nr-1])); 1561 } else { 1562 data->fan_min[nr - 1] = 1563 FAN_TO_REG(results[0], 1564 DIV_FROM_REG(data->fan_div[nr-1])); 1565 } 1538 1566 w83781d_write_value(client, 1539 1567 W83781D_REG_FAN_MIN(nr),
