From patchwork Thu Nov 8 13:45:47 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 150517 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp838996ljp; Thu, 8 Nov 2018 05:46:00 -0800 (PST) X-Google-Smtp-Source: AJdET5efXEewtRhOsuDajJ/Q6Sn/hQ1hV5Fc8q724dqkqIgWBZmAmsf2+4dWsdkyXzzakFr5VW5W X-Received: by 2002:a63:e20a:: with SMTP id q10mr3756948pgh.206.1541684760714; 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=hE5X1iVwqovUswkLPrr1UHoug2aQ31ygGVEGinbakUKt4r+Yr3vB92XMKgGexVgIfQ mTRjOa8p25tXwRNXRIFMn3E0vDFh+qwzmG7A3kOCrE7MPtoz5wMVy1Www+OobO4a6y5A 0kJ4Jm3lzBksxFbViZo7DJ4WZe3Iis7RzkRxmM/uA4O3Wu373T9bCYoam+nAsGVyod35 NgY3P5R3/PmpnlAawPkHDxOvnc+jkFHw3brwHyTdb4fTzP8etIyuS+5ijFXp8XnD/n/g 7A+FvWGc/LrkJSSCNVw4Ni+Jkceu8e6xYocT/WDBQOQazJB2QztzIplA1Sz58t+cbnvc bbug== 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=bFujyy0o4H8gCi49hkwnl6cUPt+eOaf+xnWYuyuPuT0=; b=it/oQtyqwE9XrNLBDMImbUukj11gH5QsCRv24Q+Htb0ZSI7q05UHphPzRXYB0CCe4v neE3dhFkweJg4O6Y7L6QEcfTWG1TKuzEvyGzKeJE800VqMK/l8NMNkwsBsBepx6m4pwq wOnTE4a6CToXVL1/v/fddVB0in6kjLZ0ycIR20JzNZ+rmigFoVQSKkc4rrAtxtr3aOcm CVJlGMpBIijWmw4b5eAJizsvqrR0EuMJPAFhYJFbddTV0gooF4jJTVUil0D+qo3Ll1GF 9EXOBIej+jWDd9edDE+ED+J07f7V8v7QcJLD/GPo5C4RmRdAGk0heyLRPaz9KcvFI4vy ++Cg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=MpwfSApe; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-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-kernel-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=MpwfSApe; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-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 S1727231AbeKHXVc (ORCPT + 32 others); Thu, 8 Nov 2018 18:21:32 -0500 Received: from mailout1.w1.samsung.com ([210.118.77.11]:55129 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727028AbeKHXVa (ORCPT ); Thu, 8 Nov 2018 18:21:30 -0500 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20181108134556euoutp01bca31f16902bbc0331d97b2159239642~lKh4OwcLf0570905709euoutp01J; Thu, 8 Nov 2018 13:45:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20181108134556euoutp01bca31f16902bbc0331d97b2159239642~lKh4OwcLf0570905709euoutp01J DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1541684756; bh=bFujyy0o4H8gCi49hkwnl6cUPt+eOaf+xnWYuyuPuT0=; h=From:To:Cc:Subject:Date:In-reply-to:References:From; b=MpwfSApe8DTJd+rQxywpYzY7F83E0jrhRg7YHes/3SyJrd8rIz3uIw5f/26dNDY11 XSgcG6AzQneZPy34e6M/1tyk+r4U2ZfmJkVZs2Pt23/TLmqN9+VoINAZwu5lY23/tY e/Hb7wJKGSiOnIAUqDKfumhH3FopUwm/TY74ubVI= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20181108134555eucas1p1734d251d6854d0bbc67a7ed70e07b54e~lKh32ZQvg0883808838eucas1p1d; 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 6C.7A.04806.31E34EB5; Thu, 8 Nov 2018 13:45:55 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20181108134554eucas1p26363910951ef941a3b80f47a1c0006c2~lKh3JD2b11557415574eucas1p20; Thu, 8 Nov 2018 13:45:54 +0000 (GMT) X-AuditID: cbfec7f5-367ff700000012c6-b6-5be43e1384e6 Received: from eusync1.samsung.com ( [203.254.199.211]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 47.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 3/4] extcon: max14577: Avoid forcing UART path on drive probe Date: Thu, 08 Nov 2018 14:45:47 +0100 Message-id: <20181108134548.31140-4-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+iDRb95rfYOGM9q8X1L89Z Lc6f38BucXnXHDaLGef3MVmsPXKX3eJ24wo2B3aPTas62Tz6tqxi9Pi8SS6AOYrLJiU1J7Ms tUjfLoEr4/6eVraCCYIVa68eZm9gXMfXxcjJISFgInF53SGWLkYuDiGBFYwSe1c/Z4NwPjNK PDr+nAWm6ufkSawQiWWMEuem3GGCcBqYJB7+3M4OUsUmYCjR9baLDcQWEXCWuP3hG1g3s8BD RoktVxVAbGEBf4krj9+zgtgsAqoSz/6vA6vhFbCVmPtpC9Q2eYnVGw4wg9icAnYS1959ATtJ QuAnq8Tk6a+BNnMAOS4Scz9UQNQLS7w6voUdwpaR6Ow4yARR38wo0T5jFjuE08MosXXODjaI KmuJw8cvskJcxycxadt0ZoihvBIdbUIQpofExXtyEE9OZJRo2XmLfQKj5AJGhlWM4qmlxbnp qcXGeanlesWJucWleel6yfm5mxiB0Xb63/GvOxj3/Uk6xCjAwajEwyuh+DhaiDWxrLgy9xCj BAezkgjvJp0n0UK8KYmVValF+fFFpTmpxYcYpTlYlMR5qxkeRAsJpCeWpGanphakFsFkmTg4 pRoY989s3qm1M341q6LW8tM6/7sfN4ZuOu/30OWkw5LbtzJE7TV9TQTEd8yL/T/Dxcr+sebD gvwnMVpvcu4zrr9j/UhmRvB/C80HR5Y722Tz2F9Q1DCIuj9piWzIe54dxg8+HWqR+ZS2mpt/ 48r7NdllGx6EKu+YNcfU5JHitGdFSeqpjpaWpxRmK7EUZyQaajEXFScCAOb1FYiyAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrLJMWRmVeSWpSXmKPExsVy+t/xy7pCdk+iDW5+MLLYOGM9q8X1L89Z Lc6f38BucXnXHDaLGef3MVmsPXKX3eJ24wo2B3aPTas62Tz6tqxi9Pi8SS6AOYrLJiU1J7Ms tUjfLoEr4/6eVraCCYIVa68eZm9gXMfXxcjJISFgIvFz8iTWLkYuDiGBJYwSXzc9g3KamCTW Nj5kBaliEzCU6HrbxQZiiwg4S9z+8I0FpIhZ4CGjxKstRxhBEsICvhL9Ly4yg9gsAqoSz/6v YwGxeQVsJeZ+2sICsU5eYvWGA2A1nAJ2EtfefQEaygG0zVZi+VWuCYw8CxgZVjGKpJYW56bn FhvqFSfmFpfmpesl5+duYgQGyrZjPzfvYLy0MfgQowAHoxIP7wG5x9FCrIllxZW5hxglOJiV RHg36TyJFuJNSaysSi3Kjy8qzUktPsQozcGiJM573qAySkggPbEkNTs1tSC1CCbLxMEp1cDI u18nVaIlQnx7xd9fr29XWOXtSGsIWu2yV/d35n3Bzw/7I9fds+F1TJh5xsL59qOMo8dvTyoL Lpr1jke+9Rav4S9zedfeh+tnv+IoaW3SNLNblGi+bEvn5Gs7tlkyO2/K3SF9eFI454sXrSXG TipP5oVrPzZZKz5pxo/06wFzxPr99UKMtrMpsRRnJBpqMRcVJwIAHcIfJhACAAA= X-CMS-MailID: 20181108134554eucas1p26363910951ef941a3b80f47a1c0006c2 X-Msg-Generator: CA CMS-TYPE: 201P X-CMS-RootMailID: 20181108134554eucas1p26363910951ef941a3b80f47a1c0006c2 References: <20181108134548.31140-1-m.szyprowski@samsung.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@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-max14577.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) -- 2.17.1 diff --git a/drivers/extcon/extcon-max14577.c b/drivers/extcon/extcon-max14577.c index 22d2feb1f8bc..32f663436e6e 100644 --- a/drivers/extcon/extcon-max14577.c +++ b/drivers/extcon/extcon-max14577.c @@ -657,6 +657,8 @@ static int max14577_muic_probe(struct platform_device *pdev) struct max14577 *max14577 = dev_get_drvdata(pdev->dev.parent); struct max14577_muic_info *info; int delay_jiffies; + int cable_type; + bool attached; int ret; int i; u8 id; @@ -725,8 +727,17 @@ static int max14577_muic_probe(struct platform_device *pdev) info->path_uart = CTRL1_SW_UART; delay_jiffies = msecs_to_jiffies(DELAY_MS_DEFAULT); - /* Set initial path for UART */ - max14577_muic_set_path(info, info->path_uart, true); + /* Set initial path for UART when JIG is connected to get serial logs */ + ret = max14577_bulk_read(info->max14577->regmap, + MAX14577_MUIC_REG_STATUS1, info->status, 2); + if (ret) { + dev_err(info->dev, "Cannot read STATUS registers\n"); + return ret; + } + cable_type = max14577_muic_get_cable_type(info, MAX14577_CABLE_GROUP_ADC, + &attached); + if (attached && cable_type == MAX14577_MUIC_ADC_FACTORY_MODE_UART_OFF) + max14577_muic_set_path(info, info->path_uart, true); /* Check revision number of MUIC device*/ ret = max14577_read_reg(info->max14577->regmap, From patchwork Thu Nov 8 13:45:48 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 150518 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp839036ljp; Thu, 8 Nov 2018 05:46:03 -0800 (PST) X-Google-Smtp-Source: AJdET5eiGHF0NWBebfb0OnuQq+nCk4H10rSE7norNWGwFfwVeLtdQ88ii6NWVUrbYCfnm+DAXULS X-Received: by 2002:a62:7d10:: with SMTP id y16-v6mr4528309pfc.245.1541684762981; Thu, 08 Nov 2018 05:46:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541684762; cv=none; d=google.com; s=arc-20160816; b=JxQ3g76nXGJoWB/GJ54wBb8LMiEcvie0qWcbaKZRADkl2qO8YfyjIRIsc/pHfhEQhi 1Y9Amdy2MCiSNNvBU0sJEPVbHtAde9pG9ASowknIukNpnCMF7zEKcR93Ki6gsFDo9/Dn +GnxGNeVEYH5XCL39Xt75aDriqv+Nube72yelFZdTan8UmacmEJyg5WY5eClnwxMXqch 155U2eDs9QBxTj0IFb2D175q6/D1PPGtqo+2XJy5OPA4VzkYN3I01E6EeaglE+H+Ihj7 DsZ0SHDh4JUfyP1YTwk2wM+ioDpcXgUUs48fzHlRoCRPoFtBN3T6G0d3GuL2uOjT3/NW 7POQ== 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=SpTUG4XNSxiy49yB/2ovPC56gqyCOSPQBOPdlQJuoeM=; b=WGEbEJgOhYOxKcE73PVBzci3zBlAy2dZiIF3V6ma9ZohNt4Jogm7hvXT488WSAtqm8 x00jStInedvDqz28k6xHCeI2RVvQSbpQJeK15i50YU2nVbAbylGLbVz/Fey0pH8FQ7AQ +KpSxZLRmI1eeG0VBNygal6R1M9I0Icorbo0XvOCh7i+CAdUmzaP9d2odsZC0EVwWHrD W7hn2yiX12Syo71BfJ5aAgDKV1eRacs8gIzRGUKmo4uFYezLLIrRQbxzlStEymu62aXh LowHmgCnFW1ipWnyyF8Ca3HkfjzMYv5lYEH68mYIC0kqd93M5S10FDaH61ioH/yTrvXc 3aSw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=dVKAD9Xm; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-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 bg3-v6si4464394plb.350.2018.11.08.05.46.02; Thu, 08 Nov 2018 05:46:02 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-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=dVKAD9Xm; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-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 S1727289AbeKHXVc (ORCPT + 32 others); Thu, 8 Nov 2018 18:21:32 -0500 Received: from mailout2.w1.samsung.com ([210.118.77.12]:54478 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727042AbeKHXVb (ORCPT ); Thu, 8 Nov 2018 18:21:31 -0500 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20181108134556euoutp028d97dae99fa13e9c8e861907da0a8765~lKh4aMS2h2165821658euoutp02H; Thu, 8 Nov 2018 13:45:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20181108134556euoutp028d97dae99fa13e9c8e861907da0a8765~lKh4aMS2h2165821658euoutp02H DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1541684756; bh=SpTUG4XNSxiy49yB/2ovPC56gqyCOSPQBOPdlQJuoeM=; h=From:To:Cc:Subject:Date:In-reply-to:References:From; b=dVKAD9XmEF3+d3kxShl01HghVsn1twQ6FGoPYol8LeBHjdHnw3xlA8amM8NTVpGVk oO2KIvLQPQjtGLZ1AokDnce/KEcPWkQNtPhArhhy4KRec8ajp7cCQQ8PuWUv2DxZoy 2HgBfJ8lXaI4aBPbYPe+aFZVAf2rAaFY8NBG05Ng= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20181108134555eucas1p21c794ef065f61e18ad16fdba54a9d58b~lKh4CydKR1373213732eucas1p2-; Thu, 8 Nov 2018 13:45:55 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id FC.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 20181108134555eucas1p10f126bdad7538c224d97be4f7e31e4bb~lKh3ibjE21719217192eucas1p1B; Thu, 8 Nov 2018 13:45:55 +0000 (GMT) X-AuditID: cbfec7f5-34dff700000012c6-b9-5be43e13fa88 Received: from eusync1.samsung.com ( [203.254.199.211]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 2A.F3.04128.31E34EB5; Thu, 8 Nov 2018 13:45:55 +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:55 +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 4/4] extcon: max8997: Avoid forcing UART path on drive probe Date: Thu, 08 Nov 2018 14:45:48 +0100 Message-id: <20181108134548.31140-5-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+NgFprHIsWRmVeSWpSXmKPExsWy7djPc7rCdk+iDRZNULPYOGM9q8X1L89Z Lc6f38BucXnXHDaLGef3MVmsPXKX3eJ24wo2B3aPTas62Tz6tqxi9Pi8SS6AOYrLJiU1J7Ms tUjfLoErY8bxhIKZghXvdlo2MG7m62Lk5JAQMJF4/W0rSxcjF4eQwApGidurHkM5nxklrk2c ywpTteXuMqjEMkaJSb/msUE4DUwSBzpms4NUsQkYSnS97WIDsUUEnCVuf/jGAmIzCzxklNhy VQHEFhbwkXjUPZERxGYRUJXomb+ECcTmFbCV6Dm8lRlim7zE6g0HwGxOATuJa+++gC2TEPjK KjF3xjKoIheJPxuPskDYwhKvjm9hh7BlJC5P7maBaGhmlGifMYsdwulhlNg6ZwcbRJW1xOHj F1khzuOTmLRtOtBUDqA4r0RHmxBEiYfEzrsbwC4VEpjIKDFtee0ERskFjAyrGMVTS4tz01OL jfNSy/WKE3OLS/PS9ZLzczcxAmPt9L/jX3cw7vuTdIhRgINRiYdXQvFxtBBrYllxZe4hRgkO ZiUR3k06T6KFeFMSK6tSi/Lji0pzUosPMUpzsCiJ81YzPIgWEkhPLEnNTk0tSC2CyTJxcEo1 MMbp3BFZ+v9ippEXF98VdZbau2FH1qfpFU2vt3TlKd8/b3n0lc+zL2WkTvOImnbo0cU0t6Y0 qSXm6mceronamLRzX/+tD8xT0xd0cuxg+7Jb2tWb4VGE9NKgvPLMPU2xB034z3ysuJK886lD a2eTu/3dve8jS3cVKR2vvhrlueqFhtl89xVVx5VYijMSDbWYi4oTAYImvq2xAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNJMWRmVeSWpSXmKPExsVy+t/xy7rCdk+iDc7v47HYOGM9q8X1L89Z Lc6f38BucXnXHDaLGef3MVmsPXKX3eJ24wo2B3aPTas62Tz6tqxi9Pi8SS6AOYrLJiU1J7Ms tUjfLoErY8bxhIKZghXvdlo2MG7m62Lk5JAQMJHYcncZSxcjF4eQwBJGibctG9ghnCYmiRuf DrGCVLEJGEp0ve1iA7FFBJwlbn/4BtbBLPCQUeLVliOMIAlhAR+JR90TwWwWAVWJnvlLmEBs XgFbiZ7DW5kh1slLrN5wAMzmFLCTuPbuC9BQDqBtthLLr3JNYORZwMiwilEktbQ4Nz232Eiv ODG3uDQvXS85P3cTIzBIth37uWUHY9e74EOMAhyMSjy8B+QeRwuxJpYVV+YeYpTgYFYS4d2k 8yRaiDclsbIqtSg/vqg0J7X4EKM0B4uSOO95g8ooIYH0xJLU7NTUgtQimCwTB6dUA+OhKbFx Lg+Y/Hq7P79LLptsx7FWlru68t6Xp6de7ytP8Pi2duo2uYTrM7q+G1xgUi7ecS+fPXz91Ssz T51utM7gkzjdaGG0j90xbWfe5N8Xheal16wXt7nHkCnqFDPtl56g3tcLzQUXGren7Lx/9fRs NqGMFWbVer5X/sXbpOev+/uU6UuikY0SS3FGoqEWc1FxIgB4o9G1DgIAAA== X-CMS-MailID: 20181108134555eucas1p10f126bdad7538c224d97be4f7e31e4bb X-Msg-Generator: CA CMS-TYPE: 201P X-CMS-RootMailID: 20181108134555eucas1p10f126bdad7538c224d97be4f7e31e4bb References: <20181108134548.31140-1-m.szyprowski@samsung.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@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-max8997.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) -- 2.17.1 diff --git a/drivers/extcon/extcon-max8997.c b/drivers/extcon/extcon-max8997.c index bdabb2479e0d..632192d027bf 100644 --- a/drivers/extcon/extcon-max8997.c +++ b/drivers/extcon/extcon-max8997.c @@ -632,6 +632,8 @@ static int max8997_muic_probe(struct platform_device *pdev) struct max8997_platform_data *pdata = dev_get_platdata(max8997->dev); struct max8997_muic_info *info; int delay_jiffies; + int cable_type; + bool attached; int ret, i; info = devm_kzalloc(&pdev->dev, sizeof(struct max8997_muic_info), @@ -724,8 +726,17 @@ static int max8997_muic_probe(struct platform_device *pdev) delay_jiffies = msecs_to_jiffies(DELAY_MS_DEFAULT); } - /* Set initial path for UART */ - max8997_muic_set_path(info, info->path_uart, true); + /* Set initial path for UART when JIG is connected to get serial logs */ + ret = max8997_bulk_read(info->muic, MAX8997_MUIC_REG_STATUS1, + 2, info->status); + if (ret) { + dev_err(info->dev, "failed to read MUIC register\n"); + return ret; + } + cable_type = max8997_muic_get_cable_type(info, + MAX8997_CABLE_GROUP_ADC, &attached); + if (attached && cable_type == MAX8997_MUIC_ADC_FACTORY_MODE_UART_OFF) + max8997_muic_set_path(info, info->path_uart, true); /* Set ADC debounce time */ max8997_muic_set_debounce_time(info, ADC_DEBOUNCE_TIME_25MS);