From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030302AbdADNYT (ORCPT ); Wed, 4 Jan 2017 08:24:19 -0500 Received: from mail-bn3nam01on0051.outbound.protection.outlook.com ([104.47.33.51]:21856 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S967698AbdADNX5 (ORCPT ); Wed, 4 Jan 2017 08:23:57 -0500 Authentication-Results: spf=pass (sender IP is 149.199.60.100) smtp.mailfrom=xilinx.com; apm.com; dkim=none (message not signed) header.d=none;apm.com; dmarc=bestguesspass action=none header.from=xilinx.com; From: Manish Narani To: , , , , , , , , , , , , , , , , , , CC: , Subject: [RFC PATCH] usb: host: xhci: plat: add support for otg_set_host() call Date: Wed, 4 Jan 2017 18:53:01 +0530 Message-ID: <1483536181-22356-7-git-send-email-mnarani@xilinx.com> X-Mailer: git-send-email 2.1.1 In-Reply-To: <1483536181-22356-1-git-send-email-mnarani@xilinx.com> References: <1483536181-22356-1-git-send-email-mnarani@xilinx.com> X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.0.0.1202-22802.006 X-TM-AS-User-Approved-Sender: Yes;Yes 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)(979002)(6009001)(7916002)(39410400002)(39860400002)(39840400002)(39850400002)(39450400003)(2980300002)(438002)(189002)(199003)(103686003)(42186005)(92566002)(2950100002)(107886002)(50226002)(8936002)(36756003)(2906002)(52956003)(6666003)(5001770100001)(47776003)(54906002)(90966002)(2201001)(5003940100001)(4326007)(4001430100002)(626004)(48376002)(356003)(46386002)(189998001)(33646002)(5660300001)(45336002)(106466001)(50986999)(38730400001)(76176999)(50466002)(36386004)(63266004)(81166006)(7416002)(81156014)(8676002)(305945005)(107986001)(921003)(2101003)(5001870100001)(83996005)(1121003)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR02MB193;H:xsj-pvapsmtpgw02;FPR:;SPF:Pass;PTR:xapps1.xilinx.com,unknown-60-100.xilinx.com;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;SN1NAM02FT015;1:S07DrDDmqGcgCYRBEZdXVK9keXldFLAGvFoxt1joFOwNniviMblzU6dvZJwmXzeFO9CtmjeQeFjj3tBJJZ5X68d53DQP0SjfLsvvFl0urUFOX+mJUfSa1oHB8UUw6FgPbOMasptd39Ohyg+6kf92oGfhk00/Sko5MXyQjpzvStg9aLcUioylpqIPJqoverpeMKlzjmyM68SclBEnTtzkermiIWjhHTqLOz8AzIdanNHN4sLnDtpg8m6wa6D3AdET82iU1jegPIM6gsO2UqqqGncLFDZ79WAwVvNungy6aNZ1/TFmRIH/HjWmbJfVmtq/TUb+6buPU/7sTk6RApkaTAsW7UPqCZHr684KsPx7wsvWhkrUOLJ0w3eEUnpIXFf/EWAMmwRBdpmjD4Kn8ysb2JCn6UXsckQWamRV2V7UZiKLWa18YdUVecvVF9VTNgTbgLNjFtmN1rGJ8cDXzGxDB9/uasdYLZlENSV8PH+k3+K+t489nAPmbkhspVEJ3Du0DJLkFdcO3gdzpNVg1wW2iU9LGruPvop+/CNMF2zDp2sgWOgWBlCpIhCFRGDBeyLrdyINAbgM4vVC+k+Y2g3dXBV4Mj7qEg3BnUkc/ST0nmp1TrYgDva7pMfXTh196UKHmBaBFuz4Up3hbd15k+7wAw== MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 7a061116-b814-4338-b74a-08d434a4d87e X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(8251501002);SRVR:BLUPR02MB193; X-Microsoft-Exchange-Diagnostics: 1;BLUPR02MB193;3:E6GiIX1UYScV2fI2srcX0OX+PyU7YMIF6NS2jCFDb7cRdzuSVYFPCPXBnX3eHXb5QWAq80vfEbk6nGV0obyxTjMFM4e+rQUSPIQV8sTCxt4fJ9HzaOsUoldjQyYO+ZdkBHrbZPo8Rd5zq20GkLUHDcaCaHjJMEEykWMjy8622hO+zty4JP74UANzD6TvUqD6MHTLLOqGAleycGsana2IGY7Gd6Mzmhv2gMaxfQzJvpnPCRlUGTRsBJ+TESUP3D+7wBsRiFPHLkYNmumPg/zbFq7lky6jnMKZCWkVAqJtWHztWmnQdtbqQdYs+27DQKJURd+DJhImjDbahmT/thbPAr1q9znGeQBsnntNRNBPgz7GNDxJSXdWLJHfWNuWdbs+V7yfCdVpFH1A1gjogDMUEQ==;25:X8hGiDXRvdFU2WOZEL/ayDmIB9/kSkNMLwp2WX4s9iOvfhNnpunZtYMDwfMcRDVw/ZU2XZsG/O/LaqGZE1GYd68dnnJKcOsqtS+9As2rJjey9q3I+Tu4Uu9Kvo1/ylSLcnPEUQi16VoFD5je6mOkZ1x9gx6ouzue+hP+b5fx3/uLuTNyWDEkeP4xymYxkeW3xQFVNAfAZh45rkfTgEzLjGTCHDvZFn+Qt8jzEbG0bjn412qwXq3IypsRg3AZsAX+MCsRm4OjXUZsiFiC99ySJvv3/MK1h1V2Uftc3VKtfWWqNkZzIRwM+RUKCvg6/40pkxwu9zE4MbhA7BhCHMxbgsNqWx+ceyHCQ0f7dhQbjVkFN4eg1p7nfmlSXjrWdHJJVNffX0mA+Okyjig/JDWrP2iTIZPSE3YVHYbkWgzN9E+Y+aTK9awOWigWuASb8IPbOwqRk3CGedpREuUgWNV72g== X-Microsoft-Exchange-Diagnostics: 1;BLUPR02MB193;31:lSgLWIDVFXczDaCCIzHYXLdAGVXGibS/83bxL7OylvQsElCCeoQzseaVDpgUlG7NBiHmyP8Hfr3WTMeGD7YxqrlgbEe8zlUjGq+o6yxrO3bkPMh6Wg7Xscqn9zTaWq4KlTZkBdbJu82Os3tRzZxeUbZ3C2AqG91PmFMcKFzWn6I+p4GAWzJwyuKRDP59iNtOtLHH8chC+f5SShcrgkkuaB6ZBIR01C1qOBUctDLNYVMo1g6OVMlmiWnpjvZIGv35OnEhGfJ5FMEDkCWtTk1HxWl5Oki4O958ba1igoczLog=;20:elVXx7w3k+jHMk9iIHV3gHUAfeaOdz6usnvyt5DkK4VDwCTjGp8IkXx1O/1SMDDblQTFur+hPYZk76t5Uq/h+AUflUZoFgm5lSk4Dnsf6NpZbgvm69it0OlWRWiEwQ3313bPVDHe9RUz7pGE3WaTNom9Yoxko/mAlyHd7Pi+NvGHB68gFGAlurKxEktUZwc0dKeHTN0mOS4REJC3eDn2XKdH2kkgT84Vex6PF8KgfkGiYc/vrCLZr7xYbC+WQIYEeNcS15LIBWJxIqk8DEn9w1jjLKXsc+IdT4tTAEm39qtzbu7dnUpIAM/ElsDog7aOdErJFV0424j0cOjMqjXVL4SlUpiLeH6dlJBYelPhX76Mg3mpjVC53juGJ2cXitqtp3wX+YKeXDYRit7fpHM5WfHatRI+kwQeNPTF9mdLsrxY2Yf8ER7BV3/HoBdx37ONFN0x7H2xasa1Tr3kc2gduPq8Fcwjl+DUsHIWYQo4AOU1axEuMFOBcdjHe1jHMNFc 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)(13024025)(13023025)(13015025)(13017025)(13018025)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(6072148);SRVR:BLUPR02MB193;BCL:0;PCL:0;RULEID:;SRVR:BLUPR02MB193; X-Microsoft-Exchange-Diagnostics: 1;BLUPR02MB193;4:hA8T7MA04pDYNktTHr3xzzAEz3hkiNLtPlEHFkfCZyYQ6fXCf7PW4Hkwp9phTMXoL0i7J5w9WgTHeVD0N1+Yj1OjWqeOptjwBhqAa4mDqW4H+A9lebAa0Fow98Tcx/m31HSungU1SG/RKil5Y6SGxFHPvDHCv7oE+PceKl20uihhc0k/wpdPgSKGz23mWumwQxMarM6Y5EUcUVxKm4m6FLJB1hS/iiTW5HemDKG4Z2s4nPYFDEgYV+Nlqp3xxqWeKzpUQB42a6ogG8uYFg7JOLQ+Xs2TrpISklgIo7L96jONZuHf9aLaaqaUI1LvYEbkKIcdv2LLLvgpJSo95RlXTprP+zG8q4N1SKhCJzZgM6i0MPuJhIxrBuiYqilHA3LTp977ZwN8zhFbRvO0C26F8TGuxv0xYzX0p+gabFNq6+/YBgWiSS4i1pyVHJGALGMW/GqXiOP39dAQqB39J3lKiBpIvfWkxe6QWPZmbdKcjpgp+RKXc9YUFpTn2j/INdcQopq/6M/xdUOg/1jRF5VWxTogf3yZUt/IWcGbi54KtU73QZVSURBcia5cCXjeZlOOTmqu7VgFYZxIurbbmxBC7ZWj9cGOk7EwzoleyrIU0C+ronfx+Zu4ygcP+ZDnhC0+IhcHZbaebAbBY+kimMPk43PvUsqPVTDzu+x35RmPJ/Fxbf13mIoC27q0/XgKYaZ3euPgQEc+VeWWy/6iLuQCNnZ4pX8Ijx7YcEgM5DRIGDo= X-Forefront-PRVS: 0177904E6B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR02MB193;23:gFG3Lnk9NnomiPv7SZhxPa9CqG2/uhPd8w0tPSLqHy?= =?us-ascii?Q?8KQ/TkSa9ko/1zT4987SJj9dY8U5P1/x82OiUaO6vgpxCDiW4l6/YArQYOBG?= =?us-ascii?Q?IjS9bff1AweQ5TENq4TIZWnbQpuilLsDQReNFlG8gyOBskhuMBj7zV8nBnVn?= =?us-ascii?Q?s+dVWa8HH+M3SQo1dDcjL8/UXoaPDp5u7MevJR6eGEshJtrDTRIXr2WzT1l+?= =?us-ascii?Q?QrSdBiVNOoXCOiMq66p8P3hr4rBfB2MfbqkfYAJfgJNqs0bEL/DFFqJInYmP?= =?us-ascii?Q?LgaSCTWuhQxjVtJraaxCkac2xFgri09Q53H19/YQzGc9YQCq2F2rqJLbGeVW?= =?us-ascii?Q?fxKKep0NQH1uZ4GeObTWLEMuh2i+DGgyxl71bKOhConF29+Ue7ukOwVWSkaI?= =?us-ascii?Q?LnXzgIxscJmb5Hj4dn1dXDXIlA9lhTb+us1S8SKkLBy+d+dKvQA6HnjtK4AH?= =?us-ascii?Q?3pQWfBy9l15bJHMDRjIYzppcB/ufgU6wW3zARLwTAIkj+fYXj9+ZE6ULrcp6?= =?us-ascii?Q?nQfkEJF44z9CGvcBI+gLRLZso9bxU58lBGu0cF9zdwx7DmlwbuCz5e8uVXNu?= =?us-ascii?Q?kgkivxRX/OvGrv8pgmLKdP4hU4nYQv+CA5cVvPspVFwZdCHgEneTbkI2vnGh?= =?us-ascii?Q?/7vO5D7g1vok2j4nZFMghoXjGJw0AKIL+qmW0HjuAZ7z8er19X5oqeuBuEgA?= =?us-ascii?Q?BUpsI6ryBlGmnLaVsygF2R/4T7rpornC9CIiPr6dta6DknSBdQHOflgAT0Pc?= =?us-ascii?Q?QYg6xKNBsz7onQdnfgFpGxNKdcsrijpSRY9KlZLbRGdE3doZlmPPOzIDmR29?= =?us-ascii?Q?QZ5ko07c/19YVqsJjmKsWj8hofxyxWQcX6Yl1TLuQI6yJ7ehOGC7m5AmxzhY?= =?us-ascii?Q?1u7RSxbQjPyRgZbGg2qnibcCEZ1yiYzskPt4dpMago1vK/T3F4bwiowLIZ00?= =?us-ascii?Q?Rhao21o0CDq/e8Xa6B6JBoZM/liYI30k6y/vDTBd5EbEJ9RuIclmeS5LAOS1?= =?us-ascii?Q?7g+u5z4y+ejMzAXIL7Raq+hyaYLMC5Xseb8K/IinV3S+SnaVx5HVmy3jgZMY?= =?us-ascii?Q?XSR0TUQ6STcWihEgLS5ZSWCC+8Hltyt58OZwDJ7yrJdU+uN9tGP/4XjTYAbQ?= =?us-ascii?Q?07gKzU2aNTLo2vgF9S+sOJOCkPxhepGJDTjCbJT8XV1OT69d4kDWbnsQMXhI?= =?us-ascii?Q?9E5yEvPIAw19Hx3S+HYqg0zBQMytXKqEkjiCwUAfmaB1UWuT0cxMywFoNIH4?= =?us-ascii?Q?0HGozQQVimlvr/AIk/tM/9ntNwjZqUdJG3zWKDSqFaUnKzRWveaJf/2VHB1q?= =?us-ascii?Q?XSqhcRwb278UW3g5MyxUBIXPeDIdIv45oVi1lfIwz2ZuLa5jWr0PJwJ5BPkH?= =?us-ascii?Q?119ILHDzbsRordHmyEiB/uMspMI5+5FwFljBp1IOfuwUljPo+NQz6ptsA3RI?= =?us-ascii?Q?4NxgyswVrO0mX0Tzq8zeAtbLZqnNQMyrD8unKASjcgGgfr2/X0?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR02MB193;6:5KFZIp4VB05Tz7IJdwFuf46RbQ7GbEWzs/CihBeOctInq5cKRptVon63Bq0yJJeeymAPLES8sR+4GCxUFNb2ImQbdC6EHcj9E92Mu8/HUSN0o7k4badQswIka09PorLLwsbtuD050AQWq0vnqQAQadCzTGTIOgX8+DdBhMTWkRdHAl6s47TQAjnyKEtcsPVRhVevOgAwVrrH6ew51UZa+U+Lj8PJao3DMRSqG7ANcbCy+bbscq22/qehKRF+6Tc7o89GOPAtRxkWinjOXhK5CPaxhAGPx/jQXqgwRRoQjtYudvMlvziq5BF6iOGjuF0maV9/KE6UStQNY3dCHYW9TFf7t0kCxi7o5gai6BOmIi6oQAwu4pmrVu73hX+PdD2v0AdfFNF5CzP/o1cSfQ72pfjwBGwoOezf9GWqp74Sk76rs0XG/qiHtkAELp8g/TxcA3C5VtESMG9kjdyAvWqJxg==;5:IQvh1YTLVBrZxq/bNl/XwmioEyA0IMV4OV4b2qB8HHIBIz4HL8Fs8gxcU8u79YsUJDoQkksXV215JQaVKK7d9J8H2lL0LMhJYoLD1yj3xr/BvSFPCeKu2X181YNqSeJdVtzYBl08Uthmq6Mz2H8+UcarPO/swqIY4I+nlyJIH24=;24:qmm0bcps0Pcp1m7kIWq7pBWh0MS/5Z87VTo55QtYxssDkUMQ0FwFEL0eW5Vx9n5hVmMZHk4OTqcW+Zt+pmFZrqSSJDLB59rUkZrHm3S0tUc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BLUPR02MB193;7:v9tP/MZ2/pdTGyvVchNyZwQeXoHR4Y/Ab09RM7yz5FyOLVUcF7Dl4ocGM0e1ceU2v1FVgS/37JbUdhFraOQE/Eq/rRoflCoUOkky0ScPyoX/doYtPCAeauGDU9W2srjdEPqfCeVHFp0lKd+v2ynUy3j3ilbt9Rs+Aag3hqcgMyP5t+gSjVJb6OOFA8Oe1YWZ91VyULRcNzBzH4qG7DBrYEEIA+QcBKCPZc3GZkCWgp0bgdUCd2w9GAviqC4Dquq/ed350ks5p+duvVDMlV9IDIFkzwxgF1Sb5fB5GD7DO1vpediSFGJcHRBDsrQ0kOKDag3l7eekLsh3WkrEGG0otBUImdl573QpRsWaNQqOiqBc/1OamRugR0FDwPpkQodmQITjoPpPkEJuTbbZCpYOhe8I4fIbAJXqwiqYhFuV/wBhAs0lk0/0o7Vb2WGzXMX0OecPLisKochMI+cBCirlcA== X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2017 13:23:17.2077 (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: BLUPR02MB193 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