Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753577AbbH0QqQ (ORCPT ); Thu, 27 Aug 2015 12:46:16 -0400 Received: from mail-bl2on0132.outbound.protection.outlook.com ([65.55.169.132]:23456 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753431AbbH0QqL (ORCPT ); Thu, 27 Aug 2015 12:46:11 -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;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]usb:fsl:otg: Add controller version based ULPI and UTMI phy Date: Thu, 27 Aug 2015 22:13:02 +0530 Message-ID: <1440693787-7339-3-git-send-email-ramneek.mehresh@freescale.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1440693787-7339-1-git-send-email-ramneek.mehresh@freescale.com> References: <1440693787-7339-1-git-send-email-ramneek.mehresh@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD015;1:PDlly0vjzF3yok5IcT1JJcJgDja6G6L/PKj7ktr4Y6eCulcKhS0tQwtUTvBO86GeiniqiE3B1b0EcNw5HpG7VoEMfgMYxp5j7o2A7XXNYGo0KttEpNVv/EVJaxSQrLlMWConDT4qW3uhRkXwc5PGX7zevfdhSN6nMoPx+KGQbkXTSRU7E+fMozkg0VQ9Jag0UWBRGB77uszMe8mEISG2w3PN/EQTj0RXtf2dSF8f9zvtjBcl9589JYrJzF4j2paLlbOUaSXOyMtoJpL53ZcuxYdg/JMKPhyLWQjv1VfGXnD731lWA+4pBAb36b8CW9LxVaXmZL+El2kDDnkyz/gUHhwn0/yTGpL01YWq7xc/XbKIu6k8nvhxUGkX4oodaWPQoNSeYD5ZEG6eX0o1zUpckg== X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(339900001)(3050300001)(189002)(199003)(5003940100001)(19580395003)(5001920100001)(68736005)(104016003)(64706001)(77096005)(50986999)(19580405001)(6806004)(92566002)(105606002)(77156002)(5001860100001)(76176999)(5001830100001)(229853001)(5001960100002)(110136002)(50226001)(48376002)(47776003)(62966003)(106466001)(86362001)(33646002)(50466002)(575784001)(46102003)(81156007)(2351001)(189998001)(4001540100001)(76506005)(87936001)(107886002)(85426001)(97736004)(5007970100001)(36756003)(2950100001)(4001430100001);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR0301MB1574;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;BY2PR0301MB1574;2:rO0wQ7YuaWZDyjzb67SsQvlzh8oyRchSiveDhxGQirQeVLoiK1XtzTOO5//h/kD/OnN+YUlx+levPj/V8qtuvZr77LybMnluB4c1XG5W4jft4wTa8o80RPsQZXHCH46MG5Ci+I6MIBKfNezpAqXBTiBJfQoob2RNNdlQuurfuWM=;3:jzDn8cymrXUnsT1iB3UqmFEmVSa4DeJ35uT8Bimc09hu7RIzGItl+D/sXg31cEaUW1rXglFGjyDeytpmz3CUZJQo+zw4TT2IyUQk5ZNH6g2WMlEEV2o6ERtXsAZ2ms+Qgk1vxAxhunxYXaDq8IdYa09mkRbHgk5qV3a1b0nxe4f7iPxYzv1MNu5XJlmtjiG3rlIbTxG4Pn+WQnPZo0C4DfVyhe+J+9vzotDEi/+DG7A=;25:mADnGhhAKB8jgXusXhxNVUvECjNkpQR+URVsJgux1TRYBGrr1flz95WQJ97u5sJLYlMuji9UDFHdZEYUrhdWeWBRqeC+HM0IzjAQYQ7OvFOCrviZo4szYu4yN+nkIDr/JI4RmEx8J4iaKfuNLgOWPHBYpRwuANQ+p6yF5O1auO6hvQNM1uqt+RCn5h7akba+DL08Y8n0nQ/cNE/UxjaPeWAnWZjpV796rpwu1s5w/0CW8gM8vVpMi/IdXpl9zdStwHvygGP9/8zh3YBkH0vyZw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0301MB1574; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0301MB1574;20:K5UIYBxdsEBQaix0IRC9yUtzHTk7ruwWw3MxFHelMfJTGHPHv+BCR3+S0W9Vcf2toZePoa+miOS4q0h9uZ7Xjtr/OAyXaZxD/xoru6Py3MgV94jlV5TgWHMbXJfUhYiYTdlzCOuiRS66WfjI8BMbit8RbLrbRLkM9h4lxHBX1njN+5DoOk4lhtYrQ3JJN0H+s3s7rOt+6imOYV31H0FfITMhbWmDrcxG7/OHehjVFjVv1IfOU4HdnuFxpmUiyXUrX9+3yl52ZSMdGsNOqNNM/94n6ZuHMBtmzS1ADQHF/PkOFO2dz8fTKBKKQBw1lwBtReQWNSMk3KlJj293QwIzgf5is6qeWLf1+LTZFw2Jf98=;4:xshJYAc2xqEi2fib6WH53tPbF6/jxWcJdMiAFcvT0WLS+9Om2yvAwVLvD1r6M5cv7n7/XBhuoGOl9n6cruikIM3kMPIM9W9wSMssMzldiaZn9Yohvx77JrGunqMTwvxgv9Dq4MD4kUluOD8tpe5wZ9AzR15Me8JE1ia77WqphDLBqNb3d+mrEEG3gVZaGTRT1m0bhQlo8cTsEsvDGy5SgjAcLYU0alfhX1jeEBkXm5zS3a8mZLFm0FeGYXVfWzIIKHUp+JfjFulLsxFyGOrYQZk8ITw97KV8utXvi6qXqGTH0Zr+w3jMCYPwU+/uPMMXE/QQ33oredGa+AotX8GtSA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(8121501046)(3002001);SRVR:BY2PR0301MB1574;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0301MB1574; X-Forefront-PRVS: 06818431B9 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR0301MB1574;23:jUSBTLRxVeHT6yCc35ZrWA54yVQ1nuRZ+BFyrB4?= =?us-ascii?Q?WwipNNrxy534tjwZbP9u/YdPsDHYzVr79klla5gt71FFGT1mYQyOOhbf182k?= =?us-ascii?Q?/hcfysNvLJ4uoVWcJVSWeMI5YjfjqWjdsTdPoCmf4wix8dvAFoBLt76KoWx2?= =?us-ascii?Q?4AWpSvV6ydyxw4Sz9+oN/Nl/7BRIsQXdD5O/Wr2f8cxsaGOF752xgniTEK4I?= =?us-ascii?Q?R0w6noolKi4nFoU6InFbtb9oakXRfKJgCDXnpoyfLWWBODjmHhztZE+wNnsT?= =?us-ascii?Q?TBWbpZUsmKNK30Vembsn10yImyIw+5+hxbAzAAsNOY/45ntecioW5n4Bu2Lu?= =?us-ascii?Q?K/YnwWh5PhpCjpi6dOZyZMCyE4/kcCqFKGrpXOHPApfHUBf3uXT3NU4n4GMw?= =?us-ascii?Q?iOSCpkxDHWYGuH9eNVzyNm27J4Jw40b7aKWs0KAUWAZqcqYNR4i0Y97bGexa?= =?us-ascii?Q?QsEaSHhKwfiRc7cApeQfs5l8xzqNQVxJJHgroF1V5dSOvau9b+H5f2/JTGbL?= =?us-ascii?Q?hqEae01hpcboeWfIyxnbD/MowqukLnYHTnjKSTSN4KMQ4bx5T7PTEUAH6KLs?= =?us-ascii?Q?XXxXf58pGuX5TnSncrBOpKwguu/MetUAdZMpQtm2vI1KtinGul8ogvg0GN98?= =?us-ascii?Q?m38g103cH5wnTFIybQvYsUNu9pSRmfl4LxUVQDAEux9UzTefut5QuSfm63h4?= =?us-ascii?Q?snxJaJFybTf/N4+rav0gceKSLe9IPQCfyCXPippIIHZ+m6aBFVOxvRnfLFU8?= =?us-ascii?Q?2MkuSSZ5swZjUQgxyOaGYUQAXFcY0B7eHH9pAXNe1sUrKSVvZryozE+ehA7V?= =?us-ascii?Q?OeSGRk8K/Njx6AJEWf1cqz+MEXNk7k/cLLs3DISH2AL/JSBiTzsY0L+RTTNY?= =?us-ascii?Q?UTYtKjjRxIcEJctqdq/8crnn311RQAJCoU07l46nhGy5f2DlXwtz8Zpsd/vL?= =?us-ascii?Q?vhPtVNiPzDD/gJcS2JuFDNrOvyJ74JbknugHBQlhyUcBgr0B1amljm0oZsfJ?= =?us-ascii?Q?eHFubjdzL6X+GClgd5/3juhdi7QpfI6DbWLSSZWTPIPxE3zoEIpqPMzATshZ?= =?us-ascii?Q?CDPObHhzRqIEmXG5nUFHQDLEVEcoxA8mQemK/QeWi68P48XfuocNqocb4AoJ?= =?us-ascii?Q?Y8Us94WI0eoT/iStpUJbolu9bsExgxDX6y+tdI+YcijqS5UMHjlDMP7vRk2T?= =?us-ascii?Q?+uX7myup6DUaWrxFYrUDSBLPu07oxHK8fvdkQwJHV5WYZuHVGv8jjYAP1Ccq?= =?us-ascii?Q?g3R2RmsJzKIO6wN4z7T76g5vcB+LlrHPgZ4YnMEGUQDFORIfsSxMrOOY71eF?= =?us-ascii?Q?iRg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR0301MB1574;5:U1WsKjHuX2MUJNoKIVKwUmez2C2XRIL1Rdjcwjm0qzNcyqPWElwIFOlC2W1SZcoDAqD8Yanc4+V9l26rpvoKTgIdS/5Yuucarna2dPzZeCpGYoXqz0IPFkhR3+cfbJqUspG6RHIrZCsk228JT+mmsA==;24:AUjysxF3fDYod0HZuVohJ/K1W2FmcDGSk37fVhM6nBTHdWgS0TYF9ZShvjdq9bJbktS6u1mQg9/mzaZeekTyn+dr+vbl8Pk4o1iQLUdT6z0=;20:e7+yMqD1DaVvNUPXbNqSJFpKDy5O/XQ9IYsYS8a5tdNgQZoRNNAewUqjm9Pzd8doIfRRI1yVy89zKHunwdeWHQ== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2015 16:30:25.4687 (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: 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/