From patchwork Thu Nov 8 13:45:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 150516 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp838985ljp; Thu, 8 Nov 2018 05:46:00 -0800 (PST) X-Google-Smtp-Source: AJdET5c18akuLSxYMaAbNN9+2g8SgNV588glz1yollb9JG9aOpbyTvHn4v3ym7f6IPXcf/HeyMcK X-Received: by 2002:a63:d547:: with SMTP id v7mr3754223pgi.339.1541684760364; Thu, 08 Nov 2018 05:46:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541684760; cv=none; d=google.com; s=arc-20160816; b=ti+u8b7Je3sI0RmTAlLoBK8lODeIAKYyCWpdnCAbi8CNNBTI5s0Hu1rrNSKV0xiZxy Lyk/lcKuU4OB5m9RGT/v8iL2IXc+s/sAqUeZnihtS5VVrd8k4ZUk5FiEHZ61cCIt+49q TbeeVodarxtaJj0SvlCxlGMFm6aGGmh/5Wnzlh1AwzFnDmNXe1yTGSgZKY+qnPp3og6y n1ruDl26txXDZ7OoeXLo0jy+5YHqwB6kfYneNsNxfHSbLaT3gqiCKxF6ZE8XxphoqT8S qQ4HlHDHw29EP8dSkgyDFmQn3Mkpt6nt94lZmKvVdKHds6yzb/Y2C8pkWbD6/RzHJtqL AYkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:cms-type:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature:dkim-filter; bh=qvh3V9PLthjx6o4AmMgdFWNv2iBqoQahmEOZ2QTJhmI=; b=BoSb9fj8WtJvVbHTlFtX5bqA5mFu/a2tpG7FLet51v06xiGZtOYteH9M+Nhni4CUht NmXx+0PRY1T0Yd3U0xEKNlEv0/WHjcr++IVkHQ/l4sw8R/jS2DFMJXDmSasbpsYZzWnm gEZOmPxRI+eYOlOfMYEIyLviHYG72UXUURvAF/XrKTjoEjsyak+WWezXH531qgTjG2DS 7UDXuI10Z44FLi7CKtbNWp1lfJgm9iJB/2ku2x96R7D/NpxsbjdU4eZc/RaRQ7MppZUE bthk/ewF0wbCKgtKvDbNplMRCFT/gUH+b7p6s0DNgfxj5j6NLfgvjbO+mu/aXEMt07t4 LC9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=MJbOXuUP; spf=pass (google.com: best guess record for domain of linux-samsung-soc-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-samsung-soc-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g18-v6si4405431pfb.278.2018.11.08.05.46.00; Thu, 08 Nov 2018 05:46:00 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-samsung-soc-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=MJbOXuUP; spf=pass (google.com: best guess record for domain of linux-samsung-soc-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-samsung-soc-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727257AbeKHXVc (ORCPT + 3 others); Thu, 8 Nov 2018 18:21:32 -0500 Received: from mailout1.w1.samsung.com ([210.118.77.11]:55119 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726469AbeKHXVa (ORCPT ); Thu, 8 Nov 2018 18:21:30 -0500 Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20181108134555euoutp01a0dfea03ef25b92004ecb5651e807f81~lKh3fVK6X0612206122euoutp01A; Thu, 8 Nov 2018 13:45:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20181108134555euoutp01a0dfea03ef25b92004ecb5651e807f81~lKh3fVK6X0612206122euoutp01A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1541684755; bh=qvh3V9PLthjx6o4AmMgdFWNv2iBqoQahmEOZ2QTJhmI=; h=From:To:Cc:Subject:Date:In-reply-to:References:From; b=MJbOXuUP+xdlJOZRUyqeeDkytNzLqQVuMFJLKGqRvYstUmteyXJI10QPc7TwDSeDI XewTGwr9pO+v2XcPVPXuXgFXOKy4ALkxxfGf42oj2qxugB2vnLFTb7IIm06cYJGd5b 4E1uKrqSKMHqcJvXiwOza5TUSQQ0X+9kJbNmC2FY= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20181108134554eucas1p1c21490dc498a1c5eed4a8c653bbffdf3~lKh3Ee1Ii0883408834eucas1p1i; Thu, 8 Nov 2018 13:45:54 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 6B.7A.04806.21E34EB5; Thu, 8 Nov 2018 13:45:54 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20181108134554eucas1p20df6cef615670df482e1f6c8ac4b86de~lKh2fC9XO1374713747eucas1p2I; Thu, 8 Nov 2018 13:45:54 +0000 (GMT) X-AuditID: cbfec7f5-367ff700000012c6-b4-5be43e124df1 Received: from eusync1.samsung.com ( [203.254.199.211]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 76.70.04284.21E34EB5; Thu, 8 Nov 2018 13:45:54 +0000 (GMT) Received: from AMDC2765.digital.local ([106.116.147.25]) by eusync1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0PHV00GNNNKETS20@eusync1.samsung.com>; Thu, 08 Nov 2018 13:45:54 +0000 (GMT) From: Marek Szyprowski To: linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org Cc: Marek Szyprowski , MyungJoo Ham , Chanwoo Choi , Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz Subject: [PATCH 1/4] extcon: max77843: Avoid forcing UART path on drive probe Date: Thu, 08 Nov 2018 14:45:45 +0100 Message-id: <20181108134548.31140-2-m.szyprowski@samsung.com> X-Mailer: git-send-email 2.17.1 In-reply-to: <20181108134548.31140-1-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprHIsWRmVeSWpSXmKPExsWy7djP87pCdk+iDTYfUbTYOGM9q8X1L89Z Lc6f38BucXnXHDaLGef3MVmsPXKX3eJ24wo2B3aPTas62Tz6tqxi9Pi8SS6AOYrLJiU1J7Ms tUjfLoEro2FLbcEZoYrnW/kbGI/ydzFyckgImEjsXzGftYuRi0NIYAWjRNPv/1DOZ0aJ6Wu3 MHUxcoBVPV6bBxFfxijxqHs2G4TTwCTx8Od2dpBRbAKGEl1vu9hAbBEBZ4nbH76xgNjMAg8Z JbZcVQCxhQX8JQ5P3gBWzyKgKrFqwhZWEJtXwFZi94GLrBAnyUus3nCAGcTmFLCTuPbuC9gy CYGvrBLrJjWwQBS5SHR0L4CyhSVeHd/CDmHLSHR2HGSCaGhmlGifMYsdwulhlNg6ZwcbRJW1 xOHjEOuYBfgkJm2bzgzxJ69ER5sQRImHxKEjx5kh3pzIKHGjZTX7BEbJBYwMqxjFU0uLc9NT i43zUsv1ihNzi0vz0vWS83M3MQJj7fS/4193MO77k3SIUYCDUYmHV0LxcbQQa2JZcWXuIUYJ DmYlEd5NOk+ihXhTEiurUovy44tKc1KLDzFKc7AoifNWMzyIFhJITyxJzU5NLUgtgskycXBK NTAeZpselNLkJaB30eZZyAb3nX6e7wSz3AxcN7b/kFTrPWPY+eHGrX28JqpuZY4f0r86CJtl pdiEBd3pr7wnzXl80r73uW+WG+zOlE27dSZWgm3hwTmJeb/idnWVP/IXaphkcaZO8W/Aq5n7 fYs6bTLdG15FXnwgvfbek3VR6ZxJwe/ut00on6TEUpyRaKjFXFScCAAPG5XBsQIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFJMWRmVeSWpSXmKPExsVy+t/xy7pCdk+iDSZsZLPYOGM9q8X1L89Z Lc6f38BucXnXHDaLGef3MVmsPXKX3eJ24wo2B3aPTas62Tz6tqxi9Pi8SS6AOYrLJiU1J7Ms tUjfLoEro2FLbcEZoYrnW/kbGI/ydzFycEgImEg8XpvXxcjFISSwhFHi5YzbTBBOE5PE2saH rF2MnBxsAoYSXW+72EBsEQFnidsfvrGAFDELPGSUeLXlCCNIQljAV+LAst9gNouAqsSqCVvA mnkFbCV2H7gIZksIyEus3nCAGcTmFLCTuPbuCxvIFUJANcuvck1g5FnAyLCKUSS1tDg3PbfY UK84Mbe4NC9dLzk/dxMjMES2Hfu5eQfjpY3BhxgFOBiVeHgPyD2OFmJNLCuuzD3EKMHBrCTC u0nnSbQQb0piZVVqUX58UWlOavEhRmkOFiVx3vMGlVFCAumJJanZqakFqUUwWSYOTqkGRhvH zs9Hdj7Yo8jOLPI/0bHQ96got3JLXPNyOe3dK3tbl7/65cn39MoTOa/Mv3HHzX9P+/fEWit/ c5guPw+3+JfG017xvwtVtQReRt4NbGV8ItqxKJaT7dLRrpm7inikAva+mj6bfe7E5ZI7962W K7wzhf3wbROxHRfdDJgW3+kP2WYtL7QyWomlOCPRUIu5qDgRAOSI3YkNAgAA X-CMS-MailID: 20181108134554eucas1p20df6cef615670df482e1f6c8ac4b86de X-Msg-Generator: CA CMS-TYPE: 201P X-CMS-RootMailID: 20181108134554eucas1p20df6cef615670df482e1f6c8ac4b86de References: <20181108134548.31140-1-m.szyprowski@samsung.com> Sender: linux-samsung-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org Driver unconditionally forces UART path during probe, probably to ensure that one can get kernel serial log as soon as possible. This approach causes some issues, especially when board is booted with non-UART cable connected to micro-USB port. For example, when USB cable is connected, UART TX/RX lines are unconditionally short-circuited to USB D+/D- lines. This is in turn recognized by a series of serial BREAK signals and some random characters when USB host tries to perform enumeration procedure. To solve the above issue and keep UART console operational as early as possible, set UART path only when USB ID reports UART capable cable. Signed-off-by: Marek Szyprowski --- drivers/extcon/extcon-max77843.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) -- 2.17.1 diff --git a/drivers/extcon/extcon-max77843.c b/drivers/extcon/extcon-max77843.c index b98cbd0362f5..a343a6ef3506 100644 --- a/drivers/extcon/extcon-max77843.c +++ b/drivers/extcon/extcon-max77843.c @@ -812,6 +812,8 @@ static int max77843_muic_probe(struct platform_device *pdev) struct max77693_dev *max77843 = dev_get_drvdata(pdev->dev.parent); struct max77843_muic_info *info; unsigned int id; + int cable_type; + bool attached; int i, ret; info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL); @@ -856,9 +858,19 @@ static int max77843_muic_probe(struct platform_device *pdev) /* Set ADC debounce time */ max77843_muic_set_debounce_time(info, MAX77843_DEBOUNCE_TIME_25MS); - /* Set initial path for UART */ - max77843_muic_set_path(info, MAX77843_MUIC_CONTROL1_SW_UART, true, - false); + /* Set initial path for UART when JIG is connected to get serial logs */ + ret = regmap_bulk_read(max77843->regmap_muic, + MAX77843_MUIC_REG_STATUS1, info->status, + MAX77843_MUIC_STATUS_NUM); + if (ret) { + dev_err(info->dev, "Cannot read STATUS registers\n"); + goto err_muic_irq; + } + cable_type = max77843_muic_get_cable_type(info, MAX77843_CABLE_GROUP_ADC, + &attached); + if (attached && cable_type == MAX77843_MUIC_ADC_FACTORY_MODE_UART_OFF) + max77843_muic_set_path(info, MAX77843_MUIC_CONTROL1_SW_UART, + true, false); /* Check revision number of MUIC device */ ret = regmap_read(max77843->regmap_muic, MAX77843_MUIC_REG_ID, &id); From patchwork Thu Nov 8 13:45:46 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 150519 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp839340ljp; Thu, 8 Nov 2018 05:46:18 -0800 (PST) X-Google-Smtp-Source: AJdET5cPxKpb+w1LZ9Z78u/Wwoxnfr51dCIFYAHT8hZen5pOA+J6AowdnviQ12FUTMIcwMhqggo+ X-Received: by 2002:a63:2a4a:: with SMTP id q71mr3799997pgq.374.1541684778415; Thu, 08 Nov 2018 05:46:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541684778; cv=none; d=google.com; s=arc-20160816; b=xxr9pdSxqgZuiAGYeqzDSpBHjWtbAvda3Ojxg6HSiUZ9YhUG7qZv8cBhu6WhFhivm+ qVLxGisFiSSjlRLSB7xECat5ObKatckylBf70ZzOtZRgUMqd6Qi4FXaVdzF6aTKYROa/ kExbliA0ZQ7tuzMhDiij03uqmUicPpUmhkU6XbX8Z9kK7WQbd1u8ThFJXHU8sV83kQlj 0/ebdRw5Lyqqeomacb8WyfGwGk9wO6sz+bdw7nnU4GCrDGxorHc3JLbEto9FQYPZZTYw n4hZEdLFviqZeJKRmhJmRkTR1JwW2Qk/61hOXu7Bc2G2AhHb9GAjkUbsXBvouA0eChCm F9jw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:cms-type:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature:dkim-filter; bh=vRpUWpQL+tggvTY5uMit27WYvn6NjSQbU3SoxcMmhMA=; b=pJL+qtKbkclEwMn2kcM9ynIBcQ9z7FsX5lNXX4Ghne3Z6amLxMk79/T6wIAX2B0mNe p2nNoGZs+463/GM93gJwH/YZ+2fXxfYI8TvJxEIrGRP/9hb4YVcmNpdwmJ0XaAJS5OZs 7jylJTfkdLq1k6DMolCM61dBwz6LSGzGh1z8uE5TAI0Ne8CROfbbxQWKwX+G7twEzljQ h7skpVy3UAkiH+S2SkHYhVLUywZQiN5jjW+ySygG0cGlBF0GR8NVvBQSJ5QpedWLHeSz yEmWfGFL0ZnmICiaIjN3VGRQhiJpFoV79YDqGGm5jcYc5+Qgy8g0+pW+eNstP3H4lV0C eL2g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=sPGO5TEa; spf=pass (google.com: best guess record for domain of linux-samsung-soc-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-samsung-soc-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x5si3268146pga.440.2018.11.08.05.46.18; Thu, 08 Nov 2018 05:46:18 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-samsung-soc-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=sPGO5TEa; spf=pass (google.com: best guess record for domain of linux-samsung-soc-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-samsung-soc-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727184AbeKHXVc (ORCPT + 3 others); Thu, 8 Nov 2018 18:21:32 -0500 Received: from mailout1.w1.samsung.com ([210.118.77.11]:55131 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727037AbeKHXVa (ORCPT ); Thu, 8 Nov 2018 18:21:30 -0500 Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20181108134556euoutp014c1dad8f96abe970313edf63c44124de~lKh4QO4SC0572605726euoutp01D; Thu, 8 Nov 2018 13:45:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20181108134556euoutp014c1dad8f96abe970313edf63c44124de~lKh4QO4SC0572605726euoutp01D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1541684756; bh=vRpUWpQL+tggvTY5uMit27WYvn6NjSQbU3SoxcMmhMA=; h=From:To:Cc:Subject:Date:In-reply-to:References:From; b=sPGO5TEaWGS65WWnORrv8vwIWlYuf6YovvZZjg3voUximi3INeeaUxUa4DdC/YoZN lJD7S7S1po/A1s9SR6Xhuk3dt9+to4q5qrSbZplm5jOaQXW5Gd/61tMpjCDk2/n5hZ 6Dv5ymKrdL00scSTySm4zdTTkW0k1UJ3ItiMCPUI= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20181108134555eucas1p221e4522e83bc10dce198b20ee9272a2f~lKh3rz2TY1373213732eucas1p29; Thu, 8 Nov 2018 13:45:55 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id EB.7A.04806.31E34EB5; Thu, 8 Nov 2018 13:45:55 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20181108134554eucas1p12694abede1bf0ce633d4890e2297b685~lKh2y1f4b1720217202eucas1p1t; Thu, 8 Nov 2018 13:45:54 +0000 (GMT) X-AuditID: cbfec7f5-34dff700000012c6-b5-5be43e134e02 Received: from eusync1.samsung.com ( [203.254.199.211]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 69.F3.04128.21E34EB5; Thu, 8 Nov 2018 13:45:54 +0000 (GMT) Received: from AMDC2765.digital.local ([106.116.147.25]) by eusync1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0PHV00GNNNKETS20@eusync1.samsung.com>; Thu, 08 Nov 2018 13:45:54 +0000 (GMT) From: Marek Szyprowski To: linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org Cc: Marek Szyprowski , MyungJoo Ham , Chanwoo Choi , Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz Subject: [PATCH 2/4] extcon: max77693: Avoid forcing UART path on drive probe Date: Thu, 08 Nov 2018 14:45:46 +0100 Message-id: <20181108134548.31140-3-m.szyprowski@samsung.com> X-Mailer: git-send-email 2.17.1 In-reply-to: <20181108134548.31140-1-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprPIsWRmVeSWpSXmKPExsWy7djP87rCdk+iDX4d4bbYOGM9q8X1L89Z Lc6f38BucXnXHDaLGef3MVmsPXKX3eJ24wo2B3aPTas62Tz6tqxi9Pi8SS6AOYrLJiU1J7Ms tUjfLoEr49bly6wF8wQrnj86zdLAuImvi5GTQ0LAROL6zXXMILaQwApGiftT+LsYuYDsz4wS J1vbmWGKlh9sZIVILGOUmHN5CZTTwCTx8Od2dpAqNgFDia63XWwgtoiAs8TtD99YQGxmgYeM EluuKnQxcnAIC/hLPJ2ZBxJmEVCVaG2czghi8wrYSvxct4kFYpm8xOoNB8AWcwrYSVx794UN ZJeEwE9Wicd/QK4AKXKRuPDwGFSDsMSr41vYIWwZicuTu1kgGpoZJdpnzGKHcHoYJbbO2cEG UWUtcfj4RVaI6/gkJm2bzgxynYQAr0RHmxBEiYfE1bndUF9OZJQ49qGZfQKj5AJGhlWM4qml xbnpqcXGeanlesWJucWleel6yfm5mxiB0Xb63/GvOxj3/Uk6xCjAwajEwyuh+DhaiDWxrLgy 9xCjBAezkgjvJp0n0UK8KYmVValF+fFFpTmpxYcYpTlYlMR5qxkeRAsJpCeWpGanphakFsFk mTg4pRoYVxX+nlpV6K2a8CPwXuFjiegNVh2r29z3/tLRD+fuZYhyeNNgobOL28rWeKK54DRO y86uxZYP/oguufVddv9euwzd33bc6hMfhsqkbf3x9fozz1Nth/b3r27UTP0xwUfL7Lm0dWFP 6LEzqyb/PVVqGWv09c4zt5tqXFfE3zFNepBzuCnYavZuJZbijERDLeai4kQAKxap3LICAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrLJMWRmVeSWpSXmKPExsVy+t/xy7pCdk+iDa6skbHYOGM9q8X1L89Z Lc6f38BucXnXHDaLGef3MVmsPXKX3eJ24wo2B3aPTas62Tz6tqxi9Pi8SS6AOYrLJiU1J7Ms tUjfLoEr49bly6wF8wQrnj86zdLAuImvi5GTQ0LARGL5wUbWLkYuDiGBJYwSU28/hHKamCTW NoI4nBxsAoYSXW+72EBsEQFnidsfvrGAFDELPGSUeLXlCCNIQljAV+L+rRPsIDaLgKpEa+N0 sDivgK3Ez3WbWCDWyUus3nCAGcTmFLCTuPbuC9BQDqBtthLLr3JNYORZwMiwilEktbQ4Nz23 2EivODG3uDQvXS85P3cTIzBQth37uWUHY9e74EOMAhyMSjy8B+QeRwuxJpYVV+YeYpTgYFYS 4d2k8yRaiDclsbIqtSg/vqg0J7X4EKM0B4uSOO95g8ooIYH0xJLU7NTUgtQimCwTB6dUA2Od fI8CN0P/nC+//rQFbfi4n3m1zJtOfu3P8Wo9pekb3n16U7BU9snvfCu/hocVXRn3VTnEth5b u5GBa9HDuMq3l1+GfhOzFF5udDEuVfCggQEPg+NuOz63RxXHvxvLL91k+26BraGzxZKTwTrl Rx6FNCZziBUcTl4V9il0SdpzCY/TUzI25CuxFGckGmoxFxUnAgA+m6CCEAIAAA== X-CMS-MailID: 20181108134554eucas1p12694abede1bf0ce633d4890e2297b685 X-Msg-Generator: CA CMS-TYPE: 201P X-CMS-RootMailID: 20181108134554eucas1p12694abede1bf0ce633d4890e2297b685 References: <20181108134548.31140-1-m.szyprowski@samsung.com> Sender: linux-samsung-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org Driver unconditionally forces UART path during probe, probably to ensure that one can get kernel serial log as soon as possible. This approach causes some issues, especially when board is booted with non-UART cable connected to micro-USB port. For example, when USB cable is connected, UART TX/RX lines are unconditionally short-circuited to USB D+/D- lines. This is in turn recognized by a series of serial BREAK signals and some random characters when USB host tries to perform enumeration procedure. To solve the above issue and keep UART console operational as early as possible, set UART path only when USB ID reports UART capable cable. Signed-off-by: Marek Szyprowski --- drivers/extcon/extcon-max77693.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) -- 2.17.1 diff --git a/drivers/extcon/extcon-max77693.c b/drivers/extcon/extcon-max77693.c index a79537ebb671..32fc5a66ffa9 100644 --- a/drivers/extcon/extcon-max77693.c +++ b/drivers/extcon/extcon-max77693.c @@ -1072,6 +1072,8 @@ static int max77693_muic_probe(struct platform_device *pdev) struct max77693_reg_data *init_data; int num_init_data; int delay_jiffies; + int cable_type; + bool attached; int ret; int i; unsigned int id; @@ -1212,8 +1214,18 @@ static int max77693_muic_probe(struct platform_device *pdev) delay_jiffies = msecs_to_jiffies(DELAY_MS_DEFAULT); } - /* Set initial path for UART */ - max77693_muic_set_path(info, info->path_uart, true); + /* Set initial path for UART when JIG is connected to get serial logs */ + ret = regmap_bulk_read(info->max77693->regmap_muic, + MAX77693_MUIC_REG_STATUS1, info->status, 2); + if (ret) { + dev_err(info->dev, "failed to read MUIC register\n"); + return ret; + } + cable_type = max77693_muic_get_cable_type(info, + MAX77693_CABLE_GROUP_ADC, &attached); + if (attached && (cable_type == MAX77693_MUIC_ADC_FACTORY_MODE_UART_ON || + cable_type == MAX77693_MUIC_ADC_FACTORY_MODE_UART_OFF)) + max77693_muic_set_path(info, info->path_uart, true); /* Check revision number of MUIC device*/ ret = regmap_read(info->max77693->regmap_muic,