On Sun, 22 Jan 2012 15:43:31 -0800, Guenter Roeck wrote: > GMT G781 and G781-1 are ADM1032-compatible temperature sensor chips. Add support > to the LM90 driver. > > Cc: Mike Gorchak <lestat@xxxxxxxx> > Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx> > --- > Compile-tested only. > > drivers/hwmon/lm90.c | 16 +++++++++++++++- > 1 files changed, 15 insertions(+), 1 deletions(-) You'll also have to update Documentation/hwmon/lm90, Kconfig, the header comment of lm90.c and the address information comment right before normal_i2c[] in that file. > > diff --git a/drivers/hwmon/lm90.c b/drivers/hwmon/lm90.c > index 2e207de..7694b98 100644 > --- a/drivers/hwmon/lm90.c > +++ b/drivers/hwmon/lm90.c > @@ -107,7 +107,7 @@ static const unsigned short normal_i2c[] = { > 0x4d, 0x4e, 0x4f, I2C_CLIENT_END }; > > enum chips { lm90, adm1032, lm99, lm86, max6657, max6659, adt7461, max6680, > - max6646, w83l771, max6696, sa56004 }; > + max6646, w83l771, max6696, sa56004, g781 }; > > /* > * The LM90 registers > @@ -184,6 +184,7 @@ static const struct i2c_device_id lm90_id[] = { > { "adm1032", adm1032 }, > { "adt7461", adt7461 }, > { "adt7461a", adt7461 }, > + { "g781", g781 }, > { "lm90", lm90 }, > { "lm86", lm86 }, > { "lm89", lm86 }, > @@ -229,6 +230,12 @@ static const struct lm90_params lm90_params[] = { > .alert_alarms = 0x7c, > .max_convrate = 10, > }, > + [g781] = { > + .flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT > + | LM90_HAVE_BROKEN_ALERT, How do you know it has broken alert? Playing it safe, or does anything in the datasheet suggest so? So far, only Analog Devices chips are known to need this. I'd rather have Mike test first, and only put this flag if really needed (it has a cost.) > + .alert_alarms = 0x7c, > + .max_convrate = 8, > + }, > [lm86] = { > .flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT, > .alert_alarms = 0x7b, > @@ -1291,6 +1298,13 @@ static int lm90_detect(struct i2c_client *client, > && convrate <= 0x09) { > name = "sa56004"; > } > + } else > + if (man_id == 0x47) { /* GMT */ > + if (convrate <= 0x08 > + && (config1 & 0x3F) == 0x00 Would be nice to use the same alignment logic as the rest of the code in this function, even though it might not be your preferred one. > + && ((address == 0x4C && chip_id == 0x01) /* G781 */ > + || (address == 0x4D && chip_id == 0x03))) /* G781-1 */ As for the sensors-detect patch, 0x01 is the right value for both variants of the chip. > + name = "g781"; > } > > if (!name) { /* identification failed */ -- Jean Delvare _______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors