Show
Ignore:
Timestamp:
03/04/00 17:14:08 (13 years ago)
Author:
mds
Message:

(mds) Add via686a integrated sensors support. Untested.

Files:
1 modified

Legend:

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

    r716 r742  
    419419    print_label(label,10); 
    420420    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 
     427void 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 
    424563} 
    425564