diff mbox

[v2] Documentation: DT: Document twl4030-madc-battery bindings.

Message ID 1394052739-8589-4-git-send-email-marek@goldelico.com
State Superseded, archived
Headers show

Commit Message

Marek Belisko March 5, 2014, 8:52 p.m. UTC
Signed-off-by: Marek Belisko <marek@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

Comments

Mark Rutland Sept. 22, 2014, 11:03 a.m. UTC | #1
Hi,

On Wed, Mar 05, 2014 at 08:52:19PM +0000, Marek Belisko wrote:
> Signed-off-by: Marek Belisko <marek@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..fd0b6d2
> --- /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"

I'm rather confused by this; the code seems to have stripped away all
the twl4030 dependencies and this now seems to be a generic ADC battery
status driver. So why does this need to be specific to twl4030?

> + - capacity : battery capacity in uAh

I would make the units explicit in the name; "capacity" can be measured
in many ways.

> + - charging-calibration-data : list of voltage(mV):level(%) values
> +	for charging calibration (see example)
> + - discharging-calibration-data : list of voltage(mV):level(%) values
> +	for discharging calibration (see example)

Regardless of the prefixing of these property names, the specifics are
unclear to me.

Does this apply to vbat?

Is vbat guaranteed to read in mV?

Is any particular order required? The example seems to go be in
descending percentage values.

Is any particular interpolation expected on behalf of the OS, or is this
just an informative set of measurements that hte OS can use as it sees
fit?

> + - 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

Which units? Where is this used?

> + * "ichg" - The ADC channel for battery charging status

How exactly is this used to detect the charging status?

> + * "vbat" - The ADC channel to measure the battery voltage
> +
> +Example:
> +	madc-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>;

Please bracket list entries individually (as you've done with
io-channels).

Thanks,
Mark.

> +
> +		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";
> +	};
> -- 
> 1.8.3.2
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Belisko Marek Sept. 22, 2014, 8:35 p.m. UTC | #2
Hi Mark,

On Mon, Sep 22, 2014 at 1:03 PM, Mark Rutland <mark.rutland@arm.com> wrote:
> Hi,
>
> On Wed, Mar 05, 2014 at 08:52:19PM +0000, Marek Belisko wrote:
>> Signed-off-by: Marek Belisko <marek@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..fd0b6d2
>> --- /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"
>
> I'm rather confused by this; the code seems to have stripped away all
> the twl4030 dependencies and this now seems to be a generic ADC battery
> status driver. So why does this need to be specific to twl4030?
You are right. Also possibly driver name is incorrect :). Better name could be
ti, madc-battery.
>
>> + - capacity : battery capacity in uAh
>
> I would make the units explicit in the name; "capacity" can be measured
> in many ways.
OK capacity_uAh should be fine I believe.
>
>> + - charging-calibration-data : list of voltage(mV):level(%) values
>> +     for charging calibration (see example)
>> + - discharging-calibration-data : list of voltage(mV):level(%) values
>> +     for discharging calibration (see example)
>
> Regardless of the prefixing of these property names, the specifics are
> unclear to me.
Do you suggest to rename it completely or is enough to add "ti, " prefix?
>
> Does this apply to vbat?
Yes bat is read and then interpolation algorithm is applied for
various power properties.
So mapping from voltage to percentage is defined in table.
>
> Is vbat guaranteed to read in mV?
Yes.
>
> Is any particular order required? The example seems to go be in
> descending percentage values.
There is done sorting in driver so ordering it's not necessary.
>
> Is any particular interpolation expected on behalf of the OS, or is this
> just an informative set of measurements that hte OS can use as it sees
> fit?
>
>> + - io-channels: Should contain IIO channel specifiers
>> +     for each element in io-channel-names.
>> +- io-channel-names: Should contain the following values:
All 3 statements was copied from rx51-battery and documentation is the same.
There is not unit for all channels just raw values which are then
converted in driver.
>> + * "temp" - The ADC channel for temperature reading
>
> Which units? Where is this used?
>
>> + * "ichg" - The ADC channel for battery charging status
>
> How exactly is this used to detect the charging status?
>
>> + * "vbat" - The ADC channel to measure the battery voltage
>> +
>> +Example:
>> +     madc-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>;
>
> Please bracket list entries individually (as you've done with
> io-channels).
OK.
>
> Thanks,
> Mark.
>
>> +
>> +             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";
>> +     };
>> --
>> 1.8.3.2
>>
>>

Thanks,

Marek
Mark Rutland Sept. 26, 2014, 1:39 p.m. UTC | #3
On Mon, Sep 22, 2014 at 09:35:03PM +0100, Belisko Marek wrote:
> Hi Mark,
> 
> On Mon, Sep 22, 2014 at 1:03 PM, Mark Rutland <mark.rutland@arm.com> wrote:
> > Hi,
> >
> > On Wed, Mar 05, 2014 at 08:52:19PM +0000, Marek Belisko wrote:
> >> Signed-off-by: Marek Belisko <marek@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..fd0b6d2
> >> --- /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"
> >
> > I'm rather confused by this; the code seems to have stripped away all
> > the twl4030 dependencies and this now seems to be a generic ADC battery
> > status driver. So why does this need to be specific to twl4030?
> You are right. Also possibly driver name is incorrect :). Better name could be
> ti, madc-battery.

Ok.

> >
> >> + - capacity : battery capacity in uAh
> >
> > I would make the units explicit in the name; "capacity" can be measured
> > in many ways.
> OK capacity_uAh should be fine I believe.

Well, "capacity-uah" to match naming conventions.

> >
> >> + - charging-calibration-data : list of voltage(mV):level(%) values
> >> +     for charging calibration (see example)
> >> + - discharging-calibration-data : list of voltage(mV):level(%) values
> >> +     for discharging calibration (see example)
> >
> > Regardless of the prefixing of these property names, the specifics are
> > unclear to me.
> Do you suggest to rename it completely or is enough to add "ti, " prefix?

I'm not suggesting prefixing. I'm suggesting that "calibration data"
could mean a variety of things, so having a more specific name would be
beneficial.

> > Does this apply to vbat?
> Yes bat is read and then interpolation algorithm is applied for
> various power properties.
> So mapping from voltage to percentage is defined in table.
> >
> > Is vbat guaranteed to read in mV?
> Yes.
> >
> > Is any particular order required? The example seems to go be in
> > descending percentage values.
> There is done sorting in driver so ordering it's not necessary.
> >
> > Is any particular interpolation expected on behalf of the OS, or is this
> > just an informative set of measurements that hte OS can use as it sees
> > fit?
> >
> >> + - io-channels: Should contain IIO channel specifiers
> >> +     for each element in io-channel-names.
> >> +- io-channel-names: Should contain the following values:
> All 3 statements was copied from rx51-battery and documentation is the same.
> There is not unit for all channels just raw values which are then
> converted in driver.

I don't understand. How do you figure out the mapping of those raw
values to sensible units? Surely you need additional information to do
so?

Mark.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Belisko Marek Oct. 9, 2014, 8:02 a.m. UTC | #4
Hi Mark,

On Fri, Sep 26, 2014 at 3:39 PM, Mark Rutland <mark.rutland@arm.com> wrote:
> On Mon, Sep 22, 2014 at 09:35:03PM +0100, Belisko Marek wrote:
>> Hi Mark,
>>
>> On Mon, Sep 22, 2014 at 1:03 PM, Mark Rutland <mark.rutland@arm.com> wrote:
>> > Hi,
>> >
>> > On Wed, Mar 05, 2014 at 08:52:19PM +0000, Marek Belisko wrote:
>> >> Signed-off-by: Marek Belisko <marek@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..fd0b6d2
>> >> --- /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"
>> >
>> > I'm rather confused by this; the code seems to have stripped away all
>> > the twl4030 dependencies and this now seems to be a generic ADC battery
>> > status driver. So why does this need to be specific to twl4030?
>> You are right. Also possibly driver name is incorrect :). Better name could be
>> ti, madc-battery.
>
> Ok.
>
>> >
>> >> + - capacity : battery capacity in uAh
>> >
>> > I would make the units explicit in the name; "capacity" can be measured
>> > in many ways.
>> OK capacity_uAh should be fine I believe.
>
> Well, "capacity-uah" to match naming conventions.
OK.
>
>> >
>> >> + - charging-calibration-data : list of voltage(mV):level(%) values
>> >> +     for charging calibration (see example)
>> >> + - discharging-calibration-data : list of voltage(mV):level(%) values
>> >> +     for discharging calibration (see example)
>> >
>> > Regardless of the prefixing of these property names, the specifics are
>> > unclear to me.
>> Do you suggest to rename it completely or is enough to add "ti, " prefix?
>
> I'm not suggesting prefixing. I'm suggesting that "calibration data"
> could mean a variety of things, so having a more specific name would be
> beneficial.
Charging and discharging data are used for some kind of interpolation
within voltage interval.
So we get volume from ADC and then convert it according
charging/discharging table to some value
which is then useded in various battery properties (status,
charge_now, capacity, time_to_empty_now).
So maybe battery-charging/discharging-calibration-data could be property name?

>
>> > Does this apply to vbat?
>> Yes bat is read and then interpolation algorithm is applied for
>> various power properties.
>> So mapping from voltage to percentage is defined in table.
>> >
>> > Is vbat guaranteed to read in mV?
>> Yes.
>> >
>> > Is any particular order required? The example seems to go be in
>> > descending percentage values.
>> There is done sorting in driver so ordering it's not necessary.
>> >
>> > Is any particular interpolation expected on behalf of the OS, or is this
>> > just an informative set of measurements that hte OS can use as it sees
>> > fit?
>> >
>> >> + - io-channels: Should contain IIO channel specifiers
>> >> +     for each element in io-channel-names.
>> >> +- io-channel-names: Should contain the following values:
>> All 3 statements was copied from rx51-battery and documentation is the same.
>> There is not unit for all channels just raw values which are then
>> converted in driver.
>
> I don't understand. How do you figure out the mapping of those raw
> values to sensible units? Surely you need additional information to do
> so?
Yes mapping from raw values is done in driver. Like current read from
iio channel_ichg
is multiplied by 1000 or read from channel_temp is multiplied by 10 to
have proper values for
battery properties.
>
> Mark.

BR,

marek
diff mbox

Patch

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..fd0b6d2
--- /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"
+ - capacity : battery capacity in uAh
+ - charging-calibration-data : list of voltage(mV):level(%) values
+	for charging calibration (see example)
+ - discharging-calibration-data : list of voltage(mV):level(%) values
+	for discharging calibration (see example)
+ - 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 = <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";
+	};