From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757530AbcLOHy3 (ORCPT ); Thu, 15 Dec 2016 02:54:29 -0500 Received: from mail-by2nam01on0080.outbound.protection.outlook.com ([104.47.34.80]:52884 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755606AbcLOHyZ (ORCPT ); Thu, 15 Dec 2016 02:54:25 -0500 X-Greylist: delayed 45714 seconds by postgrey-1.27 at vger.kernel.org; Thu, 15 Dec 2016 02:54:25 EST Authentication-Results: spf=pass (sender IP is 149.199.60.100) 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:1577;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 13:23:33 +0530 Message-ID: <1481788413-27496-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.100;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(39840400002)(39450400003)(39850400002)(39410400002)(39860400002)(2980300002)(438002)(199003)(189002)(46386002)(106466001)(45336002)(2201001)(626004)(33646002)(5660300001)(50466002)(81156014)(8676002)(36756003)(81166006)(48376002)(92566002)(42186005)(50226002)(103686003)(63266004)(8936002)(305945005)(50986999)(90966002)(4001430100002)(107886002)(5001770100001)(4326007)(52956003)(189998001)(36386004)(2906002)(38730400001)(6666003)(47776003)(5003940100001)(356003)(107986001)(5001870100001);DIR:OUT;SFP:1101;SCL:1;SRVR:DM2PR0201MB0896;H:xsj-pvapsmtpgw02;FPR:;SPF:Pass;PTR:unknown-60-100.xilinx.com,xapps1.xilinx.com;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;CY1NAM02FT034;1:CGHcIhGAgA+N2X6MLhlqOvudCbdRVtRnxsTBBZ4AiFuU39serKbSYrY2/4boaTmoAFIF2k7lpiBoWjuz3OBJ49KBNbt+CZjGZcOnyZdSjkXKpUnY8laX3pfubmfxw1JyMxnQ9GSB6iZZdWK3gj6i0SqJtcXAJ9Op2uUhm2akpzLMIT3nue+d17xhTR30ZzuPEkhMwtPNv1ZlgoNPfGC3jpYUMuJOCYia8iPMFCk+qWx73uNqGxvRLC00uJAdOoqWcF4QsO/Dr9k+0PsgyOKij8TXnVhCEmhulJLASuG/kL5Wx8H3YF0AnexbqG2oaVV2cdC8mMyAUN0bfeW6qUHqqAbrt0c26pd9akMldIDBkDWb1oriHWoaoHKDDdK+ZaOR5s6LzsZ/2yg/djJ+M92VWPpvJX4CBPuJvNZSVUgTI4erpxCHEXRK1br39u/oUa5HEyIxzuf3fkZTi7T2UF3JBS4DHSwNxOkc2sxG5cf6SU0/EDLMC50tcXeYsLC/Yf+Qx96lJhdOAXwC7XwwN8rVCY4V/tn08Y2RjhoeBycEwMyhU3SPHJ5fv2HgYkXX5/QOLJ32VCQnKugvRdEP23FQ6ztmpAOLKckDVkAiw3aHLCT17H4H6JgVqstXlx6TMpYUQzhud2Rz5xUdq3kq9Y8Q8w== MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: d4457d27-966e-4be6-434e-08d424bf7cd2 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(8251501002);SRVR:DM2PR0201MB0896; X-Microsoft-Exchange-Diagnostics: 1;DM2PR0201MB0896;3:0ZgXDpVZP2vExke3zXQc9I28ZQaj98IngPjP2xXvoFwlzm0OuqlzjGVXlP4INHVf6Cft8Fgwi2QZ1GyYM4ewhYv27sA72YSWCgEId1OboFXRy/uFqf5rMzYfphjTtYgTPb8THrAX9OOqtIrU33YLuaLSr2ZooK7ef5AcGjPEgGQvU5QV890LmEDdGptkYOFkGFUfOWjPV7zHvL2Y5KVxb135N7I7NCWPpLnmU6KyS7wr0PRdaLCsl9RLUCqweG2qERmo+joxemLJLdAeeA+7gyUdUtQrbcLxBSDV2YXI2GgAxZHwdlkoxc+3Z3RshS5dMihNFrgWHnGQiYSpApSVc2Td4JM8jQu5YCrOoK4bIcm5Dl0QLCFkBZiyD3xvrHLXkQgnfcrWe4FfvNXo8p17xQ==;25:wrKBuRHNx2fhan7LxBfPGedlgRy7UJVow4mGgorRRd6S2SbNhdlMg15HH6+3tRKT8Bg7IlSxpOfudPYvVTZ38DSQ+8g8457mpEN7/41R5KVOPYG8k65FERm65cwC6bR8lgnic+cf6DMujrzG2MNHRPsBbmBJ0qT4DSFB0jeEbcKRajZYO5Jk1ujnxDqWzqu3ieTtDNFmmG5CRq4+WtotuvC9AvOsDJmnzXTTGJ7ja4bdxHLXEX5MAkAmgEFvtVrtZsC9TspHILtfN25N6LKqWtFnG6MC6auyq71ZsVBs+f8LK2Mb49aMsDwGvx24QFZpNoFtIaiT+xlxzNc0tRcs+8VRaKNSTjd8G4uuZm5cPpQzi6GlXucjS58o47X/m1LC8QJoBHXG4o06PNcZdfpZmTuif8ea25DkT1mij4gs66mOXLtAleBbjptHf73Yz0/JUbJe4h8KtoHdHmPyZNxbxQ== X-Microsoft-Exchange-Diagnostics: 1;DM2PR0201MB0896;31:VZSfiXay6PHcBBFrrLWf3GP+rnAmP1VIsmHtyqw0UdiVqxikgT6zgx0GhAQSB1njgOyptfJK7IKnV+3EHK/icx7mqEjNXBsgT7N6iW4pPtoegSddgVmERefsbAJtLSShqUnfsQrFkggH6gByIsa2rYP5J1ccLCzVgOGuDdw7VYNCvCVzv85dfcFRYtvzc+S3rnodh4S2G/s3AVlTtz5AtMoIjeBsBsNEpRaivHsfvCwti0gTkBvhuQAzt42wzjTKMOZQ3KLU3fhcubPETI1Mg/cOUWePXq1eogWMlKCnGao=;20:kARkZA9B/lpjyJSSjkg31Isem64VnKZOIi1ivzdugDWBwnmzSfRfx2LpCuWeC7SMnoFztIadzIFW3i2HIcR2WTBP8EMwrnIEsDjiEH6Qj7TmGwTXGlTRV0iWajnNracDw2RjJUSc7/ica9D6USykt/6odeLA4dKRV8nhUkj+zT2l053oc6LoAQRzG0Hb9XSps8jU5ywVgIhE9+XCRsqy7SfiSVW7IFdHp/k+TFotfxwE5fR6x93d/B+0SciS0PUFK0w1rv6byCDzNPxeXYs8cfWWveEEnD0turhn0EK54siUrOG/v/Gya5w16LwT/wuJAjtQj3szoFC0jgO5YoIuHAdHMXA8Jun78CzmEMxpoFUr/QnLp2lUvVQehrDks3vcp7bZVhzkgJdgu5/LnjPdDDY7GNzwBqi2+1Zv2Q+DOiaa/99pqh5wG+zjMbUfHKdkKhtuFW/X2TQEcnaSoZtxnliUrmjmo5lhIp447Q6+wcVeZOIv7qB8FtvPxaXkDzIJ 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)(13023025)(13018025)(13017025)(13024025)(8121501046)(5005006)(13015025)(10201501046)(3002001)(6055026)(6041248)(20161123558021)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(6072148);SRVR:DM2PR0201MB0896;BCL:0;PCL:0;RULEID:;SRVR:DM2PR0201MB0896; X-Microsoft-Exchange-Diagnostics: 1;DM2PR0201MB0896;4:kiIgXbnpvzd/Q2FQp0s0Mycq+CLULD8a422bs84RiqqQKZgJIIO6bmyjKlbKn62ty2sMS7gVsjLBxqF9pjkEFcjiy5D6Qcop6iphHDKv/rFvsq6f2o0DSyNgFRUQIwmSjmZi4Yvq3fzs864iSmPU1hcYTXB0NqfAh7SyCyhz6MqfgWNODjWgzsbv1EDnuCHyPAEaBwTkXS0KjcKmSE/5EdhLJsrOg1Z0HtXTddzGmefYot9m1yp7yt0sFq0CtWu0TAtUmlC0lhSgOEVIuPj1ZR7agG8lB4IGTAISDSWYBiw3yYJcBldgYYqKB9uq+LPIDREbZgsBsTKJPwKI5R9OVb7HsCxD+rzjjqLBSa6lHsaOj0RZ+M1PL0eUSE5R/m77oDSzfsk2At1Vp50ejqM/yedpD1EAo9OLU5YovSoCwcrqvflaak6xOjmXBSQEg6d/u50sAlHFE+E10OKrEA3lnIlPf0DpDUqq0g6gDfaje+pVpUMNczcBz8T3EU4nc/SDLcp4lcpzkVtIGjkfxqvir42YvAEcb4u2YSis68mBXfOvtN0y8ubRGHwzqW1e1k3ohj7E2WItUvlySTs3Q/8nzqZ2OMMn0Hz5M+hVvH28xMoRmJO3a9E4b7TV0WZsK+jwdFzeyDlZ/MWYldsP8ydihDfXeF48FAxUPfWjw/JBmX3DGCBfdSQDwezIRxaXYcdC4hXTyWDj0njdIUc4tjC5kSHFBnbEbSY4y6Ap7Bxr8u47eU37913G0fT0/bIBFRhJMXhqNNI7MuQaxS58D48qow== X-Forefront-PRVS: 0157DEB61B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR0201MB0896;23:VbvRInckzuihNN468D5OYHlTvvpMckbTwN/55b9?= =?us-ascii?Q?XwxB4bV63d2tzuoHvLIFcpwcfh1GmtuR0iqt5pzoDqPz1PnfAGCzlBCF18h8?= =?us-ascii?Q?b3zNHZ+8ihfax+4bC5xm6wgu6D+gTGIOXISEFKQHHBsaae2BMFsndUfec3nq?= =?us-ascii?Q?hOPb8ItD9MX+b5m5QETc74VRbDvzDmJXiB4SZvhBrwsEVkXNu2fdLslNv3w4?= =?us-ascii?Q?CwQkgytYxCRE/wRlu0X0MXjZC43Hg+FlU0mjN1Ed17qsYOt9T8oHyVH6q23H?= =?us-ascii?Q?aiumFjphKUqHeUocmvABf2q3PGtqrPuB1YMIec6P8btIiPDU89UapN9v3mUn?= =?us-ascii?Q?Hf79R/65fD6wuUU2KLtqhl+hsyEepFYmrgDTo13F7GyFq80qIp95/XAGFn+s?= =?us-ascii?Q?dmUwb6vuGpqiq17PZ+cH9g73Yz4XcFqkEt4zlvY6uBaUGq/JgkOHSlTFTC/u?= =?us-ascii?Q?IvPbmWtwpl/3uI+MlSgboG5XobNmcTLS/54/pCUkjQUhd7/jymV6uHtrz8/o?= =?us-ascii?Q?qrgATNN5vjvlr9pddY/6DzUFYu6mt4uhUl19dwhBl4KcxMPZ6A03ctjxGNb0?= =?us-ascii?Q?m/4zIoB5obSgWA9vWleEz31+HB7UiI09voXxC1C+ZGWbwl8duYA5tGXmmdQ2?= =?us-ascii?Q?4WsATkbAo0UDzIrZhye7WcigIEyeyJhwWroOdreS0erEAVnS/s8Rfw4L/3ij?= =?us-ascii?Q?Eidw6f7mbAk+EByuY++nVgXzj2MF93IGJXyoepsFOUOg+c+2hCWgCpQpPXyZ?= =?us-ascii?Q?F9EkK7a15h6zVdOG5MAzboglEitHMf2EKrWDrSQINTsHhDos2WYMU+jtUQOO?= =?us-ascii?Q?dP0Y5lYS5KdN7SnjyjbLsb4iUjDvlTyq9BI4fGmrepgAWm3PYmUxnBSMNtXC?= =?us-ascii?Q?rIycOguo0qov8y4DAkN5Kxvk4Dyos/uB8Txw3+Z/ajr0WzLXBYjYfeyhzmsf?= =?us-ascii?Q?tYLGRywW23q1XpVK1h2itq2TNf9HIuonkzb+TLAqIVAJcz51hLYbFe60xrBB?= =?us-ascii?Q?AMhAGGV/BeSSy2EPNH8KkDmTPmuwNZAegkDLoAiOm0VrXL7cwLDlOdhTApZ/?= =?us-ascii?Q?uR2EZT+EV1oV6dmkdtgogSYYhlPQY8uGQA3qkoywn5O5/1+xqe2z2wGYiqDe?= =?us-ascii?Q?5L4uTBIDhRYiKCXrTjcWit6th13ksMFJEpLBP8aYn+DYEj/SgJBkcLN3ys4J?= =?us-ascii?Q?7qqFem/veH9yWrnG+ylCfQTZtW6aZFAqjVxIe?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR0201MB0896;6:YeQG31zM4cSBRLGZklxVV45L5LQuwjdKb0gkHdWEARJP4L8TrjxAGuoONVEoM5+rq6VfxyqPajsUnXB7CI7eAPfgk9rUffsafW9afws3760Md+1TVDQeMsQl5QfqsK17d7oDum+LEL5WtkJJClkiV+KQO8A08IM1rqQPR16lov7PTe8HLx+4gWVhKuyw+vbwOQlUhZeW3AxHaWf/1gNNE2axwr8eQiVBEetC6S2+yV5yk9t6iEvMvJlJ37PdqRiMMvNLHsMHFD5DlsOXy4YyHD3CtctC+eVyi0j2rXDNwoTkhioHl0AroPohBocwrOtIlcQzANQ+WmK1iZcVMtyJPW0snNNtJtxPJC0vGT1TCgmeaBFgzTIBi7fU0faGFoBN0zTCFcohXT+WVivCHgzKfYBGHWKfY1MAkJATWreG+nM5IzYtSAODYqti1ylmGHtKJEhl9dHbU7wh0v7ZS62N5g==;5:2kai/m29nW8pTwCaZTR0YpsdTyxHxQ3aW44DoJa9oCjIEyNCKXwiawst67x7NybvnNJfwCEVo0dkUoifvcSR2TPR65LMERMAfF/vIE5Z+J07134Aozoqf7op+oRPlE0KpBuhgy3whgZJaroTP1wUZw==;24:JHqzlAko6WPyJjoenuRP42KVHhIkkSJrsmVIlj5zCOw3kxXq4RrVmotydjlB5rSUlHl26OYy7/VTq/t3uN1vW6/KSccEXcufg+2zpfpP3Gs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM2PR0201MB0896;7:YeJjJdHLNvT5WD5hW7TBCZnfoibI2Bt172hmGzkrBqH0V3gdSuKjNRLzOV71i91KZZMWzkRNWTbvuiOiYouI7Trhf59qqiTWTuK03pbFR8Fn1bC16FaTb9/M4l/Eq5oC+gYVBOCuJcCVSIO8nIZic+4iVSYHPctICBYK+xQnCXnFbJfAv51P7mr0PNy220TRcv0prbowvIO0LFSmXbIXrYqu9yCl2KPB1Oz0byi+J9nYphv2dYLjbul3P1DQgOl0xxWzWQOsqfDNPN3DBCQ13IKDmXlTizmGpq1kNOdVAFQV9CKnszIsrXyTKyfqBx2sNb8CYvSA9TSHm2oxJv7ELdPXUWD8Eec3XQdjCS77LMKSz7PqOHQoWgLvo2j1/nDFxdfTrCpDZpeP7HwHoRs2bBpCD2C0Jnc6+tQ58PoDOjcxsuEj6ViyXBEddu0JhQrhCFkb0ZI1guow2IjYbn0DDg== X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2016 07:53:41.4934 (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.100];Helo=[xsj-pvapsmtpgw02] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0201MB0896 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 | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c index ddfab30..aa08bdd 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -19,6 +19,7 @@ #include #include #include +#include #include "xhci.h" #include "xhci-plat.h" @@ -144,6 +145,37 @@ static const struct of_device_id usb_xhci_of_match[] = { MODULE_DEVICE_TABLE(of, usb_xhci_of_match); #endif +static int usb_otg_set_host(struct device *dev, struct usb_hcd *hcd, bool yes) +{ + int ret = 0; + + hcd->usb_phy = usb_get_phy(USB_PHY_TYPE_USB3); + if (!IS_ERR_OR_NULL(hcd->usb_phy) && hcd->usb_phy->otg) { + dev_dbg(dev, "%s otg support available\n", __func__); + if (yes) { + if (otg_set_host(hcd->usb_phy->otg, &hcd->self)) { + dev_err(dev, "%s otg_set_host failed\n", + __func__); + usb_put_phy(hcd->usb_phy); + goto disable_phy; + } + } else { + ret = otg_set_host(hcd->usb_phy->otg, NULL); + usb_put_phy(hcd->usb_phy); + goto disable_phy; + } + + } else + goto disable_phy; + + return 0; + +disable_phy: + hcd->usb_phy = NULL; + + return ret; +} + static int xhci_plat_probe(struct platform_device *pdev) { const struct of_device_id *match; @@ -255,6 +287,11 @@ static int xhci_plat_probe(struct platform_device *pdev) if (ret) goto dealloc_usb2_hcd; + ret = usb_otg_set_host(&pdev->dev, hcd, 1); + if (ret) + goto dealloc_usb2_hcd; + + return 0; @@ -283,6 +320,8 @@ static int xhci_plat_remove(struct platform_device *dev) struct xhci_hcd *xhci = hcd_to_xhci(hcd); struct clk *clk = xhci->clk; + usb_otg_set_host(&dev->dev, hcd, 0); + usb_remove_hcd(xhci->shared_hcd); usb_phy_shutdown(hcd->usb_phy); -- 2.1.1