| From foo@baz Thu Oct 5 10:49:14 CEST 2017 |
| From: Hans de Goede <hdegoede@redhat.com> |
| Date: Mon, 19 Dec 2016 01:13:11 +0100 |
| Subject: extcon: axp288: Use vbus-valid instead of -present to determine cable presence |
| |
| From: Hans de Goede <hdegoede@redhat.com> |
| |
| |
| [ Upstream commit 5757aca10146061befd168dab37fb0db1ccd8f73 ] |
| |
| The vbus-present bit in the power status register also gets set to 1 |
| when a usb-host cable (id-pin shorted to ground) is plugged in and a 5v |
| boost converter is supplying 5v to the otg usb bus. |
| |
| This causes a "disconnect or unknown or ID event" warning in dmesg as |
| well as the extcon device to report the last detected charger cable |
| type as being connected even though none is connected. |
| |
| This commit switches to checking the vbus-valid bit instead, which is |
| only 1 when both vbus is present and the vbus-path is enabled in the |
| vbus-path control register (the vbus-path gets disabled when a usb-host |
| cable is detected, to avoid the pmic drawing power from the 5v boost |
| converter). |
| |
| Signed-off-by: Hans de Goede <hdegoede@redhat.com> |
| Acked-by: Chanwoo Choi <cw00.choi@samsung.com> |
| Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> |
| Signed-off-by: Sasha Levin <alexander.levin@verizon.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/extcon/extcon-axp288.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/extcon/extcon-axp288.c |
| +++ b/drivers/extcon/extcon-axp288.c |
| @@ -168,7 +168,7 @@ static int axp288_handle_chrg_det_event( |
| return ret; |
| } |
| |
| - vbus_attach = (pwr_stat & PS_STAT_VBUS_PRESENT); |
| + vbus_attach = (pwr_stat & PS_STAT_VBUS_VALID); |
| if (!vbus_attach) |
| goto notify_otg; |
| |