2
0
mirror of https://github.com/lm-sensors/lm-sensors synced 2025-09-06 01:05:32 +00:00

Add support for SMSC LPC57B397-NC sensor chip.

git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@2769 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Mark M. Hoffman
2004-11-23 16:20:25 +00:00
parent 5aef60324d
commit 3b64007d60
6 changed files with 100 additions and 0 deletions

View File

@@ -5245,6 +5245,26 @@ static sensors_chip_feature max6650_features[] =
{ 0 } { 0 }
}; };
#define SENSORS_SMSC57B397_TEMP(nr) \
{ SENSORS_SMSC57B397_TEMP##nr, "temp" #nr, NOMAP, NOMAP, R, 0, \
VALUE(1), 1 }
#define SENSORS_SMSC57B397_FAN(nr) \
{ SENSORS_SMSC57B397_FAN##nr, "fan" #nr, NOMAP, NOMAP, R, 0, \
VALUE(1), 1 }
static sensors_chip_feature smsc57b397_features[] =
{
SENSORS_SMSC57B397_TEMP(1),
SENSORS_SMSC57B397_TEMP(2),
SENSORS_SMSC57B397_TEMP(3),
SENSORS_SMSC57B397_TEMP(4),
SENSORS_SMSC57B397_FAN(1),
SENSORS_SMSC57B397_FAN(2),
SENSORS_SMSC57B397_FAN(3),
SENSORS_SMSC57B397_FAN(4),
};
sensors_chip_features sensors_chip_features_list[] = sensors_chip_features sensors_chip_features_list[] =
{ {
{ SENSORS_LM78_PREFIX, lm78_features }, { SENSORS_LM78_PREFIX, lm78_features },
@@ -5337,5 +5357,6 @@ sensors_chip_features sensors_chip_features_list[] =
{ SENSORS_ADM1030_PREFIX, adm1030_features }, { SENSORS_ADM1030_PREFIX, adm1030_features },
{ SENSORS_ADM1031_PREFIX, adm1031_features }, { SENSORS_ADM1031_PREFIX, adm1031_features },
{ SENSORS_LM93_PREFIX, lm93_features }, { SENSORS_LM93_PREFIX, lm93_features },
{ SENSORS_SMSC57B397_PREFIX, smsc57b397_features },
{ 0 } { 0 }
}; };

View File

@@ -2003,4 +2003,16 @@
#define SENSORS_MAX6650_FAN4_TACH 4 /* R */ #define SENSORS_MAX6650_FAN4_TACH 4 /* R */
#define SENSORS_MAX6650_SPEED 5 /* RW */ #define SENSORS_MAX6650_SPEED 5 /* RW */
/* SMSC57B397-NC chip */
#define SENSORS_SMSC57B397_PREFIX "smsc57b397"
#define SENSORS_SMSC57B397_TEMP1 0x01 /* R */
#define SENSORS_SMSC57B397_TEMP2 0x02 /* R */
#define SENSORS_SMSC57B397_TEMP3 0x03 /* R */
#define SENSORS_SMSC57B397_TEMP4 0x04 /* R */
#define SENSORS_SMSC57B397_FAN1 0x11 /* R */
#define SENSORS_SMSC57B397_FAN2 0x12 /* R */
#define SENSORS_SMSC57B397_FAN3 0x13 /* R */
#define SENSORS_SMSC57B397_FAN4 0x14 /* R */
#endif /* def LIB_SENSORS_CHIPS_H */ #endif /* def LIB_SENSORS_CHIPS_H */

View File

@@ -1613,6 +1613,12 @@ use subs qw(mtp008_detect lm78_detect lm78_isa_detect lm78_alias_detect
driver => "not-a-sensor", driver => "not-a-sensor",
devid => 0x14, devid => 0x14,
}, },
{
name => "SMSC LPC57B397-NC Super IO",
driver => "smsc57b397",
devid => 0x6f,
logdev => 0x0a,
},
], ],
}, },
{ {

View File

@@ -5197,6 +5197,65 @@ void print_lm93(const sensors_chip_name *name)
print_lm93_vid(name, SENSORS_LM93_VID2); print_lm93_vid(name, SENSORS_LM93_VID2);
} }
/* print_smsc57b397_temp()
* where temp is a sensors feature ID
*/
static void print_smsc57b397_temp(const sensors_chip_name *name, int temp)
{
char *label = NULL;
double cur;
int valid;
if (!sensors_get_label_and_valid(*name,temp,&label,&valid) &&
!sensors_get_feature(*name,temp,&cur)) {
if (valid) {
print_label(label,10);
print_temp_info(cur, 0, 0, SINGLE, 0, 0);
printf("\n");
}
} else
printf("ERROR: Can't get TEMP data! (0x%04x)\n", temp);
free_the_label(&label);
}
#define PRINT_SMSC57B397_TEMP(num, name) \
print_smsc57b397_temp((name), (SENSORS_SMSC57B397_TEMP1 + (num)))
/* print_smsc57b397_fan()
* where fan is a sensors feature ID
*/
static void print_smsc57b397_fan(const sensors_chip_name *name, int fan)
{
char *label = NULL;
double cur;
int valid;
if (!sensors_get_label_and_valid(*name,fan,&label,&valid) &&
!sensors_get_feature(*name,fan,&cur)) {
if (valid) {
print_label(label,10);
printf("%4.0f RPM\n", cur);
}
} else
printf("ERROR: Can't get FAN data! (0x%04x)\n", fan);
free_the_label(&label);
}
#define PRINT_SMSC57B397_FAN(num, name) \
print_smsc57b397_fan((name), (SENSORS_SMSC57B397_FAN1 + (num)))
void print_smsc57b397(const sensors_chip_name *name)
{
int ii;
for (ii=0;ii<4;ii++)
PRINT_SMSC57B397_TEMP(ii, name);
for (ii=0;ii<4;ii++)
PRINT_SMSC57B397_FAN(ii, name);
}
void print_unknown_chip(const sensors_chip_name *name) void print_unknown_chip(const sensors_chip_name *name)
{ {
int a,b,valid; int a,b,valid;

View File

@@ -66,5 +66,6 @@ extern void print_max1619(const sensors_chip_name *name);
extern void print_xeontemp(const sensors_chip_name *name); extern void print_xeontemp(const sensors_chip_name *name);
extern void print_max6650(const sensors_chip_name *name); extern void print_max6650(const sensors_chip_name *name);
extern void print_adm1031(const sensors_chip_name *name); extern void print_adm1031(const sensors_chip_name *name);
extern void print_smsc57b397(const sensors_chip_name *name);
#endif /* def PROG_SENSORS_CHIPS_H */ #endif /* def PROG_SENSORS_CHIPS_H */

View File

@@ -399,6 +399,7 @@ struct match matches[] = {
{ "adm1030", print_adm1031 }, { "adm1030", print_adm1031 },
{ "adm1031", print_adm1031 }, { "adm1031", print_adm1031 },
{ "lm93", print_lm93 }, { "lm93", print_lm93 },
{ "smsc57b397", print_smsc57b397 },
{ NULL, NULL } { NULL, NULL }
}; };