Add bindings for the Qualcomm battery measurement system.

Signed-off-by: Craig Tatlor <ctatlo...@gmail.com>
---
 .../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 000000000000..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 = <VADC_LR_MUX1_BAT_THERM>;
+                       };
+               };
+
+               bms@4000 {
+                       compatible = "qcom,pm8941-bms";
+                       reg = <0x4000>;
+                       interrupts = <0x0 0x40 0x4 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "ocv_thr";
+
+                       io-channels = <&pm8941_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 3652
+                                                 3720 3700 3676 3665 3645
+                                                 3712 3692 3670 3660 3645
+                                                 3695 3675 3658 3648 3633
+                                                 3662 3647 3629 3620 3610
+                                                 3620 3605 3589 3580 3570
+                                                 3562 3552 3538 3529 3519
+                                                 3490 3480 3474 3470 3465
+                                                 3403 3398 3388 3380 3375
+                                                 3320 3300 3255 3221 3206
+                                                 3000 3000 3000 3000 3000>;
+               };
+       };
+};
-- 
2.17.0

Reply via email to