Changeset 2925

Show
Ignore:
Timestamp:
03/10/05 20:03:52 (4 years ago)
Author:
mds
Message:

w83792d driver and userspace support patch from Winbond.

by Chunhao Huang <huang0@winbond.com.tw>
submitted by <DZShen@winbond.com.tw>

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • lm-sensors/trunk/etc/sensors.conf.eg

    r2920 r2925  
    359359# Uncomment the following line to enable beeps for all alarms on this chip 
    360360#    set beep_enable 1 
     361 
    361362 
    362363 
     
    723724    label fan2 "CPU Fan" 
    724725#   ignore fan3 
     726 
     727 
     728# Here are configurations for Winbond W83792AD/D chip. 
     729chip "w83792d-*" 
     730 
     731    label in0 "VCoreA" 
     732    label in1 "VCoreB" 
     733    label in2 "VIN0" 
     734    label in3 "VIN1" 
     735    label in4 "VIN2" 
     736    label in5 "VIN3" 
     737    label in6 "5VCC" 
     738    label in7 "5VSB" 
     739    label in8 "VBAT" 
     740    label fan1 "Fan1" 
     741    label fan2 "Fan2" 
     742    label fan3 "Fan3" 
     743    label fan4 "Fan4" 
     744    label fan5 "Fan5" 
     745    label fan6 "Fan6" 
     746    label fan7 "Fan7" 
     747    label temp1 "Temp1" 
     748    label temp2 "Temp2" 
     749    label temp3 "Temp3" 
     750 
     751    set in0_min 1.4 
     752    set in0_max 1.6 
     753    set in1_min 1.4 
     754    set in1_max 1.6 
     755    set in2_min 3.2 
     756    set in2_max 3.4 
     757    set in3_min 3.1 
     758    set in3_max 3.3 
     759    set in4_min 1.4 
     760    set in4_max 1.5 
     761    set in5_min 2.6 
     762    set in5_max 2.65 
     763    set in6_min 5 * 0.95 
     764    set in6_max 5 * 1.05 
     765    set in7_min 5 * 0.95 
     766    set in7_max 5 * 1.05 
     767    set in8_min 3 * 0.95 
     768    set in8_max 3 * 1.05 
     769 
     770    #set fan1_div 4 
     771    #set fan1_min 1500 
     772    set fan2_div 4 
     773    set fan2_min 1500 
     774    #set fan3_min 1300 
     775    #set fan4_min 1500 
     776    #set fan5_min 1500 
     777    #set fan6_min 1500 
     778    #set fan7_min 1500 
     779 
     780    set temp1_over 42 
     781    set temp1_hyst 37 
     782    set temp2_over 43 
     783    set temp2_hyst 38 
     784    set temp3_over 45 
     785    set temp3_hyst 40 
     786 
     787    #ignore fan1 
     788    #ignore fan3 
     789    #ignore fan4 
     790    #ignore fan5 
     791    #ignore fan6 
     792    #ignore fan7 
     793    #ignore temp3 
    725794 
    726795 
  • lm-sensors/trunk/kernel/chips/Module.mk

    r2886 r2925  
    3636KERNELCHIPSTARGETS += $(MODULE_DIR)/smartbatt.o 
    3737KERNELCHIPSTARGETS += $(MODULE_DIR)/smbus-arp.o 
     38KERNELCHIPSTARGETS += $(MODULE_DIR)/w83792d.o 
    3839 
    3940 
  • lm-sensors/trunk/lib/chips.c

    r2920 r2925  
    16921692                         SENSORS_W83791D_ALARMS, RW, 
    16931693                         W83781D_SYSCTL_BEEP, VALUE(2), 0 }, 
     1694    { 0 } 
     1695  }; 
     1696 
     1697 
     1698static sensors_chip_feature w83792d_features[] = 
     1699  {  
     1700    { SENSORS_W83792D_IN0, "in0", NOMAP, NOMAP,  
     1701                        R, W83792D_SYSCTL_IN0, VALUE(3), 3 }, 
     1702    { SENSORS_W83792D_IN1, "in1", NOMAP, NOMAP, 
     1703                        R, W83792D_SYSCTL_IN1, VALUE(3), 3 }, 
     1704    { SENSORS_W83792D_IN2, "in2", NOMAP, NOMAP, 
     1705                        R, W83792D_SYSCTL_IN2, VALUE(3), 3 }, 
     1706    { SENSORS_W83792D_IN3, "in3", NOMAP, NOMAP, 
     1707                        R, W83792D_SYSCTL_IN3, VALUE(3), 3 }, 
     1708    { SENSORS_W83792D_IN4, "in4", NOMAP, NOMAP, 
     1709                        R, W83792D_SYSCTL_IN4, VALUE(3), 3 }, 
     1710    { SENSORS_W83792D_IN5, "in5", NOMAP, NOMAP, 
     1711                        R, W83792D_SYSCTL_IN5, VALUE(3), 3 }, 
     1712    { SENSORS_W83792D_IN6, "in6", NOMAP, NOMAP, 
     1713                        R, W83792D_SYSCTL_IN6, VALUE(3), 3 }, 
     1714    { SENSORS_W83792D_IN7, "in7", NOMAP, NOMAP, 
     1715                        R, W83792D_SYSCTL_IN7, VALUE(3), 3 }, 
     1716    { SENSORS_W83792D_IN8, "in8", NOMAP, NOMAP, 
     1717                        R, W83792D_SYSCTL_IN8, VALUE(3), 3 }, 
     1718    { SENSORS_W83792D_IN0_MIN, "in0_min", SENSORS_W83792D_IN0,  
     1719                        SENSORS_W83792D_IN0, RW,  
     1720                        W83792D_SYSCTL_IN0, VALUE(1), 3 }, 
     1721    { SENSORS_W83792D_IN1_MIN, "in1_min", SENSORS_W83792D_IN1,  
     1722                        SENSORS_W83792D_IN1, RW,  
     1723                        W83792D_SYSCTL_IN1, VALUE(1), 3 }, 
     1724    { SENSORS_W83792D_IN2_MIN, "in2_min", SENSORS_W83792D_IN2,  
     1725                        SENSORS_W83792D_IN2, RW,  
     1726                        W83792D_SYSCTL_IN2, VALUE(1), 3 }, 
     1727    { SENSORS_W83792D_IN3_MIN, "in3_min", SENSORS_W83792D_IN3,  
     1728                        SENSORS_W83792D_IN3, RW,  
     1729                        W83792D_SYSCTL_IN3, VALUE(1), 3 }, 
     1730    { SENSORS_W83792D_IN4_MIN, "in4_min", SENSORS_W83792D_IN4,  
     1731                        SENSORS_W83792D_IN4, RW,  
     1732                        W83792D_SYSCTL_IN4, VALUE(1), 3 }, 
     1733    { SENSORS_W83792D_IN5_MIN, "in5_min", SENSORS_W83792D_IN5,  
     1734                        SENSORS_W83792D_IN5, RW,  
     1735                        W83792D_SYSCTL_IN5, VALUE(1), 3 }, 
     1736    { SENSORS_W83792D_IN6_MIN, "in6_min", SENSORS_W83792D_IN6,  
     1737                        SENSORS_W83792D_IN6, RW,  
     1738                        W83792D_SYSCTL_IN6, VALUE(1), 3 }, 
     1739    { SENSORS_W83792D_IN7_MIN, "in7_min", SENSORS_W83792D_IN7,  
     1740                        SENSORS_W83792D_IN7, RW,  
     1741                        W83792D_SYSCTL_IN7, VALUE(1), 3 }, 
     1742    { SENSORS_W83792D_IN8_MIN, "in8_min", SENSORS_W83792D_IN8,  
     1743                        SENSORS_W83792D_IN8, RW,  
     1744                        W83792D_SYSCTL_IN8, VALUE(1), 3 }, 
     1745    { SENSORS_W83792D_IN0_MAX, "in0_max", SENSORS_W83792D_IN0,  
     1746                        SENSORS_W83792D_IN0, RW, 
     1747                        W83792D_SYSCTL_IN0, VALUE(2), 3 }, 
     1748    { SENSORS_W83792D_IN1_MAX, "in1_max", SENSORS_W83792D_IN1,  
     1749                        SENSORS_W83792D_IN1, RW,  
     1750                        W83792D_SYSCTL_IN1, VALUE(2), 3 }, 
     1751    { SENSORS_W83792D_IN2_MAX, "in2_max", SENSORS_W83792D_IN2,  
     1752                        SENSORS_W83792D_IN2, RW,  
     1753                        W83792D_SYSCTL_IN2, VALUE(2), 3 }, 
     1754    { SENSORS_W83792D_IN3_MAX, "in3_max", SENSORS_W83792D_IN3,  
     1755                        SENSORS_W83792D_IN3, RW,  
     1756                        W83792D_SYSCTL_IN3, VALUE(2), 3 }, 
     1757    { SENSORS_W83792D_IN4_MAX, "in4_max", SENSORS_W83792D_IN4,  
     1758                        SENSORS_W83792D_IN4, RW, 
     1759                        W83792D_SYSCTL_IN4, VALUE(2), 3 }, 
     1760    { SENSORS_W83792D_IN5_MAX, "in5_max", SENSORS_W83792D_IN5,  
     1761                        SENSORS_W83792D_IN5, RW,  
     1762                        W83792D_SYSCTL_IN5, VALUE(2), 3 }, 
     1763    { SENSORS_W83792D_IN6_MAX, "in6_max", SENSORS_W83792D_IN6,  
     1764                        SENSORS_W83792D_IN6, RW,  
     1765                        W83792D_SYSCTL_IN6, VALUE(2), 3 }, 
     1766    { SENSORS_W83792D_IN7_MAX, "in7_max", SENSORS_W83792D_IN7,  
     1767                        SENSORS_W83792D_IN7, RW,  
     1768                        W83792D_SYSCTL_IN7, VALUE(2), 3 }, 
     1769    { SENSORS_W83792D_IN8_MAX, "in8_max", SENSORS_W83792D_IN8,  
     1770                        SENSORS_W83792D_IN8, RW,  
     1771                        W83792D_SYSCTL_IN8, VALUE(2), 3 }, 
     1772    { SENSORS_W83792D_FAN1, "fan1", NOMAP, NOMAP, 
     1773                        R, W83792D_SYSCTL_FAN1, VALUE(2), 0 }, 
     1774    { SENSORS_W83792D_FAN2, "fan2", NOMAP, NOMAP, 
     1775                        R, W83792D_SYSCTL_FAN2, VALUE(2), 0 }, 
     1776    { SENSORS_W83792D_FAN3, "fan3", NOMAP, NOMAP, 
     1777                        R, W83792D_SYSCTL_FAN3, VALUE(2), 0 }, 
     1778    { SENSORS_W83792D_FAN4, "fan4", NOMAP, NOMAP, 
     1779                        R, W83792D_SYSCTL_FAN4, VALUE(2), 0 }, 
     1780    { SENSORS_W83792D_FAN5, "fan5", NOMAP, NOMAP, 
     1781                        R, W83792D_SYSCTL_FAN5, VALUE(2), 0 }, 
     1782    { SENSORS_W83792D_FAN6, "fan6", NOMAP, NOMAP, 
     1783                        R, W83792D_SYSCTL_FAN6, VALUE(2), 0 }, 
     1784    { SENSORS_W83792D_FAN7, "fan7", NOMAP, NOMAP, 
     1785                        R, W83792D_SYSCTL_FAN7, VALUE(2), 0 }, 
     1786    { SENSORS_W83792D_FAN1_MIN, "fan1_min", SENSORS_W83792D_FAN1, 
     1787                        SENSORS_W83792D_FAN1, RW,  
     1788                        W83792D_SYSCTL_FAN1, VALUE(1), 0 }, 
     1789    { SENSORS_W83792D_FAN2_MIN, "fan2_min", SENSORS_W83792D_FAN2,  
     1790                        SENSORS_W83792D_FAN2, RW,  
     1791                        W83792D_SYSCTL_FAN2, VALUE(1), 0 }, 
     1792    { SENSORS_W83792D_FAN3_MIN, "fan3_min", SENSORS_W83792D_FAN3,  
     1793                        SENSORS_W83792D_FAN3, RW,  
     1794                        W83792D_SYSCTL_FAN3, VALUE(1), 0 }, 
     1795    { SENSORS_W83792D_FAN4_MIN, "fan4_min", SENSORS_W83792D_FAN4,  
     1796                        SENSORS_W83792D_FAN4, RW,  
     1797                        W83792D_SYSCTL_FAN4, VALUE(1), 0 }, 
     1798    { SENSORS_W83792D_FAN5_MIN, "fan5_min", SENSORS_W83792D_FAN5,  
     1799                        SENSORS_W83792D_FAN5, RW,  
     1800                        W83792D_SYSCTL_FAN5, VALUE(1), 0 }, 
     1801    { SENSORS_W83792D_FAN6_MIN, "fan6_min", SENSORS_W83792D_FAN6,  
     1802                        SENSORS_W83792D_FAN6, RW,  
     1803                        W83792D_SYSCTL_FAN6, VALUE(1), 0 }, 
     1804    { SENSORS_W83792D_FAN7_MIN, "fan7_min", SENSORS_W83792D_FAN7,  
     1805                        SENSORS_W83792D_FAN7, RW,  
     1806                        W83792D_SYSCTL_FAN7, VALUE(1), 0 }, 
     1807    { SENSORS_W83792D_TEMP1, "temp1", NOMAP, NOMAP, 
     1808                         R, W83792D_SYSCTL_TEMP1, VALUE(3), 1 }, 
     1809    { SENSORS_W83792D_TEMP1_HYST, "temp1_hyst", SENSORS_W83792D_TEMP1, 
     1810                         SENSORS_W83792D_TEMP1, RW,  
     1811                         W83792D_SYSCTL_TEMP1, VALUE(2), 1 }, 
     1812    { SENSORS_W83792D_TEMP1_OVER, "temp1_over", SENSORS_W83792D_TEMP1, 
     1813                         SENSORS_W83792D_TEMP1, RW,  
     1814                         W83792D_SYSCTL_TEMP1, VALUE(1), 1 }, 
     1815    { SENSORS_W83792D_TEMP2, "temp2", NOMAP, NOMAP, 
     1816                         R, W83792D_SYSCTL_TEMP2, VALUE(3), 1 }, 
     1817    { SENSORS_W83792D_TEMP2_HYST, "temp2_hyst", SENSORS_W83792D_TEMP2, 
     1818                         SENSORS_W83792D_TEMP2, RW,  
     1819                         W83792D_SYSCTL_TEMP2, VALUE(2), 1 }, 
     1820    { SENSORS_W83792D_TEMP2_OVER, "temp2_over", SENSORS_W83792D_TEMP2, 
     1821                         SENSORS_W83792D_TEMP2, RW,  
     1822                         W83792D_SYSCTL_TEMP2, VALUE(1), 1 }, 
     1823    { SENSORS_W83792D_TEMP3, "temp3", NOMAP, NOMAP, 
     1824                         R, W83792D_SYSCTL_TEMP3, VALUE(3), 1 }, 
     1825    { SENSORS_W83792D_TEMP3_HYST, "temp3_hyst", SENSORS_W83792D_TEMP3, 
     1826                         SENSORS_W83792D_TEMP3, RW,  
     1827                         W83792D_SYSCTL_TEMP3, VALUE(2), 1 }, 
     1828    { SENSORS_W83792D_TEMP3_OVER, "temp3_over", SENSORS_W83792D_TEMP3, 
     1829                         SENSORS_W83792D_TEMP3, RW,  
     1830                         W83792D_SYSCTL_TEMP3, VALUE(1), 1 }, 
     1831    /* { SENSORS_W83792D_VID, "vid", NOMAP, NOMAP, 
     1832                         R, W83792D_SYSCTL_VID, VALUE(1), 3 }, 
     1833    { SENSORS_W83792D_VRM, "vrm", NOMAP, NOMAP, 
     1834                         RW, W83792D_SYSCTL_VRM, VALUE(1), 1 }, */ 
     1835    { SENSORS_W83792D_CHASSIS, "chassis", SENSORS_W83792D_CHASSIS, 
     1836                         NOMAP, RW, 
     1837                         W83792D_SYSCTL_CHASSIS, VALUE(1), 0 }, 
     1838    { SENSORS_W83792D_FAN1_DIV, "fan1_div", SENSORS_W83792D_FAN1,  
     1839                         NOMAP, RW,  
     1840                         W83792D_SYSCTL_FAN_DIV, VALUE(1), 0 }, 
     1841    { SENSORS_W83792D_FAN2_DIV, "fan2_div", SENSORS_W83792D_FAN2,  
     1842                         NOMAP, RW,  
     1843                         W83792D_SYSCTL_FAN_DIV, VALUE(2), 0 }, 
     1844    { SENSORS_W83792D_FAN3_DIV, "fan3_div", SENSORS_W83792D_FAN3,  
     1845                         NOMAP, RW,  
     1846                         W83792D_SYSCTL_FAN_DIV, VALUE(3), 0 }, 
     1847    { SENSORS_W83792D_FAN4_DIV, "fan4_div", SENSORS_W83792D_FAN4,  
     1848                         NOMAP, RW,  
     1849                         W83792D_SYSCTL_FAN_DIV, VALUE(4), 0 }, 
     1850    { SENSORS_W83792D_FAN5_DIV, "fan5_div", SENSORS_W83792D_FAN5,  
     1851                         NOMAP, RW,  
     1852                         W83792D_SYSCTL_FAN_DIV, VALUE(5), 0 }, 
     1853    { SENSORS_W83792D_FAN6_DIV, "fan6_div", SENSORS_W83792D_FAN6,  
     1854                         NOMAP, RW,  
     1855                         W83792D_SYSCTL_FAN_DIV, VALUE(6), 0 }, 
     1856    { SENSORS_W83792D_FAN7_DIV, "fan7_div", SENSORS_W83792D_FAN7,  
     1857                         NOMAP, RW,  
     1858                         W83792D_SYSCTL_FAN_DIV, VALUE(7), 0 }, 
    16941859    { 0 } 
    16951860  }; 
     
    52855450 { SENSORS_W83637HF_PREFIX, w83782d_features }, 
    52865451 { SENSORS_W83791D_PREFIX, w83791d_features }, 
     5452 { SENSORS_W83792D_PREFIX, w83792d_features }, 
    52875453 { SENSORS_W83L785TS_PREFIX, w83l785ts_features }, 
    52885454 { SENSORS_AS99127F_PREFIX, as99127f_features }, 
  • lm-sensors/trunk/lib/chips.h

    r2920 r2925  
    649649#define SENSORS_W83791D_SENS3 93 /* RW */ 
    650650 
     651 
     652 
     653/* Winbond W83792AD/D chip */ 
     654#define SENSORS_W83792D_PREFIX "w83792d" 
     655 
     656 
     657#define SENSORS_W83792D_IN0 1 /* R */ 
     658#define SENSORS_W83792D_IN1 2 /* R */ 
     659#define SENSORS_W83792D_IN2 3 /* R */ 
     660#define SENSORS_W83792D_IN3 4 /* R */ 
     661#define SENSORS_W83792D_IN4 5 /* R */ 
     662#define SENSORS_W83792D_IN5 6 /* R */ 
     663#define SENSORS_W83792D_IN6 7 /* R */ 
     664#define SENSORS_W83792D_IN7 8 /* R */ 
     665#define SENSORS_W83792D_IN8 9 /* R */ 
     666#define SENSORS_W83792D_IN9 10 /* R */ 
     667 
     668#define SENSORS_W83792D_IN0_MIN 11 /* RW */ 
     669#define SENSORS_W83792D_IN1_MIN 12 /* RW */ 
     670#define SENSORS_W83792D_IN2_MIN 13 /* RW */ 
     671#define SENSORS_W83792D_IN3_MIN 14 /* RW */ 
     672#define SENSORS_W83792D_IN4_MIN 15 /* RW */ 
     673#define SENSORS_W83792D_IN5_MIN 16 /* RW */ 
     674#define SENSORS_W83792D_IN6_MIN 17 /* RW */ 
     675#define SENSORS_W83792D_IN7_MIN 18 /* RW */ 
     676#define SENSORS_W83792D_IN8_MIN 19 /* RW */ 
     677#define SENSORS_W83792D_IN9_MIN 20 /* RW */ 
     678 
     679#define SENSORS_W83792D_IN0_MAX 21 /* RW */ 
     680#define SENSORS_W83792D_IN1_MAX 22 /* RW */ 
     681#define SENSORS_W83792D_IN2_MAX 23 /* RW */ 
     682#define SENSORS_W83792D_IN3_MAX 24 /* RW */ 
     683#define SENSORS_W83792D_IN4_MAX 25 /* RW */ 
     684#define SENSORS_W83792D_IN5_MAX 26 /* RW */ 
     685#define SENSORS_W83792D_IN6_MAX 27 /* RW */ 
     686#define SENSORS_W83792D_IN7_MAX 28 /* RW */ 
     687#define SENSORS_W83792D_IN8_MAX 29 /* RW */ 
     688#define SENSORS_W83792D_IN9_MAX 30 /* RW */ 
     689 
     690#define SENSORS_W83792D_FAN1 31 /* R */ 
     691#define SENSORS_W83792D_FAN2 32 /* R */ 
     692#define SENSORS_W83792D_FAN3 33 /* R */ 
     693#define SENSORS_W83792D_FAN4 34 /* R */ 
     694#define SENSORS_W83792D_FAN5 35 /* R */ 
     695#define SENSORS_W83792D_FAN6 36 /* R */ 
     696#define SENSORS_W83792D_FAN7 37 /* R */ 
     697 
     698#define SENSORS_W83792D_FAN1_MIN 41 /* RW */ 
     699#define SENSORS_W83792D_FAN2_MIN 42 /* RW */ 
     700#define SENSORS_W83792D_FAN3_MIN 43 /* RW */ 
     701#define SENSORS_W83792D_FAN4_MIN 44 /* RW */ 
     702#define SENSORS_W83792D_FAN5_MIN 45 /* RW */ 
     703#define SENSORS_W83792D_FAN6_MIN 46 /* RW */ 
     704#define SENSORS_W83792D_FAN7_MIN 47 /* RW */ 
     705 
     706#define SENSORS_W83792D_TEMP1 51      /* R */ 
     707#define SENSORS_W83792D_TEMP1_HYST 52 /* RW */ 
     708#define SENSORS_W83792D_TEMP1_OVER 53 /* RW */ 
     709#define SENSORS_W83792D_TEMP2 54      /* R */ 
     710#define SENSORS_W83792D_TEMP2_HYST 55 /* RW */ 
     711#define SENSORS_W83792D_TEMP2_OVER 56 /* RW */ 
     712#define SENSORS_W83792D_TEMP3 57      /* R */ 
     713#define SENSORS_W83792D_TEMP3_HYST 58 /* RW */ 
     714#define SENSORS_W83792D_TEMP3_OVER 59 /* RW */ 
     715/*#define SENSORS_W83792D_VID 61 */   /* R */ 
     716/*#define SENSORS_W83792D_VRM 62 */   /* RW */ 
     717#define SENSORS_W83792D_CHASSIS 63    /* R */ 
     718 
     719#define SENSORS_W83792D_FAN1_DIV 71 /* RW */ 
     720#define SENSORS_W83792D_FAN2_DIV 72 /* RW */ 
     721#define SENSORS_W83792D_FAN3_DIV 73 /* RW */ 
     722#define SENSORS_W83792D_FAN4_DIV 74 /* RW */ 
     723#define SENSORS_W83792D_FAN5_DIV 75 /* RW */ 
     724#define SENSORS_W83792D_FAN6_DIV 76 /* RW */ 
     725#define SENSORS_W83792D_FAN7_DIV 77 /* RW */ 
    651726 
    652727 
  • lm-sensors/trunk/prog/sensors/chips.c

    r2891 r2925  
    25092509    } else 
    25102510      printf("ERROR: Can't get BEEP data!\n"); 
     2511  } 
     2512  free_the_label(&label); 
     2513} 
     2514 
     2515 
     2516void print_w83792d(const sensors_chip_name *name) 
     2517{ 
     2518  char *label = NULL; 
     2519  double cur,min,max,fdiv; 
     2520  int valid = 0; 
     2521 
     2522  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_IN0,&label,&valid) && 
     2523      !sensors_get_feature(*name,SENSORS_W83792D_IN0,&cur) && 
     2524      !sensors_get_feature(*name,SENSORS_W83792D_IN0_MIN,&min) && 
     2525      !sensors_get_feature(*name,SENSORS_W83792D_IN0_MAX,&max)) { 
     2526    if (valid) { 
     2527      print_label(label,10); 
     2528      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)       %s\n", 
     2529           cur,min,max, ((cur<min)||(cur>max))?"ALARM":""); 
     2530    } 
     2531  } else 
     2532    printf("ERROR: Can't get IN0 data!\n"); 
     2533  free_the_label(&label); 
     2534 
     2535  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_IN1,&label,&valid) && 
     2536      !sensors_get_feature(*name,SENSORS_W83792D_IN1,&cur) && 
     2537      !sensors_get_feature(*name,SENSORS_W83792D_IN1_MIN,&min) && 
     2538      !sensors_get_feature(*name,SENSORS_W83792D_IN1_MAX,&max)) { 
     2539    if (valid) { 
     2540      print_label(label,10); 
     2541      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)       %s\n", 
     2542           cur,min,max, ((cur<min)||(cur>max))?"ALARM":""); 
     2543    } 
     2544  } else 
     2545    printf("ERROR: Can't get IN1 data!\n"); 
     2546  free_the_label(&label); 
     2547 
     2548  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_IN2,&label,&valid) && 
     2549      !sensors_get_feature(*name,SENSORS_W83792D_IN2,&cur) && 
     2550      !sensors_get_feature(*name,SENSORS_W83792D_IN2_MIN,&min) && 
     2551      !sensors_get_feature(*name,SENSORS_W83792D_IN2_MAX,&max)) { 
     2552    if (valid) { 
     2553      print_label(label,10); 
     2554      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)       %s\n", 
     2555           cur,min,max, ((cur<min)||(cur>max))?"ALARM":""); 
     2556    } 
     2557  } else 
     2558    printf("ERROR: Can't get IN2 data!\n"); 
     2559  free_the_label(&label); 
     2560 
     2561  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_IN3,&label,&valid) && 
     2562      !sensors_get_feature(*name,SENSORS_W83792D_IN3,&cur) && 
     2563      !sensors_get_feature(*name,SENSORS_W83792D_IN3_MIN,&min) && 
     2564      !sensors_get_feature(*name,SENSORS_W83792D_IN3_MAX,&max)) { 
     2565    if (valid) { 
     2566      print_label(label,10); 
     2567      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)       %s\n", 
     2568           cur,min,max, ((cur<min)||(cur>max))?"ALARM":""); 
     2569    } 
     2570  } else 
     2571    printf("ERROR: Can't get IN3 data!\n"); 
     2572  free_the_label(&label); 
     2573 
     2574  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_IN4,&label,&valid) && 
     2575      !sensors_get_feature(*name,SENSORS_W83792D_IN4,&cur) && 
     2576      !sensors_get_feature(*name,SENSORS_W83792D_IN4_MIN,&min) && 
     2577      !sensors_get_feature(*name,SENSORS_W83792D_IN4_MAX,&max)) { 
     2578    if (valid) { 
     2579      print_label(label,10); 
     2580      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)       %s\n", 
     2581           cur,min,max, ((cur<min)||(cur>max))?"ALARM":""); 
     2582    } 
     2583  } else 
     2584    printf("ERROR: Can't get IN4 data!\n"); 
     2585  free_the_label(&label); 
     2586 
     2587  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_IN5,&label,&valid) && 
     2588      !sensors_get_feature(*name,SENSORS_W83792D_IN5,&cur) && 
     2589      !sensors_get_feature(*name,SENSORS_W83792D_IN5_MIN,&min) && 
     2590      !sensors_get_feature(*name,SENSORS_W83792D_IN5_MAX,&max)) { 
     2591    if (valid) { 
     2592      print_label(label,10); 
     2593      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)       %s\n", 
     2594           cur,min,max, ((cur<min)||(cur>max))?"ALARM":""); 
     2595    } 
     2596  } else 
     2597    printf("ERROR: Can't get IN5 data!\n"); 
     2598  free_the_label(&label); 
     2599 
     2600  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_IN6,&label,&valid) && 
     2601      !sensors_get_feature(*name,SENSORS_W83792D_IN6,&cur) && 
     2602      !sensors_get_feature(*name,SENSORS_W83792D_IN6_MIN,&min) && 
     2603      !sensors_get_feature(*name,SENSORS_W83792D_IN6_MAX,&max)) { 
     2604    if (valid) { 
     2605      print_label(label,10); 
     2606      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)       %s\n", 
     2607           cur,min,max, ((cur<min)||(cur>max))?"ALARM":""); 
     2608    } 
     2609  } else 
     2610    printf("ERROR: Can't get IN6 data!\n"); 
     2611  free_the_label(&label); 
     2612 
     2613  if (!sensors_get_label_and_valid(*name,SENSORS_W83782D_IN7,&label,&valid) && 
     2614      !sensors_get_feature(*name,SENSORS_W83782D_IN7,&cur) && 
     2615      !sensors_get_feature(*name,SENSORS_W83782D_IN7_MIN,&min) && 
     2616      !sensors_get_feature(*name,SENSORS_W83782D_IN7_MAX,&max)) { 
     2617    if (valid) { 
     2618      print_label(label,10); 
     2619      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)       %s\n", 
     2620           cur,min,max, ((cur<min)||(cur>max))?"ALARM":""); 
     2621    } 
     2622  } else 
     2623    printf("ERROR: Can't get IN7 data!\n"); 
     2624  free_the_label(&label); 
     2625 
     2626  if (!sensors_get_label_and_valid(*name,SENSORS_W83782D_IN8,&label,&valid) && 
     2627      !sensors_get_feature(*name,SENSORS_W83782D_IN8,&cur) && 
     2628      !sensors_get_feature(*name,SENSORS_W83782D_IN8_MIN,&min) && 
     2629      !sensors_get_feature(*name,SENSORS_W83782D_IN8_MAX,&max)) { 
     2630    if (valid) { 
     2631      print_label(label,10); 
     2632      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)       %s\n", 
     2633           cur,min,max, ((cur<min)||(cur>max))?"ALARM":""); 
     2634    } 
     2635  } else 
     2636    printf("ERROR: Can't get IN8 data!\n"); 
     2637  free_the_label(&label); 
     2638 
     2639  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_FAN1,&label,&valid) && 
     2640      !sensors_get_feature(*name,SENSORS_W83792D_FAN1,&cur) && 
     2641      !sensors_get_feature(*name,SENSORS_W83792D_FAN1_DIV,&fdiv) && 
     2642      !sensors_get_feature(*name,SENSORS_W83792D_FAN1_MIN,&min)) { 
     2643    if (valid) { 
     2644      print_label(label,10); 
     2645      printf("%4.0f RPM  (min = %4.0f RPM, div = %1.0f)              %s\n", 
     2646           cur,min,fdiv, ((cur<min)&&(cur!=0))?"ALARM":""); 
     2647    } 
     2648  } else 
     2649    printf("ERROR: Can't get FAN1 data!\n"); 
     2650  free_the_label(&label); 
     2651 
     2652  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_FAN2,&label,&valid) && 
     2653      !sensors_get_feature(*name,SENSORS_W83792D_FAN2,&cur) && 
     2654      !sensors_get_feature(*name,SENSORS_W83792D_FAN2_DIV,&fdiv) && 
     2655      !sensors_get_feature(*name,SENSORS_W83792D_FAN2_MIN,&min)) { 
     2656    if (valid) { 
     2657      print_label(label,10); 
     2658      printf("%4.0f RPM  (min = %4.0f RPM, div = %1.0f)              %s\n", 
     2659           cur,min,fdiv, ((cur<min)&&(cur!=0))?"ALARM":""); 
     2660    } 
     2661  } else 
     2662    printf("ERROR: Can't get FAN2 data!\n"); 
     2663  free_the_label(&label); 
     2664 
     2665  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_FAN3,&label,&valid) && 
     2666      !sensors_get_feature(*name,SENSORS_W83792D_FAN3,&cur) && 
     2667      !sensors_get_feature(*name,SENSORS_W83792D_FAN3_DIV,&fdiv) && 
     2668      !sensors_get_feature(*name,SENSORS_W83792D_FAN3_MIN,&min)) { 
     2669    if (valid) { 
     2670      print_label(label,10); 
     2671      printf("%4.0f RPM  (min = %4.0f RPM, div = %1.0f)              %s\n", 
     2672           cur,min,fdiv, ((cur<min)&&(cur!=0))?"ALARM":""); 
     2673    } 
     2674  } else 
     2675    printf("ERROR: Can't get FAN3 data!\n"); 
     2676  free_the_label(&label); 
     2677 
     2678  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_FAN4,&label,&valid) && 
     2679      !sensors_get_feature(*name,SENSORS_W83792D_FAN4,&cur) && 
     2680      !sensors_get_feature(*name,SENSORS_W83792D_FAN4_DIV,&fdiv) && 
     2681      !sensors_get_feature(*name,SENSORS_W83792D_FAN4_MIN,&min)) { 
     2682    if (valid) { 
     2683      print_label(label,10); 
     2684      printf("%4.0f RPM  (min = %4.0f RPM, div = %1.0f)              %s\n", 
     2685           cur,min,fdiv, ((cur<min)&&(cur!=0))?"ALARM":""); 
     2686    } 
     2687  } else 
     2688    printf("ERROR: Can't get FAN4 data!\n"); 
     2689  free_the_label(&label); 
     2690 
     2691  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_FAN5,&label,&valid) && 
     2692      !sensors_get_feature(*name,SENSORS_W83792D_FAN5,&cur) && 
     2693      !sensors_get_feature(*name,SENSORS_W83792D_FAN5_DIV,&fdiv) && 
     2694      !sensors_get_feature(*name,SENSORS_W83792D_FAN5_MIN,&min)) { 
     2695    if (valid) { 
     2696      print_label(label,10); 
     2697      printf("%4.0f RPM  (min = %4.0f RPM, div = %1.0f)              %s\n", 
     2698           cur,min,fdiv, ((cur<min)&&(cur!=0))?"ALARM":""); 
     2699    } 
     2700  } else 
     2701    printf("ERROR: Can't get FAN5 data!\n"); 
     2702  free_the_label(&label); 
     2703 
     2704  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_FAN6,&label,&valid) && 
     2705      !sensors_get_feature(*name,SENSORS_W83792D_FAN6,&cur) && 
     2706      !sensors_get_feature(*name,SENSORS_W83792D_FAN6_DIV,&fdiv) && 
     2707      !sensors_get_feature(*name,SENSORS_W83792D_FAN6_MIN,&min)) { 
     2708    if (valid) { 
     2709      print_label(label,10); 
     2710      printf("%4.0f RPM  (min = %4.0f RPM, div = %1.0f)              %s\n", 
     2711           cur,min,fdiv, ((cur<min)&&(cur!=0))?"ALARM":""); 
     2712    } 
     2713  } else 
     2714    printf("ERROR: Can't get FAN6 data!\n"); 
     2715  free_the_label(&label); 
     2716 
     2717  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_FAN7,&label,&valid) && 
     2718      !sensors_get_feature(*name,SENSORS_W83792D_FAN7,&cur) && 
     2719      !sensors_get_feature(*name,SENSORS_W83792D_FAN7_DIV,&fdiv) && 
     2720      !sensors_get_feature(*name,SENSORS_W83792D_FAN7_MIN,&min)) { 
     2721    if (valid) { 
     2722      print_label(label,10); 
     2723      printf("%4.0f RPM  (min = %4.0f RPM, div = %1.0f)              %s\n", 
     2724           cur,min,fdiv, ((cur<min)&&(cur!=0))?"ALARM":""); 
     2725    } 
     2726  } else 
     2727    printf("ERROR: Can't get FAN7 data!\n"); 
     2728  free_the_label(&label); 
     2729 
     2730  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_TEMP1,&label,&valid) && 
     2731      !sensors_get_feature(*name,SENSORS_W83792D_TEMP1,&cur) && 
     2732      !sensors_get_feature(*name,SENSORS_W83792D_TEMP1_HYST,&min) && 
     2733      !sensors_get_feature(*name,SENSORS_W83792D_TEMP1_OVER,&max)) { 
     2734    if (valid) { 
     2735      print_label(label,10); 
     2736      if(min == 127){ 
     2737        print_temp_info( cur, max, 0, MAXONLY, 1, 1); 
     2738        printf(" %s\n", (cur>max)?"ALARM":""); 
     2739      }else{ 
     2740        print_temp_info( cur, max, min, HYST, 1, 1); 
     2741        printf(" %s\n", ((cur<min)||(cur>max))?"ALARM":""); 
     2742      } 
     2743    } 
     2744  } else 
     2745    printf("ERROR: Can't get TEMP1 data!\n"); 
     2746  free_the_label(&label); 
     2747 
     2748  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_TEMP2,&label,&valid) && 
     2749      !sensors_get_feature(*name,SENSORS_W83792D_TEMP2,&cur) && 
     2750      !sensors_get_feature(*name,SENSORS_W83792D_TEMP2_HYST,&min) && 
     2751      !sensors_get_feature(*name,SENSORS_W83792D_TEMP2_OVER,&max)) { 
     2752    if (valid) { 
     2753      print_label(label,10); 
     2754      print_temp_info( cur, max, min, HYST, 1, 1); 
     2755      printf(" %s\n", ((cur<min)||(cur>max))?"ALARM":""); 
     2756    } 
     2757  } else 
     2758    printf("ERROR: Can't get TEMP2 data!\n"); 
     2759  free_the_label(&label); 
     2760 
     2761  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_TEMP3,&label,&valid) && 
     2762      !sensors_get_feature(*name,SENSORS_W83792D_TEMP3,&cur) && 
     2763      !sensors_get_feature(*name,SENSORS_W83792D_TEMP3_HYST,&min) && 
     2764      !sensors_get_feature(*name,SENSORS_W83792D_TEMP3_OVER,&max)) { 
     2765    if (valid) { 
     2766      print_label(label,10); 
     2767      print_temp_info( cur, max, min, HYST, 1, 1); 
     2768      printf(" %s\n", ((cur<min)||(cur>max))?"ALARM":""); 
     2769    } 
     2770  } else 
     2771    printf("ERROR: Can't get TEMP3 data!\n"); 
     2772  free_the_label(&label); 
     2773 
     2774  /* print_vid_info(name, SENSORS_W83792D_VID, SENSORS_W83792D_VRM); */ 
     2775     
     2776  if (!sensors_get_label_and_valid(*name,SENSORS_W83792D_CHASSIS,&label,&valid) && 
     2777      !sensors_get_feature(*name,SENSORS_W83792D_CHASSIS,&cur) ) 
     2778  { 
     2779    if (valid) { 
     2780      print_label(label,10); 
     2781      if (cur==1) { 
     2782        printf("Chassis intrusion detection                  ALARM\n"); 
     2783      }else{ 
     2784        printf("Chassis is normal.\n"); 
     2785      } 
     2786    } 
     2787  }else{ 
     2788    printf("ERROR: Can't get Chassis data!\n"); 
    25112789  } 
    25122790  free_the_label(&label); 
  • lm-sensors/trunk/prog/sensors/chips.h

    r2887 r2925  
    4242extern void print_lm85(const sensors_chip_name *name); 
    4343extern void print_w83781d(const sensors_chip_name *name); 
     44extern void print_w83792d(const sensors_chip_name *name); 
    4445extern void print_w83l785ts(const sensors_chip_name *name); 
    4546extern void print_maxilife(const sensors_chip_name *name); 
  • lm-sensors/trunk/prog/sensors/main.c

    r2920 r2925  
    362362        { "w83697hf", print_w83781d }, 
    363363        { "w83791d", print_w83781d }, 
     364        { "w83792d", print_w83792d }, 
    364365        { "w83l785ts", print_w83l785ts }, 
    365366        { "as99127f", print_w83781d },