···66 Prefix 'lm93'77 Addresses scanned: I2C 0x2c-0x2e88 Datasheet: http://www.national.com/ds.cgi/LM/LM93.pdf99+ * National Semiconductor LM941010+ Prefix 'lm94'1111+ Addresses scanned: I2C 0x2c-0x2e1212+ Datasheet: http://www.national.com/ds.cgi/LM/LM94.pdf9131014Authors:1115 Mark M. Hoffman <mhoffman@lightlink.com>···5955(i.e. smart tachometer mode). It also adds measurement and control support6056for dynamic Vccp monitoring and PROCHOT. It is designed to monitor a dual6157processor Xeon class motherboard with a minimum of external components.5858+5959+LM94 is also supported in LM93 compatible mode. Extra sensors and features of6060+LM94 are not supported.626163626463User Interface
+2-2
drivers/hwmon/Kconfig
···618618 depends on I2C619619 select HWMON_VID620620 help621621- If you say yes here you get support for National Semiconductor LM93622622- sensor chips.621621+ If you say yes here you get support for National Semiconductor LM93,622622+ LM94, and compatible sensor chips.623623624624 This driver can also be built as a module. If so, the module625625 will be called lm93.
+19-2
drivers/hwmon/lm93.c
···135135#define LM93_MFR_ID 0x73136136#define LM93_MFR_ID_PROTOTYPE 0x72137137138138+/* LM94 REGISTER VALUES */139139+#define LM94_MFR_ID_2 0x7a140140+#define LM94_MFR_ID 0x79141141+#define LM94_MFR_ID_PROTOTYPE 0x78142142+138143/* SMBus capabilities */139144#define LM93_SMBUS_FUNC_FULL (I2C_FUNC_SMBUS_BYTE_DATA | \140145 I2C_FUNC_SMBUS_WORD_DATA | I2C_FUNC_SMBUS_BLOCK_DATA)···25092504{25102505 struct i2c_adapter *adapter = client->adapter;25112506 int mfr, ver;25072507+ const char *name;2512250825132509 if (!i2c_check_functionality(adapter, LM93_SMBUS_FUNC_MIN))25142510 return -ENODEV;···25232517 }2524251825252519 ver = lm93_read_byte(client, LM93_REG_VER);25262526- if (ver != LM93_MFR_ID && ver != LM93_MFR_ID_PROTOTYPE) {25202520+ switch (ver) {25212521+ case LM93_MFR_ID:25222522+ case LM93_MFR_ID_PROTOTYPE:25232523+ name = "lm93";25242524+ break;25252525+ case LM94_MFR_ID_2:25262526+ case LM94_MFR_ID:25272527+ case LM94_MFR_ID_PROTOTYPE:25282528+ name = "lm94";25292529+ break;25302530+ default:25272531 dev_dbg(&adapter->dev,25282532 "detect failed, bad version id 0x%02x!\n", ver);25292533 return -ENODEV;25302534 }2531253525322532- strlcpy(info->type, "lm93", I2C_NAME_SIZE);25362536+ strlcpy(info->type, name, I2C_NAME_SIZE);25332537 dev_dbg(&adapter->dev,"loading %s at %d,0x%02x\n",25342538 client->name, i2c_adapter_id(client->adapter),25352539 client->addr);···2618260226192603static const struct i2c_device_id lm93_id[] = {26202604 { "lm93", 0 },26052605+ { "lm94", 0 },26212606 { }26222607};26232608MODULE_DEVICE_TABLE(i2c, lm93_id);