From patchwork Wed Apr 18 08:10:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yoshihiro Shimoda X-Patchwork-Id: 10347529 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id E4CAE6031B for ; Wed, 18 Apr 2018 08:11:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D908628595 for ; Wed, 18 Apr 2018 08:11:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CCD7B2859E; Wed, 18 Apr 2018 08:11:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 45E9428595 for ; Wed, 18 Apr 2018 08:11:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753725AbeDRIKw (ORCPT ); Wed, 18 Apr 2018 04:10:52 -0400 Received: from relmlor3.renesas.com ([210.160.252.173]:10668 "EHLO relmlie2.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753694AbeDRIKr (ORCPT ); Wed, 18 Apr 2018 04:10:47 -0400 Received: from unknown (HELO relmlir4.idc.renesas.com) ([10.200.68.154]) by relmlie2.idc.renesas.com with ESMTP; 18 Apr 2018 17:10:46 +0900 Received: from relmlii2.idc.renesas.com (relmlii2.idc.renesas.com [10.200.68.66]) by relmlir4.idc.renesas.com (Postfix) with ESMTP id BC9D08A1D9; Wed, 18 Apr 2018 17:10:46 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.48,464,1517842800"; d="scan'208";a="278555612" Received: from mail-pu1apc01lp0019.outbound.protection.outlook.com (HELO APC01-PU1-obe.outbound.protection.outlook.com) ([65.55.88.19]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-GCM-SHA384; 18 Apr 2018 17:10:45 +0900 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesasgroup.onmicrosoft.com; s=selector1-renesas-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=pyyOBckQNb9TMdpZarxdaumUBTa8bmXbSw4pxBXAaAI=; b=glKkyyxZSxZJnky5beSSiq6Bs0Un6zLSQYixJ/cUtkZWufDwsXCS3ecXE1tZ8ThJ+CRJuCVHB9NmQjXawJKv3PkREKugfg+Mlrbniy6NgXgfyzAUuvY+nB5CKALnCvRwzIe1BDiiTKO2p/WR8pjt4dqwEime8mVf3m9jxlGQ67I= Authentication-Results: linuxfoundation.org; dkim=none (message not signed) header.d=none; linuxfoundation.org; dmarc=none action=none header.from=renesas.com; Received: from localhost.localdomain (211.11.155.138) by SG2PR06MB0982.apcprd06.prod.outlook.com (2a01:111:e400:5213::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.675.14; Wed, 18 Apr 2018 08:10:38 +0000 From: Yoshihiro Shimoda To: gregkh@linuxfoundation.org, robh+dt@kernel.org, mark.rutland@arm.com, frowand.list@gmail.com Cc: heikki.krogerus@linux.intel.com, hdegoede@redhat.com, andy.shevchenko@gmail.com, p.zabel@pengutronix.de, linux-usb@vger.kernel.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, Yoshihiro Shimoda Subject: [PATCH/RFC 07/11] usb: common: roles: add getting device pointer APIs Date: Wed, 18 Apr 2018 17:10:01 +0900 Message-Id: <1524039005-30618-8-git-send-email-yoshihiro.shimoda.uh@renesas.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1524039005-30618-1-git-send-email-yoshihiro.shimoda.uh@renesas.com> References: <1524039005-30618-1-git-send-email-yoshihiro.shimoda.uh@renesas.com> MIME-Version: 1.0 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: OSAPR01CA0023.jpnprd01.prod.outlook.com (2603:1096:603:2a::35) To SG2PR06MB0982.apcprd06.prod.outlook.com (2a01:111:e400:5213::24) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(48565401081)(2017052603328)(7153060)(7193020); SRVR:SG2PR06MB0982; X-Microsoft-Exchange-Diagnostics: 1; SG2PR06MB0982; 3:4HFTkAeTFZmVlttzIdC4BARRSRWyLZ+0EzKCfoPF56CHx06rknkS7q78/Xnpzp0x98tgPpmqSoGqeE4tOaDBXZoCgvV0NqT6aXGLKepbsUJd1k1zFFlbGfGw93StuwuM6Y0npMNEQD6f/f2QTQ9yM0Kpxrue4A4WU3/4L2byxbA0DQmQlrCUie+xfrMnpzOIoZ7P5OsdsE5pBIgUPYt3j68rS/Vwz9evW1PLXZD7x+ven3qkADI6ClIctWTk7p00; 25:CFG0dvys82EF5sLezluV2uID1SvrqT++CxRDs+nzgppTTb+fOnUebLipyPgiSF0VLB7FjeJ/t9Pe2g0N1VBhmD8BSKLkqPzMbOf9I+dmGkFQMHttQeZ5ydXPvOKhuNrzogMZ0N9mpqIbPywkLb1LEx7cIPmSQRz6/UHf3dxnTnf1gzhxFWHg2pR6BkEe3cjKqwC32/4iyt91ASrPQ44DVxSwqwDMft8QPBV962Xt80J+RE/oTvMQSmJP4yEJudVq5/NlCnSt7K5kNpU8eDFgEaQFOYMI7woG3tNN70RSxIZ4qFvsTDOtQb5T0kXZx9kE0yWY6ntFsYW1CKHiKZnznA==; 31:T70vLKrOpfheRh0xSmC2JWLAGMBa80PRZI4+/U/QjwIUk2h8nRZ/EMVsWxEgCJ1GR11V+A2MKKcAwbjrkbuHionP0Wv45gABIYhEvnBnooXNjTURr85nrcrJCK45V0WGdBrf1Y2E9d9c2EUu6UD7LIDpmT8sI87eRyzcJiLBjp2QFhFUC6SA/4wXyhPxf9um/O06eKCXKBmqVpdpKGl5Ci0Rg/ytKtA59NsYA/1IVs4= X-MS-TrafficTypeDiagnostic: SG2PR06MB0982: X-Microsoft-Exchange-Diagnostics: 1; SG2PR06MB0982; 20:RBxev3GFQ3c3bQSNK/4Idhnu2hKmmOez7kuZGn1aCrZdeaIShCd93mJ6jzMOzEEKGuIEXwEfMuxISANrXpsbS28Tfn1Tq4aamnJGRAzEe57vQcIGn7ROeiQPOS1f7SDBgU4/FuykvR1qPAmpw0bHKRiOzsopm7Pgfs/HpI1Oe3XaYxzNfrKQdZw7lYAAn9FFe3no3TcVZiG6rVGGfXldJzdStexHyMO5j6A2vcGQFWDA9/vTnT5kefTjZbAWtqAD/WaTramJ/OYYO+UGvNKPK/kdx09m9j4KibFTqQ/6vF2kUHcDynBdfTl8UwSf5iamk7eaA34WfY0JMLMiRjl8yGYGUEtWgrSeiF97gZxz0oitYm5prUyLBVvJJerSgJ5n3RNDZQ2zjnaRGFtntC1YoBlPrRuqy2fotxJGnXlHjtLfFGXQ2D44ezpiFxxLF06yI/aUY3kmitucMwNVhgUm6d3gWK3rzxDIRIVyDV/HDIDdPEuSXDWVXiwvw2FEQLK5; 4:ewvG8X5rAZmYUc1tcnQLmCvU9WVPJ0ekpECd8Ao81qgo1/YlaaatzENAdxpmaaqsMlq8vJoVTgW6dp+AAyeHZptiSoSiW4JTpIEkA+PxTeD9SW5wiovC4v39hBEcpQOpRVVAmUggwHAbbI5q8CzHBcyozZY8ZCM6yrN6NBA4FpDZmaBnTRfuOD34hCfUy8/IhSG+rE2iBMya/dFwZhs9gcZzvUNDHy1jdcA0umdj5Z31JD1akoeA+YJEZ+fkXEBgDbKau4dfQK+U4BbQJdWN0A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(3002001)(3231232)(944501327)(52105095)(93006095)(6055026)(6041310)(20161123562045)(20161123558120)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061750153)(6072148)(201708071742011); SRVR:SG2PR06MB0982; BCL:0; PCL:0; RULEID:; SRVR:SG2PR06MB0982; X-Forefront-PRVS: 06469BCC91 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(979002)(6069001)(39860400002)(346002)(376002)(396003)(366004)(39380400002)(7416002)(956004)(2616005)(6116002)(446003)(3846002)(47776003)(8936002)(97736004)(66066001)(50466002)(4326008)(2906002)(76176011)(42882007)(53936002)(52116002)(6512007)(476003)(107886003)(386003)(11346002)(6506007)(51416003)(36756003)(25786009)(316002)(6666003)(305945005)(16586007)(5660300001)(7736002)(48376002)(78352004)(8676002)(6486002)(50226002)(16526019)(81166006)(39060400002)(498600001)(26005)(3720700003)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:SG2PR06MB0982; H:localhost.localdomain; FPR:; SPF:None; LANG:en; MLV:ovr; PTR:InfoNoRecords; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SG2PR06MB0982; 23:/459lAOakqaaofgH6Otjcm3Ih0KhKWvpagh8FqHhb?= =?us-ascii?Q?CLMqEzne8ioge43LTWi5HLJPALiQbr/wk1nz7/LWCtKy8DtI1Atyho6QHu8W?= =?us-ascii?Q?rZ4A6ZyX/Kjrc2p7aW85xbmoi9kkRX0/uNkyjT2PZZGaJdSKhOX7b6SRyko8?= =?us-ascii?Q?DA/Vk3MnfXc1nYm1wAhZqLDRKVrHr5+Xudo8g8FvKX5R7FVx+0+APWeviXWG?= =?us-ascii?Q?ujePNQhUv4vsvo5zVhBUabT0+UGvTJDwVu4a6g6TXwyrbbDgMXGrEvM7LgZT?= =?us-ascii?Q?R9HMl9t7i+b26dFhZlDwgJTSbjmcuDJyvMTyOhrSNp8QQcxPCNwNjFkDvvgI?= =?us-ascii?Q?Ncwwxb4V00VocYlwmezZ4NBfgQ2Py75+ABT6Ar+NyiD/WZgIBTe1Am7BrHu4?= =?us-ascii?Q?1EZKfMIEXmmuOmPHceMydpcTCF6+LiNxQSlq90NTk673OzEjracpMHR5XvwV?= =?us-ascii?Q?E5dSysYh6R4O1M+bMiV3AlgiPR0j1iypKR20nce69VWRcz3QoIbJ6OwuVWew?= =?us-ascii?Q?UQ0BcFg3ViQFr87PlnxRIwhl5e8DPGLoHadAbk5sGp6J6yOuS7Dsbq5GIIQC?= =?us-ascii?Q?nL4FeV6g2Jyzr590eU5vdCPa8fI7VCWYP6mTrW9c9omMuZkg09Kagc39/KNL?= =?us-ascii?Q?p6FKBTQxCuwvZiF+43iLUxC9JZqsPFEMK+2eJnXW7LkuupEqP1SO+hH3nE7I?= =?us-ascii?Q?sWwC5wrYyO34slOJURhgKDvvUzx/xOE36EtlQlBwlwgiPBeutYpWK3aixN87?= =?us-ascii?Q?F64KCrljsnPEXPYElxMqh4fDe9AeHmfwGjahWtOJGH9DbFg4QpXJq8/bSqgA?= =?us-ascii?Q?htKA1SuZDmxXQyrZSSKjZzImflbwuYIZT7keoo2q3opUu0HiLcH+HgaWu/xh?= =?us-ascii?Q?ZXPAl+M8NPfuWkuxFlFVEiwcJ+fPSN5T3oUIXzJMfhNlwUQlfRAtJLlbQrPU?= =?us-ascii?Q?BIMu+0qPTTKPVYg2sUyLTyqmJSRPjST0bdX9dId+j0+b4ChMlh4CPr10yS0D?= =?us-ascii?Q?wt2nkEb3nXpqrR49o3/rm7IVIxTxquzzk9k/YkD6eg10117GD3k/ePybY1eK?= =?us-ascii?Q?JOENQO6d8VF4TT9kcdwUppp6Deod+ayrb9HP91TGSjUTynV05vK+1Ov5RkR8?= =?us-ascii?Q?M7idm96FFFlj+h7btrqOLjakk089zqiQuT7s4kd/TU6wL+OhbIrr0MFMXl7e?= =?us-ascii?Q?Ys8ugnwgbqjAat3asyoo0ajdsUR5qdb/yXTepol8ibl2g0NnaBLnV6r6A=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Antispam-Message-Info: UWCPUsrqGJh08YvUxTmAA20100eW7dxyN6RQA1c0StDDlfHtx/Le+Uh/ZTZ9We4EM1EQynMz0rKy+IbMFeI7UtccF7RJzS2y0NBleeMtr0tEMpu69sRajDUdd/2vW0lQmt1mwlwT2ntZ9zNeUBUcW6O+EHQSrHJl2qDPGkF08owR844ZV28zVLnn1TVYIFXt X-Microsoft-Exchange-Diagnostics: 1; SG2PR06MB0982; 6:tk/kvu4fGMeMndNnWZ2yY8I09pQD+NFvsV8XRWPYQEQaS5FnqxTzOvCCIWBg6qeRyc83ZdRkgU3Cl6g+SLJ4ZI3Ct6sZtW9U6wvIPnFAaHkUcITSqtMsmbGT9hVjl86rYNGpNYss4GpAGffeWtEug3Wq7wPi3bxHFBeM4JFUrVwe6PwRa1awfQS/IWYFK+crryUa8jX+gFIVwmzhJb3G1Q5zBhQs7389064odpmogaaid/PzwyPX11gsi/FjJ988kxRmZFdd13mitsU6K12PkSwqZ1wS6rocg8uB5/KwB/fLWXwGCW9XW4d+cwPt0W6kPL7ug3dYHpPTUfyo362OC8lcVnZjf/Tkkci1xw0FzXe5UvKEodgPv2nPetojetuU4zxkTot8y+RWrLElQLqKxnwZUrLP/XrJ4fJdvzpYKLeoWTq8l1xx7B1TUNl4A18AYcrFWelLw4kRj90etS5f3A==; 5:K5G9AiTiBBkNjYc87puaqfjEKMQaHfEXtLtzC3AhWPsoICpr5OaQb/7XGKvpZnw5tQfkAlbeCvUvXxXWKv1eslvwNHBzoLl2rCGdTs4z6hFWseegA3/jfgnu89v6nvmf80ehXsL+cQpGFuNwjCX8GUBMW+c7q7NTtf+Xcq4onlI=; 24:Z0M74dQbwzzhr/XvwquY17E+UCAik/QF170lo8NRUQg0Jm4vpPV3jpUAZtGIYUe8FHcHpAeNUytIbRttTEV+3anoTWQuVMMq0xiXs0/07oI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SG2PR06MB0982; 7:xJ3IR1bnR2+fCFKjlQyNCHw/34lBE9MLSnAWtRmnUh/IXNx8SlUMQbEpKAVz1UUIqhC8qGWdVWiM4wafzucY1tpGDD4HCzQmKfvLXgzshDHVWI5CakF03HhWJoph60MTiKzogmhYEAuytZWIMxMMWGbPDhP+eeM5x+j0YVFqLTWfId3x1lxujUV4+iaBvKF1xR92e3ooOTHAywW8RP9bZ2wq2WemYyoLzfM2mfCddo2qi1mf7+3+swqLlOO1DRwn; 20:60ZnUBJvUIJXAFTwZzR6GdmfPvDCVNWAtXcwwq05c0lef1y2BsrdcmsWRqUu+NwXOcjSwJvYBmsDhQSvE/bwI6Ao6B1jSwQNvJ6b1ZF7+NuluPuIOW3VkZ9vsZIdGVUuxJVXBf3ZuZnIWyNjLFrvkm3Hj/Xmb0v1+dibf5HNkwI= X-MS-Office365-Filtering-Correlation-Id: 003d7d4a-3274-4cfc-d6b4-08d5a503dfc5 X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2018 08:10:38.8062 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 003d7d4a-3274-4cfc-d6b4-08d5a503dfc5 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: SG2PR06MB0982 Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch adds APIs that a role switch driver can get device pointer of USB 2.0/3.0 and udc. Signed-off-by: Yoshihiro Shimoda --- drivers/usb/common/roles.c | 36 ++++++++++++++++++++++++++++++++++++ include/linux/usb/role.h | 4 ++++ 2 files changed, 40 insertions(+) diff --git a/drivers/usb/common/roles.c b/drivers/usb/common/roles.c index 381259c..5fd14b2 100644 --- a/drivers/usb/common/roles.c +++ b/drivers/usb/common/roles.c @@ -34,6 +34,42 @@ struct usb_role_switch { #define to_role_switch(d) container_of(d, struct usb_role_switch, dev) /** + * usb_role_switch_get_usb2_port - Get device of a USB 2.0 host + * @sw: USB role switch + * + * Returns USB 2.0 host device pointer. + */ +struct device *usb_role_switch_get_usb2_port(struct usb_role_switch *sw) +{ + return sw->usb2_port; +} +EXPORT_SYMBOL(usb_role_switch_get_usb2_port); + +/** + * usb_role_switch_get_usb3_port - Get device of a USB 3.0 host + * @sw: USB role switch + * + * Returns USB 3.0 host device pointer. + */ +struct device *usb_role_switch_get_usb3_port(struct usb_role_switch *sw) +{ + return sw->usb3_port; +} +EXPORT_SYMBOL(usb_role_switch_get_usb3_port); + +/** + * usb_role_switch_get_udc - Get device of a udc + * @sw: USB role switch + * + * Returns udc device pointer. + */ +struct device *usb_role_switch_get_udc(struct usb_role_switch *sw) +{ + return sw->udc; +} +EXPORT_SYMBOL(usb_role_switch_get_udc); + +/** * usb_role_switch_set_role - Set USB role for a switch * @sw: USB role switch * @role: USB role to be switched to diff --git a/include/linux/usb/role.h b/include/linux/usb/role.h index edc51be..c7eb73b 100644 --- a/include/linux/usb/role.h +++ b/include/linux/usb/role.h @@ -40,6 +40,10 @@ struct usb_role_switch_desc { bool allow_userspace_control; }; +struct device *usb_role_switch_get_usb2_port(struct usb_role_switch *sw); +struct device *usb_role_switch_get_usb3_port(struct usb_role_switch *sw); +struct device *usb_role_switch_get_udc(struct usb_role_switch *sw); + int usb_role_switch_set_role(struct usb_role_switch *sw, enum usb_role role); enum usb_role usb_role_switch_get_role(struct usb_role_switch *sw); struct usb_role_switch *usb_role_switch_get(struct device *dev);