diff options
author | Chanwoo Choi <cw00.choi@samsung.com> | 2012-05-05 09:24:10 -0400 |
---|---|---|
committer | Anton Vorontsov <anton.vorontsov@linaro.org> | 2012-05-05 22:48:50 -0400 |
commit | d829dc75bafb10754f35fb8895e5143d20267b04 (patch) | |
tree | 4cff2aa07dcf7c15ef931e3b9ab20a2d84fcf68d /Documentation | |
parent | 34298d40e5853bc195c9db012fc1ddccac9b6f7f (diff) |
charger-manager: Poll battery health in normal state
Charger-Manager needs to check battery health in normal state
as well as suspend-to-RAM state. When the battery is fully charged,
Charger-Manager needs to determine when the chargers restart charging.
This patch allows Charger-Manager to monitor battery health in normal
state and handle operation for chargers after battery is fully charged.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Donggeun Kim <dg77.kim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/power/charger-manager.txt | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/Documentation/power/charger-manager.txt b/Documentation/power/charger-manager.txt index fdcca991df30..9b3863386e54 100644 --- a/Documentation/power/charger-manager.txt +++ b/Documentation/power/charger-manager.txt | |||
@@ -44,6 +44,12 @@ Charger Manager supports the following: | |||
44 | Normally, the platform will need to resume and suspend some devices | 44 | Normally, the platform will need to resume and suspend some devices |
45 | that are used by Charger Manager. | 45 | that are used by Charger Manager. |
46 | 46 | ||
47 | * Support for premature full-battery event handling | ||
48 | If the battery voltage drops by "fullbatt_vchkdrop_uV" after | ||
49 | "fullbatt_vchkdrop_ms" from the full-battery event, the framework | ||
50 | restarts charging. This check is also performed while suspended by | ||
51 | setting wakeup time accordingly and using suspend_again. | ||
52 | |||
47 | 2. Global Charger-Manager Data related with suspend_again | 53 | 2. Global Charger-Manager Data related with suspend_again |
48 | ======================================================== | 54 | ======================================================== |
49 | In order to setup Charger Manager with suspend-again feature | 55 | In order to setup Charger Manager with suspend-again feature |
@@ -55,7 +61,7 @@ if there are multiple batteries. If there are multiple batteries, the | |||
55 | multiple instances of Charger Manager share the same charger_global_desc | 61 | multiple instances of Charger Manager share the same charger_global_desc |
56 | and it will manage in-suspend monitoring for all instances of Charger Manager. | 62 | and it will manage in-suspend monitoring for all instances of Charger Manager. |
57 | 63 | ||
58 | The user needs to provide all the two entries properly in order to activate | 64 | The user needs to provide all the three entries properly in order to activate |
59 | in-suspend monitoring: | 65 | in-suspend monitoring: |
60 | 66 | ||
61 | struct charger_global_desc { | 67 | struct charger_global_desc { |
@@ -74,6 +80,11 @@ bool (*rtc_only_wakeup)(void); | |||
74 | same struct. If there is any other wakeup source triggered the | 80 | same struct. If there is any other wakeup source triggered the |
75 | wakeup, it should return false. If the "rtc" is the only wakeup | 81 | wakeup, it should return false. If the "rtc" is the only wakeup |
76 | reason, it should return true. | 82 | reason, it should return true. |
83 | |||
84 | bool assume_timer_stops_in_suspend; | ||
85 | : if true, Charger Manager assumes that | ||
86 | the timer (CM uses jiffies as timer) stops during suspend. Then, CM | ||
87 | assumes that the suspend-duration is same as the alarm length. | ||
77 | }; | 88 | }; |
78 | 89 | ||
79 | 3. How to setup suspend_again | 90 | 3. How to setup suspend_again |
@@ -111,6 +122,16 @@ enum polling_modes polling_mode; | |||
111 | CM_POLL_CHARGING_ONLY: poll this battery if and only if the | 122 | CM_POLL_CHARGING_ONLY: poll this battery if and only if the |
112 | battery is being charged. | 123 | battery is being charged. |
113 | 124 | ||
125 | unsigned int fullbatt_vchkdrop_ms; | ||
126 | unsigned int fullbatt_vchkdrop_uV; | ||
127 | : If both have non-zero values, Charger Manager will check the | ||
128 | battery voltage drop fullbatt_vchkdrop_ms after the battery is fully | ||
129 | charged. If the voltage drop is over fullbatt_vchkdrop_uV, Charger | ||
130 | Manager will try to recharge the battery by disabling and enabling | ||
131 | chargers. Recharge with voltage drop condition only (without delay | ||
132 | condition) is needed to be implemented with hardware interrupts from | ||
133 | fuel gauges or charger devices/chips. | ||
134 | |||
114 | unsigned int fullbatt_uV; | 135 | unsigned int fullbatt_uV; |
115 | : If specified with a non-zero value, Charger Manager assumes | 136 | : If specified with a non-zero value, Charger Manager assumes |
116 | that the battery is full (capacity = 100) if the battery is not being | 137 | that the battery is full (capacity = 100) if the battery is not being |
@@ -122,6 +143,8 @@ unsigned int polling_interval_ms; | |||
122 | this battery every polling_interval_ms or more frequently. | 143 | this battery every polling_interval_ms or more frequently. |
123 | 144 | ||
124 | enum data_source battery_present; | 145 | enum data_source battery_present; |
146 | : CM_BATTERY_PRESENT: assume that the battery exists. | ||
147 | CM_NO_BATTERY: assume that the battery does not exists. | ||
125 | CM_FUEL_GAUGE: get battery presence information from fuel gauge. | 148 | CM_FUEL_GAUGE: get battery presence information from fuel gauge. |
126 | CM_CHARGER_STAT: get battery presence from chargers. | 149 | CM_CHARGER_STAT: get battery presence from chargers. |
127 | 150 | ||