Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754155AbbHMSMx (ORCPT ); Thu, 13 Aug 2015 14:12:53 -0400 Received: from mail-bl2on0116.outbound.protection.outlook.com ([65.55.169.116]:46725 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753919AbbHMSMc (ORCPT ); Thu, 13 Aug 2015 14:12:32 -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][v2]usb:fsl:otg: Add controller version based ULPI and UTMI phy Date: Thu, 13 Aug 2015 23:54:59 +0530 Message-ID: <1439490305-29215-12-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;BN1BFFO11FD051;1:2t2+8Bz5fry1MDGB+gzKNS0L/A8pepAjExCidDJQC1jJIPLBxe9jEN9u7x+swj7hrnjRFTo8QdgeOLqLU3xoRiwaHCu/rKCfmC3tVwjwI2fGtsqBKZoj/bcqMhvPXAcvF1oZnmXy3wXvQ5wQGzyBEfIlAaYNiuC7EerLm+dxUPN+Pkpg2W5nM49OrOw1rwejKRlQz6l3JBGxHlzNobkNggoSZdQeufIIpUZFe28UMt4N9EUTXsgtQMOBBkyNuB+g2EV0Vrd0Fpix7ZFu2idrpkr15sjYxqx8hmSh5aUQr2xl38y/S5j24kvRigW5bZDnFykynse532/z1xuvAzrdVwcNJPwKC7QcsLIf2ApqjBv6fpYHAIKORA4UbMKGesQzugzo5hkk25qtnWN6PgZcSA== X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(339900001)(3050300001)(199003)(189002)(97736004)(81156007)(5003940100001)(77156002)(5001860100001)(4001540100001)(105606002)(48376002)(106466001)(50466002)(5001830100001)(85426001)(19580395003)(6806004)(107886002)(19580405001)(76506005)(110136002)(5001960100002)(50226001)(76176999)(50986999)(86362001)(2351001)(104016003)(189998001)(229853001)(575784001)(46102003)(92566002)(33646002)(68736005)(77096005)(87936001)(64706001)(2950100001)(47776003)(62966003)(36756003)(4001430100001);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR0301MB1584;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;SN1PR0301MB1584;2:IrbGll5cF7WutZ/27RfhsD9nTjl0yBeE9vKwk4+dRpOjnr7FWs5UQuYFg9h3l5TuPb7+ob+qcx+ytp7hDhDEEmwCJfHbQ0MU/Df4z5WCnbAmAEtAr1aV2CkJMr1vNQYMRP3vQqrVYi1oontN+I9ywH/Exf8RrgTMSZQzk/RwRdg=;3:qipXz+XJK2akCJxjMdzVsgzyJGmX8pmp5Gz9xhxWDDWF0Rcn/Hi/10Kr0x/loup/F+Vd9c2ntzj94sHycneeBgcZmL/xLos7cKRABEHQuZwjWmb52+EQaQHuSm1XcJwWHYSnBOyJIxZxMBa0fF2V0AiKCQTEHhU0YBWHEj0JJMNZNEEqyibt1DiGKIRlDZpMJ0SqqFLdsCtVbSR38TfxaKp9XRtSNZKgf8VTD/HMgJQ=;25:C4F1w2cVyT134o7A5hHMs1ZaWU14QRY/FxFhzZ/ddV1RnlCE03HcivrHOIC6pHOrHG4ZE9I+LfnqaNlfgUMIsivYfbBjuyUNnPOGc5ZQvB3y1pFUS4aQGnHFZMp+xylwcw6GsEP64pichvjTsdYQHuxnjbSbMMi0mtyhQpF9jF5q31EHrYEnbKnhfV0Trk7e27wzV3zPerZEJ+sZGFeh/hDwAtznQmXsDF9gHeTeqwAdkKFt3orKdJ9FiuDoHmftq7c4ppl33MvJ/ycaQ3Q8gQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR0301MB1584; X-Microsoft-Exchange-Diagnostics: 1;SN1PR0301MB1584;20:h1WgzwCA6CT9UCRYLEGzTl+/bvEBsD7p6Gbug+mVzPx4fDoscWTKFM7RZ1BZIGue2cpjoEQBIcJToz2PgZaxtorIKpBG5wW+TbWMvGQTxevjWtEocYT1nZ8nSleg5VIpZcHltgL31B2m7uwZ/uFXXcHQIddoDn3QtZlCUBHeRuiycaT5P/9NJRRbC2pEZds1kkgZd60Q3vAv/tZzbUn0s0KupsQ8v4nJPyd//r4V0X4JJkQHmb3GPDtsmGF1L1EJ4WMXepOrfvmr1mHo5WFoviiM+e9d2A+R+AUGLgzCIwTCJXXEnglwcMgG10Y1swMdOFgmI5FpchXqbs+YuTx2axXrKG91aDJkpKPtyh7BPKA=;4:+jD0M8I2Oco26hrj7dHUWi0YQOSiQlpuQace0nrAOya+9GLf40Ph2EhZ+COoopHDNLNQIktG3HZ8Qm4nZ4W9HqDsx6x52px3DqDSKlRkFyy94v6AfflLrUa/0KHal7CeO6Flfwpx+ghLhTekaD7IpbZ1fOATYWycyMKYzmO6SFqbSrYAEjUjzABkWcogYI6qZ+/a0QZxi0PL8VraYsxHCPXyLVeNxohUKeSi5HqKGPyAyF6Xr3CzRz9zqQPpEuB0J6fmgqTrdAT6wfhZmH2m+vF1OrrF/Ev5U5UuVLFWuRU= 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:SN1PR0301MB1584;BCL:0;PCL:0;RULEID:;SRVR:SN1PR0301MB1584; X-Forefront-PRVS: 0667289FF8 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN1PR0301MB1584;23:rKed7B5dbOBquNdCy1TVeL4KzlwWKJtLjrK9+C3?= =?us-ascii?Q?PnBlVUTruzI9tOTgT086nYg5JCfpiub4pXrNCnYtwYSsrT1llAa0H9ZiMEsT?= =?us-ascii?Q?pk9aChOBq+3EqZx6qsYeU5FglHMS6vw69ysA614LZ6EAqhKHAdgG88yvlnAL?= =?us-ascii?Q?lLn+ZUPl1oDk1V/tzgZu2SSfaPGWr6I5vzERSdPJVexvPPFiFZvIIXEuyg4g?= =?us-ascii?Q?8SPiU4qMIxb//DPX2BIQJFnRQReXg9eumW40Fs9IsTsZXT2qDTWanZ64cCoi?= =?us-ascii?Q?1bm6EX0fgenJiIo6f0lF7Pxe0o5BS+1FwP9ztbEvTyry2kQu+YSGvZjmrLPM?= =?us-ascii?Q?8RBYwTDzqi6HbsyfYMBRCxiJHydre0XgbGwO39oxJ3Y3h1ropf5Huh8OMvaP?= =?us-ascii?Q?oNlIw+2UEoJF4SIEObtKYS9aA7Pc+yUqKJG2cIK+9KfuiU2gTVBc4yLuvEGz?= =?us-ascii?Q?smTcuFMeNZ2GHKNGYqDRVOZeSvnHDRguCDVzS9LBhd/Bj0HaZIWZ0llSAjze?= =?us-ascii?Q?lFZ8bTajJAxZFDpNf+weRx3xFjQTVJpaRi/xzx9w+q8iCvOEqrVTSTVbkbJo?= =?us-ascii?Q?0pLXOoXINp6j50sHkkJSaV3SufEDzS0/gPucYVFr2tSXnBjmSIdETY5geQXz?= =?us-ascii?Q?+0vfDSAOIefhbds/V5b3nObt2s2OggNlqKcCS37M60AtLtJWaDEAjxVbpNml?= =?us-ascii?Q?5cYxThwPLVOh4YPx1Kv/38cpiX8MYFZAFZ+337k3LNRnZcvRcGFKDeGQ4U/X?= =?us-ascii?Q?6m0lTlm2OGb0k80fZ9ydJgAJSZkqVT123wU0W+HvneMtvMbJ7D2o5KeVZUqJ?= =?us-ascii?Q?pE7zKlO6xw8czd7Z3hXcfvq8uGNS2eC5Ju3ZKOo2QaDBSHFBVxcLln0taTZX?= =?us-ascii?Q?LlFBaIoNDEKYPoX0a1LzNQBvpJYKtaN/cSTkU7QZQVrwH3gu5RDH8uVxcQLi?= =?us-ascii?Q?EFzqHiIq8FQ1YBPffRegEX4NMWS9ovO2MXuLMm6IkXK1By9Pwtg8EdKRZp0Q?= =?us-ascii?Q?Uh82M7QvHa0q6rgaN7NuRdWWnITideW22UlKNsurj6zwuk3xkAkpIQL68GqX?= =?us-ascii?Q?bSty0LC/Uu5UgivZmgd2cneWI31iBlUnRMmEayiETVyiysA0nQa2MaWtIEos?= =?us-ascii?Q?2pH/tbnLW2JFj0cUjZpqkFHuFZQjPnejRx0eBcOXKYWdYFogFbUOloWOKvVR?= =?us-ascii?Q?t0SjjJjMcUnlO7lT2NjVsfTI5SNqJxjS9ujZ9QlSLRAhGeXDEfDfmQWLsoA?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR0301MB1584;5:PlzETmNq6mMc+sv/riOKkRPKTCpl5wwpiDMdpWrhRE1IgT7D6PMqfwAol7obUxvbW9+eXmJzg/b8PdOprz/QARNoZObCYduf429Hs4pH1QpVeGaBv4iumRn6RwBEQ01OKir83/GlGnoC6g9bjLXWFw==;24:/3n3dyUeZ1OJh9pwEbnFosDyG4wng3qgzGYXxHSL+PtiL2CVHA9OIwClgjG20zx7xwiWC/lSVc7y2ba+xF5qUWQQ1akZpW5GGhE6Oub7edk=;20:EBi56SK51gc2W0HI8bNQHfrzZH0S/qtF7Ql3e/BLD4d/Rur5zQ3EglzhPbkHvAAtgTW4bcj7GgU6oKBfQVQqMQ== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Aug 2015 18:12:17.3354 (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: SN1PR0301MB1584 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/