Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753984AbbHMSMD (ORCPT ); Thu, 13 Aug 2015 14:12:03 -0400 Received: from mail-by2on0144.outbound.protection.outlook.com ([207.46.100.144]:50257 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752838AbbHMSL6 (ORCPT ); Thu, 13 Aug 2015 14:11:58 -0400 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none; From: Ramneek Mehresh To: CC: , , , , Ramneek Mehresh , Shengzhou Liu Subject: [PATCH 2/8][v3]usb:fsl:otg: Add controller version based ULPI and UTMI phy Date: Thu, 13 Aug 2015 23:54:50 +0530 Message-ID: <1439490305-29215-3-git-send-email-ramneek.mehresh@freescale.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1439490305-29215-1-git-send-email-ramneek.mehresh@freescale.com> References: <1439490305-29215-1-git-send-email-ramneek.mehresh@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11OLC015;1:DLg4pWCcif0okf4z5PuigNhxFlfjxOQEQm3EYVDaFjk1GsmrNkCwJ2hAs+edv4ebJbG89j623X/VtcE5VcChaQbAUPRphTDhqwkyF9hUWYwQKR8hDz3IFAJoBtNGIGsAKxOHbzP+HmxuSF0qfRSI1qzvg1mycfOEhwr8ENx7QkwUkxgMeC2kTdhElYTV4n9SQevynK4W7cTDW4p4arPK2P27nRtfzZr//JoxEkXm02wVPaYlQddhZbGOWPacNA0pkdw2CJo6G+SUFP6Ja+JBjdbPkon8G2r5JkKMYl1tuxpy5WscXj0MTVmpyz75rEO3Y7tWZxJ8XLuG+YDO7DxC5J3pGw7/xifGLTvm6d90svdDtPDaxe6HVtSPSuLh3FNg/D5P8wKlp5Qpgv5s3NpQtA== X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(3050300001)(339900001)(199003)(189002)(33646002)(104016003)(110136002)(48376002)(5001860100001)(50466002)(64706001)(189998001)(92566002)(6806004)(76176999)(4001540100001)(5001960100002)(5001830100001)(50986999)(19580395003)(19580405001)(81156007)(97736004)(107886002)(77096005)(5003940100001)(68736005)(46102003)(2950100001)(87936001)(47776003)(229853001)(86362001)(575784001)(106466001)(76506005)(85426001)(50226001)(2351001)(77156002)(62966003)(36756003)(4001430100001);DIR:OUT;SFP:1102;SCL:1;SRVR:BLUPR0301MB1570;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;BLUPR0301MB1570;2:GfspDMuBCAR7oPHeo9u0faufONuG4YPvDR5CQLHwZTV3XnzhtHV4434a2leuo6TJw3VdrOr8K1JI+gEE5EjRm5oXQEIj1FdhK9YKfaZzz92n1Wb3G6cdWZwmsWKU+DlQfDjJ87WRfHXNWVA1XwRzbZu7srsoltSl0KOkzfjZTts=;3:1hhmANii4U3bD2kd6ZRNv8GlbmL8pLPvq3zgYThtmepeqyvRZbb9hmHxS+CpnaJHvuHzpXEIq5qwe8CKsLcthMJVRZ0vUyFWPkTPt3XGDHrQYue2sjn/k3UxcX6TDRgV87MMoXaOiS4FerVgQeCcXjBU4ngYuipIMouprhNq/moCMAI3nnR73r8sQlnss/oMeeB4GOiUKy5ldcw40NlIwHDECffNKb0y8eYBvKg8VXE=;25:j51oj1a86Bej4gFXamFfhNpgswclqFc1H5lY6FKAehAVqX0IUX6UKXdUUrSyIWXv+gyfjUiOOBiMGjI8gllPLTtWqJG2ihj8esFoWltu/9qJ4VcaTpMJB/ck9s4InO7ns4/bGYOH4OSBbUIaiupDTWnK9amminMRqmz5R/JK7BCOwJ4SZqTU936appRyiDm015w1zp4TJOt/nNavg6MIUVseHTj8lxeaS/JIl4cwP7KD1FYAV4ykHxSAe/qVbDEWxk0879oZHgqSuGWAF7pLXA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0301MB1570; X-Microsoft-Exchange-Diagnostics: 1;BLUPR0301MB1570;20:gJy1QVrrwihVq3TYm7XEy7UzbOcJQj1iGn2i3hhdjzOpPrHDw7LM3jpJfifI8hXn1XcVeuqvcn3yxex+yRTIcopErG0ZUQJd43CrSCgt3GqplyRSmD7IZ2/NQGnFGFnuewxwiN2M3+kEGjNp2xHCeH3WtZTWJH3Oy8UkUTcsKF7x9MKWUtc9PmO5oWvPcagWzd8xZ9HY3zCsi0nmt63HF4hEWpJPjVNJs0VJlZPX7Yq/Z1GUctRuhL8T3b040o/BgfZ5Fvl8G3+R7Rsb048Oel/aaZqwXBmsZaEQXGH/XakWd275w4ewbQmkpH/fkjRRloApIhDYVsN9CDnyvC7JpVuujpfTbDb6LXsjyzfJZ6I=;4:kwLO065MZKlwP40NMP8kfQpHYe8NcaCxXdTswwFqQG3QqchCoiFAOorILypTb/FRPg+dxE6U0CHHv229yMmE0dKMfdKL8LpFK4s93Z1IWJdINFxBugODozn1tYS0hizGjwMZRT68M7ViOrfpeWPkegM6cjKJk46D/i1hgwP6Gl68pGvPEGhjVZqKFEqBkJ1rADmuQvmxqOXln303BJTGbiRGemXx5/SEHycTpkNP2LuDbbOAGR9nO0qVeSzc+gRB2RPx6vqsJmqisOGMlbTUyRvLGdgy3UoNz8OPxbuVUtc= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(3002001);SRVR:BLUPR0301MB1570;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0301MB1570; X-Forefront-PRVS: 0667289FF8 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR0301MB1570;23:6We6ynoVe5QNJ4X7bMnul2bs4xdK1NSJjAHfljl?= =?us-ascii?Q?H5nvJTpA1NwyAXEfIb3uh+i5CGijuXGcJUvWI8dXTM2yPG3qgvqG/NF/HJeT?= =?us-ascii?Q?D2m4RFf8VuZO31H3MMXWppWmlSISgU75F4H/zIUrNjudRQsSqcgNrYtOeNfo?= =?us-ascii?Q?4/aDezRUWMKb3E34k6pW7apZQ3B9a/uX2mp9GTwdxvrUGvVl0HyyuLtrf0cs?= =?us-ascii?Q?cgsTMxnqJjk12lYlyJyUqr5IHj18C42qCl95feI50mSp44YkyS8ZTo8GoG97?= =?us-ascii?Q?F8R/j1JTNfKrQxyl6A39OqnkwZ/JyCezTtBr4X9d1W5moWoi2fM21mbPrI+T?= =?us-ascii?Q?rhKVdvAtEZS2XJ/wk1Ei2+bMgbfDNmS2Z8Cam+qjqg/7oHSGEmmJj0AJMXzV?= =?us-ascii?Q?aQ1mYeTufXQXfkz1292ZKFkRqrSu8koVm3GZREtGaksNj9n/QHdY6/7qXdGu?= =?us-ascii?Q?0+R8g28OIs1XVFW7wD//eiHB16ONBFbgB6wUQrlEXCG2fDnVGj81B2K1ppHv?= =?us-ascii?Q?ylK2jtW4Kcn6ogLkklPBNazoIKG7q6/ShwOImkYlpXpCI0eNwFd8h8gozRVS?= =?us-ascii?Q?MoKKPARnh9ztwrf67sNtpE4/i4wANxtMIi43CMJq182E2ZjeoPaaLWGoNVVx?= =?us-ascii?Q?1Lo2KhoU1Q+sIlsRuLnxcheP+Jp+2XVtn9kkOnPIWE+tH33PxiPSnfb7wY7j?= =?us-ascii?Q?adIuUuBplqUj2Y8grlpYhAd6QXWaTdbXToAi26mYLGp3rAT4u4e2Inmr9AX0?= =?us-ascii?Q?sC7toloTTYat8I4lXG6LxjbIDiGtYybEmPPdRF1ZFyxQqVIN2jZKJiZFciVW?= =?us-ascii?Q?SCvdWdx+2DiB5cOm6lb0LQIqJMqitnRWOrKE35RTpqWpvjSerRh0APkOZFHf?= =?us-ascii?Q?QXNH0ZHa4nh83KcR7Em7AhbWnYnOM9T5yv4CjMpxkLRNVVDANCYD1kilirt2?= =?us-ascii?Q?km+2F/gzS33MZWKrDfg0rXNy1b80BitIkqjo92nvWRlD1sti99awn/60jDFq?= =?us-ascii?Q?jGmo4T/bpFXoY04cmoa/deatGZC0XvXG1wRGc0EAoWgAwVR8SSwCjUtlWOV3?= =?us-ascii?Q?JZmXJ++cAq4kehiVbI2if9izzpm+HHFyQTEbTExgrDpMSbgkBGlcdXt/6YNJ?= =?us-ascii?Q?H766NwjpqZM+JwlrNjwW11CaPGZ9fYZYUUpb3g+lH7ZzIsTgj0aEmUQ8/ElE?= =?us-ascii?Q?gZDUiF8C0w4GT8z7GlyGZtfKHhWJ1f36vGMyE?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR0301MB1570;5:zvqz4hRkNWimdg0llUchuNclF+kZAWIS4Ya57DdE7dQm6y6Y5dr1eykK4/3o7VRhcE0cAPLH6+uMRwBYcqYHEEtf7RCDgATxB5/QQdWQiUTkSg6HgT80YbjX0Egg7mKFOOHqUDfhMDDiObFDU70/SQ==;24:4BU+3sXvHJKFmQt1lRPWeJ7ECqWoRStyCFuEjuOS/GJYQEkdR80RAS3Qxl0V2AgwU0NU6ack0XD/gUZDQAG6RYkWaWSQwFv22/iRMNNzEzs=;20:rcTq02Kh8vnO+utzbVINnIskK0S7FbGKEUnHD5pZ89vbJ2oVihsQif2l1jf6NhjqHp5GpIS5Nt+XWpapI/FpjA== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Aug 2015 18:11:54.9563 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0301MB1570 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2657 Lines: 75 Add controller version based ULPI and UTMI phy initialization for otg driver. Signed-off-by: Shengzhou Liu Signed-off-by: Ramneek Mehresh Reviewed-by: Fleming Andrew-AFLEMING Tested-by: Fleming Andrew-AFLEMING --- drivers/usb/phy/phy-fsl-usb.c | 20 ++++++++++++++++++++ drivers/usb/phy/phy-fsl-usb.h | 7 +++++++ 2 files changed, 27 insertions(+) diff --git a/drivers/usb/phy/phy-fsl-usb.c b/drivers/usb/phy/phy-fsl-usb.c index 94eb292..4e58aee 100644 --- a/drivers/usb/phy/phy-fsl-usb.c +++ b/drivers/usb/phy/phy-fsl-usb.c @@ -923,12 +923,32 @@ int usb_otg_start(struct platform_device *pdev) temp &= ~(PORTSC_PHY_TYPE_SEL | PORTSC_PTW); switch (pdata->phy_mode) { case FSL_USB2_PHY_ULPI: + if (pdata->controller_ver) { + /* controller version 1.6 or above */ + setbits32(&p_otg->dr_mem_map->control, + USB_CTRL_ULPI_PHY_CLK_SEL); + /* + * Due to controller issue of PHY_CLK_VALID in ULPI + * mode, set USB_CTRL_USB_EN before checking + * PHY_CLK_VALID, otherwise PHY_CLK_VALID doesn't work + */ + clrsetbits_be32(&p_otg->dr_mem_map->control, + USB_CTRL_UTMI_PHY_EN, USB_CTRL_IOENB); + } temp |= PORTSC_PTS_ULPI; break; case FSL_USB2_PHY_UTMI_WIDE: temp |= PORTSC_PTW_16BIT; /* fall through */ case FSL_USB2_PHY_UTMI: + if (pdata->controller_ver) { + /* controller version 1.6 or above */ + setbits32(&p_otg->dr_mem_map->control, + USB_CTRL_UTMI_PHY_EN); + /* Delay for UTMI PHY CLK to become stable - 10ms */ + mdelay(FSL_UTMI_PHY_DLY); + } + setbits32(&p_otg->dr_mem_map->control, USB_CTRL_UTMI_PHY_EN); temp |= PORTSC_PTS_UTMI; /* fall through */ default: diff --git a/drivers/usb/phy/phy-fsl-usb.h b/drivers/usb/phy/phy-fsl-usb.h index 2314995..4a78fb3 100644 --- a/drivers/usb/phy/phy-fsl-usb.h +++ b/drivers/usb/phy/phy-fsl-usb.h @@ -199,6 +199,13 @@ /* control Register Bit Masks */ #define USB_CTRL_IOENB (0x1<<2) #define USB_CTRL_ULPI_INT0EN (0x1<<0) +#define USB_CTRL_WU_INT_EN (0x1<<1) +#define USB_CTRL_LINE_STATE_FILTER__EN (0x1<<3) +#define USB_CTRL_KEEP_OTG_ON (0x1<<4) +#define USB_CTRL_OTG_PORT (0x1<<5) +#define USB_CTRL_PLL_RESET (0x1<<8) +#define USB_CTRL_UTMI_PHY_EN (0x1<<9) +#define USB_CTRL_ULPI_PHY_CLK_SEL (0x1<<10) /* BCSR5 */ #define BCSR5_INT_USB (0x02) -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/