diff --git a/kernel/chips/lm85.c b/kernel/chips/lm85.c index 8fb26117..e03513cb 100644 --- a/kernel/chips/lm85.c +++ b/kernel/chips/lm85.c @@ -74,7 +74,7 @@ static unsigned int normal_isa[] = { SENSORS_ISA_END }; static unsigned int normal_isa_range[] = { SENSORS_ISA_END }; /* Insmod parameters */ -SENSORS_INSMOD_5(lm85b, lm85c, adm1027, adt7463, emc6d100); +SENSORS_INSMOD_6(lm85b, lm85c, adm1027, adt7463, emc6d100, emc6d102); /* Many LM85 constants specified below */ @@ -117,6 +117,7 @@ SENSORS_INSMOD_5(lm85b, lm85c, adm1027, adt7463, emc6d100); #define LM85_VERSTEP_ADT7463C 0x6A #define LM85_VERSTEP_EMC6D100_A0 0x60 #define LM85_VERSTEP_EMC6D100_A1 0x61 +#define LM85_VERSTEP_EMC6D102 0x65 #define LM85_REG_CONFIG 0x40 @@ -794,6 +795,9 @@ int lm85_detect(struct i2c_adapter *adapter, int address, printk("lm85: Unrecgonized version/stepping 0x%02x" " Defaulting to Generic LM85.\n", verstep ); kind = any_chip ; + } else if( company == LM85_COMPANY_SMSC + && verstep == LM85_VERSTEP_EMC6D102) { + kind = emc6d102; } else if( company == LM85_COMPANY_SMSC && (verstep == LM85_VERSTEP_EMC6D100_A0 || verstep == LM85_VERSTEP_EMC6D100_A1) ) { @@ -867,6 +871,11 @@ int lm85_detect(struct i2c_adapter *adapter, int address, memcpy(template, emc6d100_specific, sizeof(emc6d100_specific)); template_used = CTLTBL_EMC6D100 ; break ; + case emc6d102 : + type_name = "emc6d102"; + strcpy(new_client->name, "SMSC EMC6D102"); + template_used = 0; + break; default : printk("lm85: Internal error, invalid kind (%d)!", kind); err = -EFAULT ;