Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933982AbcCNJLe (ORCPT ); Mon, 14 Mar 2016 05:11:34 -0400 Received: from mail-bl2on0078.outbound.protection.outlook.com ([65.55.169.78]:22016 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933806AbcCNJLC (ORCPT ); Mon, 14 Mar 2016 05:11:02 -0400 Authentication-Results: spf=none (sender IP is 192.88.168.50) smtp.mailfrom=lvd4224.freescale.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=nxp.com; From: Rajesh Bhagat To: CC: , , , , , Rajesh Bhagat Subject: [PATCH v2 1/2] usb: dwc3: add disable receiver detection in P3 quirk Date: Mon, 14 Mar 2016 14:40:50 +0530 Message-ID: <1457946651-23381-2-git-send-email-rajesh.bhagat@nxp.com> X-Mailer: git-send-email 1.7.7.4 In-Reply-To: <1457946651-23381-1-git-send-email-rajesh.bhagat@nxp.com> References: <1457946651-23381-1-git-send-email-rajesh.bhagat@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131024202548743480;(91ab9b29-cfa4-454e-5278-08d120cd25b8);() X-Forefront-Antispam-Report: CIP:192.88.168.50;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6039001)(6009001)(2980300002)(428002)(199003)(189002)(92566002)(47776003)(2906002)(4326007)(5003940100001)(86372001)(48376002)(87936001)(46386002)(101416001)(33646002)(229853001)(42186005)(103686003)(105586002)(586003)(1220700001)(81166005)(1096002)(50466002)(36756003)(110136002)(19580395003)(16796002)(6806005)(50226001)(2950100001)(50986999)(2351001)(11100500001)(960300001)(189998001)(5008740100001)(76176999)(106466001)(90966002)(45336002)(7059030)(42882005)(4720700001);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR0301MB1587;H:tx30smr01.am.freescale.net;FPR:;SPF:None;MLV:sfv;A:0;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD002;1:1oMSEqPea3ysYjIkbk6CCHPX4JX/Fixr7KA79U8zNziCLFRkkxND1Dcy0piMSEmq8vVElfpjzns/ErvRNNkmtzOh1OsTrTGWI0IrA+53j4bpl0qqHcUt3Nfcel1O3xjz+ipCHKO3vGpCP0oDkWF+KJRMFNes0gf8O0/cbnvYkm3vDkvL7rY7t+OGPUPmrTm0/mwOKEoSxWSM3uyVCW6g8/R9jDSpaY9cHAZnG4qy/2EMv2jM1ua/Uuty3zEyr830n0nuhIsCOUELbneSd2ba1pChD32NaYyiHyNNw1DMDd4EBrtNokhs1k+e3OCSaIWtRljLRWY9evsa5HaguB5StrYFopvrgl/g7fYA1ueHmZPSokRbIOuTvNL3opbZFd4kj8Uo57JhU28kh7Erf+frbzj8U5hAjMMiLwZ/hyUjrbQByXzVDUetjth/Rrpo15rk/TWuUscE8Rue31abf6NK3yfi6K4IJvHSl+XlzWSLmj4tuVQmS4+bUNefCGwo5yoQ+wEAphjFMkl4ghcCo1ZwTg== MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: e2f7a06a-0d0e-471c-8d38-08d34be88c5c X-Microsoft-Exchange-Diagnostics: 1;BLUPR0301MB1587;2:7bMwVCSlDEXIRPpSIpf9AUlAtM+Tj3veIBs1WC52k/6JZeK7Id4ElYQSwzY+GWHJasQjTKq2AyiuI/JUlHnYq4yNQgC0x875KF00YpSURVvVBZz6/lpzoNNP1igJEvzWccWNcmBF9uVAMADcGMjFb3QsFoHq/ONHLMFTT4Xhxwo+/6Mpm7SAwL3SzIz6gIyh;3:9MhqBZtAB0o9Cmcqp9ebH68Y8nPHlo3eWu0c+vICRsbns+t140OlTKVd/g5xgp8CRsVoO9jn+nx6ZQiVYSCTzBEA3iu2rosW3wqLsO1xHl78uq/xsnt73jZl56NtJVoxkLj7YcC1OC+j97bI11cG3ReAT17doDkUTV2OOrxiY2Z5pxLumU2AfqwZEy8Q+zPnTwC5NkrWIGnwDN7dTbZUQRh1awUu1ZIlgyMHOQdoAl0=;25:Yfz3ZnekwuvF8KrtwR3Qc+u4z5tocgaRhYDfQJeQWCFNcqOWTPpnn73Bat4lbpJBqmuzPs39KrWziyBzAgw2WLSOBawzCNVn2CUkfMxIp4SQwPT4YNo/gA+8iuCJ2Fx1boV8lOJ8ndytkUhkxAIM4TANW1vH9JyulNtzefOM8+55G6/mZzRy0ciqiwvfAIlGFw+GpV0Yux+HyUFm/vRtnwh1yhsL4OkNmnanFSXQIvwVHNwwgWnej++ut9lVPQnAMb19oOfTzi09oz7/lNMUqA8Pg+o4olJGXYfpojiGF7aorXkzEfbmYHSBVj5j/brA8wForJzGu8WTfBfFeB71YN6WRfbN9z7MkHfcOE33JOingGzJ/E1h0zxEejQhAcZ9jMsciHXZje2wGJeDRHuiow== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0301MB1587; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(13023025)(13017025)(13024025)(13018025)(5005006)(13015025)(8121501046)(10201501046)(3002001);SRVR:BLUPR0301MB1587;BCL:0;PCL:0;RULEID:(400006);SRVR:BLUPR0301MB1587; X-Microsoft-Exchange-Diagnostics: 1;BLUPR0301MB1587;4:uKQgQY+wFqrHOGyYoE6bwryV8VyVuw3AeYUHqVZwoGd3yp3y/GErLSEjrsBKFJ5PAm5EhsDw1dppVtUAIEjNq7aRsZ6hiEZTWIqsPDcZR832MWup3qpxmPMkrI32/vFJkpO4KsynWdTNE+aRsO+NNTrWhIQP6AXzRAz6PrbGRPP1J+m+NgqOZg92OVtlC/aXQK4UBikKvaJffPrGbOvdc5cnXP4p9S/Teijr9ZmeHOpvumX+RYkmggPYrTIBLzCVj5mUQ9e8YMP6x3F3PquVtHkcMQM3uG4ocUFOm6cjDOzM1bRKcMw+tZvV9he+JIgidMo18ddtbA0IzuhuWDOYe2+wQippJZzHz0amuMtKv5ogydrko9Br0xHGKOiU1moHOkrsGC7LG5HqJG9vh5g9mDOcbDA8ePnQ8ZQgiiM6BDd8a2srY1IfiVkbmovoZ7jDIjS/yElaCyOnoZWt9ruxxg== X-Forefront-PRVS: 0881A7A935 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR0301MB1587;23:FmL3d3aBJPXgA7CXZ5AEWa29G9IbidneWOtI2wg?= =?us-ascii?Q?D5EcfgYHV/4GKa4X4P9tvT57TfCPp36bPDcEkVC6B9p/J8xBaEy7ZJtTicVa?= =?us-ascii?Q?nKprUo8Fc+CP/fDDBaU8gOv61KT7Waz5Naxhkhkv5bh/aV7yx/O+dEF6dpZi?= =?us-ascii?Q?MPkgiKLSN2i3yrmKZ64RYgLyp+5fBA24totqdm2hZtAgapFa4FrmdM8Y46Qz?= =?us-ascii?Q?Dz5MNWHKFFQHEvnt+2wpDjVJapCiLLUVUHem1HXbKE61Riv42vQPdGkX1gRD?= =?us-ascii?Q?RlhFCnMQ5zJ1jXuI0mj4/WXNFoemy1u4BUhOizCp+E2YMpbxJ/VMASrztzpP?= =?us-ascii?Q?99vio2cDaK8wm0ehJNh4vd3Rc9pJKoTAyVFDU5Xb2zI0mvWLKDKfi4pBwUh7?= =?us-ascii?Q?Qoyh+nyreGGumg5ILAhaetEdHV2z66D17woyn8NqyqOim/C23vNKh+qZpCML?= =?us-ascii?Q?gloM7VyUln0e6hu6+sRBE2sEo//rAVPPzj7MizkmOHa7LPjNlRTw+fhKVpLB?= =?us-ascii?Q?HXnSANwDVW8SJSBGSU2J9txs8aikIkCtDtTE20HR5b/wQHpNTX4TdDDn84ab?= =?us-ascii?Q?4wf5yXTt+z/PMiB3+lGxM7m4NmLdxRiBJu9KO7c6Y6HKJpALgbEw1WuDT/ih?= =?us-ascii?Q?vwhuX7wBuGb7HsBTnqsvW0kXxMovKIZDTtSeYmXPXkwWWfDftZDvlDWH6Fmf?= =?us-ascii?Q?ymLJ5zBT6iQPx5Um/V8Z955yIi2yf66ji65UvkgGtY8/sJNaFN77D5eQAQBz?= =?us-ascii?Q?3H59mlcuQiDYy1E/Buy5XYaZuIzQhHr4OFNbWImzA8V254/WSkDdWyUsqUD+?= =?us-ascii?Q?o9J+NBC0fdd2cqk9xM6/roJcKcOGeMRQgKhokaBnuKM8G/OCHKrOssOjcsWx?= =?us-ascii?Q?Bm1cRKov48EotWvsxW69G4om63QJwkyj2a/gWmqcYBLoN+VT0sro1aAHV3MI?= =?us-ascii?Q?a1bPUBUzr0F/KreJAV6vqOyrrTSrEfzLcnY/krETpwLSm/4EVGk5eZHW/GQ4?= =?us-ascii?Q?eE2Rlo4TnCTemW/uRCSKRJt+QxoNuoRovAqiwYwIJ3iWsdlDtBlKv19mfd4V?= =?us-ascii?Q?xviZVClLYZeML/tsOwFfXwkUuqW6UwxbdUnDz29gZCooEWl8P8oriYQTS+uT?= =?us-ascii?Q?f3oOmRDSXSva5Jz7OyGeCCJifmecDbr+85dTGFQS2AkFJDQAaQQWIxA=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR0301MB1587;5:vOJQLUC2j1RMRGkdrjZDcJEMWaqjKfWgSA3OyUBJguZE07cfy+FkiQNTOTyXdyqZvjKFLnXZf/T9tiQaVb/XIL1sXE+7JR5xaJhr/ySsuxRVcecyKzQ18sM/7/rb7rGjT79Lkdq7Xdg/ksYjkfYXNiXDHAlzhDht5kaQIPJkwbc=;24:+31REw3eAMtzDd4P/l/vWRAcQCsyXIWBRIsaagDnPGUMJdkZ0arnTAdMoEaOb7rn7frv2byeGuv72xcUtC8KnYjVXMwiJHxsB65hxo9Pcic= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Mar 2016 09:10:54.6715 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0301MB1587 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3140 Lines: 82 Some freescale QorIQ platforms require to disable receiver detection in P3 for correct detection of USB devices. If GUSB3PIPECTL(DISRXDETINP3) is set, Core will change PHY power state to P2 and then perform receiver detection. After receiver detection, Core will change PHY power state to P3. Same quirk would be added in dts file in future patches. Signed-off-by: Sriram Dash Signed-off-by: Rajesh Bhagat --- Changes for v2 : - added the property code in alphabetical order. drivers/usb/dwc3/core.c | 6 ++++++ drivers/usb/dwc3/core.h | 2 ++ drivers/usb/dwc3/platform_data.h | 1 + 3 files changed, 9 insertions(+) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index de5e01f..c840df0 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -446,6 +446,9 @@ static int dwc3_phy_setup(struct dwc3 *dwc) if (dwc->u2ss_inp3_quirk) reg |= DWC3_GUSB3PIPECTL_U2SSINP3OK; + if (dwc->dis_rxdet_inp3_quirk) + reg |= DWC3_GUSB3PIPECTL_DISRXDETINP3; + if (dwc->req_p1p2p3_quirk) reg |= DWC3_GUSB3PIPECTL_REQP1P2P3; @@ -919,6 +922,8 @@ static int dwc3_probe(struct platform_device *pdev) "snps,dis_u2_susphy_quirk"); dwc->dis_enblslpm_quirk = device_property_read_bool(dev, "snps,dis_enblslpm_quirk"); + dwc->dis_rxdet_inp3_quirk = device_property_read_bool(dev, + "snps,dis_rxdet_inp3_quirk"); dwc->tx_de_emphasis_quirk = device_property_read_bool(dev, "snps,tx_de_emphasis_quirk"); @@ -953,6 +958,7 @@ static int dwc3_probe(struct platform_device *pdev) dwc->dis_u3_susphy_quirk = pdata->dis_u3_susphy_quirk; dwc->dis_u2_susphy_quirk = pdata->dis_u2_susphy_quirk; dwc->dis_enblslpm_quirk = pdata->dis_enblslpm_quirk; + dwc->dis_rxdet_inp3_quirk = pdata->dis_rxdet_inp3_quirk; dwc->tx_de_emphasis_quirk = pdata->tx_de_emphasis_quirk; if (pdata->tx_de_emphasis) diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h index e4f8b90..494119c 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h @@ -193,6 +193,7 @@ /* Global USB3 PIPE Control Register */ #define DWC3_GUSB3PIPECTL_PHYSOFTRST (1 << 31) #define DWC3_GUSB3PIPECTL_U2SSINP3OK (1 << 29) +#define DWC3_GUSB3PIPECTL_DISRXDETINP3 (1 << 28) #define DWC3_GUSB3PIPECTL_REQP1P2P3 (1 << 24) #define DWC3_GUSB3PIPECTL_DEP1P2P3(n) ((n) << 19) #define DWC3_GUSB3PIPECTL_DEP1P2P3_MASK DWC3_GUSB3PIPECTL_DEP1P2P3(7) @@ -870,6 +871,7 @@ struct dwc3 { unsigned dis_u3_susphy_quirk:1; unsigned dis_u2_susphy_quirk:1; unsigned dis_enblslpm_quirk:1; + unsigned dis_rxdet_inp3_quirk:1; unsigned tx_de_emphasis_quirk:1; unsigned tx_de_emphasis:2; diff --git a/drivers/usb/dwc3/platform_data.h b/drivers/usb/dwc3/platform_data.h index 2bb4d3a..aaa44db 100644 --- a/drivers/usb/dwc3/platform_data.h +++ b/drivers/usb/dwc3/platform_data.h @@ -43,6 +43,7 @@ struct dwc3_platform_data { unsigned dis_u3_susphy_quirk:1; unsigned dis_u2_susphy_quirk:1; unsigned dis_enblslpm_quirk:1; + unsigned dis_rxdet_inp3_quirk:1; unsigned tx_de_emphasis_quirk:1; unsigned tx_de_emphasis:2; -- 2.6.2.198.g614a2ac