power: supply: rockchip-charger-manager: support charger manager

support:
1. Use EXTCON Subsystem to detect charger cables for charging
2. Set current limit of battery for over current protection
3. Set power limit of charger for overload protection
4. control charge pump charging current/voltage

Signed-off-by: shengfei Xu <xsf@rock-chips.com>
Change-Id: I97a461996977d418a47e6075202d82c5b87bd17b
This commit is contained in:
shengfei Xu
2022-06-11 11:44:12 +00:00
committed by Tao Huang
parent 0c51523b06
commit bcbe97df5c
4 changed files with 1591 additions and 0 deletions
@@ -0,0 +1,29 @@
rockchip-charger-manager bindings
~~~~~~~~~~~~~~~~~~~~~~~~
Required properties :
- compatible : "rockchip-charger-manager"
- cm-chargers : name of charger
- cm-fuel-gauge : name of battery fuel gauge
- cm-charge-pump : name of battery charge pump
Optional properties :
- cm-poll-mode : polling mode - 0 for disabled, 1 for always, 2 for when
external power is connected, or 3 for when charging. If not present,
then polling is disabled
- cm-poll-interval : polling interval (in ms)
Example :
charger-manager {
compatible = "rockchip-charger-manager";
cm-poll-mode = <2>;
cm-poll-interval = <5000>;
cm-chargers = "sgm4154x-charger";
cm-charge-pump = "sc8551-standalone";
cm-chargers-phandle = <&usbc0>;
cm-fuel-gauge = "test_battery";
monitored-battery = <&bat>;
extcon = <&u2phy0>;
};
+10
View File
@@ -518,6 +518,16 @@ config CHARGER_MANAGER
runtime and in suspend-to-RAM by waking up the system periodically
with help of suspend_again support.
config ROCKCHIP_CHARGER_MANAGER
tristate "Battery charger manager for multiple chargers"
select EXTCON
help
Say Y to enable charger manager support, which allows multiple
chargers attached to a battery and multiple batteries attached to a
system. The charger manager also can monitor charging status in
runtime and in suspend-to-RAM by waking up the system periodically
with help of suspend_again support.
config CHARGER_LT3651
tristate "Analog Devices LT3651 charger"
depends on GPIOLIB
+1
View File
@@ -70,6 +70,7 @@ obj-$(CONFIG_CHARGER_LP8727) += lp8727_charger.o
obj-$(CONFIG_CHARGER_LP8788) += lp8788-charger.o
obj-$(CONFIG_CHARGER_GPIO) += gpio-charger.o
obj-$(CONFIG_CHARGER_MANAGER) += charger-manager.o
obj-$(CONFIG_ROCKCHIP_CHARGER_MANAGER) += rockchip_charger_manager.o
obj-$(CONFIG_CHARGER_LT3651) += lt3651-charger.o
obj-$(CONFIG_CHARGER_MAX14577) += max14577_charger.o
obj-$(CONFIG_CHARGER_DETECTOR_MAX14656) += max14656_charger_detector.o
File diff suppressed because it is too large Load Diff