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 committed 2002-06-30 20:28:08 +00:00
1 parent a3c725779b
commit 3e65c375be
9 files changed
+1505 -3

No files matched your search

+5 -2
View File
@@ -21,6 +21,7 @@ ask CVS about it:
NOTE: Requires i2c-2.6.1 or newer, or kernel 2.4.13 or newer.
File doc/vid: New
File include/sensors_vid.h: New
File sensors.conf.eg: Add vt1211
Library: Add multiple VRM version support for adm1025, w83781d;
fix 'flex scanner jammed' on some systems
Makefiles: For 2.4+ kernels, modules now install in
@@ -36,6 +37,7 @@ ask CVS about it:
Module smbus-arp: new
Module smsc47m1: new
Module via686a: Add support for VT8231 sensors
Module vt1211: new
Module w83781d: Add multiple VID version support; fix temp alarms
Program eeprom: new
Program i2cdump: Add smbus block command specification
@@ -45,9 +47,10 @@ ask CVS about it:
Program sensord: Major update, now requires rrd source;
not compiled by default
Program sensors: Recognize DDR SDRAM; add adm1025 VID; add -A
(don't display algo. and adap.) option
(don't display algo. and adap.) option;
support vt1211
Program sensors-detect: Add VT8231, VT8233A, several S3 devices;
add 82801DB; fix perl warnings
add 82801DB, LM85; fix perl warnings
2.6.3 (20020322)
NOTE: Requires i2c-2.6.1 or newer, or kernel 2.4.13 or newer.
+1
View File
@@ -27,6 +27,7 @@ KERNELCHIPSDIR := $(MODULE_DIR)
KERNELCHIPSTARGETS := $(MODULE_DIR)/pcf8591.o
KERNELCHIPSTARGETS += $(MODULE_DIR)/smbus-arp.o
KERNELCHIPSTARGETS += $(MODULE_DIR)/smsc47m1.o
KERNELCHIPSTARGETS += $(MODULE_DIR)/vt1211.o
# These targets ARE included in 'mkpatch', except for LTC1710, which we
# leave here because it used to be in 'mkpatch' ...
File diff suppressed because it is too large. Load diff
+44
View File
@@ -577,4 +577,48 @@
#define SMSC47M1_ALARM_FAN1 0x0001
#define SMSC47M1_ALARM_FAN2 0x0002
#define VT1211_SYSCTL_IN0 1000
#define VT1211_SYSCTL_IN1 1001
#define VT1211_SYSCTL_IN2 1002
#define VT1211_SYSCTL_IN3 1003
#define VT1211_SYSCTL_IN4 1004
#define VT1211_SYSCTL_IN5 1005
#define VT1211_SYSCTL_IN6 1006
#define VT1211_SYSCTL_FAN1 1101
#define VT1211_SYSCTL_FAN2 1102
#define VT1211_SYSCTL_TEMP 1200
#define VT1211_SYSCTL_TEMP2 1201
#define VT1211_SYSCTL_TEMP3 1202
#define VT1211_SYSCTL_TEMP4 1203
#define VT1211_SYSCTL_TEMP5 1204
#define VT1211_SYSCTL_TEMP6 1205
#define VT1211_SYSCTL_TEMP7 1206
#define VT1211_SYSCTL_VID 1300
#define VT1211_SYSCTL_PWM1 1401
#define VT1211_SYSCTL_PWM2 1402
#define VT1211_SYSCTL_VRM 1600
#define VT1211_SYSCTL_UCH 1700
#define VT1211_SYSCTL_FAN_DIV 2000
#define VT1211_SYSCTL_ALARMS 2001
#define VT1211_ALARM_IN1 0x01
#define VT1211_ALARM_IN2 0x02
#define VT1211_ALARM_IN5 0x04
#define VT1211_ALARM_IN3 0x08
#define VT1211_ALARM_TEMP 0x10
#define VT1211_ALARM_FAN1 0x40
#define VT1211_ALARM_FAN2 0x80
#define VT1211_ALARM_IN4 0x100
#define VT1211_ALARM_IN6 0x200
#define VT1211_ALARM_TEMP2 0x800
#define VT1211_ALARM_CHAS 0x1000
#define VT1211_ALARM_TEMP3 0x8000
/* duplicates */
#define VT1211_ALARM_IN0 VT1211_ALARM_TEMP
#define VT1211_ALARM_TEMP4 VT1211_ALARM_IN1
#define VT1211_ALARM_TEMP5 VT1211_ALARM_IN2
#define VT1211_ALARM_TEMP6 VT1211_ALARM_IN3
#define VT1211_ALARM_TEMP7 VT1211_ALARM_IN4
#endif /* def SENSORS_SENSORS_H */
+140
View File
@@ -2627,6 +2627,145 @@ static sensors_chip_feature fscscy_features[] =
};
static sensors_chip_feature vt1211_features[] =
{
{ SENSORS_VT1211_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_IN0, VALUE(3), 2 },
{ SENSORS_VT1211_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_IN1, VALUE(3), 2 },
{ SENSORS_VT1211_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_IN2, VALUE(3), 2 },
{ SENSORS_VT1211_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_IN3, VALUE(3), 2 },
{ SENSORS_VT1211_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_IN4, VALUE(3), 2 },
{ SENSORS_VT1211_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_IN5, VALUE(3), 2 },
{ SENSORS_VT1211_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_IN6, VALUE(3), 2 },
{ SENSORS_VT1211_IN0_MIN, "in0_min", SENSORS_VT1211_IN0,
SENSORS_VT1211_IN0,
SENSORS_MODE_RW, VT1211_SYSCTL_IN0, VALUE(1), 2 },
{ SENSORS_VT1211_IN1_MIN, "in1_min", SENSORS_VT1211_IN1,
SENSORS_VT1211_IN1,
SENSORS_MODE_RW, VT1211_SYSCTL_IN1, VALUE(1), 2 },
{ SENSORS_VT1211_IN2_MIN, "in2_min", SENSORS_VT1211_IN2,
SENSORS_VT1211_IN2,
SENSORS_MODE_RW, VT1211_SYSCTL_IN2, VALUE(1), 2 },
{ SENSORS_VT1211_IN3_MIN, "in3_min", SENSORS_VT1211_IN3,
SENSORS_VT1211_IN3,
SENSORS_MODE_RW, VT1211_SYSCTL_IN3, VALUE(1), 2 },
{ SENSORS_VT1211_IN4_MIN, "in4_min", SENSORS_VT1211_IN4,
SENSORS_VT1211_IN4,
SENSORS_MODE_RW, VT1211_SYSCTL_IN4, VALUE(1), 2 },
{ SENSORS_VT1211_IN5_MIN, "in5_min", SENSORS_VT1211_IN5,
SENSORS_VT1211_IN5,
SENSORS_MODE_RW, VT1211_SYSCTL_IN5, VALUE(1), 2 },
{ SENSORS_VT1211_IN6_MIN, "in6_min", SENSORS_VT1211_IN6,
SENSORS_VT1211_IN6,
SENSORS_MODE_RW, VT1211_SYSCTL_IN6, VALUE(1), 2 },
{ SENSORS_VT1211_IN0_MAX, "in0_max", SENSORS_VT1211_IN0,
SENSORS_VT1211_IN0,
SENSORS_MODE_RW, VT1211_SYSCTL_IN0, VALUE(2), 2 },
{ SENSORS_VT1211_IN1_MAX, "in1_max", SENSORS_VT1211_IN1,
SENSORS_VT1211_IN1,
SENSORS_MODE_RW, VT1211_SYSCTL_IN1, VALUE(2), 2 },
{ SENSORS_VT1211_IN2_MAX, "in2_max", SENSORS_VT1211_IN2,
SENSORS_VT1211_IN2,
SENSORS_MODE_RW, VT1211_SYSCTL_IN2, VALUE(2), 2 },
{ SENSORS_VT1211_IN3_MAX, "in3_max", SENSORS_VT1211_IN3,
SENSORS_VT1211_IN3,
SENSORS_MODE_RW, VT1211_SYSCTL_IN3, VALUE(2), 2 },
{ SENSORS_VT1211_IN4_MAX, "in4_max", SENSORS_VT1211_IN4,
SENSORS_VT1211_IN4,
SENSORS_MODE_RW, VT1211_SYSCTL_IN4, VALUE(2), 2 },
{ SENSORS_VT1211_IN5_MAX, "in5_max", SENSORS_VT1211_IN5,
SENSORS_VT1211_IN5,
SENSORS_MODE_RW, VT1211_SYSCTL_IN5, VALUE(2), 2 },
{ SENSORS_VT1211_IN6_MAX, "in6_max", SENSORS_VT1211_IN6,
SENSORS_VT1211_IN6,
SENSORS_MODE_RW, VT1211_SYSCTL_IN6, VALUE(2), 2 },
{ SENSORS_VT1211_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_FAN1, VALUE(2), 0 },
{ SENSORS_VT1211_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_FAN2, VALUE(2), 0 },
{ SENSORS_VT1211_FAN1_MIN, "fan1_min", SENSORS_VT1211_FAN1,
SENSORS_VT1211_FAN1,
SENSORS_MODE_RW, VT1211_SYSCTL_FAN1, VALUE(1), 0 },
{ SENSORS_VT1211_FAN2_MIN, "fan2_min", SENSORS_VT1211_FAN2,
SENSORS_VT1211_FAN2,
SENSORS_MODE_RW, VT1211_SYSCTL_FAN2, VALUE(1), 0 },
{ SENSORS_VT1211_TEMP, "temp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_TEMP, VALUE(3), 1 },
{ SENSORS_VT1211_TEMP_HYST, "temp1_hyst", SENSORS_VT1211_TEMP,
SENSORS_VT1211_TEMP, SENSORS_MODE_RW,
VT1211_SYSCTL_TEMP, VALUE(2), 1 },
{ SENSORS_VT1211_TEMP_OVER, "temp1_over", SENSORS_VT1211_TEMP,
SENSORS_VT1211_TEMP, SENSORS_MODE_RW,
VT1211_SYSCTL_TEMP, VALUE(1), 1 },
{ SENSORS_VT1211_TEMP2, "temp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_TEMP2, VALUE(3), 1 },
{ SENSORS_VT1211_TEMP2_HYST, "temp2_hyst", SENSORS_VT1211_TEMP2,
SENSORS_VT1211_TEMP2, SENSORS_MODE_RW,
VT1211_SYSCTL_TEMP2, VALUE(2), 1 },
{ SENSORS_VT1211_TEMP2_OVER, "temp2_over", SENSORS_VT1211_TEMP2,
SENSORS_VT1211_TEMP2, SENSORS_MODE_RW,
VT1211_SYSCTL_TEMP2, VALUE(1), 1 },
{ SENSORS_VT1211_TEMP3, "temp3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_TEMP3, VALUE(3), 1 },
{ SENSORS_VT1211_TEMP3_HYST, "temp3_hyst", SENSORS_VT1211_TEMP3,
SENSORS_VT1211_TEMP3, SENSORS_MODE_RW,
VT1211_SYSCTL_TEMP3, VALUE(2), 1 },
{ SENSORS_VT1211_TEMP3_OVER, "temp3_over", SENSORS_VT1211_TEMP3,
SENSORS_VT1211_TEMP3, SENSORS_MODE_RW,
VT1211_SYSCTL_TEMP3, VALUE(1), 1 },
{ SENSORS_VT1211_TEMP4, "temp4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_TEMP4, VALUE(3), 1 },
{ SENSORS_VT1211_TEMP4_HYST, "temp4_hyst", SENSORS_VT1211_TEMP4,
SENSORS_VT1211_TEMP4, SENSORS_MODE_RW,
VT1211_SYSCTL_TEMP4, VALUE(2), 1 },
{ SENSORS_VT1211_TEMP4_OVER, "temp4_over", SENSORS_VT1211_TEMP4,
SENSORS_VT1211_TEMP4, SENSORS_MODE_RW,
VT1211_SYSCTL_TEMP4, VALUE(1), 1 },
{ SENSORS_VT1211_TEMP5, "temp5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_TEMP5, VALUE(3), 1 },
{ SENSORS_VT1211_TEMP5_HYST, "temp5_hyst", SENSORS_VT1211_TEMP5,
SENSORS_VT1211_TEMP5, SENSORS_MODE_RW,
VT1211_SYSCTL_TEMP5, VALUE(2), 1 },
{ SENSORS_VT1211_TEMP5_OVER, "temp5_over", SENSORS_VT1211_TEMP5,
SENSORS_VT1211_TEMP5, SENSORS_MODE_RW,
VT1211_SYSCTL_TEMP5, VALUE(1), 1 },
{ SENSORS_VT1211_TEMP6, "temp6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_TEMP6, VALUE(3), 1 },
{ SENSORS_VT1211_TEMP6_HYST, "temp6_hyst", SENSORS_VT1211_TEMP6,
SENSORS_VT1211_TEMP6, SENSORS_MODE_RW,
VT1211_SYSCTL_TEMP6, VALUE(2), 1 },
{ SENSORS_VT1211_TEMP6_OVER, "temp6_over", SENSORS_VT1211_TEMP6,
SENSORS_VT1211_TEMP6, SENSORS_MODE_RW,
VT1211_SYSCTL_TEMP6, VALUE(1), 1 },
{ SENSORS_VT1211_TEMP7, "temp7", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_TEMP7, VALUE(3), 1 },
{ SENSORS_VT1211_TEMP7_HYST, "temp7_hyst", SENSORS_VT1211_TEMP7,
SENSORS_VT1211_TEMP7, SENSORS_MODE_RW,
VT1211_SYSCTL_TEMP7, VALUE(2), 1 },
{ SENSORS_VT1211_TEMP7_OVER, "temp7_over", SENSORS_VT1211_TEMP7,
SENSORS_VT1211_TEMP7, SENSORS_MODE_RW,
VT1211_SYSCTL_TEMP7, VALUE(1), 1 },
{ SENSORS_VT1211_FAN1_DIV, "fan1_div", SENSORS_VT1211_FAN1,
SENSORS_NO_MAPPING,
SENSORS_MODE_RW, VT1211_SYSCTL_FAN_DIV, VALUE(1),
0 },
{ SENSORS_VT1211_FAN2_DIV, "fan2_div", SENSORS_VT1211_FAN2,
SENSORS_NO_MAPPING,
SENSORS_MODE_RW, VT1211_SYSCTL_FAN_DIV, VALUE(2),
0 },
{ SENSORS_VT1211_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_ALARMS, VALUE(1), 0 },
{ SENSORS_VT1211_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_R, VT1211_SYSCTL_VID, VALUE(1), 0 },
{ 0 }
};
sensors_chip_features sensors_chip_features_list[] =
{
{ SENSORS_LM78_PREFIX, lm78_features },
@@ -2678,5 +2817,6 @@ sensors_chip_features sensors_chip_features_list[] =
{ SENSORS_FSCPOS_PREFIX, fscpos_features },
{ SENSORS_FSCSCY_PREFIX, fscscy_features },
{ SENSORS_PCF8591_PREFIX, pcf8591_features },
{ SENSORS_VT1211_PREFIX, vt1211_features },
{ 0 }
};
+54 -1
View File
@@ -767,7 +767,6 @@
#define SENSORS_ADM1025_ALARMS 81 /* R */
/* SiS southbridge with integrated lm78 */
#define SENSORS_VIA686A_PREFIX "via686a"
@@ -1133,4 +1132,58 @@
#define SENSORS_PCF8591_AOUT 7 /* RW */
#define SENSORS_VT1211_PREFIX "vt1211"
#define SENSORS_VT1211_IN0 1 /* R */
#define SENSORS_VT1211_IN1 2 /* R */
#define SENSORS_VT1211_IN2 3 /* R */
#define SENSORS_VT1211_IN3 4 /* R */
#define SENSORS_VT1211_IN4 5 /* R */
#define SENSORS_VT1211_IN5 6 /* R */
#define SENSORS_VT1211_IN6 7 /* R */
#define SENSORS_VT1211_IN0_MIN 11 /* RW */
#define SENSORS_VT1211_IN1_MIN 12 /* RW */
#define SENSORS_VT1211_IN2_MIN 13 /* RW */
#define SENSORS_VT1211_IN3_MIN 14 /* RW */
#define SENSORS_VT1211_IN4_MIN 15 /* RW */
#define SENSORS_VT1211_IN5_MIN 16 /* RW */
#define SENSORS_VT1211_IN6_MIN 17 /* RW */
#define SENSORS_VT1211_IN0_MAX 21 /* RW */
#define SENSORS_VT1211_IN1_MAX 22 /* RW */
#define SENSORS_VT1211_IN2_MAX 23 /* RW */
#define SENSORS_VT1211_IN3_MAX 24 /* RW */
#define SENSORS_VT1211_IN4_MAX 25 /* RW */
#define SENSORS_VT1211_IN5_MAX 26 /* RW */
#define SENSORS_VT1211_IN6_MAX 27 /* RW */
#define SENSORS_VT1211_FAN1 31 /* R */
#define SENSORS_VT1211_FAN2 32 /* R */
#define SENSORS_VT1211_FAN1_MIN 41 /* RW */
#define SENSORS_VT1211_FAN2_MIN 42 /* RW */
#define SENSORS_VT1211_TEMP 51 /* R */
#define SENSORS_VT1211_TEMP_HYST 52 /* RW */
#define SENSORS_VT1211_TEMP_OVER 53 /* RW */
#define SENSORS_VT1211_TEMP2 54 /* R */
#define SENSORS_VT1211_TEMP2_HYST 55 /* RW */
#define SENSORS_VT1211_TEMP2_OVER 56 /* RW */
#define SENSORS_VT1211_TEMP3 57 /* R */
#define SENSORS_VT1211_TEMP3_HYST 58 /* RW */
#define SENSORS_VT1211_TEMP3_OVER 59 /* RW */
#define SENSORS_VT1211_TEMP4 60 /* R */
#define SENSORS_VT1211_TEMP4_HYST 61 /* RW */
#define SENSORS_VT1211_TEMP4_OVER 62 /* RW */
#define SENSORS_VT1211_TEMP5 63 /* R */
#define SENSORS_VT1211_TEMP5_HYST 64 /* RW */
#define SENSORS_VT1211_TEMP5_OVER 65 /* RW */
#define SENSORS_VT1211_TEMP6 66 /* R */
#define SENSORS_VT1211_TEMP6_HYST 67 /* RW */
#define SENSORS_VT1211_TEMP6_OVER 68 /* RW */
#define SENSORS_VT1211_TEMP7 69 /* R */
#define SENSORS_VT1211_TEMP7_HYST 70 /* RW */
#define SENSORS_VT1211_TEMP7_OVER 71 /* RW */
#define SENSORS_VT1211_FAN1_DIV 75 /* RW */
#define SENSORS_VT1211_FAN2_DIV 76 /* RW */
#define SENSORS_VT1211_ALARMS 81 /* R */
#define SENSORS_VT1211_VID 82 /* R */
#endif /* def LIB_SENSORS_CHIPS_H */
+219
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)
{
+1
View File
@@ -45,5 +45,6 @@ extern void print_it87(const sensors_chip_name *name);
extern void print_fscpos(const sensors_chip_name *name);
extern void print_fscscy(const sensors_chip_name *name);
extern void print_pcf8591(const sensors_chip_name *name);
extern void print_vt1211(const sensors_chip_name *name);
#endif /* def PROG_SENSORS_CHIPS_H */
+2
View File
@@ -347,6 +347,8 @@ void do_a_print(sensors_chip_name name)
print_fscscy(&name);
else if (!strcmp(name.prefix,"pcf8591"))
print_pcf8591(&name);
else if (!strcmp(name.prefix,"vt1211"))
print_vt1211(&name);
else
print_unknown_chip(&name);
printf("\n");