Changeset 4109

Show
Ignore:
Timestamp:
08/24/06 20:13:20 (8 years ago)
Author:
khali
Message:

Add userspace support for the Winbond W83793. Patch contributed by
Yuan Mu (Winbond.)

Location:
lm-sensors/trunk
Files:
7 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/trunk/CHANGES

    r4108 r4109  
    88                            Comment out all set statements 
    99                            Add an it8716 section 
     10                            Add a w83793 section 
    1011  Library: Fix device scan when no i2c support is present 
    1112           Add support for W83627EHF voltage inputs and alarms 
     
    1415           Fix no sensors being reported as an error 
    1516           Add support for the IT8716F and IT8718F chips 
     17           Add support for the W83793 chip (Yuan Mu) 
    1618  Makefile: Don't grep autoconf.h on user-space targets 
    1719            Fix depmod on non-running kernel version 
     
    5052                   Make each it87 fan and fan div optional 
    5153                   Print missing w83791d values 
     54                   Add w83793 support (Yuan Mu) 
    5255  Program sensors-detect: Add ServerWorks HT-1000 SMBus detection 
    5356                          Add ATI IXP200/300/400 SMBus detection 
  • lm-sensors/trunk/etc/sensors.conf.eg

    r4100 r4109  
    793793#    ignore fan7 
    794794#    ignore temp3 
     795 
     796 
     797# Here are configurations for Winbond W83793 chip. 
     798chip "w83793-*" 
     799 
     800    label in0 "VCoreA" 
     801    label in1 "VCoreB" 
     802    label in2 "Vtt" 
     803    label in5 "+3.3V" 
     804    label in6 "+12V" 
     805    label in7 "+5V" 
     806    label in8 "5VSB" 
     807    label in9 "VBAT" 
     808 
     809    compute in6 12*@ ,  @/12 
     810 
     811    label temp1 "CPU1 Temp" 
     812    label temp2 "CPU2 Temp" 
     813     
     814# fan1 adjustments examples 
     815 
     816#   set fan1_min 1500 
     817 
     818# temp2 limits examples 
     819 
     820#   set temp2_max       45 
     821#   set temp2_max_hyst  40 
     822 
     823# ignore examples 
     824 
     825#    ignore fan7 
     826#    ignore temp3 
     827 
    795828 
    796829chip "as99127f-*" 
  • lm-sensors/trunk/lib/chips.c

    r4100 r4109  
    18621862    { 0 } 
    18631863  }; 
     1864 
     1865 
     1866/* w83793 */ 
     1867#define SENSORS_W83793_FEATURES_IN(nr)                                  \ 
     1868        { SENSORS_W83793_IN(nr), "in" #nr, NOMAP, NOMAP,                \ 
     1869                R, NOSYSCTL, VALUE(3), 3 },                             \ 
     1870        { SENSORS_W83793_IN_MIN(nr), "in" #nr "_min",                   \ 
     1871                SENSORS_W83793_IN(nr), SENSORS_W83793_IN(nr), RW,       \ 
     1872                NOSYSCTL, VALUE(1), 3 },                                \ 
     1873        { SENSORS_W83793_IN_MAX(nr), "in" #nr "_max",                   \ 
     1874                SENSORS_W83793_IN(nr), SENSORS_W83793_IN(nr), RW,       \ 
     1875                NOSYSCTL, VALUE(2), 3 },                                \ 
     1876        { SENSORS_W83793_IN_ALARM(nr), "in" #nr "_alarm",               \ 
     1877                SENSORS_W83793_IN(nr), NOMAP, R, NOSYSCTL,              \ 
     1878                VALUE(1), 0 } 
     1879 
     1880#define SENSORS_W83793_FEATURES_FAN(nr)                                 \ 
     1881        { SENSORS_W83793_FAN(nr), "fan" #nr, NOMAP, NOMAP,              \ 
     1882                R, NOSYSCTL, VALUE(2), 0 },                             \ 
     1883        { SENSORS_W83793_FAN_MIN(nr), "fan" #nr "_min",                 \ 
     1884                SENSORS_W83793_FAN(nr), SENSORS_W83793_FAN(nr),         \ 
     1885                RW, NOSYSCTL, VALUE(1), 0 },                            \ 
     1886        { SENSORS_W83793_FAN_ALARM(nr), "fan" #nr "_alarm",             \ 
     1887                SENSORS_W83793_FAN(nr), NOMAP, R, NOSYSCTL,             \ 
     1888                VALUE(1), 0 } 
     1889 
     1890#define SENSORS_W83793_FEATURES_TEMP(nr)                                \ 
     1891        { SENSORS_W83793_TEMP(nr), "temp" #nr, NOMAP, NOMAP,            \ 
     1892                R, NOSYSCTL, VALUE(3), 3 },                             \ 
     1893        { SENSORS_W83793_TEMP_CRIT(nr), "temp" #nr "_max",              \ 
     1894                SENSORS_W83793_TEMP(nr), SENSORS_W83793_TEMP(nr),       \ 
     1895                RW, NOSYSCTL, VALUE(1), 3 },                            \ 
     1896        { SENSORS_W83793_TEMP_CRIT_HYST(nr), "temp" #nr "_max_hyst",    \ 
     1897                SENSORS_W83793_TEMP(nr), SENSORS_W83793_TEMP(nr),       \ 
     1898                RW, NOSYSCTL, VALUE(2), 3 },                            \ 
     1899        { SENSORS_W83793_TEMP_ALARM(nr), "temp" #nr "_alarm",           \ 
     1900                SENSORS_W83793_TEMP(nr), NOMAP, R, NOSYSCTL,            \ 
     1901                VALUE(1), 0 } 
     1902 
     1903/* No support for Linux 2.4 yet (sysctl) */ 
     1904static sensors_chip_feature w83793_features[] = 
     1905{ 
     1906        SENSORS_W83793_FEATURES_IN(0), 
     1907        SENSORS_W83793_FEATURES_IN(1), 
     1908        SENSORS_W83793_FEATURES_IN(2), 
     1909        SENSORS_W83793_FEATURES_IN(3), 
     1910        SENSORS_W83793_FEATURES_IN(4), 
     1911        SENSORS_W83793_FEATURES_IN(5), 
     1912        SENSORS_W83793_FEATURES_IN(6), 
     1913        SENSORS_W83793_FEATURES_IN(7), 
     1914        SENSORS_W83793_FEATURES_IN(8), 
     1915        SENSORS_W83793_FEATURES_IN(9), 
     1916        SENSORS_W83793_FEATURES_FAN(1), 
     1917        SENSORS_W83793_FEATURES_FAN(2), 
     1918        SENSORS_W83793_FEATURES_FAN(3), 
     1919        SENSORS_W83793_FEATURES_FAN(4), 
     1920        SENSORS_W83793_FEATURES_FAN(5), 
     1921        SENSORS_W83793_FEATURES_FAN(6), 
     1922        SENSORS_W83793_FEATURES_FAN(7), 
     1923        SENSORS_W83793_FEATURES_FAN(8), 
     1924        SENSORS_W83793_FEATURES_FAN(9), 
     1925        SENSORS_W83793_FEATURES_FAN(10), 
     1926        SENSORS_W83793_FEATURES_FAN(11), 
     1927        SENSORS_W83793_FEATURES_FAN(12), 
     1928        SENSORS_W83793_FEATURES_TEMP(1), 
     1929        SENSORS_W83793_FEATURES_TEMP(2), 
     1930        SENSORS_W83793_FEATURES_TEMP(3), 
     1931        SENSORS_W83793_FEATURES_TEMP(4), 
     1932        SENSORS_W83793_FEATURES_TEMP(5), 
     1933        SENSORS_W83793_FEATURES_TEMP(6), 
     1934        { SENSORS_W83793_VID0, "cpu0_vid", NOMAP, NOMAP, 
     1935                R, NOSYSCTL, VALUE(1), 3 }, 
     1936        { SENSORS_W83793_VID1, "cpu1_vid", NOMAP, NOMAP, 
     1937                R, NOSYSCTL, VALUE(1), 3 }, 
     1938        { SENSORS_W83793_VRM, "vrm", NOMAP, NOMAP, 
     1939                RW, NOSYSCTL, VALUE(1), 1 }, 
     1940        { SENSORS_W83793_CHASSIS, "chassis", NOMAP, 
     1941                NOMAP, RW, NOSYSCTL, VALUE(1), 0 }, 
     1942        { 0 } 
     1943}; 
     1944 
    18641945 
    18651946static sensors_chip_feature w83l785ts_features[] = 
     
    58785959 { SENSORS_W83791D_PREFIX, w83791d_features }, 
    58795960 { SENSORS_W83792D_PREFIX, w83792d_features }, 
     5961 { SENSORS_W83793_PREFIX, w83793_features }, 
    58805962 { SENSORS_W83L785TS_PREFIX, w83l785ts_features }, 
    58815963 { SENSORS_W83627EHF_PREFIX, w83627ehf_features }, 
  • lm-sensors/trunk/lib/chips.h

    r4100 r4109  
    728728#define SENSORS_W83792D_FAN7_DIV 77 /* RW */ 
    729729 
     730 
     731/* Winbond W83793R chip */ 
     732#define SENSORS_W83793_PREFIX "w83793" 
     733 
     734#define SENSORS_W83793_IN(n)            (0 + (n))  /* n(0-9) R */ 
     735#define SENSORS_W83793_IN_MIN(n)        (20 + (n)) /* n(0-9) RW */ 
     736#define SENSORS_W83793_IN_MAX(n)        (40 + (n)) /* n(0-9) RW */ 
     737#define SENSORS_W83793_IN_ALARM(n)      (60 + (n)) /* n(0-9) R */ 
     738 
     739#define SENSORS_W83793_FAN(n)           (80 + (n))  /* n(1-12) R */ 
     740#define SENSORS_W83793_FAN_MIN(n)       (100 + (n)) /* n(1-12) RW */ 
     741#define SENSORS_W83793_FAN_ALARM(n)     (120 + (n)) /* n(1-12) R */ 
     742 
     743 
     744#define SENSORS_W83793_TEMP(n)          (140 + (n)) /* n(1-6) R */ 
     745#define SENSORS_W83793_TEMP_CRIT(n)     (160 + (n)) /* n(1-6) RW */ 
     746#define SENSORS_W83793_TEMP_CRIT_HYST(n) (180 + (n)) /* n(1-6) RW */ 
     747#define SENSORS_W83793_TEMP_ALARM(n)    (200 + (n)) /* n(1-6) R */ 
     748 
     749#define SENSORS_W83793_VID0             221 /* R */ 
     750#define SENSORS_W83793_VID1             222 /* R */ 
     751#define SENSORS_W83793_VRM              230 /* RW */ 
     752#define SENSORS_W83793_CHASSIS          240 /* RW */ 
    730753 
    731754 
  • lm-sensors/trunk/prog/sensors/chips.c

    r4100 r4109  
    29572957    free(label); 
    29582958  } 
     2959} 
     2960 
     2961void print_w83793(const sensors_chip_name *name) 
     2962{ 
     2963  char *label; 
     2964  int i, valid; 
     2965  double cur, min, max, over, hyst, alarm; 
     2966 
     2967  for (i = 0; i < 10; i++) { 
     2968    if (!sensors_get_label_and_valid(*name,SENSORS_W83793_IN(i), 
     2969                                     &label, &valid) && 
     2970        !sensors_get_feature(*name, SENSORS_W83793_IN(i), &cur) && 
     2971        !sensors_get_feature(*name, SENSORS_W83793_IN_MIN(i), &min) && 
     2972        !sensors_get_feature(*name, SENSORS_W83793_IN_MAX(i), &max) && 
     2973        !sensors_get_feature(*name, SENSORS_W83793_IN_ALARM(i), &alarm)) { 
     2974      if (valid) { 
     2975        print_label(label, 10); 
     2976        printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     2977               cur, min, max, alarm ? "ALARM" : ""); 
     2978      } 
     2979    } else 
     2980      printf("ERROR: Can't get IN%d data!\n", i); 
     2981    free(label); 
     2982  } 
     2983 
     2984  for (i = 1; i <= 12; i++) { 
     2985    if (!sensors_get_label_and_valid(*name, SENSORS_W83793_FAN(i), 
     2986                                     &label, &valid) && 
     2987        !sensors_get_feature(*name, SENSORS_W83793_FAN(i), &cur) && 
     2988        !sensors_get_feature(*name, SENSORS_W83793_FAN_MIN(i), &min) && 
     2989        !sensors_get_feature(*name, SENSORS_W83793_FAN_ALARM(i), &alarm)) { 
     2990      if (valid) { 
     2991        print_label(label, 10); 
     2992        printf("%4.0f RPM  (min = %4.0f RPM)                   %s\n", 
     2993               cur, min, alarm ? "ALARM" : ""); 
     2994      } 
     2995    } else if (i <= 5) 
     2996      printf("ERROR: Can't get FAN%d data!\n", i); 
     2997    free(label); 
     2998  } 
     2999 
     3000  for (i = 1; i <= 6; i++) { 
     3001    if (!sensors_get_label_and_valid(*name, SENSORS_W83793_TEMP(i), 
     3002                                     &label, &valid) && 
     3003        !sensors_get_feature(*name, SENSORS_W83793_TEMP(i), &cur) && 
     3004        !sensors_get_feature(*name, SENSORS_W83793_TEMP_CRIT(i), &over) && 
     3005        !sensors_get_feature(*name, SENSORS_W83793_TEMP_CRIT_HYST(i), &hyst) && 
     3006        !sensors_get_feature(*name, SENSORS_W83793_TEMP_ALARM(i), &alarm)) { 
     3007      if (valid) { 
     3008        print_label(label, 10); 
     3009        print_temp_info(cur, over, hyst, HYST, i <= 4 ? 1 : 0, i <= 4 ? 1 : 0); 
     3010        printf(" %s\n", alarm ? "ALARM" : ""); 
     3011      } 
     3012    } else 
     3013      printf("ERROR: Can't get TEMP%d data!\n", i); 
     3014    free(label); 
     3015  } 
     3016 
     3017  print_vid_info(name, SENSORS_W83793_VID0, SENSORS_W83793_VRM); 
     3018  print_vid_info(name, SENSORS_W83793_VID1, SENSORS_W83793_VRM); 
    29593019} 
    29603020 
  • lm-sensors/trunk/prog/sensors/chips.h

    r4100 r4109  
    4343extern void print_w83781d(const sensors_chip_name *name); 
    4444extern void print_w83792d(const sensors_chip_name *name); 
     45extern void print_w83793(const sensors_chip_name *name); 
    4546extern void print_w83l785ts(const sensors_chip_name *name); 
    4647extern void print_w83627ehf(const sensors_chip_name *name); 
  • lm-sensors/trunk/prog/sensors/main.c

    r4100 r4109  
    374374        { "w83627ehf", print_w83627ehf }, 
    375375        { "w83791d", print_w83781d }, 
    376         { "w83792d", print_w83792d }, 
     376        { "w83792d", print_w83792d }, 
     377        { "w83793", print_w83793 }, 
    377378        { "w83l785ts", print_w83l785ts }, 
    378379        { "as99127f", print_w83781d },