Re: [PATCH 2/3] dt-bindings: power: supply: qcom_bms: Add bindings

2018-04-26 Thread Linus Walleij
On Sat, Apr 7, 2018 at 3:46 PM, Craig Tatlor  wrote:

This is very interesting bindings!

> Add bindings for the Qualcomm battery measurement system.
>
> Signed-off-by: Craig Tatlor 

Please expand on acronyms as requested by Rob.

> +Required properties:
> +- compatible:   Should contain "qcom,pm8941-bms".
> +- reg:  Specifies the SPMI address and length of the
> +   controller's registers.
> +- interrupts:   OCV threshold interrupt.
> +- io-channels:  Should contain IIO channel specifier for the
> +   ADC channel that reports battery temperature.
> +- io-channel-names: Should contain "temp".

These are fine (and good) as bindings go.

> +- qcom,fcc-temp-legend: An array containing the temperature, in degC,
> +   for each column of the FCC lookup table.
> +- qcom,fcc-lut: An array of FCC values in mah, one entry for each
> +   temperature defined in in qcom,fcc-temp-legend.
> +- qcom,ocv-temp-legend: An array containing the temperature, in degC,
> +   for each column of the OCV lookup table.
> +- qcom,ocv-capacity-legend: An array containing the capacity for each
> +   row of the OCV lookup table.
> +- qcom,ocv-lut: An array of OCV values in mV, one entry for each
> +   capacity defined in qcom,ocv-capacity-legend.

I wonder if these are really Qualcomm-specific.

Can't we just cut the "qcom,*" prefix from all and simply define
these lookup tables in a way (with units) that makes sense to all
kinds of battery capacities?

Maybe spell them out though and avoid the abbreviations.

Just put those in the already existing
Documentation/devicetree/bindings/power/supply/battery.txt
so others can reuse them from there.

You will see that those bindings does not abbreviate but
spells out the natural sciences definitions to it's a bliss to
read for everyone.

Yours,
Linus Walleij


Re: [PATCH 2/3] dt-bindings: power: supply: qcom_bms: Add bindings

2018-04-26 Thread Linus Walleij
On Sat, Apr 7, 2018 at 3:46 PM, Craig Tatlor  wrote:

This is very interesting bindings!

> Add bindings for the Qualcomm battery measurement system.
>
> Signed-off-by: Craig Tatlor 

Please expand on acronyms as requested by Rob.

> +Required properties:
> +- compatible:   Should contain "qcom,pm8941-bms".
> +- reg:  Specifies the SPMI address and length of the
> +   controller's registers.
> +- interrupts:   OCV threshold interrupt.
> +- io-channels:  Should contain IIO channel specifier for the
> +   ADC channel that reports battery temperature.
> +- io-channel-names: Should contain "temp".

These are fine (and good) as bindings go.

> +- qcom,fcc-temp-legend: An array containing the temperature, in degC,
> +   for each column of the FCC lookup table.
> +- qcom,fcc-lut: An array of FCC values in mah, one entry for each
> +   temperature defined in in qcom,fcc-temp-legend.
> +- qcom,ocv-temp-legend: An array containing the temperature, in degC,
> +   for each column of the OCV lookup table.
> +- qcom,ocv-capacity-legend: An array containing the capacity for each
> +   row of the OCV lookup table.
> +- qcom,ocv-lut: An array of OCV values in mV, one entry for each
> +   capacity defined in qcom,ocv-capacity-legend.

I wonder if these are really Qualcomm-specific.

Can't we just cut the "qcom,*" prefix from all and simply define
these lookup tables in a way (with units) that makes sense to all
kinds of battery capacities?

Maybe spell them out though and avoid the abbreviations.

Just put those in the already existing
Documentation/devicetree/bindings/power/supply/battery.txt
so others can reuse them from there.

You will see that those bindings does not abbreviate but
spells out the natural sciences definitions to it's a bliss to
read for everyone.

Yours,
Linus Walleij


[PATCH 2/3] dt-bindings: power: supply: qcom_bms: Add bindings

2018-04-07 Thread Craig Tatlor
Add bindings for the Qualcomm battery measurement system.

Signed-off-by: Craig Tatlor 
---
 .../bindings/power/supply/qcom_bms.txt| 93 +++
 1 file changed, 93 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/power/supply/qcom_bms.txt

diff --git a/Documentation/devicetree/bindings/power/supply/qcom_bms.txt 
b/Documentation/devicetree/bindings/power/supply/qcom_bms.txt
new file mode 100644
index ..6296399edc09
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/supply/qcom_bms.txt
@@ -0,0 +1,93 @@
+Qualcomm Battery Measurement System
+
+The Qualcomm Battery Measurement System is found inside of Qualcomm PM8941
+PMICs. It provides OCV and coulomb counter registers that allow the kernel
+to infer a capacity level.
+
+Required properties:
+- compatible:   Should contain "qcom,pm8941-bms".
+- reg:  Specifies the SPMI address and length of the
+   controller's registers.
+- interrupts:   OCV threshold interrupt.
+- io-channels:  Should contain IIO channel specifier for the
+   ADC channel that reports battery temperature.
+- io-channel-names: Should contain "temp".
+- qcom,fcc-temp-legend: An array containing the temperature, in degC,
+   for each column of the FCC lookup table.
+- qcom,fcc-lut: An array of FCC values in mah, one entry for each
+   temperature defined in in qcom,fcc-temp-legend.
+- qcom,ocv-temp-legend: An array containing the temperature, in degC,
+   for each column of the OCV lookup table.
+- qcom,ocv-capacity-legend: An array containing the capacity for each
+   row of the OCV lookup table.
+- qcom,ocv-lut: An array of OCV values in mV, one entry for each
+   capacity defined in qcom,ocv-capacity-legend.
+
+Example:
+
+   pm8941_vadc: vadc@3100 {
+   compatible = "qcom,spmi-vadc";
+   reg = <0x3100>;
+   interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
+   #address-cells = <1>;
+   #size-cells = <0>;
+   #io-channel-cells = <1>;
+
+   bat_temp {
+   reg = ;
+   };
+   };
+
+   bms@4000 {
+   compatible = "qcom,pm8941-bms";
+   reg = <0x4000>;
+   interrupts = <0x0 0x40 0x4 IRQ_TYPE_EDGE_RISING>;
+   interrupt-names = "ocv_thr";
+
+   io-channels = <_vadc VADC_LR_MUX1_BAT_THERM>;
+   io-channel-names = "temp";
+
+   qcom,fcc-temp-legend = /bits/ 8 <(-10) 0 25 50 65>;
+   qcom,fcc-lut = /bits/ 16 <6010 6070 6680 6780 6670>;
+
+   qcom,ocv-capacity-legend = /bits/ 8 <100 95 90 85
+80 75 70 65
+60 55 50 45
+40 35 30 25
+20 15 10 9
+8 7 6 5 4
+3 2 1 0>;
+
+   qcom,ocv-temp-legend = /bits/ 8 <(-10) 0 25 50 65>;
+   qcom,ocv-lut = /bits/ 16 <4288 4288 4306 4315 4315
+ 4261 4241 4259 4266 4246
+ 4201 4181 4201 4207 4187
+ 4153 4133 4150 4155 4135
+ 4105 4085 4100 4104 4084
+ 4058 4038 4052 4058 4038
+ 4012 3992 4004 4014 3994
+ 3970 3950 3959 3971 3951
+ 3931 3911 3915 3927 3907
+ 3899 3879 3880 3884 3864
+ 3873 3853 3851 3853 3833
+ 3848 3828 3827 3829 3809
+ 3829 3809 3808 3809 3789
+ 3815 3795 3791 3791 3771
+ 3801 3781 3775 3772 3752
+ 3785 3765 3751 3746 3726
+ 3767 3747 3727 3719 3699
+ 3750 3730 3702 3692 3672
+ 

[PATCH 2/3] dt-bindings: power: supply: qcom_bms: Add bindings

2018-04-07 Thread Craig Tatlor
Add bindings for the Qualcomm battery measurement system.

Signed-off-by: Craig Tatlor 
---
 .../bindings/power/supply/qcom_bms.txt| 93 +++
 1 file changed, 93 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/power/supply/qcom_bms.txt

diff --git a/Documentation/devicetree/bindings/power/supply/qcom_bms.txt 
b/Documentation/devicetree/bindings/power/supply/qcom_bms.txt
new file mode 100644
index ..6296399edc09
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/supply/qcom_bms.txt
@@ -0,0 +1,93 @@
+Qualcomm Battery Measurement System
+
+The Qualcomm Battery Measurement System is found inside of Qualcomm PM8941
+PMICs. It provides OCV and coulomb counter registers that allow the kernel
+to infer a capacity level.
+
+Required properties:
+- compatible:   Should contain "qcom,pm8941-bms".
+- reg:  Specifies the SPMI address and length of the
+   controller's registers.
+- interrupts:   OCV threshold interrupt.
+- io-channels:  Should contain IIO channel specifier for the
+   ADC channel that reports battery temperature.
+- io-channel-names: Should contain "temp".
+- qcom,fcc-temp-legend: An array containing the temperature, in degC,
+   for each column of the FCC lookup table.
+- qcom,fcc-lut: An array of FCC values in mah, one entry for each
+   temperature defined in in qcom,fcc-temp-legend.
+- qcom,ocv-temp-legend: An array containing the temperature, in degC,
+   for each column of the OCV lookup table.
+- qcom,ocv-capacity-legend: An array containing the capacity for each
+   row of the OCV lookup table.
+- qcom,ocv-lut: An array of OCV values in mV, one entry for each
+   capacity defined in qcom,ocv-capacity-legend.
+
+Example:
+
+   pm8941_vadc: vadc@3100 {
+   compatible = "qcom,spmi-vadc";
+   reg = <0x3100>;
+   interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
+   #address-cells = <1>;
+   #size-cells = <0>;
+   #io-channel-cells = <1>;
+
+   bat_temp {
+   reg = ;
+   };
+   };
+
+   bms@4000 {
+   compatible = "qcom,pm8941-bms";
+   reg = <0x4000>;
+   interrupts = <0x0 0x40 0x4 IRQ_TYPE_EDGE_RISING>;
+   interrupt-names = "ocv_thr";
+
+   io-channels = <_vadc VADC_LR_MUX1_BAT_THERM>;
+   io-channel-names = "temp";
+
+   qcom,fcc-temp-legend = /bits/ 8 <(-10) 0 25 50 65>;
+   qcom,fcc-lut = /bits/ 16 <6010 6070 6680 6780 6670>;
+
+   qcom,ocv-capacity-legend = /bits/ 8 <100 95 90 85
+80 75 70 65
+60 55 50 45
+40 35 30 25
+20 15 10 9
+8 7 6 5 4
+3 2 1 0>;
+
+   qcom,ocv-temp-legend = /bits/ 8 <(-10) 0 25 50 65>;
+   qcom,ocv-lut = /bits/ 16 <4288 4288 4306 4315 4315
+ 4261 4241 4259 4266 4246
+ 4201 4181 4201 4207 4187
+ 4153 4133 4150 4155 4135
+ 4105 4085 4100 4104 4084
+ 4058 4038 4052 4058 4038
+ 4012 3992 4004 4014 3994
+ 3970 3950 3959 3971 3951
+ 3931 3911 3915 3927 3907
+ 3899 3879 3880 3884 3864
+ 3873 3853 3851 3853 3833
+ 3848 3828 3827 3829 3809
+ 3829 3809 3808 3809 3789
+ 3815 3795 3791 3791 3771
+ 3801 3781 3775 3772 3752
+ 3785 3765 3751 3746 3726
+ 3767 3747 3727 3719 3699
+ 3750 3730 3702 3692 3672
+ 3728 3708 3680 3672