Changeset 4563

Show
Ignore:
Timestamp:
07/06/07 14:16:34 (6 years ago)
Author:
jwrdegoede
Message:

Add fintek f71882fg support to libsensors & sensors

Location:
lm-sensors/trunk
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/trunk/lib/chips.c

    r4551 r4563  
    61426142  }; 
    61436143 
     6144#define SENSORS_F71882FG_IN_FEATURES(nr) \ 
     6145        { { SENSORS_F71882FG_IN(nr), "in" #nr, \ 
     6146                NOMAP, NOMAP, R }, \ 
     6147                NOSYSCTL, VALUE(3), 3 } 
     6148 
     6149#define SENSORS_F71882FG_TEMP_FEATURES(nr) \ 
     6150        { { SENSORS_F71882FG_TEMP(nr), "temp" #nr, \ 
     6151                NOMAP, NOMAP, R }, \ 
     6152                NOSYSCTL, VALUE(3), 3 }, \ 
     6153        { { SENSORS_F71882FG_TEMP_MAX(nr), "temp" #nr "_max", \ 
     6154                SENSORS_F71882FG_TEMP(nr), SENSORS_F71882FG_TEMP(nr), RW }, \ 
     6155                NOSYSCTL, VALUE(1), 3 }, \ 
     6156        { { SENSORS_F71882FG_TEMP_MAX_HYST(nr), "temp" #nr "_max_hyst", \ 
     6157                SENSORS_F71882FG_TEMP(nr), SENSORS_F71882FG_TEMP(nr), RW }, \ 
     6158                NOSYSCTL, VALUE(2), 3 }, \ 
     6159        { { SENSORS_F71882FG_TEMP_CRIT(nr), "temp" #nr "_crit", \ 
     6160                SENSORS_F71882FG_TEMP(nr), SENSORS_F71882FG_TEMP(nr), RW }, \ 
     6161                NOSYSCTL, VALUE(4), 3 }, \ 
     6162        { { SENSORS_F71882FG_TEMP_CRIT_HYST(nr), "temp" #nr "_crit_hyst", \ 
     6163                SENSORS_F71882FG_TEMP(nr), SENSORS_F71882FG_TEMP(nr), R }, \ 
     6164                NOSYSCTL, VALUE(5), 3 }, \ 
     6165        { { SENSORS_F71882FG_TEMP_ALARM(nr), "temp" #nr "_alarm", \ 
     6166                SENSORS_F71882FG_TEMP(nr), NOMAP, R }, \ 
     6167                NOSYSCTL, VALUE(1), 0 }, \ 
     6168        { { SENSORS_F71882FG_TEMP_FAULT(nr), "temp" #nr "_fault", \ 
     6169                SENSORS_F71882FG_TEMP(nr), NOMAP, R }, \ 
     6170                NOSYSCTL, VALUE(2), 0 }, \ 
     6171        { { SENSORS_F71882FG_TEMP_TYPE(nr), "temp" #nr "_type", \ 
     6172                SENSORS_F71882FG_TEMP(nr), NOMAP, R }, \ 
     6173                NOSYSCTL, VALUE(3), 0 } 
     6174 
     6175#define SENSORS_F71882FG_FAN_FEATURES(nr) \ 
     6176        { { SENSORS_F71882FG_FAN(nr), "fan" #nr, \ 
     6177                NOMAP, NOMAP, R }, \ 
     6178                NOSYSCTL, VALUE(2), 0 }, \ 
     6179        { { SENSORS_F71882FG_FAN_ALARM(nr), "fan" #nr "_alarm", \ 
     6180                SENSORS_F71882FG_FAN(nr), NOMAP, R }, \ 
     6181                NOSYSCTL, VALUE(1), 0 } 
     6182 
     6183static sensors_chip_feature f71882fg_features[] = 
     6184{ 
     6185        SENSORS_F71882FG_IN_FEATURES(0), 
     6186        SENSORS_F71882FG_IN_FEATURES(1), 
     6187        { { SENSORS_F71882FG_IN_MAX(1), "in1_max", 
     6188                SENSORS_F71882FG_IN(1), SENSORS_F71882FG_IN(1), RW }, 
     6189                NOSYSCTL, VALUE(1), 3 }, 
     6190        { { SENSORS_F71882FG_IN_ALARM(1), "in1_alarm", 
     6191                SENSORS_F71882FG_IN(1), NOMAP, R }, 
     6192                NOSYSCTL, VALUE(1), 0 }, 
     6193        SENSORS_F71882FG_IN_FEATURES(2), 
     6194        SENSORS_F71882FG_IN_FEATURES(3), 
     6195        SENSORS_F71882FG_IN_FEATURES(4), 
     6196        SENSORS_F71882FG_IN_FEATURES(5), 
     6197        SENSORS_F71882FG_IN_FEATURES(6), 
     6198        SENSORS_F71882FG_IN_FEATURES(7), 
     6199        SENSORS_F71882FG_IN_FEATURES(8), 
     6200        SENSORS_F71882FG_TEMP_FEATURES(1), 
     6201        SENSORS_F71882FG_TEMP_FEATURES(2), 
     6202        SENSORS_F71882FG_TEMP_FEATURES(3), 
     6203        SENSORS_F71882FG_FAN_FEATURES(1), 
     6204        SENSORS_F71882FG_FAN_FEATURES(2), 
     6205        SENSORS_F71882FG_FAN_FEATURES(3), 
     6206        SENSORS_F71882FG_FAN_FEATURES(4), 
     6207        { { 0 }, 0 } 
     6208}; 
     6209 
    61446210sensors_chip_features sensors_chip_features_list[] = 
    61456211{ 
     
    62586324 { SENSORS_DME1737_PREFIX, dme1737_features }, 
    62596325 { SENSORS_APPLESMC_PREFIX, applesmc_features }, 
     6326 { SENSORS_F71882FG_PREFIX, f71882fg_features }, 
    62606327 { 0 } 
    62616328}; 
  • lm-sensors/trunk/lib/chips.h

    r4551 r4563  
    23142314#define SENSORS_APPLESMC_FAN_SAFE(n)            (0x81 + (n)) /* R */ 
    23152315 
     2316/* Fintek F71882FG and F71883FG chips */ 
     2317#define SENSORS_F71882FG_PREFIX         "f71882fg" 
     2318 
     2319/* in n from 0 to 8 */ 
     2320#define SENSORS_F71882FG_IN(n)                  (1 + (n)) 
     2321#define SENSORS_F71882FG_IN_MAX(n)              (16 + (n)) 
     2322#define SENSORS_F71882FG_IN_ALARM(n)            (31 + (n)) 
     2323/* fan n from 1 to 4 */ 
     2324#define SENSORS_F71882FG_FAN(n)                 (50 + (n)) 
     2325#define SENSORS_F71882FG_FAN_ALARM(n)           (60 + (n)) 
     2326/* temp n from 1 to 3 */ 
     2327#define SENSORS_F71882FG_TEMP(n)                (80 + (n)) 
     2328#define SENSORS_F71882FG_TEMP_MAX(n)            (90 + (n)) 
     2329#define SENSORS_F71882FG_TEMP_MAX_HYST(n)       (100 + (n)) 
     2330#define SENSORS_F71882FG_TEMP_CRIT(n)           (110 + (n)) 
     2331#define SENSORS_F71882FG_TEMP_CRIT_HYST(n)      (120 + (n)) 
     2332#define SENSORS_F71882FG_TEMP_ALARM(n)          (130 + (n)) 
     2333#define SENSORS_F71882FG_TEMP_FAULT(n)          (140 + (n)) 
     2334#define SENSORS_F71882FG_TEMP_TYPE(n)           (150 + (n)) 
     2335 
    23162336#endif /* def LIB_SENSORS_CHIPS_H */ 
  • lm-sensors/trunk/prog/sensors/chips.c

    r4551 r4563  
    61316131} 
    61326132 
     6133static void print_f71882fg_in(const sensors_chip_name *name, int i) 
     6134{ 
     6135  char *label; 
     6136  double cur, max, alarm; 
     6137  int valid; 
     6138 
     6139  if (!sensors_get_label_and_valid(*name, SENSORS_F71882FG_IN(i), &label, 
     6140                                   &valid) && 
     6141      !sensors_get_feature(*name, SENSORS_F71882FG_IN(i), &cur) && (i != 1 || ( 
     6142      !sensors_get_feature(*name, SENSORS_F71882FG_IN_MAX(i), &max) && 
     6143      !sensors_get_feature(*name, SENSORS_F71882FG_IN_ALARM(i), &alarm)))) { 
     6144    if (valid) { 
     6145      print_label(label, 10); 
     6146      printf("%+6.2f V", cur); 
     6147      if (i == 1) 
     6148        printf("  (max = %+6.2f V)  %s", max, alarm ? "ALARM" : ""); 
     6149      printf("\n");         
     6150    } 
     6151  } else { 
     6152    printf("ERROR: Can't get in%d data!\n", i); 
     6153  } 
     6154  free(label); 
     6155} 
     6156 
     6157static void print_f71882fg_fan(const sensors_chip_name *name, int i) 
     6158{ 
     6159  char *label; 
     6160  double cur, alarm; 
     6161  int valid; 
     6162 
     6163  if (!sensors_get_label_and_valid(*name, SENSORS_F71882FG_FAN(i), &label, 
     6164                                   &valid) && 
     6165      !sensors_get_feature(*name, SENSORS_F71882FG_FAN(i), &cur) && 
     6166      !sensors_get_feature(*name, SENSORS_F71882FG_FAN_ALARM(i), &alarm)) { 
     6167    if (valid) { 
     6168      print_label(label, 10); 
     6169      printf("%4.0f RPM  %s\n", cur, alarm ? "ALARM" : ""); 
     6170    } 
     6171  } else { 
     6172    printf("ERROR: Can't get fan%d data!\n", i); 
     6173  } 
     6174  free(label); 
     6175} 
     6176 
     6177static void print_f71882fg_temp(const sensors_chip_name *name, int i) 
     6178{ 
     6179  char *label; 
     6180  double cur, max, max_hyst, crit, crit_hyst, alarm, fault, type; 
     6181  int valid; 
     6182 
     6183  if (!sensors_get_label_and_valid(*name, SENSORS_F71882FG_TEMP(i), &label, 
     6184                                   &valid) && 
     6185      !sensors_get_feature(*name, SENSORS_F71882FG_TEMP(i), &cur) && 
     6186      !sensors_get_feature(*name, SENSORS_F71882FG_TEMP_MAX(i), &max) && 
     6187      !sensors_get_feature(*name, SENSORS_F71882FG_TEMP_MAX_HYST(i), &max_hyst) && 
     6188      !sensors_get_feature(*name, SENSORS_F71882FG_TEMP_CRIT(i), &crit) && 
     6189      !sensors_get_feature(*name, SENSORS_F71882FG_TEMP_CRIT_HYST(i), &crit_hyst) && 
     6190      !sensors_get_feature(*name, SENSORS_F71882FG_TEMP_ALARM(i), &alarm) && 
     6191      !sensors_get_feature(*name, SENSORS_F71882FG_TEMP_FAULT(i), &fault) && 
     6192      !sensors_get_feature(*name, SENSORS_F71882FG_TEMP_TYPE(i), &type)) { 
     6193    if (valid) { 
     6194      print_label(label, 10); 
     6195      print_temp_info(cur, max, max_hyst, HYST, 0, 0); 
     6196      printf("%s%s\n", fault ? "FAULT  " : "", alarm ? "ALARM" : ""); 
     6197 
     6198      if (fahrenheit) { 
     6199        crit = deg_ctof(crit); 
     6200        crit_hyst = deg_ctof(crit_hyst); 
     6201      } 
     6202      printf("                    (crit = %+5.0f%s, hyst = %+5.0f%s)  ", 
     6203             crit, degstr, crit_hyst, degstr); 
     6204      printf("sensor = %s\n", (int)type == 0 ? "disabled" : 
     6205                              (int)type == 1 ? "diode" : 
     6206                              (int)type == 2 ? "transistor" : 
     6207                              (int)type == 3 ? "thermal diode" : 
     6208                              (int)type == 4 ? "thermistor" : 
     6209                              (int)type == 5 ? "AMD AMDSI" : 
     6210                              (int)type == 6 ? "Intel PECI" : 
     6211                              "unknown"); 
     6212    } 
     6213  } else { 
     6214    printf("ERROR: Can't get temp%d data!\n", i); 
     6215  } 
     6216  free(label); 
     6217} 
     6218 
     6219void print_f71882fg(const sensors_chip_name *name) 
     6220{ 
     6221  int i; 
     6222 
     6223  for (i = 0; i <= 8; i++) 
     6224    print_f71882fg_in(name, i); 
     6225 
     6226  for (i = 1; i <= 4; i++) 
     6227    print_f71882fg_fan(name, i); 
     6228 
     6229  for (i = 1; i <= 3; i++) 
     6230    print_f71882fg_temp(name, i); 
     6231} 
     6232 
    61336233void print_unknown_chip(const sensors_chip_name *name) 
    61346234{ 
  • lm-sensors/trunk/prog/sensors/chips.h

    r4551 r4563  
    8080extern void print_dme1737(const sensors_chip_name *name); 
    8181extern void print_applesmc(const sensors_chip_name *name); 
     82extern void print_f71882fg(const sensors_chip_name *name); 
    8283 
    8384#endif /* def PROG_SENSORS_CHIPS_H */ 
  • lm-sensors/trunk/prog/sensors/main.c

    r4551 r4563  
    426426        { "dme1737", print_dme1737 }, 
    427427        { "applesmc", print_applesmc }, 
     428        { "f71882fg", print_f71882fg }, 
    428429        { NULL, NULL } 
    429430};