| Commit message (Collapse) | Author | Age |
| ... | |
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Currently, FG_GEN3 driver loads the battery profile if it finds
out the profile loaded earlier doesn't match with the available
profile. This will be done when the profile integrity bit is
set already. Make this force profile loading as a configurable
parameter through a device tree property.
While at it, add a module parameter to dump the profile contents
conditionally. This will be helpful in debugging.
Change-Id: Ibaff55aa5434ee283e6d597485d193e9e52bb74e
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
msoc-full is not used to determine when the battery is full. The charger
will wakeup the device when it has terminated charging indicating that
the battery is full. Disable the msoc-full IRQ as a wakeup source.
The msoc-delta IRQ is used to wakeup the device when the SOC changes
therefore having the bsoc-delta IRQ as a wakeup source is unnecessary.
Disable the bsoc-delta IRQ as a wakeup source.
Change-Id: Iab7087ce3d6727abc852d3a84590cfa570ec584d
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Currently, delta SOC threshold is written as a 8 bit value but
the encoding is in 11 bits. This will cause the delta SOC
threshold programmed to a lower value causing interrupts to fire
quickly. Change the numerator of delta SOC SRAM parameter so that
the delta SOC threshold will be set correctly. Maximum possible
threshold will be 12.45% (1/2048 * 255).
Change-Id: Ia908c917d71939b9d72b16ddca3400a692540bf3
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Based on the battery profile parameters, Vbatt greater than float
voltage and full voltage thresholds needs to be configured. Add
support for the same. Since this needs the battery profile
parameters to be read in advance before the hardware is
initialized, shuffle the code to get battery profile early.
CRs-Fixed: 1068593
Change-Id: If5df62d933cc653a276967b3d16c080c6d4ecb2e
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
|
| |\ \ \ \ \ \
| | |/ / / /
| |/| | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
PMICv2 added irq support to tell if DCP is not QC charger.
Update charger driver for this HW change.
Change-Id: Ic75e2f1d528e6bbb3cf14c842b803bf4ebca8ad8
Signed-off-by: Harry Yang <harryy@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
USB charger voltage votes indenpently, along with ICL through
intermediate USBIN votable.
This change can correctly capture strong chargers by
monitoring input voltage or charger type.
CRs-Fixed: 1069575
Change-Id: I36843279fdac909966b3f01b5a6716d191fab903
Signed-off-by: Harry Yang <harryy@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The current driver simply skips checking for other events in the
typec change interrupt if an vbus error is seen. This could cause
parallel charging to never get enabled among other issues.
Fix is by simply printing a debug messages for vbus-error and
handling other events.
CRs-Fixed: 1069575
Change-Id: Ic2df178430b80ade1dea9aff7dbf8e08bb9c2310
Signed-off-by: Harry Yang <harryy@codeaurora.org>
|
| | |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The issue results from a earlier wrong assumption that parallel
psy is available when master side is ready. The happens on boot
with a strong charger attached, when FCC callback is about to
redistribute charging currents while parallel charger has not
yet probed, hence pl psy is invalid when accessed.
This issue is fixed by introducing parallel charger as a parallel
charging voter, which is also convenient for debugging purpose.
CRs-Fixed: 1059499
Change-Id: Ic96d30a02c966704d98e047602e4292f576fe448
Signed-off-by: Harry Yang <harryy@codeaurora.org>
|
| |\| | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Currently, charging status is shown as full for both the charge
termination and inhibit cases. However, there is a need to know
when the charge termination really happens.
Add charge_done property to qpnp-smb2 driver so that the clients
can read that property to distinguish termination and inhibit.
Change-Id: If2bd750af412adf1eea7b913caed9a3eb3b763db
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
When the battery is missing from the device the battery power supply
will still report that it is charging. Fix this by reporting the charge
status as "not charging" when the battery is missing.
Change-Id: I1150ccaa722109f3ea6a4a10e026709d3686e28b
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
|
| |\ \ \ \ \ |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Do not create /sys/kernel/dload/emmc_dload sysfs entry
when imem-dload-type is not defined and also fix error
paths of sysfs entry creation.
Change-Id: I354e1f7635c5163516e256ed71b8510d1665877d
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Based on the kernel parameter download_mode, disable the SDI
execution. Also disable SDI execution for kernel panic/crash
scenarios. Currently SDI is getting executed for kernel crash/panic
scenarios, but it does not required in these scenarios.
Change-Id: I5a64107e2bf210f82d94ab03c4f86f27f9a330c8
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Add sysfs entry to support emmc dload mode.
Adds /sys/kernel/reset/emmc_dload entry to enable or disable
emmc dload mode support.
Change-Id: If38135427304316b03d3193ad16d335605e9c143
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Add function to auto disable the SDI when the ramdump is disabled.
And make the device do hard reset at the same time.
Change-Id: I14e2d13792ef535364a082cdaed0b79c262ecfe5
Signed-off-by: Lijuan Gao <lijuang@codeaurora.org>
|
| |\ \ \ \ \ \
| | |/ / / /
| |/| | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Currently, we configure charger to end the charging cycle when
battery overvoltage is detected. This ends up the charging cycle
prematurely sometimes when charging phase transitions from fast
to taper. Disable this.
Change-Id: I8ac486fcb10e823671a8e8b438b7fc76a8969b7c
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
|
| |\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
|
| | | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
In trigger_cpu_pwr_stats_calc(), if the local variable 'prev_temp' is
already updated with the latest temperature then temp might be used
uninitialized.
When scheduler's power data snapshot updates in the sampling thread,
update the temperature as well if the temperature has been the same for
some duration such that temp is used only when the sensor is read.
In update_userspace_power, incorrect cpumask could cause the function to
use uninitialized cpu variable. Initialize it to -1 at the beginning of
the function and treat unmodified value as error condition.
Change-Id: Ieccdc3f54f9c9f2cecc6b8578400c6fe44333177
Signed-off-by: Archana Sathyakumar <asathyak@codeaurora.org>
|
| |\ \ \ \ \ |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Allow for easy track of step charging. Show step charging
status (enable/disable) and phases.
CRs-Fixed: 1052854
Change-Id: I525fcedda71c4928c61825faeea519355675457a
Signed-off-by: Harry Yang <harryy@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Interrupts are subject to storming in bad or unexpected circumstances.
Add the necessary structures to detect interrupt storms using storm watch.
Change-Id: Id3491b6f8927cb1ae7cbc8260defa697ca555765
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Storm watch provides a simple API for tracking the occurrence of event
storms.
An event storm is defined as a cluster of events where there are
X events with no more than Y milliseconds between them, where X and Y
are configurable per event.
Querying whether a storm has occurred marks a new event.
Change-Id: Idf4bb1421d0dbec295f92f84174cd4bbc6130250
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
CC_OUT is the signal/status to the PD that indicates which of
the CC line is active. When its low CC1 is active and when
high CC2 is active.
During Source -> Sink Power Role Swap, CC_OUT is reset default
low (CC1 = CC) when SW sets the UFP/SNK_EN_CMD bit, losing the
plug orientation info and causing USB PD message error if CC2
was the CC pin.
Fix this by ensuring that s/w overrides the CC_OUT signal to
reflect the actual one, in preparation for a possible upcoming
power
CRs-Fixed: 1050738
Change-Id: I5877666c39ac9cad713a5802521527dd8552440c
Signed-off-by: Harry Yang <harryy@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Add a bit mask to enable workarounds only if they are needed for a
particular hardware revision.
Change-Id: Ibd9a896ff6746a48ddab249d7c8ab762ed3c2fbe
Signed-off-by: Harry Yang <harryy@codeaurora.org>
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Currently the SOC in userspace is not being updated with the latest SOC
from the fuel gauge. Add power supply changed events when the delta SOC
interrupt fires, empty SOC interrupt fires, or when the charging status
changes to full.
Change-Id: I4bbf404639a97dcc443c9ecc8391623e2fff13fd
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The SOC range is divided into buckets. Whenever the battery is charged
across a bucket we increment the counter for that bucket. These cycle
counters are exposed through the "cycle_counter" property, and buckets
are selected by modifying the "cycle_counter_id" property.
Change-Id: I923c657132d071eff4b5bc61c00fb90de8dde62c
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Currently userspace will be notified whenever the Type-C changed
interrupt fires. The charging status reflects whether or not the charger
has a valid input power source. The valid input power source status
follows vbus and not the Type-C changed logic, so in some cases the
charging status may not yet be updated when the userpace is notified
that the USB power supply has changed.
Send a USB power supply changed event when both the Type-C changed
interrupt fires, and the USB plugin interrupt fires.
Change-Id: I50cdd8c706b10f08dc7f322ea02358f3dbce521e
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
|
| |/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
BCL gets the state of charge(soc) from the BMS power supply, which will
not capture the HLOS overidden soc value. This can create a scenario
where the mitigation will not be released if the soc value is
overridden in HLOS.
Use the battery supply notification, which can get the state of charge
value from the BMS or the HLOS overridden soc value if present.
Change-Id: I66d1ba1c6c3a942a80d3cee24746b00541fde3bc
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
There are some encoding changes to the following configurations
in pmi8998 SRAM. Update them.
For both v1.1 and v2.0,
- No sign bit for charge termination current
For v2.0,
- 6 bit encoding for empty voltage and vbatt_low
While at it, fix the SRAM byte location from byte 2 to byte 3 for
configuring empty voltage threshold in pmi8998v2.0.
CRs-Fixed: 1068592
Change-Id: I3a301aed1b23ab78aa86b24c11eb750502adab2f
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
healthd expects battery voltage, current, temperature, and technology from
the battery power supply. Add them.
Change-Id: I85f589030903ead938af2712875eb5daa81710d9
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The fuel gauge has several algorithm flags which are useful for
debugging. Add a debugfs file called alg_flags to expose them.
Change-Id: Ibeeea88e2e0745e98e8bfdfa3e086263d82e7bac
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Some SRAM registers are encoded using a floating point representation.
Add a function to decode these registers into signed micro-unit
integers.
The exponent and mantissa are signed integers represented by two's
complement, and the exponent value is offset by -9. This is a half
float representation stored as:
EEEEE MMMMMMMMMMM
Where E are the exponent bits, and M are the mantissa bits.
To decode this representation the following formula is applied:
2^(exponent - 9) * mantissa
Change-Id: Id9f28a0eeb2a904aca41eb46d0215d80287e0b88
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
|
| | |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Currently a device without a battery will shutdown soon after boot since
the SOC will be 0. Add a DT property called "qcom,batteryless-platform"
which indicates that the device does not have a battery. If this
property is set then charging will be disabled, and all of the necessary
battery parameters will be faked to ensure normal operation.
Change-Id: I6943b7f5565ad95eddb9e3d30de5efbc47106e3d
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
|
| |\ \ \ \ |
|
| | |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If the beat counts doesn't match during a SRAM read over IMA,
a retry is attempted using retry_once flag. This flag is not
cleared causing a continuous loop even if the beat counts match
again. Fix it.
CRs-Fixed: 1067180
Change-Id: Ie140740ce0374808a630a37d29888b646baa576f
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
|
| |\ \ \ \ |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Currently the code passes on the error value it receives from the
individual property getters. This causes the read of uevent to fail.
Instead convert those errors to -ENODATA which the power supply
framework handles graciously and keeps the read of uevent entry from
failing. It simply skips reporting that property in uevent.
Change-Id: I997197c7c7315769e49342da7973a9f79ab54c80
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
|
| |\ \ \ \ \
| |_|/ / /
|/| | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Only change wipower_max_uw value if defined in device tree file.
CRs-Fixed: 1064863
Change-Id: Ic64d80ee5e2f5fc79cb9220a6b2a86751dd3f0ce
Signed-off-by: Vic Wei <vwei@codeaurora.org>
|
| |\ \ \ \ \
| | |/ / /
| |/| | | |
|
| | |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Add support to indicate if the switcher is acting in input limited state.
Switcher running in high duty cycle (HDC) mode should also be indicated as
input limited condition.
HDC is a 5uS pulse and sw reading the real time status register may not
indicate that it is active. Basically the presence of the pulses and the
interrupts indicate HDC and conversely their absence indicates no
HDC. Set a flag in the interrupt and clear it in a delayed work queue in
20mS. As long as the interrupts happen this flag will remain set,
indicating HDC.
Change-Id: Ia2e2d02240c36ba982f9e190b88b822b5f1b90f1
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
|
| |\ \ \ \ |
|
| | |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Expose the charger temperature in both standalone and parallel mode via
the battery and parallel power supplies.
Change-Id: I43e73b3056386cf97b37652eeed3a4761e248711
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
|
| |\ \ \ \ |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Update the number of power-freq pair value supported in the debug
interface. Parse the arguments as uint32_t instead of uint64_t which
might cause memory corruption.
CRs-fixed: 1054344
Change-Id: I30492b79b96356177cdcc72e4e2ee656317de500
Signed-off-by: Archana Sathyakumar <asathyak@codeaurora.org>
|
| |\| | | |
| |/ / /
|/| | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Ptable and enable node parses the input arguments incorrectly. Parse the
input message into exact number of arguments that are required for the
respective nodes.
CRs-fixed: 1032875
Change-Id: I881f18217b703a497efa4799288dee39a28ea8ab
Signed-off-by: Archana Sathyakumar <asathyak@codeaurora.org>
|