diff mbox series

extcon: max8997: Fix lack of path setting in USB device mode

Message ID 20181113153847.14732-1-m.szyprowski@samsung.com (mailing list archive)
State Accepted
Commit a2dc50914744eea9f83a70a5db0486be625e5dc0
Headers show
Series extcon: max8997: Fix lack of path setting in USB device mode | expand

Commit Message

Marek Szyprowski Nov. 13, 2018, 3:38 p.m. UTC
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>
---
 drivers/extcon/extcon-max8997.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

Comments

Chanwoo Choi Nov. 14, 2018, 12:07 a.m. UTC | #1
On 2018년 11월 14일 00:38, Marek Szyprowski wrote:
> 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>
> ---
>  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 632192d027bf..172e116ac1ce 100644
> --- a/drivers/extcon/extcon-max8997.c
> +++ b/drivers/extcon/extcon-max8997.c
> @@ -311,12 +311,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) {
> 

Applied it. Thanks.
diff mbox series

Patch

diff --git a/drivers/extcon/extcon-max8997.c b/drivers/extcon/extcon-max8997.c
index 632192d027bf..172e116ac1ce 100644
--- a/drivers/extcon/extcon-max8997.c
+++ b/drivers/extcon/extcon-max8997.c
@@ -311,12 +311,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) {