From patchwork Wed Dec 13 06:46:59 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yoshihiro Shimoda X-Patchwork-Id: 10109341 X-Patchwork-Delegate: geert@linux-m68k.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 69B0E60327 for ; Wed, 13 Dec 2017 06:51:42 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 671BD28E6A for ; Wed, 13 Dec 2017 06:51:42 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5C06828E6C; Wed, 13 Dec 2017 06:51:42 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E5F5828E6A for ; Wed, 13 Dec 2017 06:51:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751499AbdLMGvl (ORCPT ); Wed, 13 Dec 2017 01:51:41 -0500 Received: from relmlor3.renesas.com ([210.160.252.173]:38258 "EHLO relmlie2.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750886AbdLMGvc (ORCPT ); Wed, 13 Dec 2017 01:51:32 -0500 Received: from unknown (HELO relmlir2.idc.renesas.com) ([10.200.68.152]) by relmlie2.idc.renesas.com with ESMTP; 13 Dec 2017 15:51:31 +0900 Received: from relmlii1.idc.renesas.com (relmlii1.idc.renesas.com [10.200.68.65]) by relmlir2.idc.renesas.com (Postfix) with ESMTP id 54DCF847A2; Wed, 13 Dec 2017 15:51:31 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.45,397,1508770800"; d="scan'208";a="264980820" Received: from mail-pu1apc01lp0023.outbound.protection.outlook.com (HELO APC01-PU1-obe.outbound.protection.outlook.com) ([65.55.88.23]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 13 Dec 2017 15:51:30 +0900 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesasgroup.onmicrosoft.com; s=selector1-renesas-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=P7e/jgffPvdbuamDx+viTsXnFUxGZ1kxLMAxa90L9pA=; b=cCw9WcWRoUhv3uLbhp+vR3nhN2nQsdMEym836TFD05+whTjMHziFGeujCRpHaDYj/7nGOJFPbe7RBlRPOjf9TcawPozMNR7Qf6u1hxNmcdHZGt9kW9GdWr5BuS6NaS7S/V3uBNdiAkDuS3voKjEGBKvwn3nJjX9RDX+uwQN8B7Y= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=<>; Received: from localhost.localdomain (211.11.155.138) by SIXPR06MB0988.apcprd06.prod.outlook.com (2a01:111:e400:51e9::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.302.9; Wed, 13 Dec 2017 06:51:28 +0000 From: Yoshihiro Shimoda To: balbi@kernel.org Cc: gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Yoshihiro Shimoda Subject: [PATCH 3/4] usb: renesas_usbhs: set the mode by using extcon state for non-otg channel Date: Wed, 13 Dec 2017 15:46:59 +0900 Message-Id: <1513147620-20925-4-git-send-email-yoshihiro.shimoda.uh@renesas.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1513147620-20925-1-git-send-email-yoshihiro.shimoda.uh@renesas.com> References: <1513147620-20925-1-git-send-email-yoshihiro.shimoda.uh@renesas.com> MIME-Version: 1.0 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: OSXPR01CA0052.jpnprd01.prod.outlook.com (2603:1096:600:f::11) To SIXPR06MB0988.apcprd06.prod.outlook.com (2a01:111:e400:51e9::29) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: b347b272-e971-4eda-5600-08d541f5efc6 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4602075)(4627115)(201703031133081)(48565401081)(5600026)(4604075)(2017052603307); SRVR:SIXPR06MB0988; X-Microsoft-Exchange-Diagnostics: 1; SIXPR06MB0988; 3:KM67yVJ4fOug5Iap1q9zu2O0MZW8fLVcA4WmtKjSb7Cu5PM2RJVpdvMU8xrpYNU9GJFXffFsA/QWxDQX0yPNB3c7PYZZZrqpcNGjKBX2coVIhHZ8/I/7g4wb0ssDR5Ti3H/xWSswtP66FT3JMKiVoJZsLivZyZ/X6+RQhd8kjdHHpJJ+9RDDA3rrJAHq5lb50n1IgvUYZdbULJVyOsTvYnVTRLK7BjZAcMU6sj+0WkhfxV47gpEfYSD26M/maBEV; 25:O7/owZxLzhIMDDXFtucUKzzIpn2J9dtF5CeGJoRbafGViLT/No3HqjN5+NFZD74Ux8VJVXhGTaIocJWuNTvAkVqHeWM7yXdVZT25Y3qxPncK9ky+RYtdcszoO6Ym4+ZmM8UsW94006RqmuBVdGmnkpThNWqjz8PsfXGxcE+oPUfxeRuJZvIKQ1U9Ghh1FjHwDAjVUJ+s6NVj9KfBGqgTbltP8GXUu9g8o3ZpRHDgBBpQTj13vbwFqVtT1gbZ6tzRrCh8TxNzhQjtc7XFPWjMRzye+noGOhaXiOG/KksiXM4oVDfX01iXpKaRnazEnWkSN6c1AMAUQyU0r01PFRxL6Q==; 31:SYBh0n/XzX3Fa86e86igseocmM0lQarQb1GAPrP/XSdnRbBJOcXO6zpDOC6A6V8YCtB+Y3Rl6qIleDGjOpI8d4KB3UUq5mJpbxCECb55VAGXU8dBlzt2kzrE9FJ2zkOfxDin8balYi1rr0cQ7ahV7TgVlJwwzGptGOQ9dYr7+NveUZ4W4roo8NLVEw5lXk0FefKwRtLo0AqvscsvbyrhyMuqzSBwHcJyN9JstS/+ChA= X-MS-TrafficTypeDiagnostic: SIXPR06MB0988: X-Microsoft-Exchange-Diagnostics: 1; SIXPR06MB0988; 20:d2C7x7RBpih6jvJAmlQSH4W1Ycb4wTUQWTrz/1VZgk9nQTt8ZrQ9oiBdn6GVVQD89bbm0XgMuT06cY2vEnFU3auoqQURuw/WVf0UKkVkLs8LkalXmn3198vbPaYEwEWLWKSNa1MVsvjad+ASKkBobjTA6fAl4ymAqnUrIs274tgbDkFJCt21Djz27X3IVct4CBiGNr1K12wlyrq92bpFcnT67qA8UhlWy3Oxl7kT6a+k0jeFyJTHpMOacfuYNR4UC0RuDHdBEzEHX5s9IJBpejAPB/ARFGdufYhe9VJKfufcjhMkyxh192mkaj53bPvjh3KtN4E5vHz9B3LW8JW5+hkJ9V7CoowdicIGE/YwoSO0/Qi2D8A44Mn2E/iJyi8ztCLMIGXkTvtCBnm7H4GW3cFuVSVRL5PoVUpZBW6FCOP0BJBGNTzgnVehEQOhz/aTOtWQogFKMZdstUHYKU8VYVGsDZQeB7JRx0MsS99t93cWhlGSNC76I1ZYUfW3Fjo5; 4:PvJxHZoZVFq1AAMsT5Ad3h/x6jhr1jT435T9tS283i8+hAytz3nZzrL1m021tEdIpc6cCfzmrkneJuHnnguRa/uB+Z4uUU7A+I6jqmkIkDWvnDb2LAS+WgoYFfc4eDpoIzfEBNcF7XJaUkx4GCmWxlbw05Y2d88boTmaKltpcbFVu76sOtlgNUqQtVeGRflMjUviYXHsUHZIsIQhRxDsoAtxZivrBkvWR6DjnXS7Seh1IkC/0FWIYMsuH2a2vIy9SGa1ivB7gdmK2wxAP83BRg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(2401047)(5005006)(8121501046)(10201501046)(3002001)(3231023)(93006095)(6055026)(6041248)(20161123555025)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061750153)(20161123562025)(20161123564025)(6072148)(201708071742011); SRVR:SIXPR06MB0988; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:SIXPR06MB0988; X-Forefront-PRVS: 052017CAF1 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6069001)(376002)(366004)(346002)(39860400002)(199004)(189003)(42882006)(6916009)(2351001)(2950100002)(6666003)(2361001)(106356001)(36756003)(6486002)(97736004)(6512007)(575784001)(16586007)(6506007)(386003)(68736007)(498600001)(316002)(3846002)(8936002)(16526018)(6116002)(59450400001)(25786009)(7736002)(78352004)(4326008)(66066001)(47776003)(105586002)(52116002)(76176011)(51416003)(53936002)(305945005)(8676002)(50466002)(81166006)(50226002)(5660300001)(48376002)(81156014)(107886003)(2906002)(3720700003); DIR:OUT; SFP:1102; SCL:1; SRVR:SIXPR06MB0988; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:0; MX:0; LANG:en; Received-SPF: None (protection.outlook.com: localhost.localdomain does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SIXPR06MB0988; 23:eYr0w26kWgsk++3SiWAyjxFqzflRPE2cZs6aNEUeG?= =?us-ascii?Q?TrHfP7iB1FJhGuTzws4L2Cdne2JHbvHoGt2qm5p1O6XDM3RgyYq6qLrude+O?= =?us-ascii?Q?tDQvn8RHKaXhEaO7lfwyMMFtLnd2WYJmVuBU++aLgz020mwAQvkf1SyCfzAp?= =?us-ascii?Q?77S2o5HlAXqYHFCTJsjkeNJhxAZsgA3xszQONVgxelb9+ZH056iZuCJ6xxWS?= =?us-ascii?Q?6RdsXzZ0+t5O/g/wce9pWJTcDo397I/gczIqdumAXiOdHd1G0H6hmF9rU966?= =?us-ascii?Q?b1hU8aCHl/LrDB1ngQpKMHzVtHzwNXCubCwJ2gyLE4DzZQNqgYLETMgt4W4Y?= =?us-ascii?Q?VOd8AaHc+A90XW42k0geCBsGQGbgp9ufMOAP5pI9794hatAWNkpnanm5fEgj?= =?us-ascii?Q?nIqUWKfLQwBrOmmf9xrui6pDMJUAHqcjE22PCnKhwRmdnIXA9VIbDO0IFG19?= =?us-ascii?Q?/AiuJWVCNqsE0HBn+2st3zZfQQ4mHQAP4jsy2a0tQcqlrT8SOHJHBILUzMlZ?= =?us-ascii?Q?0PmiAGQPWpS6YGMR++5kquzOf5dlxxp++5gW/Ifu9qDednG4berC30vd9NFU?= =?us-ascii?Q?Wvyt59LBwSokNr2O6m83bYaWJ62aWOmkySmBnkqm+eZlky+1khwSUEsGHT2w?= =?us-ascii?Q?MzMbhG6cg0U0yGjuJSFcOPF+VbyAZbinevG/Vnr3OY0g0KDFz3JxhvppbNNr?= =?us-ascii?Q?keyfw2Zv3Dwymi5ixy33nAubfDik1iQbeBaBsxmyBQ4mR83568AyCzDnqoCg?= =?us-ascii?Q?sfg7Zf9qi8ezCJZOuf57+X+jxwj1qmpGoG7yMp8tO4ZeRT30Yg/jDF1Woy0E?= =?us-ascii?Q?NURqLK4mZIPsDcYFM2wiyNkmtETjFZeTtAhN97O4cMSPxcm/rX0IVnwdAyof?= =?us-ascii?Q?SAwYCmB9InyDk5cElPBVi0S1UbjnG4S/3v9e5o8noo0kLDXph5K6rg84KmpT?= =?us-ascii?Q?LzjwkrO0GZ/ml/ik56zaZSsSzXH6F+AQNlRhHQaxtwDSogh9gXPTnTABlnSX?= =?us-ascii?Q?w5HtEGJfzO8fgfehA/SB6P5mKBesXtjf5F7F6grOhr/25tT781EQC/O665fP?= =?us-ascii?Q?d+ITDzFtPMLozRh18k+NAyw1yhO7EuLdxdgIc88pifMrEBVXpkXabeOGOh96?= =?us-ascii?Q?fQou/Xx6vUW9/G3JVMJhsYqys6FFB8yjfeo4/bgR3I44lrabwRVOFjDo21In?= =?us-ascii?Q?XQMARuNKshYNriWEGQRlthxvRXezZ7qne5c?= X-Microsoft-Exchange-Diagnostics: 1; SIXPR06MB0988; 6:/ib1+8jOf2PyJGuWNzPP2/8ZSeOWwrTnvlgXa/Bs5dPFRBZjyJgKTUjD2FEZ/N77SyABJcEfICw/BlyKc1lIlaJ8bY+0yUKoyXZMAjr+GWZfq0YpVbYkEvYGAg/NQrqywBkPifLVQ7eDj3fEZ3CEntr7zLbBty3Xx7F2/n8b2M5Ovz0ZYGISnatWU5Ik1/vV0Bks7oUW13x8/4icgvaByc2yKKmSvHHOn36fkwHwoz4x07fn8HixNpRsGqgbvHEa6zYEfWU4FuySTTI9SSx73GmIhplqeapTx0JlGC6O70kZnck8DxLXxTNoprvpevfiUyNeAE4oPdksFE9ZvDMQKB4pR0s/alED/f3RdBBfS7U=; 5:jfNn0z4if+Evj8gwEf3tjzCeUqs0Jqw0beSsZ9Szq3q8sLkr8q3tOyXV+ZF4mXqwA5O5dvKXgBfj0ujwgZ+BhTQaNUyKRm+RRk6bA8/Ez0AZw374J9o8hyxgFtB+Tw5z76aa5FF116OymnYdvR03Bxop3WgqCb+7AVmdYOSWzJI=; 24:u/uXSTmSnNPxYEhxLOjmWPLbeckPNldNA5qgjLI9G2c5Xas2IAhPcoToYGNk7NcCYGLU4sVOy6dEJvcT/yTIImSXUN+XGljwQ0ZdSF4AtGI=; 7:Bbj0lhTDnHhjSQpoe1aGJIR3mIpS5GREc1KcTU4Q5kUM2Uz8WAVBHJLuxRhfjLrvl7MYGQWZF3eHWjCU5u4mahJtbmbY/15EQOWZ7afzLJyvWJOQ5hC5oaSzR1XBftgvTin/kFoUs8KCuk79vWJ/RzETzNCsexsf/VPqHl3FPGAeopZL5IZQmIrF/Y0tCdPvau7uLhz+7FPBigZhDpR6pllobKWb8TKJJ75pE3gkEfb40VjCOJS7A04C+QNX2TAs SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SIXPR06MB0988; 20:GS5xPcfKC66mEBKBpPAsfzi/ButPt4mxBfW69q9JMleXF1AgjxD9TKa69wLfnLrvqFhSE+7uYauq0YwDNJY5gWcvP81qXAKZ7bHCLvPdscHyOakgbG7NkYgohHvsW9vcK4SwfFFhG2ALb3BHxicucm9ktrGS4jimagWId9wuG38= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Dec 2017 06:51:28.2088 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b347b272-e971-4eda-5600-08d541f5efc6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: SIXPR06MB0988 Sender: linux-renesas-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-renesas-soc@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The usbhs_rcar3_power_and_pll_ctrl() will be used by non-otg channel (e.g. R-Car D3) and the previous code has hardcoded as peripheral mode. So, this patch sets the mode by using extcon state. If the channel doesn't get any extcon devices, this driver's behavior is the same as before. Signed-off-by: Yoshihiro Shimoda --- drivers/usb/renesas_usbhs/rcar3.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/usb/renesas_usbhs/rcar3.c b/drivers/usb/renesas_usbhs/rcar3.c index 50e5fb5..b9a8453 100644 --- a/drivers/usb/renesas_usbhs/rcar3.c +++ b/drivers/usb/renesas_usbhs/rcar3.c @@ -27,6 +27,7 @@ * Remarks: bit[31:11] and bit[9:6] should be 0 */ #define UGCTRL2_RESERVED_3 0x00000001 /* bit[3:0] should be B'0001 */ +#define UGCTRL2_USB0SEL_EHCI 0x00000010 #define UGCTRL2_USB0SEL_HSUSB 0x00000020 #define UGCTRL2_USB0SEL_OTG 0x00000030 #define UGCTRL2_VBUSSEL 0x00000400 @@ -49,6 +50,14 @@ static void usbhs_rcar3_set_ugctrl2(struct usbhs_priv *priv, u32 val) usbhs_write32(priv, UGCTRL2, val | UGCTRL2_RESERVED_3); } +static void usbhs_rcar3_set_usbsel(struct usbhs_priv *priv, bool ehci) +{ + if (ehci) + usbhs_rcar3_set_ugctrl2(priv, UGCTRL2_USB0SEL_EHCI); + else + usbhs_rcar3_set_ugctrl2(priv, UGCTRL2_USB0SEL_HSUSB); +} + static int usbhs_rcar3_power_ctrl(struct platform_device *pdev, void __iomem *base, int enable) { @@ -74,10 +83,14 @@ static int usbhs_rcar3_power_and_pll_ctrl(struct platform_device *pdev, struct usbhs_priv *priv = usbhs_pdev_to_priv(pdev); u32 val; int timeout = 1000; + bool is_host = false; if (enable) { usbhs_write32(priv, UGCTRL, 0); /* release PLLRESET */ - usbhs_rcar3_set_ugctrl2(priv, UGCTRL2_USB0SEL_HSUSB); + if (priv->edev) + is_host = extcon_get_state(priv->edev, EXTCON_USB_HOST); + + usbhs_rcar3_set_usbsel(priv, is_host); usbhs_bset(priv, LPSTS, LPSTS_SUSPM, LPSTS_SUSPM); do {