Changeset 742

Show
Ignore:
Timestamp:
03/04/00 17:14:08 (13 years ago)
Author:
mds
Message:

(mds) Add via686a integrated sensors support. Untested.

Location:
lm-sensors/trunk
Files:
1 added
7 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/trunk/kernel/chips/Module.mk

    r713 r742  
    2727                      $(MODULE_DIR)/matorb.o $(MODULE_DIR)/maxilife.o \ 
    2828                      $(MODULE_DIR)/thmc50.o \ 
     29                      $(MODULE_DIR)/via686a.o \ 
    2930                      $(MODULE_DIR)/ddcmon.o 
    3031ifneq ($(shell if grep -q '^CONFIG_SENSORS_ADM1021=y' $(LINUX)/.config; then echo 1; fi),1) 
  • lm-sensors/trunk/kernel/include/sensors.h

    r715 r742  
    375375#define I2C_DRIVERID_THMC50 1017 
    376376#define I2C_DRIVERID_DDCMON 1018 
     377#define I2C_DRIVERID_VIA686A 1019 
    377378 
    378379/* Sysctl IDs */ 
     
    640641#define SIS5595_ALARM_FAN2 0x80 
    641642 
     643#define VIA686A_SYSCTL_IN0 1000 
     644#define VIA686A_SYSCTL_IN1 1001 
     645#define VIA686A_SYSCTL_IN2 1002 
     646#define VIA686A_SYSCTL_IN3 1003 
     647#define VIA686A_SYSCTL_IN4 1004 
     648#define VIA686A_SYSCTL_FAN1 1101 
     649#define VIA686A_SYSCTL_FAN2 1102 
     650#define VIA686A_SYSCTL_TEMP 1200 
     651#define VIA686A_SYSCTL_TEMP2 1201 
     652#define VIA686A_SYSCTL_TEMP3 1202 
     653#define VIA686A_SYSCTL_FAN_DIV 2000 
     654#define VIA686A_SYSCTL_ALARMS 2001 
     655 
     656#define VIA686A_ALARM_IN0 0x01 
     657#define VIA686A_ALARM_IN1 0x02 
     658#define VIA686A_ALARM_IN2 0x04 
     659#define VIA686A_ALARM_IN3 0x08 
     660#define VIA686A_ALARM_TEMP 0x10 
     661#define VIA686A_ALARM_FAN1 0x40 
     662#define VIA686A_ALARM_FAN2 0x80 
     663#define VIA686A_ALARM_IN4 0x100 
     664#define VIA686A_ALARM_TEMP2 0x400 
     665#define VIA686A_ALARM_CHAS 0x1000 
     666#define VIA686A_ALARM_TEMP3 0x8000 
     667 
    642668#define ICSPLL_SYSCTL1 1000 
    643669 
  • lm-sensors/trunk/lib/chips.c

    r716 r742  
    15601560  }; 
    15611561 
     1562static sensors_chip_feature via686a_features[] = 
     1563  {  
     1564    { SENSORS_VIA686A_IN0, "2.0V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,  
     1565                        SENSORS_MODE_R, VIA686A_SYSCTL_IN0, VALUE(3), 2 }, 
     1566    { SENSORS_VIA686A_IN1, "2.5V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
     1567                        SENSORS_MODE_R, VIA686A_SYSCTL_IN1, VALUE(3), 2 }, 
     1568    { SENSORS_VIA686A_IN2, "3.3V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
     1569                        SENSORS_MODE_R, VIA686A_SYSCTL_IN2, VALUE(3), 2 }, 
     1570    { SENSORS_VIA686A_IN3, "5.0V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
     1571                        SENSORS_MODE_R, VIA686A_SYSCTL_IN3, VALUE(3), 2 }, 
     1572    { SENSORS_VIA686A_IN4, "12V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
     1573                        SENSORS_MODE_R, VIA686A_SYSCTL_IN4, VALUE(3), 2 }, 
     1574    { SENSORS_VIA686A_IN0_MIN, "in0_min", SENSORS_VIA686A_IN0, SENSORS_VIA686A_IN0, 
     1575                            SENSORS_MODE_RW, VIA686A_SYSCTL_IN0, VALUE(1), 2 }, 
     1576    { SENSORS_VIA686A_IN1_MIN, "in1_min", SENSORS_VIA686A_IN1, SENSORS_VIA686A_IN1, 
     1577                            SENSORS_MODE_RW, VIA686A_SYSCTL_IN1, VALUE(1), 2 }, 
     1578    { SENSORS_VIA686A_IN2_MIN, "in2_min", SENSORS_VIA686A_IN2, SENSORS_VIA686A_IN2, 
     1579                            SENSORS_MODE_RW, VIA686A_SYSCTL_IN2, VALUE(1), 2 }, 
     1580    { SENSORS_VIA686A_IN3_MIN, "in3_min", SENSORS_VIA686A_IN3, SENSORS_VIA686A_IN3, 
     1581                            SENSORS_MODE_RW, VIA686A_SYSCTL_IN3, VALUE(1), 2 }, 
     1582    { SENSORS_VIA686A_IN3_MIN, "in4_min", SENSORS_VIA686A_IN4, SENSORS_VIA686A_IN4, 
     1583                            SENSORS_MODE_RW, VIA686A_SYSCTL_IN4, VALUE(1), 2 }, 
     1584    { SENSORS_VIA686A_IN0_MAX, "in0_max", SENSORS_VIA686A_IN0, SENSORS_VIA686A_IN0, 
     1585                            SENSORS_MODE_RW, VIA686A_SYSCTL_IN0, VALUE(2), 2 }, 
     1586    { SENSORS_VIA686A_IN1_MAX, "in1_max", SENSORS_VIA686A_IN1, SENSORS_VIA686A_IN1, 
     1587                            SENSORS_MODE_RW, VIA686A_SYSCTL_IN1, VALUE(2), 2 }, 
     1588    { SENSORS_VIA686A_IN2_MAX, "in2_max", SENSORS_VIA686A_IN2, SENSORS_VIA686A_IN2, 
     1589                            SENSORS_MODE_RW, VIA686A_SYSCTL_IN2, VALUE(2), 2 }, 
     1590    { SENSORS_VIA686A_IN3_MAX, "in3_max", SENSORS_VIA686A_IN3, SENSORS_VIA686A_IN3, 
     1591                            SENSORS_MODE_RW, VIA686A_SYSCTL_IN3, VALUE(2), 2 }, 
     1592    { SENSORS_VIA686A_IN3_MAX, "in4_max", SENSORS_VIA686A_IN4, SENSORS_VIA686A_IN4, 
     1593                            SENSORS_MODE_RW, VIA686A_SYSCTL_IN4, VALUE(2), 2 }, 
     1594    { SENSORS_VIA686A_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
     1595                         SENSORS_MODE_R, VIA686A_SYSCTL_FAN1, VALUE(2), 0 }, 
     1596    { SENSORS_VIA686A_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
     1597                         SENSORS_MODE_R, VIA686A_SYSCTL_FAN2, VALUE(2), 0 }, 
     1598    { SENSORS_VIA686A_FAN1_MIN, "fan1_min", SENSORS_VIA686A_FAN1, SENSORS_VIA686A_FAN1, 
     1599                             SENSORS_MODE_RW, VIA686A_SYSCTL_FAN1, VALUE(1), 0 }, 
     1600    { SENSORS_VIA686A_FAN2_MIN, "fan2_min", SENSORS_VIA686A_FAN2, SENSORS_VIA686A_FAN2, 
     1601                             SENSORS_MODE_RW, VIA686A_SYSCTL_FAN2, VALUE(1), 0 }, 
     1602    { SENSORS_VIA686A_TEMP, "temp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
     1603                         SENSORS_MODE_R, VIA686A_SYSCTL_TEMP, VALUE(3), 1 }, 
     1604    { SENSORS_VIA686A_TEMP_HYST, "temp1_hyst", SENSORS_VIA686A_TEMP, 
     1605                              SENSORS_VIA686A_TEMP, SENSORS_MODE_RW,  
     1606                              VIA686A_SYSCTL_TEMP, VALUE(2), 1 }, 
     1607    { SENSORS_VIA686A_TEMP_OVER, "temp1_over", SENSORS_VIA686A_TEMP, 
     1608                              SENSORS_VIA686A_TEMP, SENSORS_MODE_RW,  
     1609                              VIA686A_SYSCTL_TEMP, VALUE(1), 1 }, 
     1610    { SENSORS_VIA686A_TEMP, "temp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
     1611                         SENSORS_MODE_R, VIA686A_SYSCTL_TEMP, VALUE(3), 1 }, 
     1612    { SENSORS_VIA686A_TEMP_HYST, "temp2_hyst", SENSORS_VIA686A_TEMP2, 
     1613                              SENSORS_VIA686A_TEMP2, SENSORS_MODE_RW,  
     1614                              VIA686A_SYSCTL_TEMP, VALUE(2), 1 }, 
     1615    { SENSORS_VIA686A_TEMP_OVER, "temp2_over", SENSORS_VIA686A_TEMP2, 
     1616                              SENSORS_VIA686A_TEMP2, SENSORS_MODE_RW,  
     1617                              VIA686A_SYSCTL_TEMP, VALUE(1), 1 }, 
     1618    { SENSORS_VIA686A_TEMP, "temp3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
     1619                         SENSORS_MODE_R, VIA686A_SYSCTL_TEMP, VALUE(3), 1 }, 
     1620    { SENSORS_VIA686A_TEMP_HYST, "temp3_hyst", SENSORS_VIA686A_TEMP3, 
     1621                              SENSORS_VIA686A_TEMP3, SENSORS_MODE_RW,  
     1622                              VIA686A_SYSCTL_TEMP, VALUE(2), 1 }, 
     1623    { SENSORS_VIA686A_TEMP_OVER, "temp3_over", SENSORS_VIA686A_TEMP3, 
     1624                              SENSORS_VIA686A_TEMP3, SENSORS_MODE_RW,  
     1625                              VIA686A_SYSCTL_TEMP, VALUE(1), 1 }, 
     1626    { SENSORS_VIA686A_FAN1_DIV, "fan1_div", SENSORS_VIA686A_FAN1, SENSORS_NO_MAPPING, 
     1627                             SENSORS_MODE_RW, VIA686A_SYSCTL_FAN_DIV, VALUE(1),  
     1628                             0 }, 
     1629    { SENSORS_VIA686A_FAN2_DIV, "fan2_div", SENSORS_VIA686A_FAN2, SENSORS_NO_MAPPING, 
     1630                             SENSORS_MODE_RW, VIA686A_SYSCTL_FAN_DIV, VALUE(2),  
     1631                             0 }, 
     1632    { SENSORS_VIA686A_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,  
     1633                           SENSORS_MODE_R, VIA686A_SYSCTL_ALARMS, VALUE(1), 0 }, 
     1634    { 0 } 
     1635  }; 
     1636 
    15621637static sensors_chip_feature ddcmon_features[] = 
    15631638  { 
     
    16451720                /* Cheat on ADM1022 for now - no separate #defines */ 
    16461721 { SENSORS_ADM1022_PREFIX, thmc50_features }, 
     1722 { SENSORS_VIA686A_PREFIX, via686a_features }, 
    16471723 { SENSORS_DDCMON_PREFIX, ddcmon_features }, 
    16481724 { SENSORS_EEPROM_PREFIX, eeprom_features }, 
  • lm-sensors/trunk/lib/chips.h

    r716 r742  
    725725#define SENSORS_THMC50_DIE_CODE 90 /* R */ 
    726726 
     727/* SiS southbridge with integrated lm78 */ 
     728 
     729#define SENSORS_VIA686A_PREFIX "via686a" 
     730 
     731#define SENSORS_VIA686A_IN0 1 /* R */ 
     732#define SENSORS_VIA686A_IN1 2 /* R */ 
     733#define SENSORS_VIA686A_IN2 3 /* R */ 
     734#define SENSORS_VIA686A_IN3 4 /* R */ 
     735#define SENSORS_VIA686A_IN4 5 /* R */ 
     736#define SENSORS_VIA686A_IN0_MIN 11 /* RW */ 
     737#define SENSORS_VIA686A_IN1_MIN 12 /* RW */ 
     738#define SENSORS_VIA686A_IN2_MIN 13 /* RW */ 
     739#define SENSORS_VIA686A_IN3_MIN 14 /* RW */ 
     740#define SENSORS_VIA686A_IN4_MIN 15 /* RW */ 
     741#define SENSORS_VIA686A_IN0_MAX 21 /* RW */ 
     742#define SENSORS_VIA686A_IN1_MAX 22 /* RW */ 
     743#define SENSORS_VIA686A_IN2_MAX 23 /* RW */ 
     744#define SENSORS_VIA686A_IN3_MAX 24 /* RW */ 
     745#define SENSORS_VIA686A_IN4_MAX 25 /* RW */ 
     746#define SENSORS_VIA686A_FAN1 31 /* R */ 
     747#define SENSORS_VIA686A_FAN2 32 /* R */ 
     748#define SENSORS_VIA686A_FAN1_MIN 41 /* RW */ 
     749#define SENSORS_VIA686A_FAN2_MIN 42 /* RW */ 
     750#define SENSORS_VIA686A_TEMP 51 /* R */ 
     751#define SENSORS_VIA686A_TEMP_HYST 52 /* RW */ 
     752#define SENSORS_VIA686A_TEMP_OVER 53 /* RW */ 
     753#define SENSORS_VIA686A_TEMP2 54 /* R */ 
     754#define SENSORS_VIA686A_TEMP2_HYST 55 /* RW */ 
     755#define SENSORS_VIA686A_TEMP2_OVER 56 /* RW */ 
     756#define SENSORS_VIA686A_TEMP3 57 /* R */ 
     757#define SENSORS_VIA686A_TEMP3_HYST 58 /* RW */ 
     758#define SENSORS_VIA686A_TEMP3_OVER 59 /* RW */ 
     759#define SENSORS_VIA686A_FAN1_DIV 71 /* RW */ 
     760#define SENSORS_VIA686A_FAN2_DIV 72 /* RW */ 
     761#define SENSORS_VIA686A_ALARMS 81 /* R */ 
     762 
     763 
    727764/* DDC Monitor */ 
    728765 
  • lm-sensors/trunk/prog/sensors/chips.c

    r716 r742  
    419419    print_label(label,10); 
    420420    printf("Board temperature input (usually LM75 chips) %s\n", 
    421            alarms & SIS5595_ALARM_BTI?"ALARM":"     "); 
    422   } 
    423   free_the_label(&label); 
     421           alarms & SIS5595_ALARM_BTI ?"ALARM":"     "); 
     422  } 
     423  free_the_label(&label); 
     424 
     425} 
     426 
     427void print_via686a(const sensors_chip_name *name) 
     428{ 
     429  char *label = NULL; 
     430  double cur,min,max,fdiv; 
     431  int alarms,valid; 
     432 
     433  if (!sensors_get_feature(*name,SENSORS_VIA686A_ALARMS,&cur))  
     434    alarms = cur + 0.5; 
     435  else { 
     436    printf("ERROR: Can't get alarm data!\n"); 
     437    alarms = 0; 
     438  } 
     439 
     440  if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_IN0,&label,&valid) && 
     441      !sensors_get_feature(*name,SENSORS_VIA686A_IN0,&cur) && 
     442      !sensors_get_feature(*name,SENSORS_VIA686A_IN0_MIN,&min) && 
     443      !sensors_get_feature(*name,SENSORS_VIA686A_IN0_MAX,&max)) { 
     444    if (valid) { 
     445      print_label(label,10); 
     446      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     447             cur,min,max,alarms&VIA686A_ALARM_IN0?"ALARM":""); 
     448    } 
     449  } else 
     450    printf("ERROR: Can't get IN0 data!\n"); 
     451  free_the_label(&label); 
     452  if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_IN1,&label,&valid) && 
     453      !sensors_get_feature(*name,SENSORS_VIA686A_IN1,&cur) && 
     454      !sensors_get_feature(*name,SENSORS_VIA686A_IN1_MIN,&min) && 
     455      !sensors_get_feature(*name,SENSORS_VIA686A_IN1_MAX,&max)) { 
     456    if (valid) { 
     457      print_label(label,10); 
     458      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     459             cur,min,max,alarms&VIA686A_ALARM_IN1?"ALARM":""); 
     460    } 
     461  } else 
     462    printf("ERROR: Can't get IN1 data!\n"); 
     463  free_the_label(&label); 
     464  if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_IN2,&label,&valid) && 
     465      !sensors_get_feature(*name,SENSORS_VIA686A_IN2,&cur) && 
     466      !sensors_get_feature(*name,SENSORS_VIA686A_IN2_MIN,&min) && 
     467      !sensors_get_feature(*name,SENSORS_VIA686A_IN2_MAX,&max)) { 
     468    if (valid) { 
     469      print_label(label,10); 
     470      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     471             cur,min,max,alarms&VIA686A_ALARM_IN2?"ALARM":""); 
     472    } 
     473  } else 
     474    printf("ERROR: Can't get IN2 data!\n"); 
     475  free_the_label(&label); 
     476  if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_IN3,&label,&valid) && 
     477      !sensors_get_feature(*name,SENSORS_VIA686A_IN3,&cur) && 
     478      !sensors_get_feature(*name,SENSORS_VIA686A_IN3_MIN,&min) && 
     479      !sensors_get_feature(*name,SENSORS_VIA686A_IN3_MAX,&max)) { 
     480    if (valid) { 
     481      print_label(label,10); 
     482      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     483             cur,min,max,alarms&VIA686A_ALARM_IN3?"ALARM":""); 
     484    } 
     485  } else 
     486    printf("ERROR: Can't get IN3 data!\n"); 
     487  free_the_label(&label); 
     488  if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_IN4,&label,&valid) && 
     489      !sensors_get_feature(*name,SENSORS_VIA686A_IN4,&cur) && 
     490      !sensors_get_feature(*name,SENSORS_VIA686A_IN4_MIN,&min) && 
     491      !sensors_get_feature(*name,SENSORS_VIA686A_IN4_MAX,&max)) { 
     492    if (valid) { 
     493      print_label(label,10); 
     494      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     495             cur,min,max,alarms&VIA686A_ALARM_IN4?"ALARM":""); 
     496    } 
     497  } else 
     498    printf("ERROR: Can't get IN4 data!\n"); 
     499  free_the_label(&label); 
     500 
     501  if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_FAN1,&label,&valid) && 
     502      !sensors_get_feature(*name,SENSORS_VIA686A_FAN1,&cur) && 
     503      !sensors_get_feature(*name,SENSORS_VIA686A_FAN1_DIV,&fdiv) && 
     504      !sensors_get_feature(*name,SENSORS_VIA686A_FAN1_MIN,&min)) { 
     505    if (valid) { 
     506      print_label(label,10); 
     507      printf("%4.0f RPM  (min = %4.0f RPM, div = %1.0f)          %s\n", 
     508             cur,min,fdiv, alarms&VIA686A_ALARM_FAN1?"ALARM":""); 
     509    } 
     510  } else 
     511    printf("ERROR: Can't get FAN1 data!\n"); 
     512  free_the_label(&label); 
     513  if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_FAN2,&label,&valid) && 
     514      !sensors_get_feature(*name,SENSORS_VIA686A_FAN2,&cur) && 
     515      !sensors_get_feature(*name,SENSORS_VIA686A_FAN2_DIV,&fdiv) && 
     516      !sensors_get_feature(*name,SENSORS_VIA686A_FAN2_MIN,&min)) { 
     517    if (valid) { 
     518    print_label(label,10); 
     519    printf("%4.0f RPM  (min = %4.0f RPM, div = %1.0f)          %s\n", 
     520           cur,min,fdiv, alarms&VIA686A_ALARM_FAN2?"ALARM":""); 
     521    } 
     522  } else 
     523    printf("ERROR: Can't get FAN2 data!\n"); 
     524  free_the_label(&label); 
     525 
     526  if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_TEMP,&label,&valid) && 
     527      !sensors_get_feature(*name,SENSORS_VIA686A_TEMP,&cur) && 
     528      !sensors_get_feature(*name,SENSORS_VIA686A_TEMP_HYST,&min) && 
     529      !sensors_get_feature(*name,SENSORS_VIA686A_TEMP_OVER,&max)) { 
     530    if (valid) { 
     531      print_label(label,10); 
     532      printf("%+3.0f C     (limit = %+3.0f C,  hysteresis = %+3.0f C) %s\n", 
     533             cur,max,min, alarms&VIA686A_ALARM_TEMP?"ALARM":""); 
     534    } 
     535  } else 
     536    printf("ERROR: Can't get TEMP data!\n"); 
     537  free_the_label(&label); 
     538  if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_TEMP2,&label,&valid) && 
     539      !sensors_get_feature(*name,SENSORS_VIA686A_TEMP2,&cur) && 
     540      !sensors_get_feature(*name,SENSORS_VIA686A_TEMP2_HYST,&min) && 
     541      !sensors_get_feature(*name,SENSORS_VIA686A_TEMP2_OVER,&max)) { 
     542    if (valid) { 
     543      print_label(label,10); 
     544      printf("%+3.0f C     (limit = %+3.0f C,  hysteresis = %+3.0f C) %s\n", 
     545             cur,max,min, alarms&VIA686A_ALARM_TEMP2?"ALARM":""); 
     546    } 
     547  } else 
     548    printf("ERROR: Can't get TEMP2 data!\n"); 
     549  free_the_label(&label); 
     550  if (!sensors_get_label_and_valid(*name,SENSORS_VIA686A_TEMP3,&label,&valid) && 
     551      !sensors_get_feature(*name,SENSORS_VIA686A_TEMP3,&cur) && 
     552      !sensors_get_feature(*name,SENSORS_VIA686A_TEMP3_HYST,&min) && 
     553      !sensors_get_feature(*name,SENSORS_VIA686A_TEMP3_OVER,&max)) { 
     554    if (valid) { 
     555      print_label(label,10); 
     556      printf("%+3.0f C     (limit = %+3.0f C,  hysteresis = %+3.0f C) %s\n", 
     557             cur,max,min, alarms&VIA686A_ALARM_TEMP3?"ALARM":""); 
     558    } 
     559  } else 
     560    printf("ERROR: Can't get TEMP3 data!\n"); 
     561  free_the_label(&label); 
     562 
    424563} 
    425564 
  • lm-sensors/trunk/prog/sensors/chips.h

    r716 r742  
    3030extern void print_lm78(const sensors_chip_name *name); 
    3131extern void print_sis5595(const sensors_chip_name *name); 
     32extern void print_via686a(const sensors_chip_name *name); 
    3233extern void print_gl518(const sensors_chip_name *name); 
    3334extern void print_lm80(const sensors_chip_name *name); 
  • lm-sensors/trunk/prog/sensors/main.c

    r716 r742  
    263263  else if (!strcmp(name.prefix,"sis5595")) 
    264264    print_sis5595(&name); 
     265  else if (!strcmp(name.prefix,"via686a")) 
     266    print_via686a(&name); 
    265267  else if (!strcmp(name.prefix,"lm80")) 
    266268    print_lm80(&name);