[PATCH v4 3/6] Documentation: DT: Document twl4030-madc-battery bindings

Dr. H. Nikolaus Schaller hns at goldelico.com
Wed Apr 1 09:46:59 PDT 2015


Hi,

Am 01.04.2015 um 18:30 schrieb Rob Herring <robherring2 at gmail.com>:

> On Tue, Mar 10, 2015 at 4:27 PM, Marek Belisko <marek at goldelico.com> wrote:
>> Signed-off-by: Marek Belisko <marek at goldelico.com>
>> ---
>> .../bindings/power_supply/twl4030_madc_battery.txt | 43 ++++++++++++++++++++++
>> 1 file changed, 43 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/power_supply/twl4030_madc_battery.txt
>> 
>> diff --git a/Documentation/devicetree/bindings/power_supply/twl4030_madc_battery.txt b/Documentation/devicetree/bindings/power_supply/twl4030_madc_battery.txt
>> new file mode 100644
>> index 0000000..d3dd9d8
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/power_supply/twl4030_madc_battery.txt
>> @@ -0,0 +1,43 @@
>> +twl4030_madc_battery
>> +
>> +Required properties:
>> + - compatible : "ti,twl4030-madc-battery"
> 
> Is this a sub-node of the twl4030 or something? Please define where
> this fits (hint: I would expect to be a sub node of a charging
> controller or battery monitor).

It is a driver connecting some battery parameters with measurements provided
by the twl4030-madc to present a /sys/class/power_supply node for the battery
with a coarse estimate for the charging level.

So maybe the best wording is that it is a battery-driver assuming a twl4030-madc
providing raw measurements (voltage, charging).

Therefore it could as well be battery-twl4030-madc.

> 
>> + - capacity-uah : battery capacity in uAh
>> + - ti,volt-to-capacity-charging-map : list of voltage(mV):level(%) values
>> +       for charging calibration (see example)
>> + - ti,volt-to-capacity-discharging-map : list of voltage(mV):level(%) values
>> +       for discharging calibration (see example)
> 
> These seem like properties of the battery independent of the
> battery/charging controller which is the twl4030. Ideally we would
> define battery nodes generically and independent of the charge
> controllers. Then there are smart batteries to consider too.

For smart batteries there are completely independent mechanisms
like I2C and HDQ/1-wire communication with fuel gauge chips (e.g. b27xxx).

Those do not need such battery properties because they are stored
in EEPROMs within these chips.

So all this is a quite special solution just for those handful of board that
have no smart battery and use exactly this twl4030 chip.

It is not intended to become a generic charging/fuel solution. Just
make it work with DT (it worked with platform_data since ~3.12).

BR,
Nikolaus



> 
> Rob
> 
>> + - io-channels: Should contain IIO channel specifiers
>> +       for each element in io-channel-names.
>> +- io-channel-names: Should contain the following values:
>> + * "temp" - The ADC channel for temperature reading
>> + * "ichg" - The ADC channel for battery charging status
>> + * "vbat" - The ADC channel to measure the battery voltage
>> +
>> +Example:
>> +       madc-battery {
>> +               compatible = "ti,twl4030-madc-battery";
>> +               capacity-uah = <1200000>;
>> +               ti,volt-to-capacity-charging-map = <4200 100>,
>> +                                               <4100 75>,
>> +                                               <4000 55>,
>> +                                               <3900 25>,
>> +                                               <3800 5>,
>> +                                               <3700 2>,
>> +                                               <3600 1>,
>> +                                               <3300 0>;
>> +
>> +               ti,volt-to-capacity-discharging-map = <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";
>> +       };
>> --
>> 1.9.1
>> 




More information about the linux-arm-kernel mailing list