On Tue, Mar 10, 2015 at 4:27 PM, Marek Belisko <[email protected]> wrote:
> Signed-off-by: Marek Belisko <[email protected]>
> ---
> .../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).
> + - 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.
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
>
Hi,
Am 01.04.2015 um 18:30 schrieb Rob Herring <[email protected]>:
> On Tue, Mar 10, 2015 at 4:27 PM, Marek Belisko <[email protected]> wrote:
>> Signed-off-by: Marek Belisko <[email protected]>
>> ---
>> .../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
>>