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

From: Belisko Marek
Date: Fri Feb 28 2014 - 16:13:37 EST


On Fri, Feb 28, 2014 at 10:08 PM, Sebastian Reichel <sre@xxxxxxxxxx> wrote:
> 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.
OK I'll try to debug it deeper.
>
> 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>;
> };
> };
I put twl_madc property to twl4030.dtsi as following:
twl_madc: madc {
compatible = "ti,twl4030-madc";
interrupts = <3>;
#io-channel-cells = <1>;
};

and node for battery is:
battery {
compatible = "ti,twl4030-madc-battery";
capacity = <1200000>;
charging-calibration-data = <4200 100
4100 75
4000 55
3900 25
3800 5
3700 2
3600 1
3300 0>;
discharging-calibration-data = <4200 100
4100 95
4000 70
3800 50
3700 10
3600 5
3300 0>;
io-channels = <&twl_madc 1>,
<&twl_madc 10>,
<&twl_madc 12>;
io-channel-names = "temp",
"ichg",
"vbat";
};
>
> -- Sebastian

BR,

marek

--
as simple and primitive as possible
-------------------------------------------------
Marek Belisko - OPEN-NANDRA
Freelance Developer

Ruska Nova Ves 219 | Presov, 08005 Slovak Republic
Tel: +421 915 052 184
skype: marekwhite
twitter: #opennandra
web: http://open-nandra.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/