2
0
mirror of https://github.com/lm-sensors/lm-sensors synced 2025-09-02 15:25:38 +00:00

Add back the temp1 in vt1211, patch from Juerg Haefliger <juergh@gmail.com>

This patch enables the reading of temp1 (Reading3) from the VT1211.
Reading3 returns the V1211's internal temperature.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@3246 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Rudolf Marek
2006-01-27 21:02:09 +00:00
parent 528d3c7f4d
commit c83a8a43e8
5 changed files with 36 additions and 16 deletions

View File

@@ -1923,12 +1923,13 @@ chip "lm63-*"
chip "vt1211-*"
#
# temp1 and in6 are not implemented in vt1211
# in6 is not implemented in vt1211
#
# 1 for temp, 0 for volt.
# Sensor Voltage Mode Temp Mode config bit
# -------- ------------ --------- --------------
# Reading 1 temp3
# Reading 3 temp1
# UCH1/Reading2 in0 temp2 0x04 (4)
# UCH2 in1 temp4 0x08 (8)
# UCH3 in2 temp5 0x10 (16)
@@ -1959,6 +1960,7 @@ chip "vt1211-*"
label in4 "+12V"
label in5 "+3.3V"
label temp1 "Int Temp"
label temp2 "MB1 Temp"
label temp3 "Proc Temp"
label temp4 "MB2 Temp"

View File

@@ -99,8 +99,8 @@ superio_exit(void)
changes from via686a.
Sensor Voltage Mode Temp Mode
-------- ------------ ---------
Reading 1 temp3
Reading 3 temp1 not in vt1211
Reading 1 temp3 Intel thermal diode
Reading 3 temp1 VT1211 internal thermal diode
UCH1/Reading2 in0 temp2
UCH2 in1 temp4
UCH3 in2 temp5
@@ -249,7 +249,7 @@ static struct i2c_driver vt1211_driver = {
#define VT1211_SYSCTL_IN6 1006
#define VT1211_SYSCTL_FAN1 1101
#define VT1211_SYSCTL_FAN2 1102
#define VT1211_SYSCTL_TEMP 1200
#define VT1211_SYSCTL_TEMP1 1200
#define VT1211_SYSCTL_TEMP2 1201
#define VT1211_SYSCTL_TEMP3 1202
#define VT1211_SYSCTL_TEMP4 1203
@@ -268,7 +268,7 @@ static struct i2c_driver vt1211_driver = {
#define VT1211_ALARM_IN2 0x02
#define VT1211_ALARM_IN5 0x04
#define VT1211_ALARM_IN3 0x08
#define VT1211_ALARM_TEMP 0x10
#define VT1211_ALARM_TEMP1 0x10
#define VT1211_ALARM_FAN1 0x40
#define VT1211_ALARM_FAN2 0x80
#define VT1211_ALARM_IN4 0x100
@@ -277,7 +277,7 @@ static struct i2c_driver vt1211_driver = {
#define VT1211_ALARM_CHAS 0x1000
#define VT1211_ALARM_TEMP3 0x8000
/* duplicates */
#define VT1211_ALARM_IN0 VT1211_ALARM_TEMP
#define VT1211_ALARM_IN0 VT1211_ALARM_TEMP2
#define VT1211_ALARM_TEMP4 VT1211_ALARM_IN1
#define VT1211_ALARM_TEMP5 VT1211_ALARM_IN2
#define VT1211_ALARM_TEMP6 VT1211_ALARM_IN3
@@ -302,9 +302,9 @@ static ctl_table vt1211_dir_table_template[] = {
datasheet says these are reserved
{VT1211_SYSCTL_IN6, "in6", NULL, 0, 0644, NULL, &i2c_proc_real,
&i2c_sysctl_real, NULL, &vt1211_in},
{VT1211_SYSCTL_TEMP, "temp1", NULL, 0, 0644, NULL, &i2c_proc_real,
&i2c_sysctl_real, NULL, &vt1211_temp},
*/
{VT1211_SYSCTL_TEMP1, "temp1", NULL, 0, 0644, NULL,
&i2c_proc_real, &i2c_sysctl_real, NULL, &vt1211_temp},
{VT1211_SYSCTL_TEMP2, "temp2", NULL, 0, 0644, NULL,
&i2c_proc_real, &i2c_sysctl_real, NULL, &vt1211_temp},
{VT1211_SYSCTL_TEMP3, "temp3", NULL, 0, 0644, NULL,
@@ -513,7 +513,7 @@ static void vt1211_update_client(struct i2c_client *client)
data->fan_min[i - 1] = vt_rdval(client,
VT1211_REG_FAN_MIN(i));
}
for (i = 2; i <= 7; i++) {
for (i = 1; i <= 7; i++) {
if(ISTEMP(i, data->uch_config)) {
data->temp[i - 1] = vt_rdval(client,
VT1211_REG_TEMP(i)) << 2;
@@ -638,7 +638,7 @@ void vt1211_temp(struct i2c_client *client, int operation, int ctl_name,
int *nrels_mag, long *results)
{
struct vt1211_data *data = client->data;
int nr = ctl_name - VT1211_SYSCTL_TEMP;
int nr = ctl_name - VT1211_SYSCTL_TEMP1;
if (operation == SENSORS_PROC_REAL_INFO)
*nrels_mag = 1;

View File

@@ -4536,7 +4536,14 @@ static sensors_chip_feature vt1211_features[] =
{ SENSORS_VT1211_FAN2_MIN, "fan2_min", SENSORS_VT1211_FAN2,
SENSORS_VT1211_FAN2,
RW, VT1211_SYSCTL_FAN2, VALUE(1), 0 },
/* no temp1 */
{ SENSORS_VT1211_TEMP1, "temp1", NOMAP, NOMAP,
R, VT1211_SYSCTL_TEMP1, VALUE(3), 1 },
{ SENSORS_VT1211_TEMP1_HYST, "temp1_hyst", SENSORS_VT1211_TEMP1,
SENSORS_VT1211_TEMP1, RW,
VT1211_SYSCTL_TEMP1, VALUE(2), 1 },
{ SENSORS_VT1211_TEMP1_OVER, "temp1_over", SENSORS_VT1211_TEMP1,
SENSORS_VT1211_TEMP1, RW,
VT1211_SYSCTL_TEMP1, VALUE(1), 1 },
{ SENSORS_VT1211_TEMP2, "temp2", NOMAP, NOMAP,
R, VT1211_SYSCTL_TEMP2, VALUE(3), 1 },
{ SENSORS_VT1211_TEMP2_HYST, "temp2_hyst", SENSORS_VT1211_TEMP2,

View File

@@ -1709,9 +1709,9 @@
#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_TEMP1 51 /* R */
#define SENSORS_VT1211_TEMP1_HYST 52 /* RW */
#define SENSORS_VT1211_TEMP1_OVER 53 /* RW */
#define SENSORS_VT1211_TEMP2 54 /* R */
#define SENSORS_VT1211_TEMP2_HYST 55 /* RW */
#define SENSORS_VT1211_TEMP2_OVER 56 /* RW */

View File

@@ -4311,8 +4311,19 @@ void print_vt1211(const sensors_chip_name *name)
printf("ERROR: Can't get FAN2 data!\n");
}
free(label);
/* no temp 1 */
if (sensors_get_label_and_valid(*name,SENSORS_VT1211_TEMP1,&label,&valid)) {
printf("ERROR: Can't get TEMP1 config!\n");
} else if (valid) {
if(!(err = sensors_get_feature(*name,SENSORS_VT1211_TEMP1,&cur)) &&
!(err = sensors_get_feature(*name,SENSORS_VT1211_TEMP1_HYST,&min)) &&
!(err = sensors_get_feature(*name,SENSORS_VT1211_TEMP1_OVER,&max))) {
print_label(label,10);
print_temp_info( cur, max, min, HYST, 1, 0);
printf(" %s\n", alarms & VT1211_ALARM_TEMP1 ? "ALARM" : "" );
} else
printf("ERROR: Can't get TEMP1 data!\n");
}
free(label);
if (sensors_get_label_and_valid(*name,SENSORS_VT1211_TEMP2,&label,&valid)) {
printf("ERROR: Can't get TEMP2 config!\n");
} else if (valid) {