Some platforms do not support HVDCP charging. Provide means to
disable them.
Provide a votable for disabling HVDCP in preparation to handle
VBUS and CC line shorted situation.
Note that when hvdcp is disabled, we only disable voltage
negotiations i.e. qc 2.0 detection remains enabled since it
does not need voltage to change.
Change-Id: Id7eaa46f08ac451a918a550f7837efbef78ab6f6
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
When a float charger is detected by APSD there are configuration options
that change the behavior of the charger. These options should be
configurable from the device tree. Add a DT parameter "qcom,float-option"
and configure it as follows:
1 - Treat as a DCP
2 - Treat as a SDP
3 - Disable charging
4 - Suspend USB input
Change-Id: Ia9219bc232f2092569dfb1a14f628e788173c4ff
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
Support incoming VCONN Swap requests by accepting and turning
off/on VCONN.
Due to HW board limitations, if VCONN is being sourced from the
VBUS input we cannot support enabling VCONN while as a sink and
greater than 5V has been negotiated on VBUS. In that case, reject
the request. Add a device tree property that indicates whether
the board is configured for separate VCONN supply.
Change-Id: If3a9aa316ae08a80468631f3d536a1b345e21b18
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Pat9125 is a gpio driven i2c slave. This change adds the gpio
configuration and pinctrl support for pat9125 driver.
Change-Id: I2a9b379715622b5f010a5780ca481da7f9619400
Signed-off-by: Vevek Venkatesan <vevekv@codeaurora.org>
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Silver and gold cluster use different PMU_EVENT and may need to have
different threshold values.
This patch creates different sysfs entries for silver and gold cluster.
CRs-Fixed: 1004392
Change-Id: I88cdf5110cadb44a81c0c700d5188bf639bb2129
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
Add support to configure and trigger preemptive charger
mitigation in flash driver.
Change-Id: Iec92d2037fcc60446760182c9eda53918e6e094c
Signed-off-by: Devesh Jhunjhunwala <deveshj@codeaurora.org>
Add support to program the ILED_GRT_THRESHOLD register, which
controls the led current threshold beyond which HW automatically
triggers preemptive mitigation.
Change-Id: I3ea14c8c76c4496eeeb11caf63c3ee62f031b157
Signed-off-by: Devesh Jhunjhunwala <deveshj@codeaurora.org>
During medium and high discharging scenario, voltage mode
correction needs to be applied so that the battery SOC can
follow closely with the battery voltage. Add support for this
by configuring the ki coefficients for medium and high discharge
current during discharging.
Change-Id: I0a76e9e2f74c40b55e01f9dc106d31a148edefdf
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
There is a requirement to show battery SOC at 100 when charging
status reaches full as long as the charger is connected and SOC
doesn't drop below automatic recharge threshold. Add support for
this through a device tree property "qcom,hold-soc-while-full".
Also, when charging status reaches full, recharge SOC threshold
need to be adjusted depending on the SOC where termination
happens. This will be more prominent in jeita conditions. Add
support for it.
Change-Id: Icc9536f17eedc3559c9f70dc2a8b73127c78c98a
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Add support of reading the status of the device, parsing it and
sending it to the Input framework using the input APIs.
Change-Id: Iebc3767e9dbcf10a541b8b02f8696da84312447a
Signed-off-by: Vevek Venkatesan <vevekv@codeaurora.org>
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
For SDCC version 5.0.0, MCI registers are
removed from SDCC interface and some registers
are moved to HC. This change is to support MCI
register removal for msmfalcon.
New compatible string "qcom,sdhci-msm-v5" is
added for msmfalcon to support this change.
Change-Id: I9a972c5656762385f11214fe22398cc14a996d29
Signed-off-by: Sayali Lokhande <sayalil@codeaurora.org>
Add support to read the qcom,lpg-lut-size property from
the device tree instead of using the value returned by the
of_get_address API.
CRs-Fixed: 1060896
Change-Id: I0f84baf29a141719dd44dabb67e9d599d9646d49
Signed-off-by: Devesh Jhunjhunwala <deveshj@codeaurora.org>
Battery temperature delta configuration can be used to know the
battery temperature change. There is an interrupt associated
with this configuration which can be used to update the battery
health of the device.
Change-Id: Ic55b9bb34ac9912f88dab6a11ec365814b525ca2
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
GEN3 FG has jeita hysteresis support in hardware. Add support
to configure the hysteresis applied to jeita temperature via
a device tree property.
While at it, fix reading the JEITA thresholds from device tree
property where the total size of the elements was used instead
of the total number of elements.
Change-Id: I1d468f1291224de0f781ca71cbc1374a29d7c790
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Batteries age across the time. Capacity learning is a feature
which uses the hardware autonomous coulomb counter to determine
the actual battery capacity against the advertised full capacity.
This will be useful to determine how much degradation has
happened to the battery. Capacity learning algorithm will start
based on some pre-set conditions like start SOC, battery
temperature and ends when the charging cycle is complete.
Actual capacity will be exposed through charge_full property.
Change-Id: I89cc14d213b0de10bc8d052dd76e1468fe9c30e5
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
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>
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>
Fix the following issues found in static analysis:
- missing blank lines after declarations
- unnecessary return in a void function
- exporting world writable files is usually an error
- block comments use * on subsequent and trailing lines
- Add DT binding description and vendor prefixe for the
driver.
- Add Linux Foundation copyright markings.
Change-Id: Id2ed9a6d4e31bd2acd3185bf7ef9c78f8a41cf36
Signed-off-by: Himanshu Aggarwal <haggarwa@codeaurora.org>
Signed-off-by: Vevek Venkatesan <vevekv@codeaurora.org>
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Add charger die temperature scaling coefficients based
on FAB ID. If FAB ID support is not available from the
REVID peripheral the driver does not report scaled
temperature for charger die temperature. Update temperature
compensation for PMIC die temperature.
Change-Id: I8864dccc1b53e70dac5d54129339e7224ec8ba67
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
PMICOBALT supports reading the FAB ID from the REVID
peripheral. Add an optional property qcom,fab-id-valid
to check if support for FAB ID is available in the
REVID peripheral for the PMIC.
Change-Id: If8212618baa7533b008228a71740acf1d6c72a52
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
Add support for the graphics clock controller found on MSMFalcon based
devices. This should allow graphics clocks for GFX clients to be able to do
clock functionality.
Change-Id: I753b40d574a4afc2104a5c2bfe64b4831fbce8a0
Signed-off-by: Taniya Das <tdas@codeaurora.org>
OTG devices with high capacitance could cause a system UVLO
due to a large amount of in-rush current drawn from battery.
Fix this by regulating the OTG boost start and altering PFM
threshold in software.
CRs-Fixed: 1048244
Change-Id: I08838d81eb99a424a3fd396582c56b120cbb46cb
Signed-off-by: Harry Yang <harryy@codeaurora.org>