2
0
mirror of https://github.com/lm-sensors/lm-sensors synced 2025-09-04 00:05:10 +00:00

Added support for LM93.

git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@2684 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Mark M. Hoffman
2004-09-08 16:21:44 +00:00
parent 3d08e7b625
commit b3945a5625
3 changed files with 129 additions and 0 deletions

View File

@@ -5045,6 +5045,133 @@ void print_asb100(const sensors_chip_name *name)
} }
/* happens to be similar to asb100*/
#define PRINT_LM93_IN(num, name, alarms) \
print_asb100_in((name), ((alarms) & LM93_ALARM_IN##num), \
(SENSORS_LM93_IN##num), \
(SENSORS_LM93_IN##num##_MIN), \
(SENSORS_LM93_IN##num##_MAX))
/* print_lm93_fan()
* where fan and fan_min are sensors feature IDs
*/
static void print_lm93_fan(const sensors_chip_name *name, int alarm,
int fan, int fan_min)
{
char *label = NULL;
double cur, min;
int valid;
if (!sensors_get_label_and_valid(*name,fan,&label,&valid) &&
!sensors_get_feature(*name,fan,&cur) &&
!sensors_get_feature(*name,fan_min,&min)) {
if (valid) {
print_label(label,10);
printf("%4.0f RPM (min = %4.0f RPM) %s\n",
cur, min, alarm ? "ALARM" : "");
}
} else
printf("ERROR: Can't get FAN data! (0x%04x)\n", fan);
free_the_label(&label);
}
#define PRINT_LM93_FAN(num, name, alarms) \
print_lm93_fan((name), ((alarms) & LM93_ALARM_FAN##num), \
(SENSORS_LM93_FAN##num), \
(SENSORS_LM93_FAN##num##_MIN))
/* print_lm93_temp()
* where temp, temp_min, and temp_max are sensors feature IDs
*/
static void print_lm93_temp(const sensors_chip_name *name, int alarm,
int temp, int temp_min, int temp_max)
{
char *label = NULL;
double cur, min, max;
int valid;
if (!sensors_get_label_and_valid(*name,temp,&label,&valid) &&
!sensors_get_feature(*name,temp,&cur) &&
!sensors_get_feature(*name,temp_min,&min) &&
!sensors_get_feature(*name,temp_max,&max)) {
if (valid) {
print_label(label,10);
print_temp_info(cur, max, min, MINMAX, 0, 0);
printf(" %s\n", alarm ? "ALARM" : "");
}
} else
printf("ERROR: Can't get TEMP data! (0x%04x)\n", temp);
free_the_label(&label);
}
#define PRINT_LM93_TEMP(num, name, alarms) \
print_lm93_temp((name), ((alarms) & LM93_ALARM_TEMP##num), \
(SENSORS_LM93_TEMP##num), \
(SENSORS_LM93_TEMP##num##_MIN), \
(SENSORS_LM93_TEMP##num##_MAX))
/* print_lm93_vid()
* where vid is a sensors feature ID
*/
static void print_lm93_vid(const sensors_chip_name *name, int vid)
{
char *label = NULL;
double cur;
int valid;
if (!sensors_get_label_and_valid(*name,vid,&label,&valid) &&
!sensors_get_feature(*name,vid,&cur)) {
if (valid) {
print_label(label,10);
printf("%+5.3f V\n",cur);
}
} else {
printf("ERROR: Can't get VID data! (0x%04x)\n", vid);
}
free_the_label(&label);
}
void print_lm93(const sensors_chip_name *name)
{
double cur;
int alarms = 0;
if (!sensors_get_feature(*name,SENSORS_LM93_ALARMS,&cur))
alarms = cur + 0.5;
else
printf("ERROR: Can't get alarm data!\n");
PRINT_LM93_IN(1, name, alarms);
PRINT_LM93_IN(2, name, alarms);
PRINT_LM93_IN(3, name, alarms);
PRINT_LM93_IN(4, name, alarms);
PRINT_LM93_IN(5, name, alarms);
PRINT_LM93_IN(6, name, alarms);
PRINT_LM93_IN(7, name, alarms);
PRINT_LM93_IN(8, name, alarms);
PRINT_LM93_IN(9, name, alarms);
PRINT_LM93_IN(10, name, alarms);
PRINT_LM93_IN(11, name, alarms);
PRINT_LM93_IN(12, name, alarms);
PRINT_LM93_IN(13, name, alarms);
PRINT_LM93_IN(14, name, alarms);
PRINT_LM93_IN(15, name, alarms);
PRINT_LM93_IN(16, name, alarms);
PRINT_LM93_FAN(1, name, alarms);
PRINT_LM93_FAN(2, name, alarms);
PRINT_LM93_FAN(3, name, alarms);
PRINT_LM93_FAN(4, name, alarms);
PRINT_LM93_TEMP(1, name, alarms);
PRINT_LM93_TEMP(2, name, alarms);
PRINT_LM93_TEMP(3, name, alarms);
print_lm93_vid(name, SENSORS_LM93_VID1);
print_lm93_vid(name, SENSORS_LM93_VID2);
}
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

@@ -60,6 +60,7 @@ extern void print_vt8231(const sensors_chip_name *name);
extern void print_bmc(const sensors_chip_name *name); extern void print_bmc(const sensors_chip_name *name);
extern void print_lm83(const sensors_chip_name *name); extern void print_lm83(const sensors_chip_name *name);
extern void print_lm90(const sensors_chip_name *name); extern void print_lm90(const sensors_chip_name *name);
extern void print_lm93(const sensors_chip_name *name);
extern void print_max1619(const sensors_chip_name *name); 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);

View File

@@ -431,6 +431,7 @@ struct match matches[] = {
{ "asb100", print_asb100 }, { "asb100", print_asb100 },
{ "adm1030", print_adm1031 }, { "adm1030", print_adm1031 },
{ "adm1031", print_adm1031 }, { "adm1031", print_adm1031 },
{ "lm93", print_lm93 },
{ NULL, NULL } { NULL, NULL }
}; };