As per the hardware documentation, add support for configuring
ESR tight and broad filters for normal and low temperature. This
is needed as the low temperature ESR filter coefficients are not
functional in the hardware.
All the filter values (in terms of percentage) can be configured
through the device tree. When the battery temperature goes below
10 C or user configured temperature threshold, ESR filter values
of room temperature will be applied to ESR low temperature
filters. Once the battery temperature goes above 10 C, original
values will be applied back to ESR low temperature filters.
Change-Id: I347f194f96ace3036a3c49efe0306d9f909cef36
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Battery missing detection interrupt fires prematurely for higher
battery ID values than the desired range. Fix this by disabling
BMD when battery is re-inserted and enable it after obtaining the
battery ID.
While at it, update the battery type shown in particular when a
battery profile is not available.
Change-Id: Ia5458a85289e47bda0a9f4bc59683af695974bc5
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
In certain cases like battery hotswap where a strong charger is
connected and battery is re-inserted, the expectation from the
user is to reload the battery profile. This cannot happen unless
a dVdd reset happens and wipes out FG SRAM. To help with the
aforementioned scenario, clear the profile integrity bit every
time when the battery is re-inserted. This way, FG driver will
reload the profile everytime upon battery insertion.
When the battery is missing, cycle counters cannot be cleared as
the access to FG SRAM might not succeed. Hence remove it from the
battery removal path. It will be cleared anyways when the profile
is loaded after the battery is inserted.
While at it, show the cached value of battery_id instead of
reading it every time from RR_ADC peripheral. When the battery is
re-inserted, battery id is obtained from RR_ADC driver anyways
which is sufficient.
Change-Id: I0b9566f7a9fcc81e26e68280382e2d960c49eeb5
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Add support to dump FG SRAM periodically based on the module
parameters. This will be useful for debugging purpose.
To enable FG SRAM dump,
echo 1 > /sys/module/qpnp_fg_gen3/parameters/sram_dump_en
To disable FG SRAM dump,
echo 0 > /sys/module/qpnp_fg_gen3/parameters/sram_dump_en
To set FG SRAM dump period,
echo 15000 > /sys/module/qpnp_fg_gen3/parameters/sram_dump_period_ms
Change-Id: Ib4bae7f67100a4bda1e4b996f2fbaeb86da979d2
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
MMC_PM_WAKE_SDIO_IRQ flag is used by platform driver(sdhci-msm
here) to determine if SDIO wakeup IRQ needs to be enabled
or not. If this flag is not removed in every mmc_resume_host,
then while suspend, platform driver will configure the sdio
wakeup IRQ even though wlan is disabled from UI.
This flag can be enabled by wlan driver before entring into suspend.
In this case since Wlan is not enable and thus not entering WoW mode,
pull up present on this SDIO GPIO line will pull the line high (which
otherwise is pulled low by wlan firmware in WoW mode and triggers
interrupt by pulling it high in WoW mode) which eventually will
trigger a false SDIO wakeup interrupt thus breaking the suspend
everytime.
Hence disable the flag everytime in mmc_sdio_resume and let
wlan driver enables it (-by sdio_set_host_pm_flags)
before entering into suspend if needed
for sdio wakeup part.
Change-Id: Iecf9eef4d91a741116bc8b8bb59c49ae7f2891fd
Signed-off-by: Ritesh Harjani <riteshh@codeaurora.org>
This patch enables the deferred resume support which would
prevent initialization of the card each time the system resumes.
With this change, the resume process would only be initiated if
a request is received.
Following scenario can occur:
1. device runtime suspended, system suspend is triggered
When resumed, the device would not be resumed until a
request is received.
2. device is runtime active, system suspend is triggered
When resumed, the device would be marked as BUS_NEEDS_RESUME
and actual resume would happen, when a request is received.
At this point, the device may also enter runtime-suspend or
system suspend may also occur. In both the cases, since the
device has not been resumed, it won't be suspended again.
However, the platform device would be runtime suspended
and resumed as before.
It can so happen that the card is removed even before a
request is received. In this case the device would be
resumed and card would be removed from core layer and
upper layers would be notified.
In case of SDIO cards, this change would not have any effect
since manual resume would be enabled for devices supporting
a block read/write commands.
CRs-Fixed: 561382
Change-Id: Id39befea109ee24864dfde0898395b972d0a1b3a
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Signed-off-by: Ritesh Harjani <riteshh@codeaurora.org>
Avoid printing of the error messages and register dumps,
incase of data endbit errors like other data errors.
Change-Id: If8ed082cc97a895cfbf959201c579914d5768b23
Signed-off-by: Pavan Anamula <pavana@codeaurora.org>
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
During suspend/resume, the driver writes to AUTOBKOPS_EN bit in
EXT_CSD register of eMMC which is R/W/E. Even after power off
R/W/E bit will retain it's value, as it will be stored in NAND
flash. Multiple writes can wear out the specific NAND block which
store the system data(AUTO BKOPS bit in this case). So to avoid
this, enabling/disabling of autobkops has been removed from
suspend and resume. The background operations, if any, will stop
when sleep command is sent during suspend process.
Change-Id: I8aa7eda86beafacb3337be81c5a7f1f1e86f4998
Signed-off-by: Vijay Viswanath <vviswana@codeaurora.org>
SDM630 platform can support either PM660l or PM660a PMICs,
add support for the same.
CRs-Fixed: 1106556
Change-Id: I82e35ef278ea5900c4023ab714cbf31f8c01151f
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
The total number of rpm clocks are required to be updated to the correct
index else it would not send RPM the first vote. Also update the bimc mux
sel value. Add an extra mmssnoc_axi active vote of 19.2MHz.
Change-Id: I502c72a18a3e3493f44cdf72f48efcbae41efb7b
Signed-off-by: Taniya Das <tdas@codeaurora.org>
Add support for building new sdm defconfigs.
Change-Id: I7d1ae9fb0a3888a92ee4df850061afe3d2e378c6
Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
The OLEDB driver provides the regulator interface to control the AVDD
bias voltage for AMOLED display.
Change-Id: I0b2a363f26f5ca3949892b2bbba3ff4d80184de4
Signed-off-by: Kiran Gunda <kgunda@codeaurora.org>
The OLEDB module provides the AVDD bias supply for the AMOLED display.
The supported voltage range of the bias is 5 to 8.1V. This driver provides
the regulator interface to control the bias voltage.
Change-Id: Ide4af995ca9fd12b3467de42e5d08eddc3981344
Signed-off-by: ansharma <ansharma@codeaurora.org>
Signed-off-by: Kiran Gunda <kgunda@codeaurora.org>