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:
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>;
|
||||
};
|
||||
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
1551
drivers/power/supply/rockchip_charger_manager.c
Normal file
1551
drivers/power/supply/rockchip_charger_manager.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue