2
0
mirror of https://github.com/lm-sensors/lm-sensors synced 2025-08-30 22:05:11 +00:00

initial support for Via VT1211 super i/o with sensors

git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@1409 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Mark D. Studebaker
2002-06-30 20:28:08 +00:00
parent a3c725779b
commit 3e65c375be
9 changed files with 1505 additions and 3 deletions

View File

@@ -20,6 +20,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "chips.h"
#include "lib/sensors.h"
@@ -3049,6 +3050,224 @@ void print_pcf8591(const sensors_chip_name *name)
}
void print_vt1211(const sensors_chip_name *name)
{
char *label = NULL;
double cur,min,max,fdiv;
int alarms,valid;
if (!sensors_get_feature(*name,SENSORS_VT1211_ALARMS,&cur))
alarms = cur + 0.5;
else {
printf("ERROR: Can't get alarm data!\n");
alarms = 0;
}
if (!sensors_get_label_and_valid(*name,SENSORS_VT1211_IN0,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN0,&cur) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN0_MIN,&min) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN0_MAX,&max)) {
if (valid) {
print_label(label,10);
printf("%+6.2f V (min = %+6.2f V, max = %+6.2f V) %s\n",
cur,min,max,alarms&VT1211_ALARM_IN0?"ALARM":"");
}
} else
printf("ERROR: Can't get IN0 data!\n");
free_the_label(&label);
if (!sensors_get_label_and_valid(*name,SENSORS_VT1211_IN1,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN1,&cur) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN1_MIN,&min) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN1_MAX,&max)) {
if (valid) {
print_label(label,10);
printf("%+6.2f V (min = %+6.2f V, max = %+6.2f V) %s\n",
cur,min,max,alarms&VT1211_ALARM_IN1?"ALARM":"");
}
} else
printf("ERROR: Can't get IN1 data!\n");
free_the_label(&label);
if (!sensors_get_label_and_valid(*name,SENSORS_VT1211_IN2,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN2,&cur) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN2_MIN,&min) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN2_MAX,&max)) {
if (valid) {
print_label(label,10);
printf("%+6.2f V (min = %+6.2f V, max = %+6.2f V) %s\n",
cur,min,max,alarms&VT1211_ALARM_IN2?"ALARM":"");
}
} else
printf("ERROR: Can't get IN2 data!\n");
free_the_label(&label);
if (!sensors_get_label_and_valid(*name,SENSORS_VT1211_IN3,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN3,&cur) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN3_MIN,&min) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN3_MAX,&max)) {
if (valid) {
print_label(label,10);
printf("%+6.2f V (min = %+6.2f V, max = %+6.2f V) %s\n",
cur,min,max,alarms&VT1211_ALARM_IN3?"ALARM":"");
}
} else
printf("ERROR: Can't get IN3 data!\n");
free_the_label(&label);
if (!sensors_get_label_and_valid(*name,SENSORS_VT1211_IN4,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN4,&cur) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN4_MIN,&min) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN4_MAX,&max)) {
if (valid) {
print_label(label,10);
printf("%+6.2f V (min = %+6.2f V, max = %+6.2f V) %s\n",
cur,min,max,alarms&VT1211_ALARM_IN4?"ALARM":"");
}
} else
printf("ERROR: Can't get IN4 data!\n");
free_the_label(&label);
if (!sensors_get_label_and_valid(*name,SENSORS_VT1211_IN5,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN5,&cur) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN5_MIN,&min) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN5_MAX,&max)) {
if (valid) {
print_label(label,10);
printf("%+6.2f V (min = %+6.2f V, max = %+6.2f V) %s\n",
cur,min,max,alarms&VT1211_ALARM_IN5?"ALARM":"");
}
} else
printf("ERROR: Can't get IN5 data!\n");
free_the_label(&label);
if (!sensors_get_label_and_valid(*name,SENSORS_VT1211_IN6,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN6,&cur) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN6_MIN,&min) &&
!sensors_get_feature(*name,SENSORS_VT1211_IN6_MAX,&max)) {
if (valid) {
print_label(label,10);
printf("%+6.2f V (min = %+6.2f V, max = %+6.2f V) %s\n",
cur,min,max,alarms&VT1211_ALARM_IN6?"ALARM":"");
}
} else
printf("ERROR: Can't get IN6 data!\n");
free_the_label(&label);
if (!sensors_get_label_and_valid(*name,SENSORS_VT1211_FAN1,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_VT1211_FAN1,&cur) &&
!sensors_get_feature(*name,SENSORS_VT1211_FAN1_DIV,&fdiv) &&
!sensors_get_feature(*name,SENSORS_VT1211_FAN1_MIN,&min)) {
if (valid) {
print_label(label,10);
printf("%4.0f RPM (min = %4.0f RPM, div = %1.0f) %s\n",
cur,min,fdiv, alarms&VT1211_ALARM_FAN1?"ALARM":"");
}
} else
printf("ERROR: Can't get FAN1 data!\n");
free_the_label(&label);
if (!sensors_get_label_and_valid(*name,SENSORS_VT1211_FAN2,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_VT1211_FAN2,&cur) &&
!sensors_get_feature(*name,SENSORS_VT1211_FAN2_DIV,&fdiv) &&
!sensors_get_feature(*name,SENSORS_VT1211_FAN2_MIN,&min)) {
if (valid) {
print_label(label,10);
printf("%4.0f RPM (min = %4.0f RPM, div = %1.0f) %s\n",
cur,min,fdiv, alarms&VT1211_ALARM_FAN2?"ALARM":"");
}
} else
printf("ERROR: Can't get FAN2 data!\n");
free_the_label(&label);
if (!sensors_get_label_and_valid(*name,SENSORS_VT1211_TEMP,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP,&cur) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP_HYST,&min) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP_OVER,&max)) {
if (valid) {
print_label(label,10);
print_temp_info( cur, max, min, HYST, 1, 0);
printf(" %s\n", alarms & VT1211_ALARM_TEMP ? "ALARM" : "" );
}
} else
printf("ERROR: Can't get TEMP data!\n");
free_the_label(&label);
if (!sensors_get_label_and_valid(*name,SENSORS_VT1211_TEMP2,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP2,&cur) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP2_HYST,&min) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP2_OVER,&max)) {
if (valid) {
print_label(label,10);
print_temp_info( cur, max, min, HYST, 1, 0);
printf(" %s\n", alarms & VT1211_ALARM_TEMP2 ? "ALARM" : "" );
}
} else
printf("ERROR: Can't get TEMP2 data!\n");
free_the_label(&label);
if (!sensors_get_label_and_valid(*name,SENSORS_VT1211_TEMP3,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP3,&cur) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP3_HYST,&min) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP3_OVER,&max)) {
if (valid) {
print_label(label,10);
print_temp_info( cur, max, min, HYST, 1, 0);
printf(" %s\n", alarms & VT1211_ALARM_TEMP3 ? "ALARM" : "" );
}
} else
printf("ERROR: Can't get TEMP3 data!\n");
free_the_label(&label);
if (!sensors_get_label_and_valid(*name,SENSORS_VT1211_TEMP4,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP4,&cur) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP4_HYST,&min) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP4_OVER,&max)) {
if (valid) {
print_label(label,10);
print_temp_info( cur, max, min, HYST, 1, 0);
printf(" %s\n", alarms & VT1211_ALARM_TEMP4 ? "ALARM" : "" );
}
} else
printf("ERROR: Can't get TEMP4 data!\n");
free_the_label(&label);
if (!sensors_get_label_and_valid(*name,SENSORS_VT1211_TEMP5,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP5,&cur) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP5_HYST,&min) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP5_OVER,&max)) {
if (valid) {
print_label(label,10);
print_temp_info( cur, max, min, HYST, 1, 0);
printf(" %s\n", alarms & VT1211_ALARM_TEMP5 ? "ALARM" : "" );
}
} else
printf("ERROR: Can't get TEMP5 data!\n");
free_the_label(&label);
if (!sensors_get_label_and_valid(*name,SENSORS_VT1211_TEMP6,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP6,&cur) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP6_HYST,&min) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP6_OVER,&max)) {
if (valid) {
print_label(label,10);
print_temp_info( cur, max, min, HYST, 1, 0);
printf(" %s\n", alarms & VT1211_ALARM_TEMP6 ? "ALARM" : "" );
}
} else
printf("ERROR: Can't get TEMP6 data!\n");
free_the_label(&label);
if (!sensors_get_label_and_valid(*name,SENSORS_VT1211_TEMP7,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP7,&cur) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP7_HYST,&min) &&
!sensors_get_feature(*name,SENSORS_VT1211_TEMP7_OVER,&max)) {
if (valid) {
print_label(label,10);
print_temp_info( cur, max, min, HYST, 1, 0);
printf(" %s\n", alarms & VT1211_ALARM_TEMP7 ? "ALARM" : "" );
}
} else
printf("ERROR: Can't get TEMP7 data!\n");
free_the_label(&label);
if (!sensors_get_label_and_valid(*name,SENSORS_VT1211_VID,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_VT1211_VID,&cur)) {
if (valid) {
print_label(label,10);
printf("%+6.2f V\n",cur);
}
}
free_the_label(&label);
}
void print_unknown_chip(const sensors_chip_name *name)
{