Changeset 2573
- Timestamp:
- 06/03/04 23:32:19 (4 years ago)
- Files:
-
- lm-sensors/trunk/doc/chips/adm1031 (added)
- lm-sensors/trunk/etc/sensors.conf.eg (modified) (1 diff)
- lm-sensors/trunk/kernel/chips/Module.mk (modified) (1 diff)
- lm-sensors/trunk/kernel/chips/adm1031.c (added)
- lm-sensors/trunk/lib/chips.c (modified) (2 diffs)
- lm-sensors/trunk/lib/chips.h (modified) (1 diff)
- lm-sensors/trunk/prog/sensors/chips.c (modified) (1 diff)
- lm-sensors/trunk/prog/sensors/chips.h (modified) (1 diff)
- lm-sensors/trunk/prog/sensors/main.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
lm-sensors/trunk/etc/sensors.conf.eg
r2567 r2573 2151 2151 set fan2_min 2000 2152 2152 set fan3_min 2000 2153 2154 2155 chip "adm1030-*" 2156 2157 label temp1 "SYS Temp" 2158 label temp2 "CPU Temp" 2159 label temp1_crit "SYS Crit" 2160 label temp2_crit "CPU Crit" 2161 2162 set temp1_max 50000 2163 set temp2_max 65000 2164 2165 label fan1 "CPU Fan" 2166 2167 set fan1_min 2000 2168 2169 2170 chip "adm1031-*" 2171 2172 label temp1 "SYS Temp" 2173 label temp2 "CPU Temp" 2174 label temp3 "AUX Temp" 2175 label temp1_crit "SYS Crit" 2176 label temp2_crit "CPU Crit" 2177 label temp3_crit "AUX Crit" 2178 2179 set temp1_max 50000 2180 set temp2_max 65000 2181 set temp3_max 65000 2182 2183 label fan1 "CPU Fan" 2184 label fan2 "Case Fan" 2185 2186 set fan1_min 2000 2187 set fan2_min 2000 lm-sensors/trunk/kernel/chips/Module.mk
r2564 r2573 26 26 # These targets are NOT included in 'mkpatch' ... 27 27 KERNELCHIPSTARGETS := 28 KERNELCHIPSTARGETS += $(MODULE_DIR)/adm1031.o 28 29 ifeq ($(shell if grep -q '^CONFIG_IPMI_HANDLER=' $(LINUX)/.config; then echo 1; fi),1) 29 30 KERNELCHIPSTARGETS += $(MODULE_DIR)/bmcsensors.o lm-sensors/trunk/lib/chips.c
r2568 r2573 358 358 NOMAP, R, 359 359 ADM1021_SYSCTL_ALARMS, VALUE(1), 0 }, 360 { 0 } 361 }; 362 363 364 static sensors_chip_feature adm1030_features[] = 365 { 366 { SENSORS_ADM1031_TEMP1, "temp1", 367 NOMAP, NOMAP, 368 R, ADM1031_SYSCTL_TEMP1, VALUE(4), 3 }, 369 { SENSORS_ADM1031_TEMP1_MAX, "temp1_max", 370 SENSORS_ADM1031_TEMP1, SENSORS_ADM1031_TEMP1, 371 RW, ADM1031_SYSCTL_TEMP1, VALUE(1), 3 }, 372 { SENSORS_ADM1031_TEMP1_MIN, "temp1_min", 373 SENSORS_ADM1031_TEMP1, SENSORS_ADM1031_TEMP1, 374 RW, ADM1031_SYSCTL_TEMP1, VALUE(2), 3 }, 375 { SENSORS_ADM1031_TEMP1_CRIT, "temp1_crit", SENSORS_ADM1031_TEMP1, 376 SENSORS_ADM1031_TEMP1, 377 RW, ADM1031_SYSCTL_TEMP1, VALUE(3), 3 }, 378 379 { SENSORS_ADM1031_TEMP2, "temp2", 380 NOMAP, NOMAP, 381 R, ADM1031_SYSCTL_TEMP2, VALUE(4), 3 }, 382 { SENSORS_ADM1031_TEMP2_MAX, "temp2_max", 383 SENSORS_ADM1031_TEMP2, SENSORS_ADM1031_TEMP2, 384 RW, ADM1031_SYSCTL_TEMP2, VALUE(1), 3 }, 385 { SENSORS_ADM1031_TEMP2_MIN, "temp2_min", 386 SENSORS_ADM1031_TEMP2, SENSORS_ADM1031_TEMP2, 387 RW, ADM1031_SYSCTL_TEMP2, VALUE(2), 3 }, 388 { SENSORS_ADM1031_TEMP2_CRIT, "temp2_crit", 389 SENSORS_ADM1031_TEMP2, SENSORS_ADM1031_TEMP2, 390 RW, ADM1031_SYSCTL_TEMP2, VALUE(3), 3 }, 391 392 { SENSORS_ADM1031_FAN1, "fan1", 393 NOMAP, NOMAP, 394 R, ADM1031_SYSCTL_FAN1, VALUE(2), 0 }, 395 { SENSORS_ADM1031_FAN1_MIN, "fan1_min", 396 SENSORS_ADM1031_FAN1, SENSORS_ADM1031_FAN1, RW, 397 ADM1031_SYSCTL_FAN1, VALUE(1), 0 }, 398 { SENSORS_ADM1031_FAN1_DIV, "fan1_div", 399 SENSORS_ADM1031_FAN1, NOMAP, 400 RW, ADM1031_SYSCTL_FAN_DIV, VALUE(1), 0 }, 401 402 { SENSORS_ADM1031_ALARMS, "alarms", 403 NOMAP, NOMAP, 404 R, ADM1031_SYSCTL_ALARMS, VALUE(1), 0 }, 405 { 0 } 406 }; 407 408 409 static sensors_chip_feature adm1031_features[] = 410 { 411 { SENSORS_ADM1031_TEMP1, "temp1", 412 NOMAP, NOMAP, 413 R, ADM1031_SYSCTL_TEMP1, VALUE(4), 3 }, 414 { SENSORS_ADM1031_TEMP1_MAX, "temp1_max", 415 SENSORS_ADM1031_TEMP1, SENSORS_ADM1031_TEMP1, 416 RW, ADM1031_SYSCTL_TEMP1, VALUE(1), 3 }, 417 { SENSORS_ADM1031_TEMP1_MIN, "temp1_min", 418 SENSORS_ADM1031_TEMP1, SENSORS_ADM1031_TEMP1, 419 RW, ADM1031_SYSCTL_TEMP1, VALUE(2), 3 }, 420 { SENSORS_ADM1031_TEMP1_CRIT, "temp1_crit", 421 SENSORS_ADM1031_TEMP1, SENSORS_ADM1031_TEMP1, 422 RW, ADM1031_SYSCTL_TEMP1, VALUE(3), 3 }, 423 424 { SENSORS_ADM1031_TEMP2, "temp2", 425 NOMAP, NOMAP, 426 R, ADM1031_SYSCTL_TEMP2, VALUE(4), 3 }, 427 { SENSORS_ADM1031_TEMP2_MAX, "temp2_max", 428 SENSORS_ADM1031_TEMP2, SENSORS_ADM1031_TEMP2, 429 RW, ADM1031_SYSCTL_TEMP2, VALUE(1), 3 }, 430 { SENSORS_ADM1031_TEMP2_MIN, "temp2_min", 431 SENSORS_ADM1031_TEMP2, SENSORS_ADM1031_TEMP2, 432 RW, ADM1031_SYSCTL_TEMP2, VALUE(2), 3 }, 433 { SENSORS_ADM1031_TEMP2_CRIT, "temp2_crit", 434 SENSORS_ADM1031_TEMP2, SENSORS_ADM1031_TEMP2, 435 RW, ADM1031_SYSCTL_TEMP2, VALUE(3), 3 }, 436 437 { SENSORS_ADM1031_TEMP3, "temp3", 438 NOMAP, NOMAP, 439 R, ADM1031_SYSCTL_TEMP3, VALUE(4), 3 }, 440 { SENSORS_ADM1031_TEMP3_MAX, "temp3_max", 441 SENSORS_ADM1031_TEMP3, SENSORS_ADM1031_TEMP3, 442 RW, ADM1031_SYSCTL_TEMP3, VALUE(1), 3 }, 443 { SENSORS_ADM1031_TEMP3_MIN, "temp3_min", 444 SENSORS_ADM1031_TEMP3, SENSORS_ADM1031_TEMP3, 445 RW, ADM1031_SYSCTL_TEMP3, VALUE(2), 3 }, 446 { SENSORS_ADM1031_TEMP3_CRIT, "temp3_crit", 447 SENSORS_ADM1031_TEMP3, SENSORS_ADM1031_TEMP3, 448 RW, ADM1031_SYSCTL_TEMP3, VALUE(3), 3 }, 449 450 { SENSORS_ADM1031_FAN1, "fan1", 451 NOMAP, NOMAP, 452 R, ADM1031_SYSCTL_FAN1, VALUE(2), 0 }, 453 { SENSORS_ADM1031_FAN1_MIN, "fan1_min", 454 SENSORS_ADM1031_FAN1, SENSORS_ADM1031_FAN1, 455 RW, ADM1031_SYSCTL_FAN1, VALUE(1), 0 }, 456 { SENSORS_ADM1031_FAN1_DIV, "fan1_div", 457 SENSORS_ADM1031_FAN1, NOMAP, 458 RW, ADM1031_SYSCTL_FAN_DIV, VALUE(1), 0 }, 459 460 { SENSORS_ADM1031_FAN2, "fan2", 461 NOMAP, NOMAP, 462 R, ADM1031_SYSCTL_FAN2, VALUE(2), 0 }, 463 { SENSORS_ADM1031_FAN2_MIN, "fan2_min", 464 SENSORS_ADM1031_FAN2, SENSORS_ADM1031_FAN2, 465 RW, ADM1031_SYSCTL_FAN2, VALUE(1), 0 }, 466 { SENSORS_ADM1031_FAN2_DIV, "fan2_div", 467 SENSORS_ADM1031_FAN2, NOMAP, 468 RW, ADM1031_SYSCTL_FAN_DIV, VALUE(2), 0 }, 469 470 { SENSORS_ADM1031_ALARMS, "alarms", 471 NOMAP, NOMAP, 472 R, ADM1031_SYSCTL_ALARMS, VALUE(1), 0 }, 360 473 { 0 } 361 474 }; … … 5101 5214 { SENSORS_XEONTEMP_PREFIX, xeontemp_features }, 5102 5215 { SENSORS_MAX6650_PREFIX, max6650_features }, 5216 { SENSORS_ADM1030_PREFIX, adm1030_features }, 5217 { SENSORS_ADM1031_PREFIX, adm1031_features }, 5103 5218 { 0 } 5104 5219 }; lm-sensors/trunk/lib/chips.h
r2564 r2573 184 184 #define SENSORS_ADM1021_ALARMS 81 /* R */ 185 185 #define SENSORS_ADM1021_DIE_CODE 90 /* R */ 186 187 188 /* ADM1030 and ADM1031 chips */ 189 190 #define SENSORS_ADM1030_PREFIX "adm1030" 191 #define SENSORS_ADM1031_PREFIX "adm1031" 192 193 #define SENSORS_ADM1031_TEMP1 51 /* R */ 194 #define SENSORS_ADM1031_TEMP1_MIN 52 /* RW */ 195 #define SENSORS_ADM1031_TEMP1_MAX 53 /* RW */ 196 #define SENSORS_ADM1031_TEMP1_CRIT 54 /* RW */ 197 198 #define SENSORS_ADM1031_TEMP2 61 /* R */ 199 #define SENSORS_ADM1031_TEMP2_MIN 62 /* RW */ 200 #define SENSORS_ADM1031_TEMP2_MAX 63 /* RW */ 201 #define SENSORS_ADM1031_TEMP2_CRIT 64 /* RW */ 202 203 #define SENSORS_ADM1031_TEMP3 71 /* R */ 204 #define SENSORS_ADM1031_TEMP3_MIN 72 /* RW */ 205 #define SENSORS_ADM1031_TEMP3_MAX 73 /* RW */ 206 #define SENSORS_ADM1031_TEMP3_CRIT 74 /* RW */ 207 208 209 #define SENSORS_ADM1031_FAN1 80 /* R */ 210 #define SENSORS_ADM1031_FAN1_MIN 81 /* RW */ 211 #define SENSORS_ADM1031_FAN1_DIV 82 /* RW */ 212 #define SENSORS_ADM1031_FAN2 90 /* R */ 213 #define SENSORS_ADM1031_FAN2_MIN 91 /* RW */ 214 #define SENSORS_ADM1031_FAN2_DIV 92 /* RW */ 215 216 #define SENSORS_ADM1031_ALARMS 100 /* R */ 217 186 218 187 219 /* MAX1617 chips. */ lm-sensors/trunk/prog/sensors/chips.c
r2564 r2573 4727 4727 } 4728 4728 4729 4730 void print_adm1031(const sensors_chip_name *name) 4731 { 4732 char *label; 4733 double cur, high, low, crit, div; 4734 int valid, alarms, i; 4735 int is_1031 = !strncmp("adm1031", name->prefix, 7); 4736 4737 if (!sensors_get_feature(*name, SENSORS_ADM1031_ALARMS, &cur)) 4738 alarms = cur; 4739 else { 4740 printf("ERROR: Can't get alarm data!\n"); 4741 alarms = 0; 4742 } 4743 4744 for(i=0; i<(is_1031?2:1);i++) { 4745 if (!sensors_get_label_and_valid(*name, SENSORS_ADM1031_FAN1+i*10, 4746 &label, &valid) 4747 && !sensors_get_feature(*name, SENSORS_ADM1031_FAN1+i*10, &cur) 4748 && !sensors_get_feature(*name, SENSORS_ADM1031_FAN1_MIN+i*10, &low) 4749 && !sensors_get_feature(*name, SENSORS_ADM1031_FAN1_DIV+i*10, &div)) { 4750 if (valid) { 4751 print_label(label, 10); 4752 printf("%4.0f RPM (min = %4.0f RPM, div = %1.0f)", cur, low, div); 4753 printf(" %s\n", 4754 alarms&(ADM1031_ALARM_FAN1_FLT<<(i*8))?"FAN_FAULT": 4755 alarms&((ADM1031_ALARM_FAN1_MIN<<(i*8)))?"ALARM":""); 4756 } 4757 } else 4758 printf("ERROR: Can't get fan%d data!\n", i+1); 4759 free_the_label(&label); 4760 } 4761 4762 if (!sensors_get_label_and_valid(*name, SENSORS_ADM1031_TEMP1, 4763 &label, &valid) 4764 && !sensors_get_feature(*name, SENSORS_ADM1031_TEMP1, &cur) 4765 && !sensors_get_feature(*name, SENSORS_ADM1031_TEMP1_MIN, &low) 4766 && !sensors_get_feature(*name, SENSORS_ADM1031_TEMP1_MAX, &high) 4767 && !sensors_get_feature(*name, SENSORS_ADM1031_TEMP1_CRIT, &crit)) { 4768 if (valid) { 4769 print_label(label, 10); 4770 print_temp_info(cur, high, low, MINMAX, 1, 0); 4771 printf(" %s\n", 4772 alarms&(ADM1031_ALARM_TEMP1_HIGH|ADM1031_ALARM_TEMP1_LOW)?"ALARM":""); 4773 } 4774 } else 4775 printf("ERROR: Can't get temp1 temperature data!\n"); 4776 free_the_label(&label); 4777 if (!sensors_get_label_and_valid(*name, SENSORS_ADM1031_TEMP1_CRIT, 4778 &label, &valid) 4779 && !sensors_get_feature(*name, SENSORS_ADM1031_TEMP1_CRIT, &cur)) { 4780 if (valid) { 4781 print_label(label, 10); 4782 print_temp_info(cur, 0, 0, SINGLE, 0, 0); 4783 printf(" %s\n", 4784 alarms&ADM1031_ALARM_TEMP1_CRIT?"CRITICAL":""); 4785 } 4786 } else 4787 printf("ERROR: Can't get temp1 temperature data!\n"); 4788 free_the_label(&label); 4789 4790 for (i=0; i < (is_1031 ? 2 : 1); i++) { 4791 if (!sensors_get_label_and_valid(*name, SENSORS_ADM1031_TEMP2+i*10, 4792 &label, &valid) 4793 && !sensors_get_feature(*name, SENSORS_ADM1031_TEMP2+i*10, &cur) 4794 && !sensors_get_feature(*name, SENSORS_ADM1031_TEMP2_MIN+i*10, &low) 4795 && !sensors_get_feature(*name, SENSORS_ADM1031_TEMP2_MAX+i*10, &high)) { 4796 if (valid) { 4797 print_label(label, 10); 4798 print_temp_info(cur, high, low, MINMAX, 1, 0); 4799 printf(" %s\n", 4800 alarms&((ADM1031_ALARM_TEMP2_DIODE<<(i*8)))?"DISCONNECT": 4801 alarms&((ADM1031_ALARM_TEMP2_HIGH<<(i*8))| 4802 (ADM1031_ALARM_TEMP2_LOW<<(i*8)))?"ALARM":""); 4803 } 4804 } else 4805 printf("ERROR: Can't get temp%d temperature data!\n", i+2); 4806 free_the_label(&label); 4807 if (!sensors_get_label_and_valid(*name, SENSORS_ADM1031_TEMP2_CRIT+i*10, 4808 &label, &valid) 4809 && !sensors_get_feature(*name, SENSORS_ADM1031_TEMP2_CRIT+i*10, &cur)) { 4810 if (valid) { 4811 print_label(label, 10); 4812 print_temp_info(cur, 0, 0, SINGLE, 0, 0); 4813 printf(" %s\n", 4814 alarms&((ADM1031_ALARM_TEMP2_CRIT<<(i*8)))?"CRITICAL":""); 4815 } 4816 } else 4817 printf("ERROR: Can't get temp%d crit temperature data!\n", i+2); 4818 free_the_label(&label); 4819 } 4820 } 4821 4729 4822 void print_xeontemp(const sensors_chip_name *name) 4730 4823 { lm-sensors/trunk/prog/sensors/chips.h
r2564 r2573 64 64 extern void print_xeontemp(const sensors_chip_name *name); 65 65 extern void print_max6650(const sensors_chip_name *name); 66 extern void print_adm1031(const sensors_chip_name *name); 66 67 67 68 #endif /* def PROG_SENSORS_CHIPS_H */ lm-sensors/trunk/prog/sensors/main.c
r2538 r2573 428 428 { "max6650", print_max6650 }, 429 429 { "asb100", print_asb100 }, 430 { "adm1030", print_adm1031 }, 431 { "adm1031", print_adm1031 }, 430 432 { NULL, NULL } 431 433 };
