Hi Jonathan, On Fri, 2011-02-25 at 15:42 -0500, Jonathan Cameron wrote: > One trivial formatting nitpick. > Dug out datasheet for this one.. > I'm a little unclear how value from there map to those stored in here... [ ... ] > > +static struct pmbus_driver_info max34440_info[] = { > > + [max34440] = { > > + .pages = 14, > > + .direct[PSC_VOLTAGE_IN] = true, > > + .direct[PSC_VOLTAGE_OUT] = true, > > + .direct[PSC_TEMPERATURE] = true, > > + .direct[PSC_CURRENT_OUT] = true, > > + .m[PSC_VOLTAGE_IN] = 1, > > + .b[PSC_VOLTAGE_IN] = 0, > > + .R[PSC_VOLTAGE_IN] = 3, > > + .m[PSC_VOLTAGE_OUT] = 1, > > + .b[PSC_VOLTAGE_OUT] = 0, > > + .R[PSC_VOLTAGE_OUT] = 3, > > + .m[PSC_CURRENT_OUT] = 1, > > + .b[PSC_CURRENT_OUT] = 0, > > + .R[PSC_CURRENT_OUT] = 3, > Table 3 of datasheet says R for current is 0... I may be missing > something though! At least this one has a relatively simple reason ;). The base unit (to which R is applied to) in the datasheet is mV and mA. The base unit used by max8688 and max16064 is V and A. Chips in linear mode also use V and A. I had the choice of either adjusting the code to expect mV and mA for all chips, or to expect V and A for all chips. I decided to use the latter for consistency, and to adjust R in the core driver to the units expected to be reported in the sysfs attributes. For max34440/max34441, the adjustment ends up being 0 either way (3 + (-3) in one direction and (-3) + 3 in the other). Another option would be to not do any sysfs related adjustments in the core driver, but to do all adjustments via platform data instead. I decided against that because the code to handle linear mode (which expects V and A) would no longer match the code to handle direct mode, which might cause even more confusion. Thanks, Guenter _______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors