[lm-sensors] PMBus support in Linux

Guenter Roeck guenter.roeck at ericsson.com
Sat May 29 19:12:29 CEST 2010

On Sat, May 29, 2010 at 11:47:41AM -0400, Wolfram Sang wrote:
> > Yes. PMBus uses i2c as transport, so it can use the existing i2c/smbus infrastructure. 
> > Data reported is voltage, temperature, current, power, and fan data as available
> > from the individual chip. Chips support a chip dependent number of channels.
> > Values reported are typically in the form of X = Y * 2^N, ie there is a mantissa
> > and an exponent.
> > 
> > So I would say it maps pretty well; I don't really see a substantial difference
> > to other HW monitoring chips in that respect. Key difference may be that PMBus devices 
> > typically also have a control component, but I don't have plans to implement that,
> > at least not for now.
> I just had a glimpse, but I came to a similar conclusion. As I further
> understood, PMBus devices support a standard range of commands with the
> possibility of manufacturer extenstions.
> So, the approach I see (unless I miss something) would be writing an
> hwmon-I2C-driver named pmbus-devices.c or so which covers the generic
> functionality and provides some hooks for manufacturer extensions, if those are
> necessary? (Altough I'd hope a number of devices would be covered by the
> generic driver) Makes sense?
That would be one option. It would require either a register() API call, or a table
of supported chips, or a combination of both, to identify how many channels
(or pages, in PMBus terminology) per chip are supported and to identify supported

The other option would be to write separate drivers (one for each chip) and not provide
a common infrastructure. Not sure if that is a good idea, though; I personally prefer
the first option.


More information about the lm-sensors mailing list