mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-11-07 16:01:34 +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:
1 parent
a3c725779b
commit
3e65c375be
9 files changed
+1505
-3
No files matched your search
@@ -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.
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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 */
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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 */
|
||||
@@ -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");
|
||||
|
||||
Reference in new issue
Block a user