2022-03-24 12:50:21

by Jonathan Bakker

[permalink] [raw]
Subject: [PATCH 7/7] ARM: dts: s5pv210: Add charger support in Aries

Add charger-manager support to Aries boards to allow safe
charging of the battery without the need for userspace control.

Signed-off-by: Jonathan Bakker <[email protected]>
---
arch/arm/boot/dts/s5pv210-fascinate4g.dts | 162 ++++++++++++++++++++++
arch/arm/boot/dts/s5pv210-galaxys.dts | 144 +++++++++++++++++++
2 files changed, 306 insertions(+)

diff --git a/arch/arm/boot/dts/s5pv210-fascinate4g.dts b/arch/arm/boot/dts/s5pv210-fascinate4g.dts
index 7427c84f1126..9530231b7a70 100644
--- a/arch/arm/boot/dts/s5pv210-fascinate4g.dts
+++ b/arch/arm/boot/dts/s5pv210-fascinate4g.dts
@@ -57,6 +57,168 @@
pinctrl-0 = <&main_micbias_ena>;
};

+ thermal-zones {
+ batt_thermal: batt-thermal {
+ polling-delay-passive = <60000>; /* 60 seconds */
+ polling-delay = <600000>; /* 600 seconds */
+
+ thermal-sensors = <&batt_thermistor>;
+ };
+ };
+
+ batt_thermistor: thermal-sensor-0 {
+ compatible = "generic-adc-thermal";
+ #thermal-sensor-cells = <0>;
+ io-channels = <&adc 6>;
+ io-channel-names = "sensor-channel";
+
+ temperature-lookup-table = <
+ (-20000) 1859
+ (-19000) 1846
+ (-18000) 1832
+ (-17000) 1818
+ (-16000) 1804
+ (-15000) 1790
+ (-14000) 1773
+ (-13000) 1756
+ (-12000) 1739
+ (-11000) 1722
+ (-10000) 1705
+ (-9000) 1691
+ (-8000) 1677
+ (-7000) 1663
+ (-6000) 1649
+ (-5000) 1635
+ (-4000) 1550
+ (-3000) 1510
+ (-2000) 1500
+ (-1000) 1490
+ 0 1480
+ 1000 1470
+ 2000 1460
+ 3000 1450
+ 4000 1430
+ 5000 1420
+ 6000 1406
+ 7000 1386
+ 8000 1366
+ 9000 1346
+ 10000 1326
+ 11000 1302
+ 12000 1278
+ 13000 1254
+ 14000 1230
+ 15000 1206
+ 16000 1182
+ 17000 1158
+ 18000 1134
+ 19000 1110
+ 20000 1086
+ 21000 1059
+ 22000 1035
+ 23000 1011
+ 24000 987
+ 25000 963
+ 26000 937
+ 27000 913
+ 28000 889
+ 29000 865
+ 30000 841
+ 31000 816
+ 32000 794
+ 33000 772
+ 34000 750
+ 35000 728
+ 36000 708
+ 37000 690
+ 38000 672
+ 39000 654
+ 40000 636
+ 41000 616
+ 42000 599
+ 43000 580
+ 44000 565
+ 45000 548
+ 46000 529
+ 47000 512
+ 48000 495
+ 49000 478
+ 50000 461
+ 51000 440
+ 52000 431
+ 53000 416
+ 54000 405
+ 55000 396
+ 56000 375
+ 57000 360
+ 58000 347
+ 59000 334
+ 60000 325
+ 61000 311
+ 62000 303
+ 63000 296
+ 64000 290
+ 65000 279
+ 66000 265
+ 67000 254
+ 68000 240
+ 69000 220
+ 70000 206>;
+ };
+
+ charger_manager: charger-manager-0 {
+ compatible = "charger-manager";
+
+ cm-name = "cm-battery";
+
+ chg-reg-supply = <&charger_reg>;
+
+ /* poll when externally connected */
+ cm-poll-mode = <2>;
+ cm-poll-interval = <30>;
+
+ /* read supply status for status */
+ cm-battery-stat = <0>;
+
+ cm-battery-temp-diff = <5>;
+ cm-battery-hot = <5000>;
+ cm-battery-cold = <400>;
+ cm-battery-cold-in-minus;
+
+ /* 6hr max charging time */
+ cm-charging-max = <21600000>;
+ /* 1.5hr max discharging time */
+ cm-discharging-max = <5400000>;
+
+ cm-fuel-gauge = "battery";
+
+ cm-fullbatt-voltage = <4176000>;
+ cm-fullbatt-vchkdrop-ms = <30000>;
+ cm-fullbatt-vchkdrop-volt = <176000>;
+ cm-fullbatt-soc = <92>;
+
+ cm-num-chargers = <1>;
+ cm-chargers = "max8998_pmic";
+
+ cm-thermal-zone = "batt-thermal";
+
+ regulator-0 {
+ cm-regulator-name = "chg-reg";
+ cable-0 {
+ cm-cable-name = "USB";
+ cm-cable-extcon = "7-0025";
+ cm-cable-min = <475000>;
+ cm-cable-max = <500000>;
+ };
+ cable-1 {
+ cm-cable-name = "SDP";
+ cm-cable-extcon = "7-0025";
+ cm-cable-min = <380000>;
+ cm-cable-max = <600000>;
+ };
+ };
+ };
+
sound {
compatible = "samsung,fascinate4g-wm8994";

diff --git a/arch/arm/boot/dts/s5pv210-galaxys.dts b/arch/arm/boot/dts/s5pv210-galaxys.dts
index eeec2bdece11..240cd0a5c9cb 100644
--- a/arch/arm/boot/dts/s5pv210-galaxys.dts
+++ b/arch/arm/boot/dts/s5pv210-galaxys.dts
@@ -74,6 +74,150 @@
};
};

+ thermal-zones {
+ batt_thermal: batt-thermal {
+ polling-delay-passive = <60000>; /* 60 seconds */
+ polling-delay = <600000>; /* 600 seconds */
+
+ thermal-sensors = <&batt_thermistor>;
+ };
+ };
+
+ batt_thermistor: thermal-sensor-0 {
+ compatible = "generic-adc-thermal";
+ #thermal-sensor-cells = <0>;
+ io-channels = <&adc 6>;
+ io-channel-names = "sensor-channel";
+
+ temperature-lookup-table = <
+ (-7000) 1667
+ (-6000) 1658
+ (-5000) 1632
+ (-4000) 1619
+ (-3000) 1614
+ (-2000) 1596
+ (-1000) 1577
+ 0 1559
+ 1000 1536
+ 2000 1513
+ 3000 1491
+ 4000 1468
+ 5000 1445
+ 6000 1421
+ 7000 1396
+ 8000 1372
+ 9000 1348
+ 10000 1324
+ 11000 1299
+ 12000 1275
+ 13000 1251
+ 14000 1226
+ 15000 1202
+ 16000 1178
+ 17000 1155
+ 18000 1131
+ 19000 1108
+ 20000 1084
+ 21000 1060
+ 22000 1037
+ 23000 1013
+ 24000 990
+ 25000 966
+ 26000 943
+ 27000 920
+ 28000 898
+ 29000 875
+ 30000 852
+ 31000 829
+ 32000 806
+ 33000 784
+ 34000 761
+ 35000 738
+ 36000 718
+ 37000 697
+ 38000 677
+ 39000 656
+ 40000 636
+ 41000 615
+ 42000 595
+ 43000 574
+ 44000 554
+ 45000 533
+ 46000 518
+ 47000 503
+ 48000 487
+ 49000 472
+ 50000 457
+ 51000 442
+ 52000 427
+ 53000 411
+ 54000 396
+ 55000 381
+ 56000 368
+ 57000 354
+ 58000 341
+ 59000 324
+ 60000 306
+ 61000 299
+ 62000 293
+ 63000 286
+ 64000 275
+ 65000 264>;
+ };
+
+ charger_manager: charger-manager-0 {
+ compatible = "charger-manager";
+
+ cm-name = "cm-battery";
+
+ chg-reg-supply = <&charger_reg>;
+
+ /* poll when externally connected */
+ cm-poll-mode = <2>;
+ cm-poll-interval = <30>;
+
+ /* read supply status for status */
+ cm-battery-stat = <0>;
+
+ cm-battery-temp-diff = <5>;
+ cm-battery-hot = <6300>;
+ cm-battery-cold = <400>;
+ cm-battery-cold-in-minus;
+
+ /* 6hr max charging time */
+ cm-charging-max = <21600000>;
+ /* 1.5hr max discharging time */
+ cm-discharging-max = <5400000>;
+
+ cm-fuel-gauge = "battery";
+
+ cm-fullbatt-voltage = <4176000>;
+ cm-fullbatt-vchkdrop-ms = <30000>;
+ cm-fullbatt-vchkdrop-volt = <176000>;
+ cm-fullbatt-soc = <92>;
+
+ cm-num-chargers = <1>;
+ cm-chargers = "max8998_pmic";
+
+ cm-thermal-zone = "batt-thermal";
+
+ regulator-0 {
+ cm-regulator-name = "chg-reg";
+ cable-0 {
+ cm-cable-name = "USB";
+ cm-cable-extcon = "7-0025";
+ cm-cable-min = <475000>;
+ cm-cable-max = <500000>;
+ };
+ cable-1 {
+ cm-cable-name = "SDP";
+ cm-cable-extcon = "7-0025";
+ cm-cable-min = <380000>;
+ cm-cable-max = <600000>;
+ };
+ };
+ };
+
micbias_reg: regulator-fixed-3 {
compatible = "regulator-fixed";
regulator-name = "MICBIAS";
--
2.20.1


2022-03-24 21:39:03

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 7/7] ARM: dts: s5pv210: Add charger support in Aries

On 23/03/2022 16:03, Jonathan Bakker wrote:
> Add charger-manager support to Aries boards to allow safe
> charging of the battery without the need for userspace control.
>
> Signed-off-by: Jonathan Bakker <[email protected]>
> ---
> arch/arm/boot/dts/s5pv210-fascinate4g.dts | 162 ++++++++++++++++++++++
> arch/arm/boot/dts/s5pv210-galaxys.dts | 144 +++++++++++++++++++
> 2 files changed, 306 insertions(+)
>
> diff --git a/arch/arm/boot/dts/s5pv210-fascinate4g.dts b/arch/arm/boot/dts/s5pv210-fascinate4g.dts
> index 7427c84f1126..9530231b7a70 100644
> --- a/arch/arm/boot/dts/s5pv210-fascinate4g.dts
> +++ b/arch/arm/boot/dts/s5pv210-fascinate4g.dts
> @@ -57,6 +57,168 @@
> pinctrl-0 = <&main_micbias_ena>;
> };
>
> + thermal-zones {
> + batt_thermal: batt-thermal {
> + polling-delay-passive = <60000>; /* 60 seconds */

There is no passive cooling device, so why do you need it?

> + polling-delay = <600000>; /* 600 seconds */
> +
> + thermal-sensors = <&batt_thermistor>;
> + };
> + };
> +
> + batt_thermistor: thermal-sensor-0 {
> + compatible = "generic-adc-thermal";
> + #thermal-sensor-cells = <0>;
> + io-channels = <&adc 6>;
> + io-channel-names = "sensor-channel";
> +
> + temperature-lookup-table = <
> + (-20000) 1859
> + (-19000) 1846
> + (-18000) 1832
> + (-17000) 1818
> + (-16000) 1804
> + (-15000) 1790
> + (-14000) 1773
> + (-13000) 1756
> + (-12000) 1739
> + (-11000) 1722
> + (-10000) 1705
> + (-9000) 1691
> + (-8000) 1677
> + (-7000) 1663
> + (-6000) 1649
> + (-5000) 1635
> + (-4000) 1550
> + (-3000) 1510
> + (-2000) 1500
> + (-1000) 1490
> + 0 1480
> + 1000 1470
> + 2000 1460
> + 3000 1450
> + 4000 1430
> + 5000 1420
> + 6000 1406
> + 7000 1386
> + 8000 1366
> + 9000 1346
> + 10000 1326
> + 11000 1302
> + 12000 1278
> + 13000 1254
> + 14000 1230
> + 15000 1206
> + 16000 1182
> + 17000 1158
> + 18000 1134
> + 19000 1110
> + 20000 1086
> + 21000 1059
> + 22000 1035
> + 23000 1011
> + 24000 987
> + 25000 963
> + 26000 937
> + 27000 913
> + 28000 889
> + 29000 865
> + 30000 841
> + 31000 816
> + 32000 794
> + 33000 772
> + 34000 750
> + 35000 728
> + 36000 708
> + 37000 690
> + 38000 672
> + 39000 654
> + 40000 636
> + 41000 616
> + 42000 599
> + 43000 580
> + 44000 565
> + 45000 548
> + 46000 529
> + 47000 512
> + 48000 495
> + 49000 478
> + 50000 461
> + 51000 440
> + 52000 431
> + 53000 416
> + 54000 405
> + 55000 396
> + 56000 375
> + 57000 360
> + 58000 347
> + 59000 334
> + 60000 325
> + 61000 311
> + 62000 303
> + 63000 296
> + 64000 290
> + 65000 279
> + 66000 265
> + 67000 254
> + 68000 240
> + 69000 220
> + 70000 206>;
> + };
> +
> + charger_manager: charger-manager-0 {
> + compatible = "charger-manager";

Sorry, this is not a hardware. It's a hack to configure kernel charging
driver via DT which was made deprecated.

Best regards,
Krzysztof