| From 1df04bc64314780aed73454ac4898b6fcd8f95cd Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 13 Nov 2018 16:38:47 +0100 |
| Subject: extcon: max8997: Fix lack of path setting in USB device mode |
| |
| From: Marek Szyprowski <m.szyprowski@samsung.com> |
| |
| [ Upstream commit a2dc50914744eea9f83a70a5db0486be625e5dc0 ] |
| |
| MAX8997 driver disables automatic path selection from MicroUSB connector |
| and manually sets path to either UART or USB lines. However the code for |
| setting USB path worked only for USB host mode (when ID pin is set |
| to ground). When standard USB cable (USB device mode) is connected, path |
| registers are not touched. This means that once the non-USB accessory is |
| connected to MAX8997-operated micro USB port, the path is no longer set |
| to USB and USB device mode doesn't work. This patch fixes it by setting |
| USB path both for USB and USB host modes. |
| |
| Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> |
| Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/extcon/extcon-max8997.c | 10 ++++------ |
| 1 file changed, 4 insertions(+), 6 deletions(-) |
| |
| diff --git a/drivers/extcon/extcon-max8997.c b/drivers/extcon/extcon-max8997.c |
| index 4a0612fb9c070..b9b48d45a6dc4 100644 |
| --- a/drivers/extcon/extcon-max8997.c |
| +++ b/drivers/extcon/extcon-max8997.c |
| @@ -321,12 +321,10 @@ static int max8997_muic_handle_usb(struct max8997_muic_info *info, |
| { |
| int ret = 0; |
| |
| - if (usb_type == MAX8997_USB_HOST) { |
| - ret = max8997_muic_set_path(info, info->path_usb, attached); |
| - if (ret < 0) { |
| - dev_err(info->dev, "failed to update muic register\n"); |
| - return ret; |
| - } |
| + ret = max8997_muic_set_path(info, info->path_usb, attached); |
| + if (ret < 0) { |
| + dev_err(info->dev, "failed to update muic register\n"); |
| + return ret; |
| } |
| |
| switch (usb_type) { |
| -- |
| 2.20.1 |
| |