Re: [PATCH] hwmon: (lm90) Add support for G781 and G781-1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux