[PATCH v3 0/2] extcon: Intel Cherry Trail Whiskey Cove PMIC and external charger tweaks

From: Yauhen Kharuzhy
Date: Sun Mar 03 2019 - 15:16:45 EST


At implementation of charging support for Lenovo Yoga Book (Intel Cherry
Trail based with Whiskey Cove PMIC), two pitfalls were found:

- for detection of charger type by PMIC, bit 6 in the CHGRCTRL1 register
should be set in 0 (and set to 1 for Host mode). Pick up its definition
and logic from from Intel code drop[1];

- "#CHARGE ENABLE" signal of external charger (bq25892) in Yoga Book is
connected to one of PMIC outputs controlled by CHGDISCTRL register.
Enable charging at driver initialization. Pick up this from Lenovo's code
drop[2,3].


v3 changes:
- Don't restore of initial state of CHGDISCTRL and CHGRCTRL0 at exit but
switch them into HW-controlled mode (as discussed in mailing list);
- Use regmap_update_bits() instead of regmap_readi()/regmap_write() in
the cht_wc_extcon_set_otgmode();
- Coding style and constant names changed as Andy and Hans recommended.

v2 changes:
- Disable HW control mode of CHGDISCTRL at driver probing and restore
initial state at exit.
- Switch CE output off if OTG host mode is enabled.
- Save and restore CHGRCTRL0 register also.

[1]. https://github.com/01org/ProductionKernelQuilts/uefi/cht-m1stable/patches/0001-power_supply-intel-pmic-ccsm-driver.patch
[2]. https://github.com/jekhor/yogabook-linux-android-kernel/blob/b7aa015ab794b516da7b6cb76e5e2d427e3b8b0c/drivers/power/bq2589x_charger.c#L2257
[3]. https://github.com/01org/ProductionKernelQuilts/uefi/cht-m1stable/patches/EM-Charger-Disable-battery-charging-in-S3-and-enable.patch

Yauhen Kharuzhy (2):
extcon-intel-cht-wc: Make charger detection co-existed with OTG host mode
extcon intel-cht-wc: Enable external charger

drivers/extcon/extcon-intel-cht-wc.c | 60 +++++++++++++++++++++++++++-
1 file changed, 58 insertions(+), 2 deletions(-)

--
2.20.1