Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752465AbbLXLWQ (ORCPT ); Thu, 24 Dec 2015 06:22:16 -0500 Received: from mail-by2on0138.outbound.protection.outlook.com ([207.46.100.138]:44819 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752129AbbLXLWK (ORCPT ); Thu, 24 Dec 2015 06:22:10 -0500 Authentication-Results: spf=permerror (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none;freescale.mail.onmicrosoft.com; dmarc=none action=none header.from=freescale.com; From: Ramneek Mehresh To: CC: , , , , Ramneek Mehresh , Shengzhou Liu Subject: [PATCH 2/7][v4][RESEND]usb:fsl:otg: Add controller version based ULPI and UTMI phy Date: Thu, 24 Dec 2015 16:54:11 +0530 Message-ID: <1450956256-19094-3-git-send-email-ramneek.mehresh@freescale.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1450956256-19094-1-git-send-email-ramneek.mehresh@freescale.com> References: <1450956256-19094-1-git-send-email-ramneek.mehresh@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD035;1:HdkG/72elB0iSpErtJ0xDt8OYV/pKwL0XHac4eWMeaelcnEgKUoap/tvUAPgxEaUbYq+OmOgyLmIDSe7Lvd8K2eY37cpCDUw68RL29N5e1ZHlbZfJzmNNRwLuoXbCuQZRxechyY/ay4Fw1JvbzmOPIDTEIIGdC7CDJ2LWtrrks3cGSm6tfRC/NjFUXkKM55w4vYWXjFtuDg+dyuxnmepijSo5ZRZVk8Uzw76cMxiXCkTvmgQHL4h3x50COFl1dW4hCKxz695x07Ofa2+HoSS7otpXk2EDWvZNAH2+tx3WriI/5HaGPbwPZmiWgIQBzV2xz7MJDoAD615fhbkRw9h4SZZuvBAcVn4UVlettTKoBLB57677OvxlgZ+0Y9mRW8EbrVGjCj6HQbFqCMR45sr3XvdXzmydHchg/X5YF4LH+hpLp9+NnnNEnq3xdQXyo7c X-Forefront-Antispam-Report: CIP:192.88.158.2;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(448002)(3190300001)(199003)(189002)(575784001)(586003)(76176999)(6806005)(33646002)(19580395003)(69596002)(48376002)(2351001)(1220700001)(229853001)(106466001)(47776003)(50466002)(19580405001)(50226001)(36756003)(76506005)(4001430100002)(1096002)(5003940100001)(104016004)(189998001)(81156007)(87936001)(5001960100002)(107886002)(85326001)(50986999)(110136002)(97736004)(2950100001)(5008740100001)(77096005)(92566002)(11100500001)(86362001);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR0301MB1574;H:az84smr01.freescale.net;FPR:;SPF:PermError;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;BY2PR0301MB1574;2:vyGMLq6Rsk8Pl9Wa0EWDm9ZfDBNOSEKCz4T/Vs1gmGb/75cI4M4M53aFoZWzvmrAlxzTP6YwAE9Q8hrf7BHVLez0NIrY7MC5sijmUaeiNjqaZzaPmC3Oa0YP++3LtIVbaQSMcKrQHicxbWQAqCSs7w==;3:uDBuzdnx9kLQVVnS7T3ENWyjTWFtZusDyZ3ctmiAkJAnOlmfJQKDGUPmHtRdwhrNU4oUnMZaVvv+R7ksMd5ic0cq5PaDoOa2K2doz37oxSIbszs4igvmrQh3zDIqjRjn6CjIJ72Ghqf4hVcf3tSXd3g2aMz2+24URAo6nitChIp1duof0R6n6gtTVu7IiYWh0D0JCaD12z9DBnhcZfQm0zz2PUylv8s16pv4ACam3o0=;25:S0LFEo5NBdOf6TiVV90TV2wVwbeV4oTh6gzxkMaQ7p+MZvBe5QlkAk4CHQ6WSnOUQnufDAUZOW0VxhCo6dCh78tRmcNLlG2mSTc0V6KRtBmK9OJRJt++EAwVnYJNwE/DOiybJ8gH6lJWvvZI+9fJ8KH+xqt4CgMtGHW4ED8XRpd8LSlNiOe2s/nUjMIQQOVpcZL1c0lgsF3LYk+Md2DmZSzqbVtZjTVcR12NZD4Kc3SJIWWpIzpDY751RhXpy8bY1yE1hcuyOC9PZWaBoA1Dzw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0301MB1574; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0301MB1574;20:12mu4pzIFEH+OhsT3V5EHOtwEhP7P4IC5tj9e3rKnISHnlYFBvfmWExp3TdTX1q31GVzNsVYenmP5UVG3/3vHOfChGa+dbOOjy+7vGgkBgUdpNK5bcDPnqGcZVcppKFZ/WeXRC3wLG8bWng3lZUGSz7WhCTwvRSn0ZmXtvXQXUlJ3y9xeLvOyxJ6A2IW+zQjyx/aGfHdhv6bSm5wFO6SWZRZNVxPBfQD3DnIbQmN2/l0X2aq34MQ9kLAGk8Gt1QEOyGvZZmOZGdlb+h4Ci+cVNSp57M0Q4TjjifWonQa0SpWw8MCbRYVbWgN139ncatUrTTWu07WXDOdxPo71mU0sPNpE8sTmyVVhH4jo8o8IKo=;4:7BM06WtvUfMwyP3SPR9bBxUd7hEwfQgaoud7dH4RYegD2z5F4xq/xmbCLUnBNbtURssMybOHLvwNEj1676tzIxWm75BwRXmY7PJPyEfvaYQ6plFS7P0zGAAyzKm4g3wPYTKHn20oEYAPbSUsptcd6y8qRL3+4GyoA64fJfJPk+UXMSjvw4tbV8PLxLInhgTg4Sk73NuM3uW2M2hRgw2h8P7jnLKhN0FvZjC6f5HaHnZZoll8QA55plPvC+7G3f2pGcLzH8lUqRD6J+d2KO1bBErl8914w9P1fLh73NnPVPahDMgHkT5O2GZVAH9y6B5gWHiG6qZC6nUBGX7fcLZd38jXtaWC3PFTxJhpc9KCXXiFyq67pmL9wmDV4NGPndLZ4fWhrit0bren8eDpQ6n0OZhoo/jcZ57SDa8NB1XD7hqAszPcXDw2mZXZ6tql5iCw X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(10201501046)(3002001);SRVR:BY2PR0301MB1574;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0301MB1574; X-Forefront-PRVS: 0800C0C167 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR0301MB1574;23:8HTcHBK+zc0AC7wO3OWYWtwB1KUJCTnLNQqKLE8?= =?us-ascii?Q?z1dlBCu8+S4c1vNRMDnH85g/1rcfd6POlRb1XP4Hsrw3ty84Cuw3JPgoDALT?= =?us-ascii?Q?RXWbKW19Tt+vtA5QZEqAtZFNwrxz7MSXOg6tGnsxMfKtAdJdoFyQ6HW5BU+O?= =?us-ascii?Q?+FsKvRMdHqaFyc53RuXPe0EOauoxZFC586Sr02sIC+abS9+xaUj3qmfIf39w?= =?us-ascii?Q?S1RWdJ4TwhCqd3IEAyUQO0yGe97r10M5HGR8dDfg5cNt9qXNIwqhiVOYUi3t?= =?us-ascii?Q?DWJZngZl6Szf/jPWOZXP844IMMpkg5UzFJAccD33m8bQJzMmrQY0rvwkcTET?= =?us-ascii?Q?TdW3fPllvXbJyOLXJDGKKFTchkTO5n5gbV/DoO/XiRs2woagQCeDIJup81Fy?= =?us-ascii?Q?cbC6hCGy/CKRCqK+uGzt4T5kGeLPfnH19AH/3kMOQpgLwwpeqFDz9z4ODWqA?= =?us-ascii?Q?hTDW+Wr/96p/E8YhxaQQqiD496uscgfqws9bzpqy6FWrTbAyS8MFpO5+lk2q?= =?us-ascii?Q?QwWa1FgSMZjKbPWE9ib91rMjMdA5L29+23Jy8Q1/c3uxqez5l6yz8u8q3ekH?= =?us-ascii?Q?YlRGhESFzCLQh7C9b//hGXDrpze2jyXy/YOYVixYADUIIQYEPrX8P+XhgGts?= =?us-ascii?Q?AnjhhGiStTm/60A0JB2pSV0DF8utFupkBTqcPUecN34IsERLm/Fkam4/cNCA?= =?us-ascii?Q?Eivzvr2tDqVeXVaWC+L+4FiAzrl2Qzf2qrlSbQTmRTPfJxv4tACbz7p0hK9l?= =?us-ascii?Q?7ppyvC3spBceK/whN/Ra2J/IrKOcrYFTIrKudMcdjzVEoKPg+8B9j6kkYoy0?= =?us-ascii?Q?64w+Hv/RVKk5gVVAgJeVbZkZ6Fj+8y0GFfryetNhRh4RebpoqnPjNsRlIPt5?= =?us-ascii?Q?Uu7yTgtCcjHDx+KTb83CrmNIHsJieK6uEqUvO1sboLPm9aIGmhPqtypfWUkn?= =?us-ascii?Q?e+knhNipJxnMnTKWJQY9c6x9qfmrn2ouXpAedlrHKqRy6lTagMqD35ptyDlZ?= =?us-ascii?Q?gN0VgddM2vaIYkAqZ3V8mPIfIg9cWHORYf7AXJ/ZiC+7RdxGqEhwxUHUcq70?= =?us-ascii?Q?2lY0K9IZ2Z2X0NHLQSmS4po5BJcEgbPFxAHF3P9j8ivv5jgRo1ErCXFDjSeS?= =?us-ascii?Q?c5DdVE8+xLh9UP+KKcFklk///ILWJBzKw?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR0301MB1574;5:3q+usPQx/CPUnqvv5aQH2NA8GydxQKV+xxd+HwEMeqxVo9YmtaxuDyjoXnAfRBuJCqAcR93lbjw9uuQfsvCuKhK1ijXlqLHyafTI8sniQ/GpYB+JbTNu00zptEQR3gv7ck/vEMO7+qGr1jv7T9eUuQ==;24:1gm6AMjsBr8hbbxNi8kPgVgS/IZKmIT5cc982Zb+JMVdnF4UnIFssSLzyQinPwHs2+MZ+MpiYyyyYx5Q4Mtj4ahKeXTHbpnY30/xQCp/hFM= X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Dec 2015 11:07:05.7152 (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.158.2];Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0301MB1574 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/