summaryrefslogtreecommitdiff
path: root/drivers/power/supply/qcom (follow)
Commit message (Collapse)AuthorAge
...
* | | | | power: supply: qcom: use typec mode instead of debounce doneNicholas Troast2017-05-31
| |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the CC state change IRQ fires on USB removal the debounce done status may still be high, and the removal cleanup will not be called. Use the UFP/DFP status bits to determine whether the CC lines are present or not instead. While at it cache the CC state so it doesn't have to be derived everywhere it is needed. The status bits are already cached, so there should be no functional difference. Change-Id: Ifb89c78a032ae9d38fbc8c281518698941e131c2 Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
* | | | battery: don't wait for aicl rerunAbhijeet Dharmapurikar2017-05-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the callback to change the usb icl, the current code waits to rerun AICL. These waits were to ensure that AICL completes and we can restore parallel charger once done. However, these waits are unnecessary since we invoke code to enable USBIN_I_VOTER for parallel charger in a workqueue. Moreover, these wait causes compliance failures. Remove those waits. Change-Id: Id2e3ca87e111aa415c47683a2cc365a9bece7ffb Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* | | | smb-lib: ignore disconnects during power role swapAbhijeet Dharmapurikar2017-05-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During a power_role swap, the CC lines get disconnected for a bit. This causes the charger driver to prematurely declare a disconnection and it resets back to disconnected state. Update the code to distinguish a disconnect caused during PR_SWAP vs a real disconnect. Avoid - resetting the CC line to HW control - switching DRP mode - enabling the crude sensor workaround - enabling APSD during a discconnet caused by PR_SWAP Note that PR_SWAP setting/unsetting needs to done regardless of the connected state of the CC line. When PR_SWAP is notified to be completed and the CC lines are still seen disconnected call the real disconnect code. While at it Vconn can be disabled too in the real disconnect code path. Change-Id: I97ab7ee343c5b2bcf25797e6acbb1de37f5ba00a Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* | | | smb-lib: reset SDP draw to 100mAAbhijeet Dharmapurikar2017-05-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The driver could leave SDP's current draw to a higher value once its removed. This is because the code to reset the current limit needs the type to be SDP to reset it which is not going to be the case after removal. So reset SDPs current limit back to 100mA in the code path for non-SDP chargers. Change-Id: Idfb9df1b72a17f1db63265b85f6546cbb77c4018 Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* | | | Merge "qpnp: smb2: fix ICL recovery mechanism"Linux Build Service Account2017-05-26
|\ \ \ \
| * | | | qpnp: smb2: fix ICL recovery mechanismAshay Jaiswal2017-05-23
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ICL recovery mechanism is used by user space daemon to recover from adapter collapse during voltage increment event by reducing the USB ICL. There could be a situation where nobody votes on usb_icl_votable and this could lead to a negative ICL value. Fix this by reading "HW_CURRENT_MAX" property to get ICL in situations where usb_icl_votable is not voted by any client, this ensures ICL reduction will always vote a valid ICL. CRs-Fixed: 2048330 Change-Id: I8e53a945530c1685aaaba0537d16ac5fb11858df Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
* | | | Merge "qpnp-smb2: update AICL rerun logic for PM660"Linux Build Service Account2017-05-26
|\ \ \ \
| * | | | qpnp-smb2: update AICL rerun logic for PM660Ashay Jaiswal2017-05-23
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current AICL re-run design for PM660 uses AICL restart mechanism which starts AICL algorithm from Min ICL value to the configure ICL value one step (25mA) at a time, this adds considerable amount of delay for algorithm to reach a settled ICL value. Fix this by using PMI8998 based AICL re-run design. Change-Id: I84f612c275fa0d9785a6688a56c9da90df1b86d4 Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
* | | | Merge "power: qpnp-fg-gen3: update default empty voltage to 2.85 V"Linux Build Service Account2017-05-25
|\ \ \ \ | | |/ / | |/| |
| * | | power: qpnp-fg-gen3: update default empty voltage to 2.85 VSubbaraman Narayanamurthy2017-05-22
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Based on the hardware recommendation, update the default empty voltage from 2.8 V to 2.85 V. This is to prevent undervolting in low temperatures (e.g. -20 C) when battery voltage drops below 2.8 V but the battery SOC may not reach 0% as the charger is configured to issue GP_FAULT2 when battery voltage goes below 2.8 V. This helps in shutting down graciously. Change-Id: Ifc68b825541c09d985d890ee7200ff8e0af2ba0f Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
* | | Merge "power: qpnp-smb2: remove workaround for USBIN supplied VCONN"Linux Build Service Account2017-05-25
|\ \ \ | |_|/ |/| |
| * | power: qpnp-smb2: remove workaround for USBIN supplied VCONNNicholas Troast2017-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | VCONN is supplied by USBIN on MTP8998 which causes removal issues when PMI8998 is in source mode and VCONN is enabled. The workaround is to ensure VCONN is disabled when OTG is disabled which has implications on PD power role swap when PMI8998 is sourcing VCONN. The reference schematic has been updated to address this issue therefore the workaround should be removed. Change-Id: Ibe2309f3618d840340bd083cca0df8a8644dd9c8 Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
* | | qpnp-smb2: fix FV and FCC reportingAbhijeet Dharmapurikar2017-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the read of battery's voltage_max property (FV) and battery's current_max property (FCC) returns the value of DEFAULT_VOTER voter. But such a voter doesn't exist on battery's voltage_max property. Fix it by returning the value voted by BATT_PROFILE_VOTER. Change-Id: I2dac98f2ce9a423d5045788dbe120591f10c5a9e Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* | | smb-lib: do not disable parallel based only on main's settled currentAbhijeet Dharmapurikar2017-05-19
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently main charger ends up voting to disable parallel(USBIN_I_VOTER) if the settled current is less than 1.4Amps. It could be that the parallel path is drawing some current and the draw is higher than 1.4Amps. Move this disabling to battery, where the parallel charger's input current is taken in to consideration. Also while voting to disable, make sure that the main's input is limited. If there is more room for ICL to increase that means more power could be drawn from the charger and so we must keep the parallel charging enabled. If the ICL ceiling itself if 1.4Amps then disable parallel charging, because even if ICL has room to increase it wont cross 1.4Amps. The main's input limited state is set while AICL steps up - this ensures that we keep parallel disabled while AICL is running and settled is less than 1.4Amps. When the charger is removed, the main's input limited status is unset, however we want to keep the parallel charger disabled. In such situations the main's settled current is 0mA - use this to vote for disabling parallel charging. For any ICL change vote request: Disable parallel using USBIN_I_VOTER if requested current is less than 1.4Amps and to un-vote (i.e. when ICL vote is higher than 1.4Amps) rely on event from AICL done or status_change delayed work. Note that USBIN_I_VOTER is effective only for non-QC chargers. For QC chargers USBIN_V_VOTER continues to keep charging enabled since parallel need not be disabled is a lower current is requested with a QC charger. Change-Id: I61d7cd161a87de2904470b2d870058a0fe199116 Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* | qpnp-smb2: Add software based glitch filter for OTG detectionAshay Jaiswal2017-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When the USB_ID line is pulled low for a very short time there is a possibility that the SW misses rising edge(removal) event. This may lead to the state where charger is stuck in the boost-mode forever. Fix this my adding a SW based glitch logic which checks for the USB_ID after a SW debounce time and then notifies its presence/removal to the USB driver. CRs-Fixed: 2044958 Change-Id: I31974f7d68b435bbef329278cedbd726ada02e3f Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
* | power: qpnp-fg-gen3: Disable ESR pulldown for debug battery idSubbaraman Narayanamurthy2017-05-05
|/ | | | | | | | | | | Even with proper ESR pulse qualification threshold and ESR pulse amplitude, ESR pulses are still seen occasionally on devices that use battery with debug battery id. Disable ESR pulldown when debug battery id is found. This helps saving power by stopping ESR pulses. Change-Id: I2b9588ec39a2268123d94c06517b0dbb43d66fc7 Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
* Revert "smb138x: introduce support for smb1355"Abhijeet Dharmapurikar2017-05-03
| | | | | | | | | | This reverts commit 566b44214cc08786375ac8266ee387e431413078 (smb138x: introduce support for smb1355). This is not required since smb1355 support is moved to its own driver. Change-Id: Ibad8595c09a865e273adb6f30d6a75f931220131 Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* Revert "smb138x: use chg src bit to disable parallel charger"Abhijeet Dharmapurikar2017-05-03
| | | | | | | | | | This reverts commit 0f0e36134d8a1082f099d543a122cd10d777beda ("smb138x: use chg src bit to disable parallel charger) This is not required, since smb1355 support is moved to its own driver. Change-Id: I1bd454030d29195f03be132d167ec8294169b9d5 Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* qpnp-smb2: Support faking input current limited stateAbhijeet Dharmapurikar2017-05-03
| | | | | | | | Support faking input current limited state. This is very helpful in testing/debugging the software based vbus changing algorithms. Change-Id: I7cf548c94397ee680c9d65343c49ec7b16873e88 Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* power: qcom: smb2: Add REAL_TYPE property for usb power_supplyFenglin Wu2017-05-03
| | | | | | | | | | | | | | | Add POWER_SUPPLY_PROP_REAL_TYPE property for usb_psy to present its real charger type. POWER_SUPPLY_PROP_TYPE in usb_psy is always set to POWER_SUPPLY_TYPE_USB_PD for healthd to recognize it as an AC charger. Also add usb_port_psy with POWER_SUPPLY_TYPE_USB type is added for healthd to recognize it as an USB host. Their ONLINE properties will be updated according to the VBUS status, type-c mode and real charger type. With this type being set statically, update the usb phy and pd policy engine code to look at real type. Change-Id: I90aa69325cc82b09dfb513c0eeecbc61e092a57f Signed-off-by: Fenglin Wu <fenglinw@codeaurora.org> Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* qpnp-smb2: make qnovo vote for current and voltageAbhijeet Dharmapurikar2017-05-01
| | | | | | | | | | Currently the code simply enforces Qnovo's current and voltage bypassing other voters. This is not desired. Make Qnovo vote via the FCC and FV votables. The only other vote it should skip is the votes coming from battery profile. Change-Id: I5c794ea209a8ea2a61d834e2f619d7ccfd02fed9 Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* qcom: qpnp-smb2: fix cleanup pathAshay Jaiswal2017-05-01
| | | | | | | | | Fix the cleanup path of probe failure to make sure all the resources get released in proper order. Change-Id: Ie482c9856569ea708a8fa186049ab778a8e5be12 Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org> Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* qcom: battery: Fix using stale votable pointersHarry Yang2017-05-01
| | | | | | | | | | | | | | | | | The code flow between battery.c and smblib.c could end up with stale references in smblib. This is when if pl_init fails for some reason after creating the votables, while smblib obtains references to them, those references become invalid. Fix this by calling pl_init early in smb2 driver's probe such that if it fails smb2 driver exits early. Also change the name of pl_(de)init() functions to more appropriate name - qcom_batt_(de)init(). Change-Id: I58f79d26e6cc8524e792a23185ff6fc8cfdffa75 Signed-off-by: Harry Yang <harryy@codeaurora.org> Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* smb138x: use chg src bit to disable parallel chargerAbhijeet Dharmapurikar2017-05-01
| | | | | | | | | | | | | | | | | | smb1355 doesn't have any facility to suspend input. One has to disable charging using the chg_en command bit. So, when parallel charging needs to be disabled, configure the charger to ignore the chg_en input pin and instead use the command register. The command register is always programmed to disable charging. When parallel charging needs to be enabled, configure it to follow the chg_en input pin. This will work for both smb1355 and smb1381 parallel chargers. Change-Id: I50294f40927641c2e0a7c7e4e7d263592086d3a9 Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* qpnp-smb2: don't stomp over D+/D- during hard resetAbhijeet Dharmapurikar2017-05-01
| | | | | | | | | | | | | Currently when we are in hard reset, the driver requests to remove the float of D+/D- when VBUS drops and once VBUS is back, it requests to float D+/D- again. This behaviour ends up stomping over D+/D- lines leading to noncompliance with PD spec. Fix it by ensuring we only run the CC2 workaround while VBUS dips in hard reset. Change-Id: I2bb9364b890b3a227dd3ea3e0a34a415b600e21a Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* qpnp-smb2: report main charger's share in its current_maxAbhijeet Dharmapurikar2017-05-01
| | | | | | | | | | | | | | Currently main power supply reports the value of the input current limit set on the usb path. This is incorrect, it should report its own share. When parallel is disabled, it will end up reporting a value close to current limit, rounded by 25mA steps. Note that it should report INT_MAX when there is no limit set on the ICL - the case for hvdcp chargers. CRs-Fixed: 2037898 Change-Id: I9859f3d759644a08c6f762e929c471a41b1cdf8f Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* Merge "power: smb-lib: Fix charger type reporting"Linux Build Service Account2017-04-28
|\
| * power: smb-lib: Fix charger type reportingAshay Jaiswal2017-04-26
| | | | | | | | | | | | | | | | | | | | | | | | Charger type gets updated in 'smblib_update_usb_type' function and this should only be called after completion of APSD. Update the calling sites of 'smblib_update_usb_type' to use 'smblib_get_apsd_result' instead of 'smblib_update_usb_type'. This ensures charger type doesn't get updated inadvertently. CRs-Fixed: 2038837 Change-Id: Iaa380c8f02bb71ad0f4367c16ec39d86d825dfa2 Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
* | power: qpnp-fg-gen3: configure ESR FCC based on Qnovo enable statusSubbaraman Narayanamurthy2017-04-19
|/ | | | | | | | | | | | Currently, FG driver configures ESR FCC manually when charging is enabled and parallel charging is enabled. However, when Qnovo is enabled, it needs to be configured even when parallel charging is not enabled. This makes sure that the ESR pulses don't cause any overshoot when FCC is high already and thus help reducing VLIM errors seen on Qnovo. Change-Id: Iabe9e7ea785534d673978f081d20584de1480559 Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
* Merge "qcom: smblib: report discharging in case of input OV"Linux Build Service Account2017-04-18
|\
| * qcom: smblib: report discharging in case of input OVHarry Yang2017-04-17
| | | | | | | | | | | | | | | | | | | | | | | | | | The register BATTERY_CHARGER_STATUS continues to show charging state (like FULLON or TAPER mode) in cases where charging was paused due to input OV. Look at BATTERY_CHARGER_STATUS_7_REG to determine if charging was paused. This fix modifies previous similar change for JEITA hard condition but continue to cover the case. Change-Id: Ibc5f4f5e85651708b656f06814008b0c319db02d Signed-off-by: Harry Yang <harryy@codeaurora.org>
* | Merge "power: smb-lib: WA to fix legacy cable detection"Linux Build Service Account2017-04-18
|\ \
| * | power: smb-lib: WA to fix legacy cable detectionAbhijeet Dharmapurikar2017-04-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently a legacy cable is always assumed which causes decreased performance from non-legacy HVDCP adapters with 10k ohm Rp. Fix this by disabling and re-enabling Type-C to rerun the legacy cable detection. Moreover, the legacy cable IRQs are not used and cause unnecessary type-c-change IRQs to fire. Disable them. CRs-Fixed: 2020132 Change-Id: I57fc3762251ead028298f01b06d66f52fd119c6b Signed-off-by: Nicholas Troast <ntroast@codeaurora.org> Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
| * | power: smb-lib: cache USB Type-C statusAbhijeet Dharmapurikar2017-04-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the USB Type-C status is retrieved from the hardware in real time. The Type-C change IRQ should trigger on every change of the Type-C status, therefore it is not necessary to read the status registers multiple times if a Type-C change IRQ has not triggered. Furthermore, workarounds which force UFP/DFP mode, or disable Type-C altogether could mislead the software into thinking a removal has happened. Cache all of the USB Type-C status registers upon receiving a USB Type-C change IRQ, and use the cached status where appropriate. CRs-Fixed: 2020132 Change-Id: I99f2ff29633207898ae803672162db0c3cec80dc Signed-off-by: Nicholas Troast <ntroast@codeaurora.org> Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
| * | power: qcom: lock USB removalAbhijeet Dharmapurikar2017-04-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During USB removal a lot of cleanup happens; votables are reset, flags are cleared, etc. After the cleanup is finished there is a chance that USB power supply consumers may set properties before getting the USB removal notification. This can lead to many problems where ICL limits are set based on the previous insertion, or APSD is disabled due to a late setting of PD_ACTIVE. Introduce a lock which prevents USB power supply consumers from setting properties when USB has been removed. This lock will ensure that the next insertion starts with a clean slate. CRs-Fixed: 2020132 Change-Id: I05a4145289b6097e41afc30aa09782722fa03fb6 Signed-off-by: Nicholas Troast <ntroast@codeaurora.org> Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
| * | power: smb-lib: cleanup everything upon USB removalNicholas Troast2017-04-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently it is expected upon USB removal that consumers will receive a notification that USB has been removed and will cleanup after themselves. Unfortunately this makes it very difficult to keep track of all of the necessary cleanup steps upon removal. Also, in preparation of not allowing consumers to set properties after a USB removal has happened it is now the responsibility of the charger driver to cleanup on their behalf. Moreover, since we don't have a separate removal/insertion interrupt, the removal/insertion code may run even if the typeC cable is not physically inserted/removed. Fix it by tracking a typec_present flag. CRs-Fixed: 2020132 Change-Id: Ia514abaa4e12f72daec17fd1e95f3c51cc38a15f Signed-off-by: Nicholas Troast <ntroast@codeaurora.org> Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* | | Merge "power: smb-lib: start CC2 removal WA when VBUS is low"Linux Build Service Account2017-04-18
|\| |
| * | power: smb-lib: start CC2 removal WA when VBUS is lowAbhijeet Dharmapurikar2017-04-17
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the CC2 removal workaround starts whenever PD issues a hard reset. When PD issues a hard reset it is not guaranteed that VBUS will fall since the source may not even be PD capable. The CC2 removal workaround should only run during the time that VBUS is low and CC is debounced. Fix this by scheduling the CC2 removal workaround when VBUS falls and CC is debounced, and cancel the workaround when either VBUS rises, or the removal detection is successful. CRs-Fixed: 2020132 Change-Id: I6475d37911d90805ed8b3bb4b3a26a9f7557ebd6 Signed-off-by: Nicholas Troast <ntroast@codeaurora.org> Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* | Merge "qcom: qnovo: allow charger error conditions to disable qnovo"Linux Build Service Account2017-04-18
|\ \
| * | qcom: qnovo: allow charger error conditions to disable qnovoHarry Yang2017-04-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Stop qnovo charging in case of all errors except CV mode, which allows ptrain to continue. The rest errors include JEITA soft and hard conditions, battery overvoltage, battery missing, safety timer expired, switcher disabled and charger disabled. Change-Id: I010853983d018e20235a91762b0d4f9a916c0ede Signed-off-by: Harry Yang <harryy@codeaurora.org>
* | | qcom: smb2: Fix FCC/Float voltage configuration from device treeAshay Jaiswal2017-04-18
| |/ |/| | | | | | | | | | | | | | | | | | | | | FCC and Float voltage is configured by battery driver using power_supply framework (main_psy), re-run FCC/FV election once main_psy is available to ensure FCC/Float voltage is configured and reflected on hardware. While at it, add check for valid "pl_psy" before using it. CRs-fixed: 2028082 Change-Id: I2f5dc174eacf325ba27186b07c89bb7d438f061b Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
* | qcom: smb-lib: rerun APSD on insertion for micro USB modeAshay Jaiswal2017-04-16
| | | | | | | | | | | | | | | | | | | | | | | | In case of very slow insertion of SDP/DCP there is a possibility that D+/D- makes contact while APSD is in progress. This will result in an incorrect type detection. Fix this by doing a APSD rerun after charger-type detection is complete. CRs-Fixed: 2032590 Change-Id: I0037b90f29dbe65a2cdb2771d5caceff77862f03 Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
* | Merge "qcom: smb2: ensure QC adapter is at 5V at shutdown"Linux Build Service Account2017-04-15
|\ \
| * | qcom: smb2: ensure QC adapter is at 5V at shutdownAshay Jaiswal2017-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the shutdown hook, driver forces adapter to 5V but there is a possibility that the source change IRQ triggers and moves back the adapter to 9V. To avoid this and any race between the irq's and shutdown path, disable all irqs as the first step in shutdown path. CRs-Fixed: 2032575 Change-Id: I0d8f59a73b6631e9bf6f5d64dd215c239e7772fe Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
* | | power: qpnp-smb2: Specify the min/max charger switching frequencyAnirudh Ghayal2017-04-14
| | | | | | | | | | | | | | | | | | | | | | | | Add a device tree property to override the minimum and maximum charger buck/boost switching frequency. Change-Id: I6b827157c23a389edf2daa412e6825b6ce07a886 Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
* | | power: smb-lib: Fix sink/source insertion/removal function orderingAnirudh Ghayal2017-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On PM660 the charger buck/boost frequency is configured in the same register. Present ordering of the sink/source removal function call causes incorrect charger frequency configuration. Fix this by first calling sink_removal and then source_insertion function. Also, configure the buck frequency to the initial 5V USB value during source insertion. Change-Id: I0d436f7e0843f2ddaa3d09db05cec403d03b6893 Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
* | | Merge "power: qpnp-fg-gen3: Add support to configure base termination current"Linux Build Service Account2017-04-13
|\ \ \
| * | | power: qpnp-fg-gen3: Add support to configure base termination currentSubbaraman Narayanamurthy2017-04-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support to configure base termination current which is the upper boundary at which fuel gauge will signal an end of charge to the charger during discharging. Change-Id: Ied2f89fc8e132161d55a9bfbcca6738fef164b20 Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
| * | | power: qpnp-fg-gen3: Adjust ki_coeff_full_soc dynamicallySubbaraman Narayanamurthy2017-04-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the battery temperature goes below -10 C, SOC may get stuck to 100%. This is due to the SOC full loop adjusting down with very high battery impedance. To mitigate this, SOC full loop has to be frozen. Add support for it by adjusting ki_coeff_full_soc dynamically based on battery temperature. Change-Id: I6218568712b025bc4427770bf86d142d50f40c7b Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
* | | | Merge "ARM: dts: msm: Add RRADC die-temp channel for PM660 FG"Linux Build Service Account2017-04-12
|\ \ \ \