| Commit message (Collapse) | Author | Age |
| ... | |
| | | | | |_|_|_|/
| | | |/| | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
commit 0610735928ee47870e083d5901caa371089216f1 upstream.
bq->charger is initialized in bq24257_power_supply_init.
Therefore, bq24257_power_supply_init should be called before the
registration of the IRQ handler bq24257_irq_handler_thread that calls
power_supply_changed(bq->charger).
Signed-off-by: Georges Savoundararadj <savoundg@gmail.com>
Cc: Aurelien Chanot <chanot.a@gmail.com>
Cc: Andreas Dannenberg <dannenberg@ti.com>
Cc: Sebastian Reichel <sre@kernel.org>
Cc: David Woodhouse <dwmw2@infradead.org>
Fixes: 2219a935963e ("power_supply: Add TI BQ24257 charger driver")
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
| | | |\| | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Conflicts:
kernel/cpuset.c
|
| | | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
commit 5381cfb6f0422da24cfa9da35b0433c0415830e0 upstream.
The device's model download function returns the model data as
an array of u32s, which is later compared to the reference
model data. However, since the latter is an array of u16s,
the comparison does not happen correctly, and model verification
fails. This in turn breaks the POR initialization sequence.
Fixes: 39e7213edc4f3 ("max17042_battery: Support regmap to access device's registers")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Sven Van Asbroeck <TheSven73@googlemail.com>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
| | | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
commit 33e7664a0af6e9a516f01014f39737aaa119b6d9 upstream.
Add missing platform_set_drvdata() in tps65217_charger_probe(), otherwise
calling platform_get_drvdata() in remove returns NULL.
This is detected by Coccinelle semantic patch.
Fixes: 3636859b280c ("power_supply: Add support for tps65217-charger")
Signed-off-by: Wei Yongjun <weiyj.lk@gmail.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
| | | | | |_|_|/
| | | |/| | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
commit bae170efd6c42bf116f513a1dd07639d68fa71b9 upstream.
Free memory mapping, if probe is not successful.
Fixes: 4a9b37371822 ("power: reset: move hisilicon reboot code")
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
| |\ \ \ \ \ \ \
| |_|_|_|_|/ /
|/| | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
If ESR value goes to 0 because of some hardware issue, there is
no way to recover it back from that state. This causes incorrect
SOC reporting leading to a bad user experience. Hence add support
to clamp ESR value based on user defined DT property so that ESR
can be clamped to this value once it is found to go below it.
Since this change modifies ESR value in SRAM, having FG_SRAM_ESR
property would make encode and decode the value easier. Hence
remove fg_get_battery_esr() and get it from FG_SRAM_ESR property.
CRs-Fixed: 2011200
Change-Id: I96250b44f52d6208f3c64fb9e61f70ea41f54f4e
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
|
| |\ \ \ \ \ \ \ |
|
| | | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Currently BCL LMH algorithm enable request goes for every time BCL
threshold enablement. It needs to be enabled only once. So Enable
BCL LMH algorithm only once.
Change-Id: I94c7326b7730830f71b71c92df21a589ddd2347b
Signed-off-by: Manaf Meethalavalappu Pallikunhi <manafm@codeaurora.org>
|
| | | |/ / / / /
| |/| | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Just after enabling BCL, reading and evaluating current battery SoC
is bypassed. Because of this, during this same time if battery SoC
is less than preset threshold, BCL doesn't mitigate until next battery
SoC change notification comes. Fix battery SoC read and evaluation
path whenever BCL is enabled.
CRs-Fixed: 2007133
Change-Id: I65639ab078875dc3f6940fd1a89201af98e40881
Signed-off-by: Manaf Meethalavalappu Pallikunhi <manafm@codeaurora.org>
|
| |\ \ \ \ \ \ \ |
|
| | |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
qpnp-fg and qpnp-smbcharger are not supported anymore. Remove them.
Change-Id: Icc010cd77d9d1e839a6dfa681b65e19b8978fb56
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
|
| |\ \ \ \ \ \ \ |
|
| | | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Add sysfs files for user applications to restrict
the battery charge current (FCC). The two files in
/sys/class/qcom-battery/ are -
1. restricted_charging: To enable/disable this feature
2. restricted_current: Restricted FCC (uA)
The default restricted_current value is 1A.
CRs-Fixed: 1113761
Change-Id: I23a6796eaa0c41c2e93a52c45f6200326d262e99
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
|
| |\ \ \ \ \ \ \ \
| |_|/ / / / / /
|/| | | | | | | |
|
| | |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
For cpu frequency mitigation, there is one common device request
handle for all BCL events. There is a possible race condition for
frequency mitigation request if two BCL events are cleared
simultaneously and cpu frequency mitigation handler for these two
events are handled in different cpus. This gives rise to a scenario
where cpu frequency in mitigated state even though all BCL events
are cleared.
To avoid this race condition, serialize frequency mitigation request
using a mutex.
CRs-Fixed: 2005131
Change-Id: I29b189b2ecd18603441d0b69faa4c38123244a4a
Signed-off-by: Manaf Meethalavalappu Pallikunhi <manafm@codeaurora.org>
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Averaging 10 die temperature samples reduces error caused by
a trim issue.
Change-Id: Ie0b9477c121df92544280b8e322c2205c680f6eb
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
|
| |/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
700Khz is not a harmonic of the digital clock and is optimal enough
for all vbus ranges. Running the smb in the non harmonic freq range
is required for correct TDIE adc reporting.
Change-Id: Ib70d64cd72b7408474fd64df287f6404d3749764
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
|
| |\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
When the PD voltage changes AICL needs to be rerun to increase the input
current. Do it.
Change-Id: Ifa49547037d17c3ec2f01b6ac70faa310585825a
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
|
| |\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Provide means to set ship mode on smb138x charger. While in parallel
charger mode make the main charger set ship mode on smb138x before
calling ship mode on itself.
Change-Id: I9b96b425829520d95632aa32d2297940cca5e254
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
|
| |/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Currently the notifier does not respond to main psy changed events, so
changes in ICL will not schedule the status change work. Furthermore,
the status change work does not re-run the FCC splitting which is
dependent on the settled ICL.
First, add the main psy as one of the triggers for the status changed
work. Second, re-run the FCC and FV voteable elections to re-split the
FCC based on the new ICL.
Change-Id: I1f5f2e176ec470c9c71ff4a0787ffa0cc5828ebc
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
|
| |\ \ \ \ \ |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The hardware based threshold comparison requires thermal regulation to
be active. This is a problem for layouts which connect USBIN rather than
MID to the SMB138X since the thermal regulation will throttle the ICL in
the USBIN case.
Read the connector temperature ADC and compare against the thresholds
in software instead of enabling thermal regulation.
Change-Id: I9ecda675947fc6c82a8c8b67d0c9d930365ad02e
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
ICL change interrupt triggers whenever there is change in the
input ICL, in case of AICL restart(done as part of S/W base
pulsing) AICL starts from 500mA and ICL change gets triggered
for every 25mA ICL as part of AICL ramping.
ICL change handler generates a power_supply event on parallel
psys and thus causing parallel framework to re-split ICL for
every 25mA. Fix this by delaying power_supply event until AICL
settles.
Change-Id: I9270a99f536db4534e46764b2e053ff93b38cb54
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Hardware autonomous INOV does adapter's output voltage
manipulation only based on the input limited state of main
charger. This works well with MID-MID parallel configuration
but with USBIN-USBIN parallel configuration parallel charger's
input limited state also plays role for INOV manipulations.
Thus disable hardware based autonomous INOV and add support
for software based INOV for USBIN-USBIN configuration.
Note that if authentication is disabled, the hw assumes QC3.0 and
if the autonomous bit is enabled, it issues increment/decrement pulses.
This happens even when QC3.0 has not been actually authenticated.
Change-Id: I397acb558c9ba3b6fc7d7b974d64459f278697fd
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
|
| | |_|_|/ /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
USBIN-USBIN parallel configuration can have either an internal current
sensing via main charger's BATFET or an external current sense resistor.
The FCC split between main and parallel charger differs based on current
sensing mode, add support to differentiate internal/external sensing and
the FCC split is done as follows:
- Internal Sensing: Main charger configure to full FCC
Parallel charger configured to 50% FCC.
- External sensing: Main charger configure to 50% FCC
Parallel charger configured to 50% FCC.
Change-Id: Ia0c6234ce6f62af460edd3c4f56e34810899b3e3
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
"icl_reduction_ua" is not updated to new slave ICL value after
ICL split, update the variable.
Change-Id: I944fddfda1aa2c359785d1a3155ac22ebe91fa65
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
|
| |/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In PM660 "QC authentication done" IRQ is a pulse and thus it
does not require workaround to disable this IRQ after authentication
completes. Add a workaround flag to enable this only for PMI8998.
Change-Id: I766219df38fc4954f5208d6db323b680e8e5fafd
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
|
| |\ \ \ \ |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
There is a possible race condition when FG debugfs files are concurrently
accessed by multiple threads. Fix this.
CRs-Fixed: 1105481
Change-Id: I154e7f3cdd8d51cf67ef1dfd9d78f423f183cb64
Signed-off-by: Ankit Sharma <ansharma@codeaurora.org>
|
| |\ \ \ \ \ |
|
| | |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Add CONSTANT_CHARGE_CURRENT_MAX, to set and get fcc.
CRs-Fixed: 2004173
Change-Id: I3dfed0ca7b2a477e1c106955fa112ba5206e3fa4
Signed-off-by: Harry Yang <harryy@codeaurora.org>
|
| |\ \ \ \ \ |
|
| | |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The value of device tree property qcom,connector-temp-max-mdegc is
passed to a wrong variable. Fix it.
CRs-Fixed: 1077217
Change-Id: I705467d91dd8e5e9ea4aa0ab231e29c512608f36
Signed-off-by: Harry Yang <harryy@codeaurora.org>
|
| |\ \ \ \ \ |
|
| | |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Current driver has two votables for controlling the usb current
and the usb suspend bit. This could lead to a situation where
the icl votable changes current setting while its suspended.
Changing current setting while suspended causes icl changed
interrupt storm.
Fix it by removing usb_suspend_votable and make all the suspend
voters call usb_icl_votable with 0mA to cause suspend.
Update usb_icl_votable to update current settings only when
not suspended. Moreover disable the interrupt while changing
the current settings and enable the interrupt only after the
unsuspend.
Change-Id: Iafc8ee3c934952b8131d374d0529e865424016d5
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
|
| |\ \ \ \ \ |
|
| | |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Parallel charging is enabled only for DCP and HVDCP adapters, add
support to enable parallel charging for SDP/CDP/OCP and FLOAT chargers.
While at it, rename PL_DISABLE_HVDCP_VOTER to PL_DELAY_HVDCP_VOTER.
Change-Id: I79b28ee6fd91739fa9895959d9ca3d399506d388
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
|
| |\ \ \ \ \
| |/ / / /
|/| | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Add support to configure battery thermal coefficients so that different
battery thermistors can be supported. These coefficients can be
configured via "qcom,battery-thermal-coefficients" device tree property.
CRs-Fixed: 2004461
Change-Id: Iff25acd397a68c31057dff4db1896d46e396adc6
Signed-off-by: Yingwei Zhao <cyizhao@codeaurora.org>
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Slope limit coefficient is used to define the maximum change in
battery SOC. There is a requirement to configure slope limit
coefficient based on charging status and battery temperature
threshold. Add support for it through the following properties.
- qcom,slope-limit-temp-threshold
- qcom,slope-limit-coeffs
Possibe values allowed for slope limit coefficient is 0 to 31.
Change-Id: I41eacb13734f1692a16c1b011c58a488e46515ec
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
|
| |\ \ \ \ \ |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Currently when 3 switcher_power_ok interrupts are seen within a
second, the driver thinks that the switcher is reverse boosting
and suspends USB input path.
However, switcher_power_ok could happen 3 times within a second
while AICL is run from a charger collapse, a valid usecase which
ends up in an USB suspended state.
Note that AICL run caused switcher_power_ok is accompanied by an
USBIN_UV interrupt. Use that to distinguish reverse boost Vs AICL
runs. In particular, reset the switcher_power_ok interrupt count
updated by storm_watch when an USBIN_UV interrupt is seen.
Change-Id: I6817c66319f9af03ac28324a8d863876fdadafb3
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
|
| |\| | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Since the interrupt information for both smb2 and smb138x charger
devices are almost common, abstract it to a single smb_irq_info
struct. Also, keep an interrupt index for every interrupt which
can be used when necessary.
Change-Id: I4e42dd15a46b59c1a9c27412ca6fdff281fa71ec
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
There are some circumstances where we have to reset the storm
watch interrupt count. Add support for it.
Change-Id: Iacbeb3258d53010aab8ba881d10de773fe54dd93
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Print the ICL settled value within the icl-changed IRQ handler.
Change-Id: I5553abecfc5e32b24bef3525f532f4b3505c0757
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Currently, fixed 5V adapter voltage is used for calculating slave FCC.
When HVDCP 3.0 is used it skews the desired FCC distribution. Fix this
by using the HVDCP3 pulse count to determine the actual adapter voltage
when limiting the slave battery current.
Change-Id: Ib4735ffe7b6287a3e57e0f74eb24c13c6a2b7a5a
Signed-off-by: Fenglin Wu <fenglinw@codeaurora.org>
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
|