[lm-sensors] [PATCH RESEND] hwmon: lm70: TI TMP121 support.

Manuel Lauss mano at roarinelk.homelinux.net
Thu Oct 23 15:13:23 CEST 2008


Hello Jean,

On Thu, Oct 23, 2008 at 02:57:10PM +0200, Jean Delvare wrote:
> > +  * Texas Instruments TMP121/TMP123
> > +    Datasheet: http://www.ti.com/lit/gpn/tmp121
> 
> I'd rather link to:
> http://focus.ti.com/docs/prod/folders/print/tmp121.html
> Where people can see a lot of useful information about the chip, and
> then download the datasheet.

done; (the chip isn't _that_ interesting or special ;-) )


> > +The TMP121 is very similar; main differences are 4 wire SPI interface,
> > +and 13bit temperature data (0.0625 celsius resolution).
> 
> 13-bit, degree Celsius

> > +	switch (p_lm70->chip) {
> > +	case LM70_CHIP_LM70:
> > +		raw = (rxbuf[1] << 8) + rxbuf[0];
> > +		dev_dbg(dev, "raw=0x%x\n", raw);
> 
> This debug statement is common to all cases so it could be moved
> outside of the switch block.

> > +	case LM70_CHIP_TMP121:
> > +		raw = (rxbuf[0] << 8) + rxbuf[1];
> > +		dev_dbg(dev, "raw=0x%x\n", raw);
> > +		val = (raw / 8) * 625 / 10;
> > +		break;
> > +
> > +	default:
> > +		raw = 0;
> 
> This default case is broken, it sets raw but not val, while what the
> following code uses is val. Anyway, I don't think you really need a
> default here, the chip type should have already been checked as you
> reach this portion of the driver code.
 
> > -	return sprintf(buf, "lm70\n");
> > +	struct spi_device *spi = to_spi_device(dev);
> > +	struct lm70 *p_lm70 = dev_get_drvdata(&spi->dev);
> 
> Err, what about just:
> 	struct lm70 *p_lm70 = dev_get_drvdata(dev);
> ? You don't use spi anywhere else.

I fixed everything you pointed out above;


> > --- /dev/null
> > +++ b/include/linux/spi/lm70.h
> > @@ -0,0 +1,15 @@
> > +/*
> > + * LM70 platform data
> > + */
> > +
> > +#ifndef _LM70_H_
> > +#define _LM70_H_
> > +
> > +#define LM70_CHIP_LM70		0
> > +#define LM70_CHIP_TMP121	1
> > +
> > +struct lm70_platform_data {
> > +	unsigned int chip;
> > +};
> > +
> > +#endif
> 
> I don't know much about the SPI side of things so I would like someone
> else to comment on that aspect of the patch (in particular the way
> different device types are supported by the same driver.) David, can
> you please take a look and let us know if you have any objection?

I'd be more than happy to just use a number cast to void * for 
spi platform_data and get rid of this header.  I'm not sure however
whether this is acceptable style for kernel code.

Thank you!
	Manuel Lauss




More information about the lm-sensors mailing list