From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756633AbcLNUbB (ORCPT ); Wed, 14 Dec 2016 15:31:01 -0500 Received: from mail-sn1nam02on0072.outbound.protection.outlook.com ([104.47.36.72]:51232 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754152AbcLNUa6 (ORCPT ); Wed, 14 Dec 2016 15:30:58 -0500 X-Greylist: delayed 3581 seconds by postgrey-1.27 at vger.kernel.org; Wed, 14 Dec 2016 15:30:58 EST Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=xilinx.com; X-IncomingTopHeaderMarker: OriginalChecksum:;UpperCasedChecksum:;SizeAsReceived:1566;Count:16 From: Manish Narani To: , , , CC: , , , Subject: [RFC PATCH] usb: host: xhci: plat: add support for otg_set_host() call Date: Thu, 15 Dec 2016 00:25:08 +0530 Message-ID: <1481741708-7946-1-git-send-email-mnarani@xilinx.com> X-Mailer: git-send-email 2.1.1 X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.0.0.1202-22760.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-IncomingHeaderCount: 16 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(39850400002)(39410400002)(39840400002)(39860400002)(39450400003)(2980300002)(438002)(189002)(199003)(6666003)(46386002)(5001770100001)(36386004)(52956003)(103686003)(4326007)(47776003)(106466001)(2906002)(42186005)(63266004)(107886002)(45336002)(2201001)(33646002)(48376002)(356003)(189998001)(38730400001)(50226002)(5660300001)(92566002)(50986999)(81166006)(81156014)(5003940100001)(626004)(8936002)(36756003)(90966002)(305945005)(50466002)(8676002)(4001430100002)(107986001);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR02MB2272;H:xsj-pvapsmtpgw01;FPR:;SPF:Pass;PTR:unknown-60-83.xilinx.com;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;CY1NAM02FT026;1:1AeMkLbmesW0IF1UzHMl7XhZsKdsSwogXhpOnzROINefBZ0je8tVdgj8eDVMf8UqPYVxl/h6rpn3hcChXbyV7bgt/JBxKd05Vg6U6AdS/sUszvDsWEJkud9io7XYOYnb0LGSw8MElEBSm/5U+jAmTVvv/5HafPWp8eZWM+1Q87VkIBGRXaMsvVIjQpwB7UWblACFYfR1WYJqHIvSjxiAnYeUE+Bfptb8BdAftD2k8AZU5zS4NmT9LbRVl8l4wJa/0QXOJ0lTwMnC8Y03DPS6EfjVoK1xUYr7nt7v1N2q3V22zp0Wo1QQ6Wa/7flNNdiIKyIIMOmct7pCVsk7eaBBehKpXlwFGLcOCmjC7ot2x8MWOvbMzqAqIfYtXKax3lNWdUlXFnzk5xi5pluLa2ReJJU3uvvjBkBpNQe31ticUP4w/OBEJ7UJ/JZnKHVe0XOXdb6f9D9qO217pLZQPj7ogEhJ7gQTlMNSSUtTEOAqKyctKKkM0+DWosLTcx7uO6rhSB/CSVlYEDzMXDI596ooOeNPzHhsbP9k5lD4kFvNcEM36T4FbePgnUwt0JOUBuGYzOVKHDUwdddbjRcBn4PqfPrNQRhLx+tx5t8KlvQ/ff+hyjipVeGVhA7pgNDiCzVOA5KkPMnhmRiqlfVZcYHb9A== MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 77a31298-43e9-4734-b43b-08d42452c64d X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(8251501002);SRVR:MWHPR02MB2272; X-Microsoft-Exchange-Diagnostics: 1;MWHPR02MB2272;3:gmkNXigpWGs6QoKCkH3ORSuIMQXCZrofAAqJ6EHf7Te3ZTTv8maHO9eY43ivwcoU5Hj8Oj5mUuzfuI1mXcnlD6offxt73Ww8pG7pTLoe/x4IuQIWX/kGDUjn4/W9uDUS7D+zFcuVbDpjnR289q5gT6jvrXTlPGrY9WoW6npQ4aUlikLUxg5hLQemfCJcM6hIraBPqbgpKomprLq4bjwAGESxdiIH/cOeh5LetTAWUtUiqXelkZdQII3TSmYw/5ZFTSVw9JCospM2g2WWf93HeTumAhBDYZAe/oEJalZL8IaR1AO/H2jtGzocXHVdHs1vlaeNane1lW/Ya9Hmb9V0YD83enbztGQ2XG1RraTidDhE+v7YEa7Qot4spE1K6K3R5Zlj9vUjMlw9/aNeuYq0ig==;25:1uoZKd/fAS2quJetoY8eHdB01sEKtUWYBeunVnIP9LcdbbUBKveUWllgOzm/DoxUrIwjo7PejObJePMyy5YYkVAzs+bnkbrbYj+N1mxaHmfxj76NKbf24MuJXGDe4Zx3xEXqvuj7eZwQvR51LYHlKaxappahNUePnes3bpcV5d/uAfp771uGhP84rfdDD3Etw55/nNSq6BphZBVPycKOHB8muEs3D7Frhu/wfdPmiboBsEXKqwqIuYAIqNPThAMTE21NeT0xxunYcoY3wkj8eL4KcR2RgiEqRT0P+7BEAh6slozFprBIBErf+QSEND5JS8tVLjf9f7c7Z/hRnFRGM1QAiJlljvUEWiR/JGCp/xXTGcyxC5LeBPJHQ5BgBVhiIb4ootsDZulqID9zsp+pNUOLrwrh5ZgfQ8S6lNEioLUJ4jN+Fr7JNO7E2O0dB/UIoI+wcKzEVJeIaJok0hJdyw== X-Microsoft-Exchange-Diagnostics: 1;MWHPR02MB2272;31:ubNv9jr2hZ4CYCqInM+WoVRJuyqV/eUHm+KuwxQmIiRveidFs/h04nLOnnbK9prsZip/Y5YWQ+K4mrgoCvOR0PnDyACKGv6mRMISiZYZ4TE4ewOt/3hRkMZXBfKToa8q/nWoO7N8oMA4JUCTBE9xxqTBlYksA1Hv8LCQxny3GrDg3l2QxPdb+QIH6T7B231cT8OuoDXOHCwaJMzt4BPPjT4Va3pdBsrKRMKM0rd6nP/a0AsZ1tzpj39qI9Ov4ZI/yvGrgpHvmkD5YWyIxkfPHg==;20:uQwOhlrjRe0VwJVgefAGtILyNcOneRxnWQv4c70hj98yJR9Yhvu/zAounqU9CU2a4L2RwjIy8HpwJDz/0rEAQtYHPXrJEv7As0cuLFUbeETRcaw7mk/Ns7B63ax+g/1FKzwyP/uHZaGB8nAmdLDNWOuHn68UNlerNhcHxQlwid5FoqFcdmxPOgdgyG59Davc1a7Iui1zhQAhviIDlH0tJFpEM1bhbnwUnQB+f9U37vv+XknttfKredDZhUm3S5Zzy+KQaRppmTX7sNTgGgsomqd1Ghicw7bMkSLr7mecGdb1QB5Knty/B+ufDTlZnC2VcV75kcsXtN65dEMD9QUE3rFoVJOqldR5uUQho45EUoDArb9cczI45yIsN6jte7E1Jky5F9Fokm/xk83GHhz/4mi9QgoibQu3fYuZxW0efdamayPzfmkXGT63bV6OnOMdq8TnHlOEbEP7EXW9CadOP3Y73y8oa65ZfJ0IAPKtjk8WfQr/C5c2maN4YylW3fMS X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(13017025)(13018025)(13015025)(13024025)(13023025)(3002001)(10201501046)(6055026)(6041248)(20161123560025)(20161123555025)(20161123564025)(20161123562025)(6072148);SRVR:MWHPR02MB2272;BCL:0;PCL:0;RULEID:;SRVR:MWHPR02MB2272; X-Microsoft-Exchange-Diagnostics: 1;MWHPR02MB2272;4:wxNQ38tZsIaKDf697hJhrsDpRRYRDAEmYLKAVEWb4ooPWxf5e+WDjI9CsXufTN0nyOhMkj9RREUsCQnMCeDJ2JrCFEHGiDdQ6DJeSOM6vkM2KZzpravgyMvqtQMIQ3YBAZ8rGrBZpvI4VYgCqsko1ryr3vKNMOb9vkahXbyzzAo/HMwBDALu90CTkuC6OAk6PHTqg86dJG1mORl26qEwMJnE5FznFxJC+DYqw6MAcAhzsyhef6kc6+4gYF+y77f19dh0cnXAhMB2KGHY9gz2LHaH7ltisJJPk+NDQlWt9G9KxuZiLt7BWpjuMjQT6AilEx4w6JKf3r70LHDKdnArbd67uC2z80CJ+f5aeZ/BXhuuEtIiqpT+YKStoKogdl77NmfEZPvKpEs4jd2sGkPeVv4Us3BAI/vRyIHccMACVlvXOjYBEdOsa2lG6EFvldmhvmnbUvLoy7NL9S/Ft9DvABzBSMOHeaO6uFvvYunWI3uVdOdY/UCHuxVNRcZ/hSItVI5l2w0VK2xa/8KfLttzmPl/onfmpbjoRimRIiRfh5m08EKleMAqkx/KeAEA+nSd004W8gww/v+gS2C8S8q1ywZNqHg5jCBKUes6+sMup3fdmkGPzRPFHVHcASoAlVxEL+icHP3T5DyQ4L6OlXhoBENkdLyjgyz0k3fVaJHmb3qL/wk/+plzHsbD/Iw8Lh3OJsKPPKC1+8kmpzuRNwsTeEeYbWhure27S383HahCMpA= X-Forefront-PRVS: 01565FED4C X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;MWHPR02MB2272;23:hsgOIrJ9qKPEfF8cF1qC0bBYpZfHFtWwfQdZuMnjs?= =?us-ascii?Q?kJwPGYgpR+1zhfj4/o1X77LJV+XOFcrIpD0C6/ZXW43KNHdcHhrt/aZI+KR+?= =?us-ascii?Q?WV7j3rqUR+dAlAwwxMeEby8WuMX3ICLHzGysc/xdz937NckJwkAIjEnP/9/n?= =?us-ascii?Q?PFpdPRPAXOw5InjXb9ZSi1cE8lQC1mSnqP3fUbS5+h2DkbteffcD6kNQxEvS?= =?us-ascii?Q?56TcacJ/psgHjIKNBM4zHJz86LGWR9aLydyOqkQzHpQ+uoaI1gu2mWttKZlF?= =?us-ascii?Q?ksFr3dLpoqaqXTGDBNFspiMpZje4JJGmC8sOsqJl1Qn0+92lhaLovq2nGpzn?= =?us-ascii?Q?3yCwFgvjzY6uQzYPo6zrmeks4VAbzzPWbmTpj86RFLO2w9TRNs/T+uhHxcW9?= =?us-ascii?Q?LGWBLs3kpQFmljYJ+tec9fjbjfFogC/FN7cAvCp3xvi6mOzcftGLUSdNZ4Hn?= =?us-ascii?Q?+zo2rYSw/SlYulo/wlqXJRn5NqeaQM2I1KY+ywnIT2yzRVSvOV17PPo2I3vw?= =?us-ascii?Q?4ZjGI3/fdTTo8HFjfbtjB64s+vzAN/TNcy/cfZgLOi45u0HGdbLkx0jsi9VT?= =?us-ascii?Q?vnTF3RW8SJwKrjt1y86mHUVUhqCtxeiFR1lHWzrY4G29jOSPjjF2hZfppUmC?= =?us-ascii?Q?JV21rAYm0TycWYIdJOzSiIsdJnkzTiG/9Et/odd0Mg319D8/dOxLtdORK785?= =?us-ascii?Q?/1wkiqtAPBuWC+mJBXuNCnMinAqdX8X69o/FIRRjizGfB7fXtxXzqQEHfK5F?= =?us-ascii?Q?la+5epuFUzZhWRifly/N9i9O9dtvVD2JszoyW0AiLpl75pDLHk8hB6w64ZtT?= =?us-ascii?Q?5jAUKRumU+F8nmtl1TVlMTCUBh9H6O8JQzbUsdxDHd2T0W5aRoycxsKXJp9H?= =?us-ascii?Q?g76yxq6Jb1j1nNSAlvGH1te4ZGzyipg2IaXt7ZKQYWvwT0WiY6QT2sxSb7xb?= =?us-ascii?Q?PLbuzw3EOvs10HSmCEsGPQI63crDFyuKI1p0DaNOy9q8Tdg7ac6h3Wqyy99l?= =?us-ascii?Q?sXaid22bNyYHshIZApFuONYCCVMk1I3HKEagMnxurWpFRQ5ci9LLTEIoDMR7?= =?us-ascii?Q?Cz8LY7gzl7reaP1ZCb4Ge+iXPmh4rUNbc2rutS8x9HqzOtd6X14qi14DQQq6?= =?us-ascii?Q?HGAHgz92mLyZ2bNlMTo/j8U315d3f2J6zv8kGkATWVXrtPzjnC0AK2on9RG6?= =?us-ascii?Q?igtNYCCQl/qrrU=3D?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR02MB2272;6:VX+LI4RvdWtrUwgjg6s5A+j4yPAxpWAqxZkVBx2qff2thZr/3PTlVast95ESlj71uzBqgaeFaax6/TaeEkpwksNy+k0XHEYbODHkien8PCT0uZeY6XPSQQREaJZWmoM/FCoNGPg1XwQOLAdglRUJXzbVqmw0Zpc96/gorq9XbGRYNUxlnxwroC+d59IZ5vRogTHVqDpmIlAfFlRR4iZxV5FEkcNsjW9OwnR7pcdyR/j0qJ2woF04mKirrCgiK6MUOIXCOdhSay8hr8XQCY4SDnMXUuM+FDpqUjF7+RFGM+ME7rJxHNTbKDuIKpYEGXqv4wraaziILOvYgU7lg9l5h8NvkpHNW8rzwsWRHg/LVmC2jxsfBxm2BeiQTFoF8vKz9EWxm02OtCqLby14fUWeNU4wtKS8M8LA0JZtdKMUBN4+lIywHZXESyZE2FKUVC63TenU08pKJ5Nn0E5z+kqLeQ==;5:3LeT9DrzyZBK03VqPtnYbRjkIUt6COPA9Z4bbW9lLioi/QOos4pFanUYCJCsyjV/tCcjFSTj42evvh11UNZx2AVTvYjSee4M+EVVZ1yBG29Fu059E/x9hZX8QEtw/kDoB0BjiTsaTimnvF8wvESEfc2dO4kKoXFupqpsGOFx51I=;24:oSSggFC1zd2No/ioRrXC2ySUPxod6eWpxEaKLqJaIad5QFvGM72t3HYsiqzcorDu/ZfnBoBUrjmqsfzTH+fIm5QHvzYBJHF7PQ2LULRWyO0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR02MB2272;7:vLLnqWI8ba+J63poSvTKuHbMwmHmpN4EItglXKaYEWCowJSiCPtGBWpijKnGD+jYalNw2vzRGuoGQEGiw4VW//AYVHtO2W2OMN0FiV4EZKNGcycyyntp3L6Z8KXy+9pB2iEqknfEEU+eUUHtVdqePX9xz//j/2GTcoqZ3M9EPJJiPtQpALrkaVkI0SRGiZxmGvIy8MNflD++fSkoFoCdEHU+Ui1ZNQFElwzWJOKG71loJRhZgUQ+n0ojiZ1CFlEAG4Vdq/rlyMNqHWWjF+Ipqchs7hxpPBHPCzqtIHp/yij86diUgFH66YhYFWx9rCDDCDhB0XOyKK9YxADFIv6xPHp9NwHAym0OD1crjmOGUk1veAGwy3ZaxNOedXnNz4kVfmk5CKfw1WZ4ixZN5lN8V1swf5UQZtp6Fmv/qaLsv4RIu9Hz1MbO3gJzCdBKDDpgslu2HriroWc8vhxlestcxA== X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2016 18:55:29.6169 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.83];Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR02MB2272 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch will add support for OTG host initialization. This will help OTG drivers to populate their host subsystem. Signed-off-by: Manish Narani --- drivers/usb/host/xhci-plat.c | 35 +++++++++++++++++++++++++++++++++++ 1 files changed, 35 insertions(+), 0 deletions(-) diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c index ddfab30..b4cadbd 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -20,6 +20,10 @@ #include #include +#ifdef CONFIG_USB_OTG +#include +#endif + #include "xhci.h" #include "xhci-plat.h" #include "xhci-mvebu.h" @@ -255,6 +259,24 @@ static int xhci_plat_probe(struct platform_device *pdev) if (ret) goto dealloc_usb2_hcd; +#ifdef CONFIG_USB_OTG + hcd->usb_phy = usb_get_phy(USB_PHY_TYPE_USB3); + if (!IS_ERR_OR_NULL(hcd->usb_phy) && hcd->usb_phy->otg) { + dev_dbg(&pdev->dev, "%s otg support available\n", __func__); + ret = otg_set_host(hcd->usb_phy->otg, &hcd->self); + if (ret) { + dev_err(&pdev->dev, "%s otg_set_host failed\n", + __func__); + usb_put_phy(hcd->usb_phy); + hcd->usb_phy = NULL; + goto dealloc_usb2_hcd; + } + } else { + usb_put_phy(hcd->usb_phy); + hcd->usb_phy = NULL; + } +#endif + return 0; @@ -283,6 +305,19 @@ static int xhci_plat_remove(struct platform_device *dev) struct xhci_hcd *xhci = hcd_to_xhci(hcd); struct clk *clk = xhci->clk; +#ifdef CONFIG_USB_OTG + if (hcd->usb_phy) { + if (!IS_ERR(hcd->usb_phy)) { + if (hcd->usb_phy->otg) + otg_set_host(hcd->usb_phy->otg, NULL); + usb_put_phy(hcd->usb_phy); + } + hcd->usb_phy = NULL; + if (xhci->shared_hcd) + xhci->shared_hcd->usb_phy = NULL; + } +#endif + usb_remove_hcd(xhci->shared_hcd); usb_phy_shutdown(hcd->usb_phy); -- 1.7.1