Re: [PATCHv1 1/2] rx51_battery: convert to iio consumer

From: Sebastian Reichel
Date: Fri Feb 28 2014 - 16:09:14 EST


On Fri, Feb 28, 2014 at 09:32:12PM +0100, Belisko Marek wrote:
> On Fri, Feb 28, 2014 at 3:05 AM, Sebastian Reichel <sre@xxxxxxxxxx> wrote:
> > On Thu, Feb 27, 2014 at 10:34:35PM +0100, Belisko Marek wrote:
> >> Well I've tried and it's worse :). I got during booting:
> >> [ 2.218383] ERROR: could not get IIO channel /battery:temp(0)
> >> [ 2.224639] platform battery.4: Driver twl4030_madc_battery
> >> requests probe deferral
> >> Not sure if it's just error or warning but temp is always reported as
> >> 0 (and also other values in sysfs).
> >
> > This is an error, which basically means, that twl4030-madc has not
> > yet been loaded. Do you get proper values when you use the old madc
> > API with the patchset applied?
>
> It works without converting to iio consumer (at least I get some
> reasonable values). With conversion it fails with above error. I
> recheck (add printk to iio twl4030-madc) that madc driver is
> loaded. Could this be that twl4030_madc_battery is loaded earlier
> then twl4030_madc and than it fails to get iio channels?

The error above implies, that twl4030-madc has not been loaded when
twl4030-madc-battery was loaded. This iio_channel_get() fails and
returns -EPROBE_DEFER. This results in twl4030-madc-battery probe
function returning -EPROBE_DEFER. Thus you can simply ignore the
error if the twl4030-madc-battery driver is loaded later.

I guess the easiest way to debug the problem is adding some
dev_dbg() at the start of twl4030_madc_conversion(), which
prints out the entries of twl4030_madc_request. Currently
the IIO API simply calls twl4030_madc_request(), so you
should be able to find out the difference.

Also: Can you post you DTS? I use the following for Nokia N900:

/ {
battery: n900-battery {
compatible = "nokia,n900-battery";
io-channels = <&twl_madc 0>, <&twl_madc 4>, <&twl_madc 12>;
io-channel-names = "temp", "bsi", "vbat";
};
};

&twl {
twl_madc: madc {
compatible = "ti,twl4030-madc";
interrupts = <3>;
#io-channel-cells = <1>;
};
};

-- Sebastian

Attachment: signature.asc
Description: Digital signature