Changeset 5462

Show
Ignore:
Timestamp:
11/30/08 10:38:34 (5 years ago)
Author:
khali
Message:

Split the big @superio_ids list into per-family lists.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/branches/lm-sensors-3.0.0/prog/detect/sensors-detect

    r5461 r5462  
    4141use constant NO_CACHE => 1; 
    4242use vars qw(@pci_adapters @chip_ids @non_hwmon_chip_ids $i2c_addresses_to_scan 
    43             @superio_ids @cpu_ids $revision @i2c_byte_cache); 
     43            @cpu_ids $revision @i2c_byte_cache); 
    4444 
    4545$revision = '$Revision$ ($Date$)'; 
     
    11431143#      The function will be passed three parameters: the LPC address, an 
    11441144#      open file descriptor to access the I2C bus, and the I2C address. 
    1145 # 
     1145use vars qw(@superio_ids_natsemi @superio_ids_smsc @superio_ids_smsc_ns 
     1146            @superio_ids_winbond @superio_ids_ite @superio_ids); 
     1147 
     1148@superio_ids_natsemi = ( 
     1149      { 
     1150        name => "Nat. Semi. PC8374L Super IO Sensors", 
     1151        driver => "to-be-written", 
     1152        devid => 0xf1, 
     1153        logdev => 0x08, 
     1154      }, 
     1155      { 
     1156        name => "Nat. Semi. PC87351 Super IO Fan Sensors", 
     1157        driver => "to-be-written", 
     1158        devid => 0xe2, 
     1159        logdev => 0x08, 
     1160      }, 
     1161      { 
     1162        name => "Nat. Semi. PC87360 Super IO Fan Sensors", 
     1163        driver => "pc87360", 
     1164        devid => 0xe1, 
     1165        logdev => 0x09, 
     1166      }, 
     1167      { 
     1168        name => "Nat. Semi. PC87363 Super IO Fan Sensors", 
     1169        driver => "pc87360", 
     1170        devid => 0xe8, 
     1171        logdev => 0x09, 
     1172      }, 
     1173      { 
     1174        name => "Nat. Semi. PC87364 Super IO Fan Sensors", 
     1175        driver => "pc87360", 
     1176        devid => 0xe4, 
     1177        logdev => 0x09, 
     1178      }, 
     1179      { 
     1180        name => "Nat. Semi. PC87365 Super IO Fan Sensors", 
     1181        driver => "pc87360", 
     1182        devid => 0xe5, 
     1183        logdev => 0x09, 
     1184      }, 
     1185      { 
     1186        name => "Nat. Semi. PC87365 Super IO Voltage Sensors", 
     1187        driver => "pc87360", 
     1188        devid => 0xe5, 
     1189        logdev => 0x0d, 
     1190      }, 
     1191      { 
     1192        name => "Nat. Semi. PC87365 Super IO Thermal Sensors", 
     1193        driver => "pc87360", 
     1194        devid => 0xe5, 
     1195        logdev => 0x0e, 
     1196      }, 
     1197      { 
     1198        name => "Nat. Semi. PC87366 Super IO Fan Sensors", 
     1199        driver => "pc87360", 
     1200        devid => 0xe9, 
     1201        logdev => 0x09, 
     1202      }, 
     1203      { 
     1204        name => "Nat. Semi. PC87366 Super IO Voltage Sensors", 
     1205        driver => "pc87360", 
     1206        devid => 0xe9, 
     1207        logdev => 0x0d, 
     1208      }, 
     1209      { 
     1210        name => "Nat. Semi. PC87366 Super IO Thermal Sensors", 
     1211        driver => "pc87360", 
     1212        devid => 0xe9, 
     1213        logdev => 0x0e, 
     1214      }, 
     1215      { 
     1216        name => "Nat. Semi. PC87372 Super IO Fan Sensors", 
     1217        driver => "to-be-written", 
     1218        devid => 0xf0, 
     1219        logdev => 0x09, 
     1220      }, 
     1221      { 
     1222        name => "Nat. Semi. PC87373 Super IO Fan Sensors", 
     1223        driver => "to-be-written", 
     1224        devid => 0xf3, 
     1225        logdev => 0x09, 
     1226      }, 
     1227      { 
     1228        name => "Nat. Semi. PC87591 Super IO", 
     1229        driver => "to-be-written", 
     1230        devid => 0xec, 
     1231        logdev => 0x0f, 
     1232      }, 
     1233      { 
     1234        name => "Nat. Semi. PC87317 Super IO", 
     1235        driver => "not-a-sensor", 
     1236        devid => 0xd0, 
     1237      }, 
     1238      { 
     1239        name => "Nat. Semi. PC97317 Super IO", 
     1240        driver => "not-a-sensor", 
     1241        devid => 0xdf, 
     1242      }, 
     1243      { 
     1244        name => "Nat. Semi. PC8739x Super IO", 
     1245        driver => "not-a-sensor", 
     1246        devid => 0xea, 
     1247      }, 
     1248      { 
     1249        name => "Nat. Semi. PC8741x Super IO", 
     1250        driver => "not-a-sensor", 
     1251        devid => 0xee, 
     1252      }, 
     1253      { 
     1254        name => "Nat. Semi. PC87427 Super IO Fan Sensors", 
     1255        driver => "pc87427", 
     1256        devid => 0xf2, 
     1257        logdev => 0x09, 
     1258      }, 
     1259      { 
     1260        name => "Nat. Semi. PC87427 Super IO Health Sensors", 
     1261        driver => "to-be-written", 
     1262        devid => 0xf2, 
     1263        logdev => 0x14, 
     1264      }, 
     1265); 
     1266 
     1267@superio_ids_smsc = ( 
     1268      { 
     1269        name => "SMSC DME1737 Super IO", 
     1270        # Hardware monitoring features are accessed on the SMBus 
     1271        driver => "via-smbus-only", 
     1272        devid => 0x78, 
     1273      }, 
     1274      { 
     1275        name => "SMSC DME1737 Super IO", 
     1276        # The DME1737 shows up twice in this list because it can return either 
     1277        # 0x78 or 0x77 as its device ID. 
     1278        # Hardware monitoring features are accessed on the SMBus 
     1279        driver => "via-smbus-only", 
     1280        devid => 0x77, 
     1281      }, 
     1282      { 
     1283        name => "SMSC EMC2700LPC Super IO", 
     1284        # no datasheet 
     1285        devid => 0x67, 
     1286      }, 
     1287      { 
     1288        name => "SMSC FDC37B72x Super IO", 
     1289        driver => "not-a-sensor", 
     1290        devid => 0x4c, 
     1291      }, 
     1292      { 
     1293        name => "SMSC FDC37B78x Super IO", 
     1294        driver => "not-a-sensor", 
     1295        devid => 0x44, 
     1296      }, 
     1297      { 
     1298        name => "SMSC FDC37C672 Super IO", 
     1299        driver => "not-a-sensor", 
     1300        devid => 0x40, 
     1301      }, 
     1302      { 
     1303        name => "SMSC FDC37M707 Super IO", 
     1304        driver => "not-a-sensor", 
     1305        devid => 0x42, 
     1306      }, 
     1307      { 
     1308        name => "SMSC FDC37M81x Super IO", 
     1309        driver => "not-a-sensor", 
     1310        devid => 0x4d, 
     1311      }, 
     1312      { 
     1313        name => "SMSC LPC47B27x Super IO Fan Sensors", 
     1314        driver => "smsc47m1", 
     1315        devid => 0x51, 
     1316        logdev => 0x0a, 
     1317      }, 
     1318      { 
     1319        name => "SMSC LPC47B34x Super IO", 
     1320        driver => "not-a-sensor", 
     1321        devid => 0x56, 
     1322      }, 
     1323      { 
     1324        name => "SMSC LPC47B357/M967 Super IO", 
     1325        driver => "not-a-sensor", 
     1326        devid => 0x5d, 
     1327      }, 
     1328      { 
     1329        name => "SMSC LPC47B367-NC Super IO", 
     1330        driver => "not-a-sensor", 
     1331        devid => 0x6d, 
     1332      }, 
     1333      { 
     1334        name => "SMSC LPC47B37x Super IO Fan Sensors", 
     1335        driver => "to-be-written", 
     1336        devid => 0x52, 
     1337        logdev => 0x0a, 
     1338      }, 
     1339      { 
     1340        name => "SMSC LPC47B397-NC Super IO", 
     1341        driver => "smsc47b397", 
     1342        devid => 0x6f, 
     1343        logdev => 0x08, 
     1344      }, 
     1345      { 
     1346        name => "SMSC LPC47M10x/112/13x Super IO Fan Sensors", 
     1347        driver => "smsc47m1", 
     1348        devid => 0x59, 
     1349        logdev => 0x0a, 
     1350      }, 
     1351      { 
     1352        name => "SMSC LPC47M14x Super IO Fan Sensors", 
     1353        driver => "smsc47m1", 
     1354        devid => 0x5f, 
     1355        logdev => 0x0a, 
     1356      }, 
     1357      { 
     1358        name => "SMSC LPC47M15x/192/997 Super IO Fan Sensors", 
     1359        driver => "smsc47m1", 
     1360        devid => 0x60, 
     1361        logdev => 0x0a, 
     1362      }, 
     1363      { 
     1364        name => "SMSC LPC47M172 Super IO Fan Sensors", 
     1365        driver => "to-be-written", 
     1366        devid => 0x14, 
     1367        logdev => 0x0a, 
     1368      }, 
     1369      { 
     1370        name => "SMSC LPC47M182 Super IO Fan Sensors", 
     1371        driver => "to-be-written", 
     1372        devid => 0x74, 
     1373        logdev => 0x0a, 
     1374      }, 
     1375      { 
     1376        name => "SMSC LPC47M233 Super IO Sensors", 
     1377        driver => "smsc47m1", 
     1378        devid => 0x6b80, 
     1379        devid_mask => 0xff80, 
     1380        logdev => 0x0a, 
     1381      }, 
     1382      { 
     1383        name => "SMSC LPC47M292 Super IO Fan Sensors", 
     1384        driver => "smsc47m1", 
     1385        devid => 0x6b00, 
     1386        devid_mask => 0xff80, 
     1387        logdev => 0x0a, 
     1388      }, 
     1389      { 
     1390        name => "SMSC LPC47M584-NC Super IO", 
     1391        # No datasheet 
     1392        devid => 0x76, 
     1393      }, 
     1394      { 
     1395        name => "SMSC LPC47N252 Super IO Fan Sensors", 
     1396        driver => "to-be-written", 
     1397        devid => 0x0e, 
     1398        logdev => 0x09, 
     1399      }, 
     1400      { 
     1401        name => "SMSC LPC47S42x Super IO Fan Sensors", 
     1402        driver => "to-be-written", 
     1403        devid => 0x57, 
     1404        logdev => 0x0a, 
     1405      }, 
     1406      { 
     1407        name => "SMSC LPC47S45x Super IO Fan Sensors", 
     1408        driver => "to-be-written", 
     1409        devid => 0x62, 
     1410        logdev => 0x0a, 
     1411      }, 
     1412      { 
     1413        name => "SMSC LPC47U33x Super IO Fan Sensors", 
     1414        driver => "to-be-written", 
     1415        devid => 0x54, 
     1416        logdev => 0x0a, 
     1417      }, 
     1418      { 
     1419        name => "SMSC SCH3112 Super IO", 
     1420        driver => "dme1737", 
     1421        devid => 0x7c, 
     1422        logdev => 0x0a, 
     1423      }, 
     1424      { 
     1425        name => "SMSC SCH3114 Super IO", 
     1426        driver => "dme1737", 
     1427        devid => 0x7d, 
     1428        logdev => 0x0a, 
     1429      }, 
     1430      { 
     1431        name => "SMSC SCH3116 Super IO", 
     1432        driver => "dme1737", 
     1433        devid => 0x7f, 
     1434        logdev => 0x0a, 
     1435      }, 
     1436      { 
     1437        name => "SMSC SCH4307 Super IO Fan Sensors", 
     1438        driver => "to-be-written", 
     1439        devid => 0x90, 
     1440        logdev => 0x08, 
     1441      }, 
     1442      { 
     1443        name => "SMSC SCH5027D-NW Super IO", 
     1444        # Hardware monitoring features are accessed on the SMBus 
     1445        driver => "via-smbus-only", 
     1446        devid => 0x89, 
     1447      }, 
     1448      { 
     1449        name => "SMSC SCH5127 Super IO", 
     1450        driver => "dme1737", 
     1451        devid => 0x86, 
     1452        logdev => 0x0a, 
     1453      }, 
     1454      { 
     1455        name => "SMSC SCH5307-NS Super IO", 
     1456        driver => "smsc47b397", 
     1457        devid => 0x81, 
     1458        logdev => 0x08, 
     1459      }, 
     1460      { 
     1461        name => "SMSC SCH5317 Super IO", 
     1462        driver => "smsc47b397", 
     1463        devid => 0x85, 
     1464        logdev => 0x08, 
     1465      }, 
     1466      { 
     1467        name => "SMSC SCH5317 Super IO", 
     1468        # The SCH5317 shows up twice in this list because it can return either 
     1469        # 0x85 or 0x8c as its device ID. 
     1470        driver => "smsc47b397", 
     1471        devid => 0x8c, 
     1472        logdev => 0x08, 
     1473      }, 
     1474      { 
     1475        name => "SMSC SCH5504-NS Super IO", 
     1476        # No datasheet 
     1477        driver => "not-a-sensor", 
     1478        devid => 0x79, 
     1479      }, 
     1480      { 
     1481        name => "SMSC SCH5514D-NS Super IO", 
     1482        # No datasheet 
     1483        driver => "not-a-sensor", 
     1484        devid => 0x83, 
     1485      }, 
     1486); 
     1487 
     1488@superio_ids_smsc_ns = ( 
     1489      { 
     1490        name => "SMSC FDC37C665 Super IO", 
     1491        driver => "not-a-sensor", 
     1492        devid => 0x65, 
     1493      }, 
     1494      { 
     1495        name => "SMSC FDC37C666 Super IO", 
     1496        driver => "not-a-sensor", 
     1497        devid => 0x66, 
     1498      }, 
     1499      { 
     1500        name => "SMSC FDC37C669 Super IO", 
     1501        driver => "not-a-sensor", 
     1502        devid => 0x03, 
     1503      }, 
     1504      { 
     1505        name => "SMSC FDC37N769 Super IO", 
     1506        driver => "not-a-sensor", 
     1507        devid => 0x28, 
     1508      }, 
     1509      { 
     1510        name => "SMSC LPC47N227 Super IO", 
     1511        driver => "not-a-sensor", 
     1512        devid => 0x5a, 
     1513      }, 
     1514); 
     1515 
     1516@superio_ids_winbond = ( 
     1517      { 
     1518        name => "VIA VT1211 Super IO Sensors", 
     1519        driver => "vt1211", 
     1520        devid => 0x3c, 
     1521        logdev => 0x0b, 
     1522        alias_detect => sub { vt1211_alias_detect(@_); }, 
     1523      }, 
     1524      { 
     1525        name => "VIA VT1212 Super IO Lite",   # in 100 pin TQFP package 
     1526        driver => "not-a-sensor", 
     1527        devid => 0x3e, 
     1528      }, 
     1529      { 
     1530        name => "VIA VT1212 Super IO Lite",   # in 48 pin LQFP package 
     1531        driver => "not-a-sensor", 
     1532        devid => 0x3f, 
     1533      }, 
     1534      { 
     1535        name => "Winbond W83627HF/F/HG/G Super IO Sensors", 
     1536        driver => "w83627hf", 
     1537        devid => 0x52, 
     1538        logdev => 0x0b, 
     1539        alias_detect => sub { winbond_alias_detect(@_, 0x2b, 0x3d); }, 
     1540      }, 
     1541      { 
     1542        name => "Winbond W83627THF/THG Super IO Sensors", 
     1543        driver => "w83627hf", 
     1544        devid => 0x82, 
     1545        logdev => 0x0b, 
     1546      }, 
     1547      { 
     1548        name => "Winbond W83637HF/HG Super IO Sensors", 
     1549        driver => "w83627hf", 
     1550        devid => 0x70, 
     1551        logdev => 0x0b, 
     1552      }, 
     1553      { 
     1554        name => "Winbond W83687THF Super IO Sensors", 
     1555        driver => "w83627hf", 
     1556        devid => 0x85, 
     1557        logdev => 0x0b, 
     1558      }, 
     1559      { 
     1560        name => "Winbond W83697HF/F/HG Super IO Sensors", 
     1561        driver => "w83627hf", 
     1562        devid => 0x60, 
     1563        logdev => 0x0b, 
     1564      }, 
     1565      { 
     1566        name => "Winbond W83697SF/UF/UG Super IO PWM", 
     1567        driver => "to-be-written", 
     1568        devid => 0x68, 
     1569        logdev => 0x0b, 
     1570      }, 
     1571      { 
     1572        name => "Winbond W83627EHF/EF/EHG/EG Super IO Sensors", 
     1573        driver => "w83627ehf", 
     1574        # W83627EHF datasheet says 0x886x but 0x8853 was seen, thus the 
     1575        # broader mask. W83627EHG was seen with ID 0x8863. 
     1576        devid => 0x8840, 
     1577        devid_mask => 0xFFC0, 
     1578        logdev => 0x0b, 
     1579        alias_detect => sub { winbond_alias_detect(@_, 0x2b, 0x3e); }, 
     1580      }, 
     1581      { 
     1582        name => "Winbond W83627DHG Super IO Sensors", 
     1583        driver => "w83627ehf", 
     1584        devid => 0xA020, 
     1585        devid_mask => 0xFFF0, 
     1586        logdev => 0x0b, 
     1587        alias_detect => sub { winbond_alias_detect(@_, 0x2b, 0x3e); }, 
     1588      }, 
     1589      { 
     1590        name => "Winbond W83L517D Super IO", 
     1591        driver => "not-a-sensor", 
     1592        devid => 0x61, 
     1593      }, 
     1594      { 
     1595        name => "Fintek F71805F/FG Super IO Sensors", 
     1596        driver => "f71805f", 
     1597        devid => 0x0406, 
     1598        logdev => 0x04, 
     1599      }, 
     1600      { 
     1601        name => "Fintek F71862FG Super IO Sensors", 
     1602        driver => "to-be-written", 
     1603        devid => 0x0601, 
     1604        logdev => 0x04, 
     1605      }, 
     1606      { 
     1607        name => "Fintek F71806FG/F71872FG Super IO Sensors", 
     1608        driver => "f71805f", 
     1609        devid => 0x0341, 
     1610        logdev => 0x04, 
     1611      }, 
     1612      { 
     1613        name => "Fintek F71858DG Super IO Sensors", 
     1614        driver => "to-be-written", 
     1615        devid => 0x0507, 
     1616        logdev => 0x02, 
     1617      }, 
     1618      { 
     1619        name => "Fintek F71882FG/F71883FG Super IO Sensors", 
     1620        driver => "f71882fg", 
     1621        devid => 0x0541, 
     1622        logdev => 0x04, 
     1623      }, 
     1624      { 
     1625        name => "Fintek F81216D Super IO", 
     1626        driver => "not-a-sensor", 
     1627        devid => 0x0208, 
     1628      }, 
     1629      { 
     1630        name => "Fintek F81218D Super IO", 
     1631        driver => "not-a-sensor", 
     1632        devid => 0x0206, 
     1633      }, 
     1634      { 
     1635        name => "Asus F8000 Super IO", 
     1636        driver => "f8000", 
     1637        devid => 0x0581, 
     1638        logdev => 0x04, 
     1639      }, 
     1640      { 
     1641        # Shouldn't be in this family, but seems to be still. 
     1642        name => "ITE IT8708F Super IO", 
     1643        driver => "not-a-sensor", 
     1644        devid => 0x8708, 
     1645      }, 
     1646); 
     1647 
     1648@superio_ids_ite = ( 
     1649      { 
     1650        name => "ITE IT8702F Super IO Sensors", 
     1651        driver => "to-be-written", 
     1652        devid => 0x8702, 
     1653        logdev => 0x04, 
     1654      }, 
     1655      { 
     1656        name => "ITE IT8705F Super IO Sensors", 
     1657        driver => "it87", 
     1658        devid => 0x8705, 
     1659        logdev => 0x04, 
     1660      }, 
     1661      { 
     1662        name => "ITE IT8712F Super IO Sensors", 
     1663        driver => "it87", 
     1664        devid => 0x8712, 
     1665        logdev => 0x04, 
     1666        alias_detect => sub { winbond_alias_detect(@_, 0x30, 0x45); }, 
     1667      }, 
     1668      { 
     1669        name => "ITE IT8716F Super IO Sensors", 
     1670        driver => "it87", 
     1671        devid => 0x8716, 
     1672        logdev => 0x04, 
     1673      }, 
     1674      { 
     1675        name => "ITE IT8718F Super IO Sensors", 
     1676        driver => "it87", 
     1677        devid => 0x8718, 
     1678        logdev => 0x04, 
     1679      }, 
     1680      { 
     1681        name => "ITE IT8720F Super IO Sensors", 
     1682        driver => "it87", 
     1683        devid => 0x8720, 
     1684        logdev => 0x04, 
     1685      }, 
     1686      { 
     1687        name => "ITE IT8726F Super IO Sensors", 
     1688        driver => "it87", 
     1689        devid => 0x8726, 
     1690        logdev => 0x04, 
     1691      }, 
     1692); 
     1693 
    11461694# Entries are grouped by family. Each family entry has the following fields: 
    11471695#  family: The family name 
     
    11611709      0x4e => [], 
    11621710    }, 
    1163     chips => 
    1164     [ 
    1165       { 
    1166         name => "Nat. Semi. PC8374L Super IO Sensors", 
    1167         driver => "to-be-written", 
    1168         devid => 0xf1, 
    1169         logdev => 0x08, 
    1170       }, 
    1171       { 
    1172         name => "Nat. Semi. PC87351 Super IO Fan Sensors", 
    1173         driver => "to-be-written", 
    1174         devid => 0xe2, 
    1175         logdev => 0x08, 
    1176       }, 
    1177       { 
    1178         name => "Nat. Semi. PC87360 Super IO Fan Sensors", 
    1179         driver => "pc87360", 
    1180         devid => 0xe1, 
    1181         logdev => 0x09, 
    1182       }, 
    1183       { 
    1184         name => "Nat. Semi. PC87363 Super IO Fan Sensors", 
    1185         driver => "pc87360", 
    1186         devid => 0xe8, 
    1187         logdev => 0x09, 
    1188       }, 
    1189       { 
    1190         name => "Nat. Semi. PC87364 Super IO Fan Sensors", 
    1191         driver => "pc87360", 
    1192         devid => 0xe4, 
    1193         logdev => 0x09, 
    1194       }, 
    1195       { 
    1196         name => "Nat. Semi. PC87365 Super IO Fan Sensors", 
    1197         driver => "pc87360", 
    1198         devid => 0xe5, 
    1199         logdev => 0x09, 
    1200       }, 
    1201       { 
    1202         name => "Nat. Semi. PC87365 Super IO Voltage Sensors", 
    1203         driver => "pc87360", 
    1204         devid => 0xe5, 
    1205         logdev => 0x0d, 
    1206       }, 
    1207       { 
    1208         name => "Nat. Semi. PC87365 Super IO Thermal Sensors", 
    1209         driver => "pc87360", 
    1210         devid => 0xe5, 
    1211         logdev => 0x0e, 
    1212       }, 
    1213       { 
    1214         name => "Nat. Semi. PC87366 Super IO Fan Sensors", 
    1215         driver => "pc87360", 
    1216         devid => 0xe9, 
    1217         logdev => 0x09, 
    1218       }, 
    1219       { 
    1220         name => "Nat. Semi. PC87366 Super IO Voltage Sensors", 
    1221         driver => "pc87360", 
    1222         devid => 0xe9, 
    1223         logdev => 0x0d, 
    1224       }, 
    1225       { 
    1226         name => "Nat. Semi. PC87366 Super IO Thermal Sensors", 
    1227         driver => "pc87360", 
    1228         devid => 0xe9, 
    1229         logdev => 0x0e, 
    1230       }, 
    1231       { 
    1232         name => "Nat. Semi. PC87372 Super IO Fan Sensors", 
    1233         driver => "to-be-written", 
    1234         devid => 0xf0, 
    1235         logdev => 0x09, 
    1236       }, 
    1237       { 
    1238         name => "Nat. Semi. PC87373 Super IO Fan Sensors", 
    1239         driver => "to-be-written", 
    1240         devid => 0xf3, 
    1241         logdev => 0x09, 
    1242       }, 
    1243       { 
    1244         name => "Nat. Semi. PC87591 Super IO", 
    1245         driver => "to-be-written", 
    1246         devid => 0xec, 
    1247         logdev => 0x0f, 
    1248       }, 
    1249       { 
    1250         name => "Nat. Semi. PC87317 Super IO", 
    1251         driver => "not-a-sensor", 
    1252         devid => 0xd0, 
    1253       }, 
    1254       { 
    1255         name => "Nat. Semi. PC97317 Super IO", 
    1256         driver => "not-a-sensor", 
    1257         devid => 0xdf, 
    1258       }, 
    1259       { 
    1260         name => "Nat. Semi. PC8739x Super IO", 
    1261         driver => "not-a-sensor", 
    1262         devid => 0xea, 
    1263       }, 
    1264       { 
    1265         name => "Nat. Semi. PC8741x Super IO", 
    1266         driver => "not-a-sensor", 
    1267         devid => 0xee, 
    1268       }, 
    1269       { 
    1270         name => "Nat. Semi. PC87427 Super IO Fan Sensors", 
    1271         driver => "pc87427", 
    1272         devid => 0xf2, 
    1273         logdev => 0x09, 
    1274       }, 
    1275       { 
    1276         name => "Nat. Semi. PC87427 Super IO Health Sensors", 
    1277         driver => "to-be-written", 
    1278         devid => 0xf2, 
    1279         logdev => 0x14, 
    1280       }, 
    1281     ], 
     1711    chips => \@superio_ids_natsemi, 
    12821712  }, 
    12831713  { 
     
    12881718      0x4e => [0x55], 
    12891719    }, 
    1290     chips => 
    1291     [ 
    1292       { 
    1293         name => "SMSC DME1737 Super IO", 
    1294         # Hardware monitoring features are accessed on the SMBus 
    1295         driver => "via-smbus-only", 
    1296         devid => 0x78, 
    1297       }, 
    1298       { 
    1299         name => "SMSC DME1737 Super IO", 
    1300         # The DME1737 shows up twice in this list because it can return either 
    1301         # 0x78 or 0x77 as its device ID. 
    1302         # Hardware monitoring features are accessed on the SMBus 
    1303         driver => "via-smbus-only", 
    1304         devid => 0x77, 
    1305       }, 
    1306       { 
    1307         name => "SMSC EMC2700LPC Super IO", 
    1308         # no datasheet 
    1309         devid => 0x67, 
    1310       }, 
    1311       { 
    1312         name => "SMSC FDC37B72x Super IO", 
    1313         driver => "not-a-sensor", 
    1314         devid => 0x4c, 
    1315       }, 
    1316       { 
    1317         name => "SMSC FDC37B78x Super IO", 
    1318         driver => "not-a-sensor", 
    1319         devid => 0x44, 
    1320       }, 
    1321       { 
    1322         name => "SMSC FDC37C672 Super IO", 
    1323         driver => "not-a-sensor", 
    1324         devid => 0x40, 
    1325       }, 
    1326       { 
    1327         name => "SMSC FDC37M707 Super IO", 
    1328         driver => "not-a-sensor", 
    1329         devid => 0x42, 
    1330       }, 
    1331       { 
    1332         name => "SMSC FDC37M81x Super IO", 
    1333         driver => "not-a-sensor", 
    1334         devid => 0x4d, 
    1335       }, 
    1336       { 
    1337         name => "SMSC LPC47B27x Super IO Fan Sensors", 
    1338         driver => "smsc47m1", 
    1339         devid => 0x51, 
    1340         logdev => 0x0a, 
    1341       }, 
    1342       { 
    1343         name => "SMSC LPC47B34x Super IO", 
    1344         driver => "not-a-sensor", 
    1345         devid => 0x56, 
    1346       }, 
    1347       { 
    1348         name => "SMSC LPC47B357/M967 Super IO", 
    1349         driver => "not-a-sensor", 
    1350         devid => 0x5d, 
    1351       }, 
    1352       { 
    1353         name => "SMSC LPC47B367-NC Super IO", 
    1354         driver => "not-a-sensor", 
    1355         devid => 0x6d, 
    1356       }, 
    1357       { 
    1358         name => "SMSC LPC47B37x Super IO Fan Sensors", 
    1359         driver => "to-be-written", 
    1360         devid => 0x52, 
    1361         logdev => 0x0a, 
    1362       }, 
    1363       { 
    1364         name => "SMSC LPC47B397-NC Super IO", 
    1365         driver => "smsc47b397", 
    1366         devid => 0x6f, 
    1367         logdev => 0x08, 
    1368       }, 
    1369       { 
    1370         name => "SMSC LPC47M10x/112/13x Super IO Fan Sensors", 
    1371         driver => "smsc47m1", 
    1372         devid => 0x59, 
    1373         logdev => 0x0a, 
    1374       }, 
    1375       { 
    1376         name => "SMSC LPC47M14x Super IO Fan Sensors", 
    1377         driver => "smsc47m1", 
    1378         devid => 0x5f, 
    1379         logdev => 0x0a, 
    1380       }, 
    1381       { 
    1382         name => "SMSC LPC47M15x/192/997 Super IO Fan Sensors", 
    1383         driver => "smsc47m1", 
    1384         devid => 0x60, 
    1385         logdev => 0x0a, 
    1386       }, 
    1387       { 
    1388         name => "SMSC LPC47M172 Super IO Fan Sensors", 
    1389         driver => "to-be-written", 
    1390         devid => 0x14, 
    1391         logdev => 0x0a, 
    1392       }, 
    1393       { 
    1394         name => "SMSC LPC47M182 Super IO Fan Sensors", 
    1395         driver => "to-be-written", 
    1396         devid => 0x74, 
    1397         logdev => 0x0a, 
    1398       }, 
    1399       { 
    1400         name => "SMSC LPC47M233 Super IO Sensors", 
    1401         driver => "smsc47m1", 
    1402         devid => 0x6b80, 
    1403         devid_mask => 0xff80, 
    1404         logdev => 0x0a, 
    1405       }, 
    1406       { 
    1407         name => "SMSC LPC47M292 Super IO Fan Sensors", 
    1408         driver => "smsc47m1", 
    1409         devid => 0x6b00, 
    1410         devid_mask => 0xff80, 
    1411         logdev => 0x0a, 
    1412       }, 
    1413       { 
    1414         name => "SMSC LPC47M584-NC Super IO", 
    1415         # No datasheet 
    1416         devid => 0x76, 
    1417       }, 
    1418       { 
    1419         name => "SMSC LPC47N252 Super IO Fan Sensors", 
    1420         driver => "to-be-written", 
    1421         devid => 0x0e, 
    1422         logdev => 0x09, 
    1423       }, 
    1424       { 
    1425         name => "SMSC LPC47S42x Super IO Fan Sensors", 
    1426         driver => "to-be-written", 
    1427         devid => 0x57, 
    1428         logdev => 0x0a, 
    1429       }, 
    1430       { 
    1431         name => "SMSC LPC47S45x Super IO Fan Sensors", 
    1432         driver => "to-be-written", 
    1433         devid => 0x62, 
    1434         logdev => 0x0a, 
    1435       }, 
    1436       { 
    1437         name => "SMSC LPC47U33x Super IO Fan Sensors", 
    1438         driver => "to-be-written", 
    1439         devid => 0x54, 
    1440         logdev => 0x0a, 
    1441       }, 
    1442       { 
    1443         name => "SMSC SCH3112 Super IO", 
    1444         driver => "dme1737", 
    1445         devid => 0x7c, 
    1446         logdev => 0x0a, 
    1447       }, 
    1448       { 
    1449         name => "SMSC SCH3114 Super IO", 
    1450         driver => "dme1737", 
    1451         devid => 0x7d, 
    1452         logdev => 0x0a, 
    1453       }, 
    1454       { 
    1455         name => "SMSC SCH3116 Super IO", 
    1456         driver => "dme1737", 
    1457         devid => 0x7f, 
    1458         logdev => 0x0a, 
    1459       }, 
    1460       { 
    1461         name => "SMSC SCH4307 Super IO Fan Sensors", 
    1462         driver => "to-be-written", 
    1463         devid => 0x90, 
    1464         logdev => 0x08, 
    1465       }, 
    1466       { 
    1467         name => "SMSC SCH5027D-NW Super IO", 
    1468         # Hardware monitoring features are accessed on the SMBus 
    1469         driver => "via-smbus-only", 
    1470         devid => 0x89, 
    1471       }, 
    1472       { 
    1473         name => "SMSC SCH5127 Super IO", 
    1474         driver => "dme1737", 
    1475         devid => 0x86, 
    1476         logdev => 0x0a, 
    1477       }, 
    1478       { 
    1479         name => "SMSC SCH5307-NS Super IO", 
    1480         driver => "smsc47b397", 
    1481         devid => 0x81, 
    1482         logdev => 0x08, 
    1483       }, 
    1484       { 
    1485         name => "SMSC SCH5317 Super IO", 
    1486         driver => "smsc47b397", 
    1487         devid => 0x85, 
    1488         logdev => 0x08, 
    1489       }, 
    1490       { 
    1491         name => "SMSC SCH5317 Super IO", 
    1492         # The SCH5317 shows up twice in this list because it can return either 
    1493         # 0x85 or 0x8c as its device ID. 
    1494         driver => "smsc47b397", 
    1495         devid => 0x8c, 
    1496         logdev => 0x08, 
    1497       }, 
    1498       { 
    1499         name => "SMSC SCH5504-NS Super IO", 
    1500         # No datasheet 
    1501         driver => "not-a-sensor", 
    1502         devid => 0x79, 
    1503       }, 
    1504       { 
    1505         name => "SMSC SCH5514D-NS Super IO", 
    1506         # No datasheet 
    1507         driver => "not-a-sensor", 
    1508         devid => 0x83, 
    1509       }, 
    1510     ], 
     1720    chips => \@superio_ids_smsc, 
    15111721    # Non-standard SMSC detection callback and chip list. These chips differ 
    15121722    # from the standard ones listed above in that the device ID register 
    15131723    # address is 0x0d instead of 0x20 (as specified by the ISA PNP spec). 
    15141724    ns_detect => \&smsc_ns_detect_superio, 
    1515     ns_chips => 
    1516     [ 
    1517       { 
    1518         name => "SMSC FDC37C665 Super IO", 
    1519         driver => "not-a-sensor", 
    1520         devid => 0x65, 
    1521       }, 
    1522       { 
    1523         name => "SMSC FDC37C666 Super IO", 
    1524         driver => "not-a-sensor", 
    1525         devid => 0x66, 
    1526       }, 
    1527       { 
    1528         name => "SMSC FDC37C669 Super IO", 
    1529         driver => "not-a-sensor", 
    1530         devid => 0x03, 
    1531       }, 
    1532       { 
    1533         name => "SMSC FDC37N769 Super IO", 
    1534         driver => "not-a-sensor", 
    1535         devid => 0x28, 
    1536       }, 
    1537       { 
    1538         name => "SMSC LPC47N227 Super IO", 
    1539         driver => "not-a-sensor", 
    1540         devid => 0x5a, 
    1541       }, 
    1542     ], 
     1725    ns_chips => \@superio_ids_smsc_ns, 
    15431726  }, 
    15441727  { 
     
    15501733      0x4e => [0x87, 0x87], 
    15511734    }, 
    1552     chips => 
    1553     [ 
    1554       { 
    1555         name => "VIA VT1211 Super IO Sensors", 
    1556         driver => "vt1211", 
    1557         devid => 0x3c, 
    1558         logdev => 0x0b, 
    1559         alias_detect => sub { vt1211_alias_detect(@_); }, 
    1560       }, 
    1561       { 
    1562         name => "VIA VT1212 Super IO Lite",   # in 100 pin TQFP package 
    1563         driver => "not-a-sensor", 
    1564         devid => 0x3e, 
    1565       }, 
    1566       { 
    1567         name => "VIA VT1212 Super IO Lite",   # in 48 pin LQFP package 
    1568         driver => "not-a-sensor", 
    1569         devid => 0x3f, 
    1570       }, 
    1571       { 
    1572         name => "Winbond W83627HF/F/HG/G Super IO Sensors", 
    1573         driver => "w83627hf", 
    1574         devid => 0x52, 
    1575         logdev => 0x0b, 
    1576         alias_detect => sub { winbond_alias_detect(@_, 0x2b, 0x3d); }, 
    1577       }, 
    1578       { 
    1579         name => "Winbond W83627THF/THG Super IO Sensors", 
    1580         driver => "w83627hf", 
    1581         devid => 0x82, 
    1582         logdev => 0x0b, 
    1583       }, 
    1584       { 
    1585         name => "Winbond W83637HF/HG Super IO Sensors", 
    1586         driver => "w83627hf", 
    1587         devid => 0x70, 
    1588         logdev => 0x0b, 
    1589       }, 
    1590       { 
    1591         name => "Winbond W83687THF Super IO Sensors", 
    1592         driver => "w83627hf", 
    1593         devid => 0x85, 
    1594         logdev => 0x0b, 
    1595       }, 
    1596       { 
    1597         name => "Winbond W83697HF/F/HG Super IO Sensors", 
    1598         driver => "w83627hf", 
    1599         devid => 0x60, 
    1600         logdev => 0x0b, 
    1601       }, 
    1602       { 
    1603         name => "Winbond W83697SF/UF/UG Super IO PWM", 
    1604         driver => "to-be-written", 
    1605         devid => 0x68, 
    1606         logdev => 0x0b, 
    1607       }, 
    1608       { 
    1609         name => "Winbond W83627EHF/EF/EHG/EG Super IO Sensors", 
    1610         driver => "w83627ehf", 
    1611         # W83627EHF datasheet says 0x886x but 0x8853 was seen, thus the 
    1612         # broader mask. W83627EHG was seen with ID 0x8863. 
    1613         devid => 0x8840, 
    1614         devid_mask => 0xFFC0, 
    1615         logdev => 0x0b, 
    1616         alias_detect => sub { winbond_alias_detect(@_, 0x2b, 0x3e); }, 
    1617       }, 
    1618       { 
    1619         name => "Winbond W83627DHG Super IO Sensors", 
    1620         driver => "w83627ehf", 
    1621         devid => 0xA020, 
    1622         devid_mask => 0xFFF0, 
    1623         logdev => 0x0b, 
    1624         alias_detect => sub { winbond_alias_detect(@_, 0x2b, 0x3e); }, 
    1625       }, 
    1626       { 
    1627         name => "Winbond W83L517D Super IO", 
    1628         driver => "not-a-sensor", 
    1629         devid => 0x61, 
    1630       }, 
    1631       { 
    1632         name => "Fintek F71805F/FG Super IO Sensors", 
    1633         driver => "f71805f", 
    1634         devid => 0x0406, 
    1635         logdev => 0x04, 
    1636       }, 
    1637       { 
    1638         name => "Fintek F71862FG Super IO Sensors", 
    1639         driver => "to-be-written", 
    1640         devid => 0x0601, 
    1641         logdev => 0x04, 
    1642       }, 
    1643       { 
    1644         name => "Fintek F71806FG/F71872FG Super IO Sensors", 
    1645         driver => "f71805f", 
    1646         devid => 0x0341, 
    1647         logdev => 0x04, 
    1648       }, 
    1649       { 
    1650         name => "Fintek F71858DG Super IO Sensors", 
    1651         driver => "to-be-written", 
    1652         devid => 0x0507, 
    1653         logdev => 0x02, 
    1654       }, 
    1655       { 
    1656         name => "Fintek F71882FG/F71883FG Super IO Sensors", 
    1657         driver => "f71882fg", 
    1658         devid => 0x0541, 
    1659         logdev => 0x04, 
    1660       }, 
    1661       { 
    1662         name => "Fintek F81216D Super IO", 
    1663         driver => "not-a-sensor", 
    1664         devid => 0x0208, 
    1665       }, 
    1666       { 
    1667         name => "Fintek F81218D Super IO", 
    1668         driver => "not-a-sensor", 
    1669         devid => 0x0206, 
    1670       }, 
    1671       { 
    1672         name => "Asus F8000 Super IO", 
    1673         driver => "f8000", 
    1674         devid => 0x0581, 
    1675         logdev => 0x04, 
    1676       }, 
    1677       { 
    1678         # Shouldn't be in this family, but seems to be still. 
    1679         name => "ITE IT8708F Super IO", 
    1680         driver => "not-a-sensor", 
    1681         devid => 0x8708, 
    1682       }, 
    1683     ], 
     1735    chips => \@superio_ids_winbond, 
    16841736  }, 
    16851737  { 
     
    16911743      0x4e => [0x87, 0x01, 0x55, 0xaa], 
    16921744    }, 
    1693     chips => 
    1694     [ 
    1695       { 
    1696         name => "ITE IT8702F Super IO Sensors", 
    1697         driver => "to-be-written", 
    1698         devid => 0x8702, 
    1699         logdev => 0x04, 
    1700       }, 
    1701       { 
    1702         name => "ITE IT8705F Super IO Sensors", 
    1703         driver => "it87", 
    1704         devid => 0x8705, 
    1705         logdev => 0x04, 
    1706       }, 
    1707       { 
    1708         name => "ITE IT8712F Super IO Sensors", 
    1709         driver => "it87", 
    1710         devid => 0x8712, 
    1711         logdev => 0x04, 
    1712         alias_detect => sub { winbond_alias_detect(@_, 0x30, 0x45); }, 
    1713       }, 
    1714       { 
    1715         name => "ITE IT8716F Super IO Sensors", 
    1716         driver => "it87", 
    1717         devid => 0x8716, 
    1718         logdev => 0x04, 
    1719       }, 
    1720       { 
    1721         name => "ITE IT8718F Super IO Sensors", 
    1722         driver => "it87", 
    1723         devid => 0x8718, 
    1724         logdev => 0x04, 
    1725       }, 
    1726       { 
    1727         name => "ITE IT8720F Super IO Sensors", 
    1728         driver => "it87", 
    1729         devid => 0x8720, 
    1730         logdev => 0x04, 
    1731       }, 
    1732       { 
    1733         name => "ITE IT8726F Super IO Sensors", 
    1734         driver => "it87", 
    1735         devid => 0x8726, 
    1736         logdev => 0x04, 
    1737       }, 
    1738     ], 
     1745    chips => \@superio_ids_ite, 
    17391746  }, 
    17401747);