Loading drivers/hwmon/Kconfig +3 −2 Original line number Diff line number Diff line Loading @@ -694,10 +694,11 @@ config SENSORS_LTC4261 be called ltc4261. config SENSORS_LM95241 tristate "National Semiconductor LM95241 sensor chip" tristate "National Semiconductor LM95241 and compatibles" depends on I2C help If you say yes here you get support for LM95241 sensor chip. If you say yes here you get support for LM95231 and LM95241 sensor chips. This driver can also be built as a module. If so, the module will be called lm95241. Loading drivers/hwmon/lm95241.c +19 −12 Original line number Diff line number Diff line Loading @@ -74,8 +74,9 @@ static const unsigned short normal_i2c[] = { #define TT_OFF 0 #define TT_ON 1 #define TT_MASK 7 #define MANUFACTURER_ID 0x01 #define DEFAULT_REVISION 0xA4 #define NATSEMI_MAN_ID 0x01 #define LM95231_CHIP_ID 0xA1 #define LM95241_CHIP_ID 0xA4 static const u8 lm95241_reg_address[] = { LM95241_REG_R_LOCAL_TEMPH, Loading Loading @@ -338,20 +339,25 @@ static int lm95241_detect(struct i2c_client *new_client, struct i2c_board_info *info) { struct i2c_adapter *adapter = new_client->adapter; int address = new_client->addr; const char *name; int mfg_id, chip_id; if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) return -ENODEV; if ((i2c_smbus_read_byte_data(new_client, LM95241_REG_R_MAN_ID) == MANUFACTURER_ID) && (i2c_smbus_read_byte_data(new_client, LM95241_REG_R_CHIP_ID) == DEFAULT_REVISION)) { name = DEVNAME; } else { dev_dbg(&adapter->dev, "LM95241 detection failed at 0x%02x\n", address); mfg_id = i2c_smbus_read_byte_data(new_client, LM95241_REG_R_MAN_ID); if (mfg_id != NATSEMI_MAN_ID) return -ENODEV; chip_id = i2c_smbus_read_byte_data(new_client, LM95241_REG_R_CHIP_ID); switch (chip_id) { case LM95231_CHIP_ID: name = "lm95231"; break; case LM95241_CHIP_ID: name = "lm95241"; break; default: return -ENODEV; } Loading Loading @@ -431,7 +437,8 @@ static int lm95241_remove(struct i2c_client *client) /* Driver data (common to all clients) */ static const struct i2c_device_id lm95241_id[] = { { DEVNAME, 0 }, { "lm95231", 0 }, { "lm95241", 0 }, { } }; MODULE_DEVICE_TABLE(i2c, lm95241_id); Loading Loading
drivers/hwmon/Kconfig +3 −2 Original line number Diff line number Diff line Loading @@ -694,10 +694,11 @@ config SENSORS_LTC4261 be called ltc4261. config SENSORS_LM95241 tristate "National Semiconductor LM95241 sensor chip" tristate "National Semiconductor LM95241 and compatibles" depends on I2C help If you say yes here you get support for LM95241 sensor chip. If you say yes here you get support for LM95231 and LM95241 sensor chips. This driver can also be built as a module. If so, the module will be called lm95241. Loading
drivers/hwmon/lm95241.c +19 −12 Original line number Diff line number Diff line Loading @@ -74,8 +74,9 @@ static const unsigned short normal_i2c[] = { #define TT_OFF 0 #define TT_ON 1 #define TT_MASK 7 #define MANUFACTURER_ID 0x01 #define DEFAULT_REVISION 0xA4 #define NATSEMI_MAN_ID 0x01 #define LM95231_CHIP_ID 0xA1 #define LM95241_CHIP_ID 0xA4 static const u8 lm95241_reg_address[] = { LM95241_REG_R_LOCAL_TEMPH, Loading Loading @@ -338,20 +339,25 @@ static int lm95241_detect(struct i2c_client *new_client, struct i2c_board_info *info) { struct i2c_adapter *adapter = new_client->adapter; int address = new_client->addr; const char *name; int mfg_id, chip_id; if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) return -ENODEV; if ((i2c_smbus_read_byte_data(new_client, LM95241_REG_R_MAN_ID) == MANUFACTURER_ID) && (i2c_smbus_read_byte_data(new_client, LM95241_REG_R_CHIP_ID) == DEFAULT_REVISION)) { name = DEVNAME; } else { dev_dbg(&adapter->dev, "LM95241 detection failed at 0x%02x\n", address); mfg_id = i2c_smbus_read_byte_data(new_client, LM95241_REG_R_MAN_ID); if (mfg_id != NATSEMI_MAN_ID) return -ENODEV; chip_id = i2c_smbus_read_byte_data(new_client, LM95241_REG_R_CHIP_ID); switch (chip_id) { case LM95231_CHIP_ID: name = "lm95231"; break; case LM95241_CHIP_ID: name = "lm95241"; break; default: return -ENODEV; } Loading Loading @@ -431,7 +437,8 @@ static int lm95241_remove(struct i2c_client *client) /* Driver data (common to all clients) */ static const struct i2c_device_id lm95241_id[] = { { DEVNAME, 0 }, { "lm95231", 0 }, { "lm95241", 0 }, { } }; MODULE_DEVICE_TABLE(i2c, lm95241_id); Loading