Changeset 2684

Show
Ignore:
Timestamp:
09/08/04 18:21:44 (9 years ago)
Author:
mmh
Message:

Added support for LM93.

Location:
lm-sensors/trunk/prog/sensors
Files:
3 modified

Legend:

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

    r2679 r2684  
    50465046} 
    50475047 
     5048/* happens to be similar to asb100*/ 
     5049#define PRINT_LM93_IN(num, name, alarms) \ 
     5050        print_asb100_in((name), ((alarms) & LM93_ALARM_IN##num), \ 
     5051                (SENSORS_LM93_IN##num), \ 
     5052                (SENSORS_LM93_IN##num##_MIN), \ 
     5053                (SENSORS_LM93_IN##num##_MAX)) 
     5054 
     5055/* print_lm93_fan() 
     5056 *   where fan and fan_min are sensors feature IDs 
     5057 */ 
     5058static void print_lm93_fan(const sensors_chip_name *name, int alarm, 
     5059        int fan, int fan_min) 
     5060{ 
     5061  char *label = NULL; 
     5062  double cur, min; 
     5063  int valid; 
     5064 
     5065  if (!sensors_get_label_and_valid(*name,fan,&label,&valid) && 
     5066      !sensors_get_feature(*name,fan,&cur) && 
     5067      !sensors_get_feature(*name,fan_min,&min)) { 
     5068    if (valid) { 
     5069      print_label(label,10); 
     5070      printf("%4.0f RPM  (min = %4.0f RPM)                       %s\n", 
     5071           cur, min, alarm ? "ALARM" : ""); 
     5072    } 
     5073  } else 
     5074    printf("ERROR: Can't get FAN data! (0x%04x)\n", fan); 
     5075  free_the_label(&label); 
     5076} 
     5077 
     5078#define PRINT_LM93_FAN(num, name, alarms) \ 
     5079        print_lm93_fan((name), ((alarms) & LM93_ALARM_FAN##num), \ 
     5080                (SENSORS_LM93_FAN##num), \ 
     5081                (SENSORS_LM93_FAN##num##_MIN)) 
     5082 
     5083/* print_lm93_temp() 
     5084 * where temp, temp_min, and temp_max are sensors feature IDs 
     5085 */ 
     5086static void print_lm93_temp(const sensors_chip_name *name, int alarm, 
     5087        int temp, int temp_min, int temp_max) 
     5088{ 
     5089  char *label = NULL; 
     5090  double cur, min, max; 
     5091  int valid; 
     5092 
     5093  if (!sensors_get_label_and_valid(*name,temp,&label,&valid) && 
     5094      !sensors_get_feature(*name,temp,&cur) && 
     5095      !sensors_get_feature(*name,temp_min,&min) && 
     5096      !sensors_get_feature(*name,temp_max,&max)) { 
     5097    if (valid) { 
     5098      print_label(label,10); 
     5099      print_temp_info(cur, max, min, MINMAX, 0, 0); 
     5100      printf("     %s\n", alarm ? "ALARM" : ""); 
     5101    } 
     5102  } else 
     5103    printf("ERROR: Can't get TEMP data! (0x%04x)\n", temp); 
     5104 
     5105  free_the_label(&label); 
     5106} 
     5107 
     5108#define PRINT_LM93_TEMP(num, name, alarms) \ 
     5109        print_lm93_temp((name), ((alarms) & LM93_ALARM_TEMP##num), \ 
     5110                (SENSORS_LM93_TEMP##num), \ 
     5111                (SENSORS_LM93_TEMP##num##_MIN), \ 
     5112                (SENSORS_LM93_TEMP##num##_MAX)) 
     5113 
     5114/* print_lm93_vid() 
     5115 * where vid is a sensors feature ID 
     5116 */ 
     5117static void print_lm93_vid(const sensors_chip_name *name, int vid) 
     5118{ 
     5119  char *label = NULL; 
     5120  double cur; 
     5121  int valid; 
     5122 
     5123  if (!sensors_get_label_and_valid(*name,vid,&label,&valid) && 
     5124      !sensors_get_feature(*name,vid,&cur)) { 
     5125    if (valid) { 
     5126      print_label(label,10); 
     5127      printf("%+5.3f V\n",cur); 
     5128    } 
     5129  } else { 
     5130    printf("ERROR: Can't get VID data! (0x%04x)\n", vid); 
     5131  } 
     5132  free_the_label(&label); 
     5133} 
     5134 
     5135void print_lm93(const sensors_chip_name *name) 
     5136{ 
     5137  double cur; 
     5138  int alarms = 0; 
     5139 
     5140  if (!sensors_get_feature(*name,SENSORS_LM93_ALARMS,&cur))  
     5141    alarms = cur + 0.5; 
     5142  else 
     5143    printf("ERROR: Can't get alarm data!\n"); 
     5144 
     5145  PRINT_LM93_IN(1, name, alarms); 
     5146  PRINT_LM93_IN(2, name, alarms); 
     5147  PRINT_LM93_IN(3, name, alarms); 
     5148  PRINT_LM93_IN(4, name, alarms); 
     5149  PRINT_LM93_IN(5, name, alarms); 
     5150  PRINT_LM93_IN(6, name, alarms); 
     5151  PRINT_LM93_IN(7, name, alarms); 
     5152  PRINT_LM93_IN(8, name, alarms); 
     5153  PRINT_LM93_IN(9, name, alarms); 
     5154  PRINT_LM93_IN(10, name, alarms); 
     5155  PRINT_LM93_IN(11, name, alarms); 
     5156  PRINT_LM93_IN(12, name, alarms); 
     5157  PRINT_LM93_IN(13, name, alarms); 
     5158  PRINT_LM93_IN(14, name, alarms); 
     5159  PRINT_LM93_IN(15, name, alarms); 
     5160  PRINT_LM93_IN(16, name, alarms); 
     5161 
     5162  PRINT_LM93_FAN(1, name, alarms); 
     5163  PRINT_LM93_FAN(2, name, alarms); 
     5164  PRINT_LM93_FAN(3, name, alarms); 
     5165  PRINT_LM93_FAN(4, name, alarms); 
     5166 
     5167  PRINT_LM93_TEMP(1, name, alarms); 
     5168  PRINT_LM93_TEMP(2, name, alarms); 
     5169  PRINT_LM93_TEMP(3, name, alarms); 
     5170 
     5171  print_lm93_vid(name, SENSORS_LM93_VID1); 
     5172  print_lm93_vid(name, SENSORS_LM93_VID2); 
     5173} 
     5174 
    50485175void print_unknown_chip(const sensors_chip_name *name) 
    50495176{ 
  • lm-sensors/trunk/prog/sensors/chips.h

    r2573 r2684  
    6161extern void print_lm83(const sensors_chip_name *name); 
    6262extern void print_lm90(const sensors_chip_name *name); 
     63extern void print_lm93(const sensors_chip_name *name); 
    6364extern void print_max1619(const sensors_chip_name *name); 
    6465extern void print_xeontemp(const sensors_chip_name *name); 
  • lm-sensors/trunk/prog/sensors/main.c

    r2633 r2684  
    432432        { "adm1030", print_adm1031 }, 
    433433        { "adm1031", print_adm1031 }, 
     434        { "lm93", print_lm93 }, 
    434435        { NULL, NULL } 
    435436};