Changeset 742
- Timestamp:
- 03/04/00 17:14:08 (9 years ago)
- Files:
-
- lm-sensors/trunk/kernel/chips/Module.mk (modified) (1 diff)
- lm-sensors/trunk/kernel/chips/via686a.c (added)
- lm-sensors/trunk/kernel/include/sensors.h (modified) (2 diffs)
- 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/kernel/chips/Module.mk
r713 r742 27 27 $(MODULE_DIR)/matorb.o $(MODULE_DIR)/maxilife.o \ 28 28 $(MODULE_DIR)/thmc50.o \ 29 $(MODULE_DIR)/via686a.o \ 29 30 $(MODULE_DIR)/ddcmon.o 30 31 ifneq ($(shell if grep -q '^CONFIG_SENSORS_ADM1021=y' $(LINUX)/.config; then echo 1; fi),1) lm-sensors/trunk/kernel/include/sensors.h
r715 r742 375 375 #define I2C_DRIVERID_THMC50 1017 376 376 #define I2C_DRIVERID_DDCMON 1018 377 #define I2C_DRIVERID_VIA686A 1019 377 378 378 379 /* Sysctl IDs */ … … 640 641 #define SIS5595_ALARM_FAN2 0x80 641 642 643 #define VIA686A_SYSCTL_IN0 1000 644 #define VIA686A_SYSCTL_IN1 1001 645 #define VIA686A_SYSCTL_IN2 1002 646 #define VIA686A_SYSCTL_IN3 1003 647 #define VIA686A_SYSCTL_IN4 1004 648 #define VIA686A_SYSCTL_FAN1 1101 649 #define VIA686A_SYSCTL_FAN2 1102 650 #define VIA686A_SYSCTL_TEMP 1200 651 #define VIA686A_SYSCTL_TEMP2 1201 652 #define VIA686A_SYSCTL_TEMP3 1202 653 #define VIA686A_SYSCTL_FAN_DIV 2000 654 #define VIA686A_SYSCTL_ALARMS 2001 655 656 #define VIA686A_ALARM_IN0 0x01 657 #define VIA686A_ALARM_IN1 0x02 658 #define VIA686A_ALARM_IN2 0x04 659 #define VIA686A_ALARM_IN3 0x08 660 #define VIA686A_ALARM_TEMP 0x10 661 #define VIA686A_ALARM_FAN1 0x40 662 #define VIA686A_ALARM_FAN2 0x80 663 #define VIA686A_ALARM_IN4 0x100 664 #define VIA686A_ALARM_TEMP2 0x400 665 #define VIA686A_ALARM_CHAS 0x1000 666 #define VIA686A_ALARM_TEMP3 0x8000 667 642 668 #define ICSPLL_SYSCTL1 1000 643 669 lm-sensors/trunk/lib/chips.c
r716 r742 1560 1560 }; 1561 1561 1562 static sensors_chip_feature via686a_features[] = 1563 { 1564 { SENSORS_VIA686A_IN0, "2.0V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 1565 SENSORS_MODE_R, VIA686A_SYSCTL_IN0, VALUE(3), 2 }, 1566 { SENSORS_VIA686A_IN1, "2.5V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 1567 SENSORS_MODE_R, VIA686A_SYSCTL_IN1, VALUE(3), 2 }, 1568 { SENSORS_VIA686A_IN2, "3.3V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 1569 SENSORS_MODE_R, VIA686A_SYSCTL_IN2, VALUE(3), 2 }, 1570 { SENSORS_VIA686A_IN3, "5.0V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 1571 SENSORS_MODE_R, VIA686A_SYSCTL_IN3, VALUE(3), 2 }, 1572 { SENSORS_VIA686A_IN4, "12V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 1573 SENSORS_MODE_R, VIA686A_SYSCTL_IN4, VALUE(3), 2 }, 1574 { SENSORS_VIA686A_IN0_MIN, "in0_min", SENSORS_VIA686A_IN0, SENSORS_VIA686A_IN0, 1575 SENSORS_MODE_RW, VIA686A_SYSCTL_IN0, VALUE(1), 2 }, 1576 { SENSORS_VIA686A_IN1_MIN, "in1_min", SENSORS_VIA686A_IN1, SENSORS_VIA686A_IN1, 1577 SENSORS_MODE_RW, VIA686A_SYSCTL_IN1, VALUE(1), 2 }, 1578 { SENSORS_VIA686A_IN2_MIN, "in2_min", SENSORS_VIA686A_IN2, SENSORS_VIA686A_IN2, 1579 SENSORS_MODE_RW, VIA686A_SYSCTL_IN2, VALUE(1), 2 }, 1580 { SENSORS_VIA686A_IN3_MIN, "in3_min", SENSORS_VIA686A_IN3, SENSORS_VIA686A_IN3, 1581 SENSORS_MODE_RW, VIA686A_SYSCTL_IN3, VALUE(1), 2 }, 1582 { SENSORS_VIA686A_IN3_MIN, "in4_min", SENSORS_VIA686A_IN4, SENSORS_VIA686A_IN4, 1583 SENSORS_MODE_RW, VIA686A_SYSCTL_IN4, VALUE(1), 2 }, 1584 { SENSORS_VIA686A_IN0_MAX, "in0_max", SENSORS_VIA686A_IN0, SENSORS_VIA686A_IN0, 1585 SENSORS_MODE_RW, VIA686A_SYSCTL_IN0, VALUE(2), 2 }, 1586 { SENSORS_VIA686A_IN1_MAX, "in1_max", SENSORS_VIA686A_IN1, SENSORS_VIA686A_IN1, 1587 SENSORS_MODE_RW, VIA686A_SYSCTL_IN1, VALUE(2), 2 }, 1588 { SENSORS_VIA686A_IN2_MAX, "in2_max", SENSORS_VIA686A_IN2, SENSORS_VIA686A_IN2, 1589 SENSORS_MODE_RW, VIA686A_SYSCTL_IN2, VALUE(2), 2 }, 1590 { SENSORS_VIA686A_IN3_MAX, "in3_max", SENSORS_VIA686A_IN3, SENSORS_VIA686A_IN3, 1591 SENSORS_MODE_RW, VIA686A_SYSCTL_IN3, VALUE(2), 2 }, 1592 { SENSORS_VIA686A_IN3_MAX, "in4_max", SENSORS_VIA686A_IN4, SENSORS_VIA686A_IN4, 1593 SENSORS_MODE_RW, VIA686A_SYSCTL_IN4, VALUE(2), 2 }, 1594 { SENSORS_VIA686A_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 1595 SENSORS_MODE_R, VIA686A_SYSCTL_FAN1, VALUE(2), 0 }, 1596 { SENSORS_VIA686A_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 1597 SENSORS_MODE_R, VIA686A_SYSCTL_FAN2, VALUE(2), 0 }, 1598 { SENSORS_VIA686A_FAN1_MIN, "fan1_min", SENSORS_VIA686A_FAN1, SENSORS_VIA686A_FAN1, 1599 SENSORS_MODE_RW, VIA686A_SYSCTL_FAN1, VALUE(1), 0 }, 1600 { SENSORS_VIA686A_FAN2_MIN, "fan2_min", SENSORS_VIA686A_FAN2, SENSORS_VIA686A_FAN2, 1601 SENSORS_MODE_RW, VIA686A_SYSCTL_FAN2, VALUE(1), 0 }, 1602 { SENSORS_VIA686A_TEMP, "temp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 1603 SENSORS_MODE_R, VIA686A_SYSCTL_TEMP, VALUE(3), 1 }, 1604 { SENSORS_VIA686A_TEMP_HYST, "temp1_hyst", SENSORS_VIA686A_TEMP, 1605 SENSORS_VIA686A_TEMP, SENSORS_MODE_RW, 1606 VIA686A_SYSCTL_TEMP, VALUE(2), 1 }, 1607 { SENSORS_VIA686A_TEMP_OVER, "temp1_over", SENSORS_VIA686A_TEMP, 1608 SENSORS_VIA686A_TEMP, SENSORS_MODE_RW, 1609 VIA686A_SYSCTL_TEMP, VALUE(1), 1 }, 1610 { SENSORS_VIA686A_TEMP, "temp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 1611 SENSORS_MODE_R, VIA686A_SYSCTL_TEMP, VALUE(3), 1 }, 1612 { SENSORS_VIA686A_TEMP_HYST, "temp2_hyst", SENSORS_VIA686A_TEMP2, 1613 SENSORS_VIA686A_TEMP2, SENSORS_MODE_RW, 1614 VIA686A_SYSCTL_TEMP, VALUE(2), 1 }, 1615 { SENSORS_VIA686A_TEMP_OVER, "temp2_over", SENSORS_VIA686A_TEMP2, 1616 SENSORS_VIA686A_TEMP2, SENSORS_MODE_RW, 1617 VIA686A_SYSCTL_TEMP, VALUE(1), 1 }, 1618 { SENSORS_VIA686A_TEMP, "temp3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 1619 SENSORS_MODE_R, VIA686A_SYSCTL_TEMP, VALUE(3), 1 }, 1620 { SENSORS_VIA686A_TEMP_HYST, "temp3_hyst", SENSORS_VIA686A_TEMP3, 1621 SENSORS_VIA686A_TEMP3, SENSORS_MODE_RW, 1622 VIA686A_SYSCTL_TEMP, VALUE(2), 1 }, 1623 { SENSORS_VIA686A_TEMP_OVER, "temp3_over", SENSORS_VIA686A_TEMP3, 1624 SENSORS_VIA686A_TEMP3, SENSORS_MODE_RW, 1625 VIA686A_SYSCTL_TEMP, VALUE(1), 1 }, 1626 { SENSORS_VIA686A_FAN1_DIV, "fan1_div", SENSORS_VIA686A_FAN1, SENSORS_NO_MAPPING, 1627 SENSORS_MODE_RW, VIA686A_SYSCTL_FAN_DIV, VALUE(1), 1628 0 }, 1629 { SENSORS_VIA686A_FAN2_DIV, "fan2_div", SENSORS_VIA686A_FAN2, SENSORS_NO_MAPPING, 1630 SENSORS_MODE_RW, VIA686A_SYSCTL_FAN_DIV, VALUE(2), 1631 0 }, 1632 { SENSORS_VIA686A_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 1633 SENSORS_MODE_R, VIA686A_SYSCTL_ALARMS, VALUE(1), 0 }, 1634 { 0 } 1635 }; 1636 1562 1637 static sensors_chip_feature ddcmon_features[] = 1563 1638 { … … 1645 1720 /* Cheat on ADM1022 for now - no separate #defines */ 1646 1721 { SENSORS_ADM1022_PREFIX, thmc50_features }, 1722 { SENSORS_VIA686A_PREFIX, via686a_features }, 1647 1723 { SENSORS_DDCMON_PREFIX, ddcmon_features }, 1648 1724 { SENSORS_EEPROM_PREFIX, eeprom_features }, lm-sensors/trunk/lib/chips.h
r716 r742 725 725 #define SENSORS_THMC50_DIE_CODE 90 /* R */ 726 726 727 /* SiS southbridge with integrated lm78 */ 728 729 #define SENSORS_VIA686A_PREFIX "via686a" 730 731 #define SENSORS_VIA686A_IN0 1 /* R */ 732 #define SENSORS_VIA686A_IN1 2 /* R */ 733 #define SENSORS_VIA686A_IN2 3 /* R */ 734 #define SENSORS_VIA686A_IN3 4 /* R */ 735 #define SENSORS_VIA686A_IN4 5 /* R */ 736 #define SENSORS_VIA686A_IN0_MIN 11 /* RW */ 737 #define SENSORS_VIA686A_IN1_MIN 12 /* RW */ 738 #define SENSORS_VIA686A_IN2_MIN 13 /* RW */ 739 #define SENSORS_VIA686A_IN3_MIN 14 /* RW */ 740 #define SENSORS_VIA686A_IN4_MIN 15 /* RW */ 741 #define SENSORS_VIA686A_IN0_MAX 21 /* RW */ 742 #define SENSORS_VIA686A_IN1_MAX 22 /* RW */ 743 #define SENSORS_VIA686A_IN2_MAX 23 /* RW */ 744 #define SENSORS_VIA686A_IN3_MAX 24 /* RW */ 745 #define SENSORS_VIA686A_IN4_MAX 25 /* RW */ 746 #define SENSORS_VIA686A_FAN1 31 /* R */ 747 #define SENSORS_VIA686A_FAN2 32 /* R */ 748 #define SENSORS_VIA686A_FAN1_MIN 41 /* RW */ 749 #define SENSORS_VIA686A_FAN2_MIN 42 /* RW */ 750 #define SENSORS_VIA686A_TEMP 51 /* R */ 751 #define SENSORS_VIA686A_TEMP_HYST 52 /* RW */ 752 #define SENSORS_VIA686A_TEMP_OVER 53 /* RW */ 753 #define SENSORS_VIA686A_TEMP2 54 /* R */ 754 #define SENSORS_VIA686A_TEMP2_HYST 55 /* RW */ 755 #define SENSORS_VIA686A_TEMP2_OVER 56 /* RW */ 756 #define SENSORS_VIA686A_TEMP3 57 /* R */ 757 #define SENSORS_VIA686A_TEMP3_HYST 58 /* RW */ 758 #define SENSORS_VIA686A_TEMP3_OVER 59 /* RW */ 759 #define SENSORS_VIA686A_FAN1_DIV 71 /* RW */ 760 #define SENSORS_VIA686A_FAN2_DIV 72 /* RW */ 761 #define SENSORS_VIA686A_ALARMS 81 /* R */ 762 763 727 764 /* DDC Monitor */ 728 765 lm-sensors/trunk/prog/sensors/chips.c
r716 r742 419 419 print_label(label,10); 420 420 printf("Board temperature input (usually LM75 chips) %s\n", 421 alarms & SIS5595_ALARM_BTI?"ALARM":" "); 422 } 423 free_the_label(&label); 421 alarms & SIS5595_ALARM_BTI ?"ALARM":" "); 422 } 423 free_the_label(&label); 424 425 } 426 427 void print_via686a(const sensors_chip_name *name) 428 { 429 char *label = NULL; 430 double cur,min,max,fdiv; 431 int alarms,valid; 432 433 if (!sensors_get_feature(*name,SENSORS_VIA686A_ALARMS,&cur)) 434 alarms = cur + 0.5; 435 else { 436 printf("ERROR: Can't get alarm data!\n"); 437 alarms = 0; 438 } 439 440 if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_IN0,&label,&valid) && 441 !sensors_get_feature(*name,SENSORS_VIA686A_IN0,&cur) && 442 !sensors_get_feature(*name,SENSORS_VIA686A_IN0_MIN,&min) && 443 !sensors_get_feature(*name,SENSORS_VIA686A_IN0_MAX,&max)) { 444 if (valid) { 445 print_label(label,10); 446 printf("%+6.2f V (min = %+6.2f V, max = %+6.2f V) %s\n", 447 cur,min,max,alarms&VIA686A_ALARM_IN0?"ALARM":""); 448 } 449 } else 450 printf("ERROR: Can't get IN0 data!\n"); 451 free_the_label(&label); 452 if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_IN1,&label,&valid) && 453 !sensors_get_feature(*name,SENSORS_VIA686A_IN1,&cur) && 454 !sensors_get_feature(*name,SENSORS_VIA686A_IN1_MIN,&min) && 455 !sensors_get_feature(*name,SENSORS_VIA686A_IN1_MAX,&max)) { 456 if (valid) { 457 print_label(label,10); 458 printf("%+6.2f V (min = %+6.2f V, max = %+6.2f V) %s\n", 459 cur,min,max,alarms&VIA686A_ALARM_IN1?"ALARM":""); 460 } 461 } else 462 printf("ERROR: Can't get IN1 data!\n"); 463 free_the_label(&label); 464 if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_IN2,&label,&valid) && 465 !sensors_get_feature(*name,SENSORS_VIA686A_IN2,&cur) && 466 !sensors_get_feature(*name,SENSORS_VIA686A_IN2_MIN,&min) && 467 !sensors_get_feature(*name,SENSORS_VIA686A_IN2_MAX,&max)) { 468 if (valid) { 469 print_label(label,10); 470 printf("%+6.2f V (min = %+6.2f V, max = %+6.2f V) %s\n", 471 cur,min,max,alarms&VIA686A_ALARM_IN2?"ALARM":""); 472 } 473 } else 474 printf("ERROR: Can't get IN2 data!\n"); 475 free_the_label(&label); 476 if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_IN3,&label,&valid) && 477 !sensors_get_feature(*name,SENSORS_VIA686A_IN3,&cur) && 478 !sensors_get_feature(*name,SENSORS_VIA686A_IN3_MIN,&min) && 479 !sensors_get_feature(*name,SENSORS_VIA686A_IN3_MAX,&max)) { 480 if (valid) { 481 print_label(label,10); 482 printf("%+6.2f V (min = %+6.2f V, max = %+6.2f V) %s\n", 483 cur,min,max,alarms&VIA686A_ALARM_IN3?"ALARM":""); 484 } 485 } else 486 printf("ERROR: Can't get IN3 data!\n"); 487 free_the_label(&label); 488 if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_IN4,&label,&valid) && 489 !sensors_get_feature(*name,SENSORS_VIA686A_IN4,&cur) && 490 !sensors_get_feature(*name,SENSORS_VIA686A_IN4_MIN,&min) && 491 !sensors_get_feature(*name,SENSORS_VIA686A_IN4_MAX,&max)) { 492 if (valid) { 493 print_label(label,10); 494 printf("%+6.2f V (min = %+6.2f V, max = %+6.2f V) %s\n", 495 cur,min,max,alarms&VIA686A_ALARM_IN4?"ALARM":""); 496 } 497 } else 498 printf("ERROR: Can't get IN4 data!\n"); 499 free_the_label(&label); 500 501 if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_FAN1,&label,&valid) && 502 !sensors_get_feature(*name,SENSORS_VIA686A_FAN1,&cur) && 503 !sensors_get_feature(*name,SENSORS_VIA686A_FAN1_DIV,&fdiv) && 504 !sensors_get_feature(*name,SENSORS_VIA686A_FAN1_MIN,&min)) { 505 if (valid) { 506 print_label(label,10); 507 printf("%4.0f RPM (min = %4.0f RPM, div = %1.0f) %s\n", 508 cur,min,fdiv, alarms&VIA686A_ALARM_FAN1?"ALARM":""); 509 } 510 } else 511 printf("ERROR: Can't get FAN1 data!\n"); 512 free_the_label(&label); 513 if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_FAN2,&label,&valid) && 514 !sensors_get_feature(*name,SENSORS_VIA686A_FAN2,&cur) && 515 !sensors_get_feature(*name,SENSORS_VIA686A_FAN2_DIV,&fdiv) && 516 !sensors_get_feature(*name,SENSORS_VIA686A_FAN2_MIN,&min)) { 517 if (valid) { 518 print_label(label,10); 519 printf("%4.0f RPM (min = %4.0f RPM, div = %1.0f) %s\n", 520 cur,min,fdiv, alarms&VIA686A_ALARM_FAN2?"ALARM":""); 521 } 522 } else 523 printf("ERROR: Can't get FAN2 data!\n"); 524 free_the_label(&label); 525 526 if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_TEMP,&label,&valid) && 527 !sensors_get_feature(*name,SENSORS_VIA686A_TEMP,&cur) && 528 !sensors_get_feature(*name,SENSORS_VIA686A_TEMP_HYST,&min) && 529 !sensors_get_feature(*name,SENSORS_VIA686A_TEMP_OVER,&max)) { 530 if (valid) { 531 print_label(label,10); 532 printf("%+3.0f C (limit = %+3.0f C, hysteresis = %+3.0f C) %s\n", 533 cur,max,min, alarms&VIA686A_ALARM_TEMP?"ALARM":""); 534 } 535 } else 536 printf("ERROR: Can't get TEMP data!\n"); 537 free_the_label(&label); 538 if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_TEMP2,&label,&valid) && 539 !sensors_get_feature(*name,SENSORS_VIA686A_TEMP2,&cur) && 540 !sensors_get_feature(*name,SENSORS_VIA686A_TEMP2_HYST,&min) && 541 !sensors_get_feature(*name,SENSORS_VIA686A_TEMP2_OVER,&max)) { 542 if (valid) { 543 print_label(label,10); 544 printf("%+3.0f C (limit = %+3.0f C, hysteresis = %+3.0f C) %s\n", 545 cur,max,min, alarms&VIA686A_ALARM_TEMP2?"ALARM":""); 546 } 547 } else 548 printf("ERROR: Can't get TEMP2 data!\n"); 549 free_the_label(&label); 550 if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_TEMP3,&label,&valid) && 551 !sensors_get_feature(*name,SENSORS_VIA686A_TEMP3,&cur) && 552 !sensors_get_feature(*name,SENSORS_VIA686A_TEMP3_HYST,&min) && 553 !sensors_get_feature(*name,SENSORS_VIA686A_TEMP3_OVER,&max)) { 554 if (valid) { 555 print_label(label,10); 556 printf("%+3.0f C (limit = %+3.0f C, hysteresis = %+3.0f C) %s\n", 557 cur,max,min, alarms&VIA686A_ALARM_TEMP3?"ALARM":""); 558 } 559 } else 560 printf("ERROR: Can't get TEMP3 data!\n"); 561 free_the_label(&label); 562 424 563 } 425 564 lm-sensors/trunk/prog/sensors/chips.h
r716 r742 30 30 extern void print_lm78(const sensors_chip_name *name); 31 31 extern void print_sis5595(const sensors_chip_name *name); 32 extern void print_via686a(const sensors_chip_name *name); 32 33 extern void print_gl518(const sensors_chip_name *name); 33 34 extern void print_lm80(const sensors_chip_name *name); lm-sensors/trunk/prog/sensors/main.c
r716 r742 263 263 else if (!strcmp(name.prefix,"sis5595")) 264 264 print_sis5595(&name); 265 else if (!strcmp(name.prefix,"via686a")) 266 print_via686a(&name); 265 267 else if (!strcmp(name.prefix,"lm80")) 266 268 print_lm80(&name);
