From patchwork Thu Sep 6 10:39:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Siva Durga Prasad Paladugu X-Patchwork-Id: 966902 X-Patchwork-Delegate: marek.vasut@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=xilinx.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b="ahPxMvST"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 425cXR6rGrz9s3x for ; Thu, 6 Sep 2018 20:40:07 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id A3C89C21D9A; Thu, 6 Sep 2018 10:40:05 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAD_ENC_HEADER, SPF_HELO_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 8728EC21C2C; Thu, 6 Sep 2018 10:40:01 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id DB2B3C21C2C; Thu, 6 Sep 2018 10:39:59 +0000 (UTC) Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0082.outbound.protection.outlook.com [104.47.40.82]) by lists.denx.de (Postfix) with ESMTPS id C1DC7C21C27 for ; Thu, 6 Sep 2018 10:39:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hveqSkdHgSpSpwmiEwRYsVdGmOqs0IdtaELTtihp+6E=; b=ahPxMvST6MX4em2Og0U6UDt8sCk4zKOosxjXRq7Vr0zgWeE9LO+EYLoBMyMoQC3POuWq0hLEYicYyi8TqyS5oKOo5UWqVHednPbIQBxDDI3F3Ggy0JYjSqV/bnaITFzkOwjCy2DJi0f98wOtVu9OP7KZ0DmwyiFkvManwm6oDBc= Received: from MWHPR0201CA0029.namprd02.prod.outlook.com (2603:10b6:301:74::42) by BLUPR02MB503.namprd02.prod.outlook.com (2a01:111:e400:88c::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1101.17; Thu, 6 Sep 2018 10:39:50 +0000 Received: from CY1NAM02FT010.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e45::209) by MWHPR0201CA0029.outlook.office365.com (2603:10b6:301:74::42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1101.15 via Frontend Transport; Thu, 6 Sep 2018 10:39:50 +0000 Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Received: from xsj-pvapsmtpgw01 (149.199.60.83) by CY1NAM02FT010.mail.protection.outlook.com (10.152.75.50) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1122.15 via Frontend Transport; Thu, 6 Sep 2018 10:39:49 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1fxrhV-0004f1-09; Thu, 06 Sep 2018 03:39:49 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1fxrhP-0001sO-Sz; Thu, 06 Sep 2018 03:39:43 -0700 Received: from xsj-pvapsmtp01 (xsj-pvapsmtp01.xilinx.com [149.199.38.66]) by xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id w86AdfrT028529; Thu, 6 Sep 2018 03:39:42 -0700 Received: from [172.23.37.99] (helo=xhdsivadur40.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1fxrhN-0001re-D7; Thu, 06 Sep 2018 03:39:41 -0700 From: Siva Durga Prasad Paladugu To: Date: Thu, 6 Sep 2018 16:09:21 +0530 Message-ID: <1536230361-31433-1-git-send-email-siva.durga.paladugu@xilinx.com> X-Mailer: git-send-email 2.7.4 X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23620.005 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.83; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(396003)(376002)(136003)(39860400002)(346002)(2980300002)(438002)(189003)(199004)(426003)(107886003)(126002)(476003)(2616005)(39060400002)(336012)(14444005)(486006)(305945005)(356003)(36756003)(8676002)(63266004)(77096007)(6346003)(26005)(36386004)(2351001)(186003)(4326008)(106466001)(50466002)(9786002)(7696005)(51416003)(2906002)(8936002)(81156014)(81166006)(48376002)(316002)(50226002)(106002)(54906003)(16586007)(47776003)(6666003)(478600001)(5660300001)(6916009)(107986001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR02MB503; H:xsj-pvapsmtpgw01; FPR:; SPF:Pass; LANG:en; PTR:unknown-60-83.xilinx.com; MX:1; A:1; X-Microsoft-Exchange-Diagnostics: 1; CY1NAM02FT010; 1:RST8t3uKejzam2AohxRec3iQrkukNbSuoD3q8te7mabwveeu0MEMURuepy6Yu98kJmFd/TCW0ZNOo9WVGtvG1Xlss6Z76OWs86E04apYCw+8ypdEme+aYq2XCfXzHDa6 MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7d6c0c07-cb82-47ea-0a0b-08d613e51285 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4608076)(2017052603328)(7153060); SRVR:BLUPR02MB503; X-Microsoft-Exchange-Diagnostics: 1; BLUPR02MB503; 3:RC4gXOc1HZRAdwdgAPOaUiKHfDSIHFRcdJOeYClSJZ5zbanCpbDhf/iz75lo1v6CYGjcxT+c+QoHznqRqFEwwFkV2ZNe85f3VehjfPkQqv2DxhxHQCDil+3Q1fT6rqZ98nRI8RRWRpwYNxeAaw8I4/pyrU66CL/X29Ymbog82UK5M7qOVONPwgLUkWXzzdDmA5wAY68CM2pSwLrYG14xRwHabXuoh/RNQ1rOn0A+nmV1W4ecjpAfAnWWyJwHMbgYq2XTmcA3vHDhhpW55zvS6raDZE+CMQ8HtYmn8qyTNCcoopkDJD9O/CkOzAbabx+9YnEVD3yRyLFE7cZeDdsvmjIcqWjCc+PP30T4uEoxJ0A=; 25:yT6GVqxhziI1opw2NGlNeGyz12L+/KZsGdMhsGqgo2k9vPargYFq2ChjKTx81OV7AQbsmlQE1cPAHf2u7IhzpoYWanWEIagT/ewg9Vnd3q2xXjG7zMnIE9755CkAge0C/rVZcL9yQGXFT+cyYvIwq0S+1JbXQNMmhPqgRRtKhNmuOXFOvlqpesYjgeTINV2Kur9oUw+2PuuuvwB9mbGq0mRH8p4qOjKt+hKHFsVsiFgZQouzNSXh1U+vQbEF/2azK6wJpzg114uE7wPzNo9+hYpfD5096pWUPzLxfPpw6o78kaoLb245YetrQqYVPEVACOG3HQUj+3wVkh0nwmThpg== X-MS-TrafficTypeDiagnostic: BLUPR02MB503: X-Microsoft-Exchange-Diagnostics: 1; BLUPR02MB503; 31:2SjSvEZXaGkaozFMYo3yH1yP9oLno7rXfZhJESEZFyCq0TIGFWo0yenmwfBNMhlhgKItOfX3tzLvB52e9MX6z8kGr0knOviRRg4HTkAT02Cop2301dCjV4VdrflxmSgVFFvlOX1/ZidfFEBjX1Wejes0elweI9C8D5qWc2B8sP9WE7ZuYDWINvx9vAc0qiAFOMhNat8HA1kcaAoG7dFAuW5OB1DxpNRp6bAKGcmtM78=; 20:rJFVpHvaQHbqTgqrYQp2VE6m+TTBF+h21OocT5GJEKjq1y0Q5a87ptHLIAlw4hienFiRDryOoCAXz7e2sC95yO42+3QzKksOzIM9/D9hfX146bsiPaHOkAtyASmbJ3yiSzx0D4lryF2G45gQpDIbkj0/s1sld+To6jl59gvM9xhgJuKLNu/1gau1FOimt4rAXo+8zu7N9vQjzixy93IheM4BvVCcbIWh6jBUU4dphG5oxRbId7lATvrGR34zjgd0gOctel+lU5gfNLtdehNCF89mSV6bjg4GBDlFKx8bUc836Zz2vFSVdw5KAM8Rwa6wiqPc73VFeXpsq8y/gUOWtzYFwmoFlWEdjJujFI3PNJ9f7hp/jWX3D5ihdwhaoy4rkyMJszWC/k0CGiJMsIULHGdlS43wYBtLGU7j260XlVYcZogBl9A05Ww2U6LncDX//yHKnV1qiyJLVX6K8U1s8Fgi6ehmSMwnf414OzppBsLm7sDOHy2VLIT8Dog3SiGG X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231344)(944501410)(52105095)(93006095)(93004095)(6055026)(149027)(150027)(6041310)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699016); SRVR:BLUPR02MB503; BCL:0; PCL:0; RULEID:; SRVR:BLUPR02MB503; X-Microsoft-Exchange-Diagnostics: 1; BLUPR02MB503; 4:U8SHJ4cZksUrtpBdzi3+uhRJu1tRGWx+hCirEa2Yn2QA0ShlniRgoA9Cyjh1qAoNjhTQKIZmqx/QO+HJbYWZ7/i4Mi7N9IaJjxI/QbFhmzjFuWLkq2vQN3EKEH2/eNhPbj1jB37ae6dy5R2TNPiZ4zsSXWm7WSmguuQg5n4g5yaQCGYNtwIyIdfUrIK75NvcoM1D3OTfOyYvmL/wAwmQEiNWf5I85bD+6WFybVZVm8RkcGRtkoga37aAV1CPi9x8WsYYW3/Uble5DBuDgnV26vBx0zFLJuxdlak0xYsPqYnb1vLsOZDvCeJrdxqB988l X-Forefront-PRVS: 0787459938 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR02MB503; 23:qFVBD8T9ZFUVrDnW+gIUfKI0PSnV0rXy+YjsViumRf?= RO3MkZloJ3izodw/bC7nYl6eaVyIVB+jVQWzP9GhV7WTey2JI37gmnSYwP7GgQ/b3hyv8Qdu+WlBydSGU/xHsA2qH0w696CbahSTBTuUwPuHt2KpxJ6hUXsPdHQlSl6WlVdfP/JI+AoN7TKikl0WNryk/zCtO5f8W2rEZMnjol2U7AESQzWy7ysjG5AnW9E7Su5qtCfQqDuJR52wnwwTuZENnriPvgV6vNNh09pP72ogr63VBzjr/CINDMP3oG+8ITJMIWWhksC/B58nmvUCe5KCSEzRwU5ru7RT1t8vaAuXxEHc2dr/tfJeyvnn37nQvIQtfOyDLPCnIUvX+CBRhaVj26jMnlEN4Zazl6xo4XJkdqRDnhSB3QbvFBrvVTLxaUIPP4Sm3Y/WTCHQCBSg6QFoBBcYdWQRkU8WYb/bjpLaGZR7AQi2pqa2lcloSVV07h5W0Z4EjbNmC7jqK4+lOf2o7slcO4kB3BfGfTM19VxeKuyEvO8HkXNYWEC3SF2tNO16umLWV76bC76ZyS2OWGQRqHF5Q1mO9VcLvhwhgyY3UvIPsPjOTMVOBn98grc6mMdOrIAW6jpvp2LNZNc8EyIREJqET5PIgiaP3QOnTgZJknyTzD25iBK0lnQufTaWN9V8EgeDTujYeqwZk/iNIoX0dkuAf7OgZnZXOJ06gqwgArp1DUvd/S6y49XbZRGfgazhIbqgzseoqb0uskUX/uY2gUjRvCitfCJsX609Z/aw16yvfV34wwafU5Ikxj+fMqsajTC6ZEpL3NHFD7BuJSiNficxcISIhxMR4POuo4RN/r4TPwOnNo+qu73TjSLIugdyQv1z+KusFJOW+6h+fC3jvg36f/IJ2l17YXN6vra30aaBeBBrO8vocfzu1bWTe58jIzRPk3QrSaOR3BNT+e8MIl81S4xdJ7qGP82qnnnYG0dpGEIYnsjqJlXcJnuYFrpfxcBXEhKA/DO+zByZKzajt0ZhNlX4YgiUiC0GedNrG2VpYniiHq9nMZdRRBXWLuhxigReV/BEj07TvjU6hmdZaf6oYZ8c1SAXGBTkWgdkcERXa9ipnreghcbfLdpLI= X-Microsoft-Antispam-Message-Info: laAMX9wqAyQCK//ybi5f5ykBiKgwqjv9tUNCwqt1/MQp1+d6h7gYqLe1RRsdKyjf9jHOfv7a5sAGaGBzGJ27of1QoEnMw+4/uR6iVR07j5mQUdbuE84TEFpFjsMWL27DtbcP9MkQH8eMwUa86yLyIgQHy3BtyrgkqRTgnqlkeTcbkAVd2qnX2AmIIppcBiPug67p3MM+gXSPPkAEXH7qIJikr8e6J8h/GBwnaGqzOiIr5/f8rM7svHveqDx2Ys5Io4jPsdw3oZCI+qQItSJP7wcDEM9CesouOuCiGuRWBvgxyXlxu3MrcjAKp6cSFDxkUTHscyKRwX122ILmQr5WcQXRm4jDL5XiwMBHg74lMRA= X-Microsoft-Exchange-Diagnostics: 1; BLUPR02MB503; 6:8Qk1kAB7WBW5Pfrxk007KCt0+EIQp0EnQ/wxWAvlKnm1NWTdpTGzSQ/n/e9EKNGMkxU/zeCiYwODmy1b4gqpo9fudYjb3qMC+Hl8CRUt5fVoUqJgzNbX2A4+LBh+vRJ7pgHaDhUTu1/CeoOHofVG4BSnkXjjEsbA/1v3WdXmvMQmKaUITCnlLfk0WnbQT1u0aZAnZ6DfcyJOrpCU69a4p8BUbxWRfnXibQjdYZR/NEzY2zyZvws7nrfYQuR5iFfISLGoKZv25ExvH3BC0yh4vYkztt/q4RtAfmVN7Gvvc5k/8Y2DGbutvVaYmYZgsbBGjRfJiW75ZF71szsckMoD93YBlN1UGhYAyqW/n0VftAkVG98E0InJrfN5mMQBZVDQ1EYE4XcJa5V6qwTqLZ7zbd9zmKgFk9RJJ4EPr28xXZUM76xY65ZW+otLKEtBR9i1pvFbUf9nJ1ncF2/fNB11kw==; 5:c4mk7UCfuDhXFLjavu/Z7ocax7T96wf7BuotJ3VinwNUQEkBhID7jcdf0KHDWhlHQLyk+St/pT9qsksJWZXttQQEFZrK/CZA/6lS+AiZkBymvigtaqfpvFjZdrr+HJUeLANYBKOiU+dTA+KXNzO81PVez1nserN08rEqLF9iyZM=; 7:XEQm19HFGz+al8fKmAeN4Ss40j5Ddk0Tj/KXYFTIjrbXxjs0F8KCSJj+BjpuO9d/L05OiuCkKNine8lLJ9/xTptffTG5i9pARjZpNE+OitnlyJ7479XSx+k8xRD7i7b+gH7rg33iK5LNu2/4fGl1j3P1jDIU0dk5yf3lHURmOHpZ3fxoXq9aq0lOo9JWTzZPg42qNpwSvhlOOk04FHX3hQ8Zz8rWgRgiYXYCWserXCuQBtLh4Mnqo6glcGLq/TrE SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Sep 2018 10:39:49.4588 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7d6c0c07-cb82-47ea-0a0b-08d613e51285 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: BLUPR02MB503 Cc: marex@denx.de, michal.simek@xilinx.com, Vipul Kumar Subject: [U-Boot] [PATCH v2] usb: dwc3: convert to livetree X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Vipul Kumar Update the DWC3 USB driver to support a live tree. Signed-off-by: Siva Durga Prasad Paladugu Signed-off-by: Vipul Kumar Tested-by: Michal Simek --- Changes in v2: - Fixed travis build issues with some platforms. --- drivers/usb/common/common.c | 11 +++++------ drivers/usb/dwc3/dwc3-generic.c | 17 +++++++---------- drivers/usb/host/dwc3-sti-glue.c | 7 +++---- drivers/usb/host/xhci-dwc3.c | 3 ++- drivers/usb/host/xhci-zynqmp.c | 3 +-- drivers/usb/musb-new/ti-musb.c | 11 ++++------- include/linux/usb/otg.h | 6 ++++-- 7 files changed, 26 insertions(+), 32 deletions(-) diff --git a/drivers/usb/common/common.c b/drivers/usb/common/common.c index a55def5..3dea79b 100644 --- a/drivers/usb/common/common.c +++ b/drivers/usb/common/common.c @@ -10,6 +10,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; @@ -20,13 +21,12 @@ static const char *const usb_dr_modes[] = { [USB_DR_MODE_OTG] = "otg", }; -enum usb_dr_mode usb_get_dr_mode(int node) +enum usb_dr_mode usb_get_dr_mode(ofnode node) { - const void *fdt = gd->fdt_blob; const char *dr_mode; int i; - dr_mode = fdt_getprop(fdt, node, "dr_mode", NULL); + dr_mode = ofnode_get_property(node, "dr_mode", NULL); if (!dr_mode) { pr_err("usb dr_mode not found\n"); return USB_DR_MODE_UNKNOWN; @@ -48,13 +48,12 @@ static const char *const speed_names[] = { [USB_SPEED_SUPER] = "super-speed", }; -enum usb_device_speed usb_get_maximum_speed(int node) +enum usb_device_speed usb_get_maximum_speed(ofnode node) { - const void *fdt = gd->fdt_blob; const char *max_speed; int i; - max_speed = fdt_getprop(fdt, node, "maximum-speed", NULL); + max_speed = ofnode_get_property(node, "maximum-speed", NULL); if (!max_speed) { pr_err("usb maximum-speed not found\n"); return USB_SPEED_UNKNOWN; diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c index ca63eac..ef72c8c 100644 --- a/drivers/usb/dwc3/dwc3-generic.c +++ b/drivers/usb/dwc3/dwc3-generic.c @@ -61,18 +61,17 @@ static int dwc3_generic_peripheral_remove(struct udevice *dev) static int dwc3_generic_peripheral_ofdata_to_platdata(struct udevice *dev) { struct dwc3 *priv = dev_get_priv(dev); - int node = dev_of_offset(dev); - priv->regs = (void *)devfdt_get_addr(dev); + priv->regs = (void *)dev_read_addr(dev); priv->regs += DWC3_GLOBALS_REGS_START; - priv->maximum_speed = usb_get_maximum_speed(node); + priv->maximum_speed = usb_get_maximum_speed(dev->node); if (priv->maximum_speed == USB_SPEED_UNKNOWN) { pr_err("Invalid usb maximum speed\n"); return -ENODEV; } - priv->dr_mode = usb_get_dr_mode(node); + priv->dr_mode = usb_get_dr_mode(dev->node); if (priv->dr_mode == USB_DR_MODE_UNKNOWN) { pr_err("Invalid usb mode setup\n"); return -ENODEV; @@ -100,13 +99,11 @@ U_BOOT_DRIVER(dwc3_generic_peripheral) = { static int dwc3_generic_bind(struct udevice *parent) { - const void *fdt = gd->fdt_blob; - int node; + ofnode node; int ret; - for (node = fdt_first_subnode(fdt, dev_of_offset(parent)); node > 0; - node = fdt_next_subnode(fdt, node)) { - const char *name = fdt_get_name(fdt, node, NULL); + dev_for_each_subnode(node, parent) { + const char *name = (char *)ofnode_get_name(node); enum usb_dr_mode dr_mode; struct udevice *dev; const char *driver; @@ -133,7 +130,7 @@ static int dwc3_generic_bind(struct udevice *parent) }; ret = device_bind_driver_to_node(parent, driver, name, - offset_to_ofnode(node), &dev); + node, &dev); if (ret) { debug("%s: not able to bind usb device mode\n", __func__); diff --git a/drivers/usb/host/dwc3-sti-glue.c b/drivers/usb/host/dwc3-sti-glue.c index ad7cf6e..de423ee 100644 --- a/drivers/usb/host/dwc3-sti-glue.c +++ b/drivers/usb/host/dwc3-sti-glue.c @@ -153,18 +153,17 @@ static int sti_dwc3_glue_ofdata_to_platdata(struct udevice *dev) static int sti_dwc3_glue_bind(struct udevice *dev) { struct sti_dwc3_glue_platdata *plat = dev_get_platdata(dev); - int dwc3_node; + ofnode dwc3_node; /* check if one subnode is present */ - dwc3_node = fdt_first_subnode(gd->fdt_blob, dev_of_offset(dev)); + dwc3_node = dev_read_first_subnode(dev); if (dwc3_node <= 0) { pr_err("Can't find subnode for %s\n", dev->name); return -ENODEV; } /* check if the subnode compatible string is the dwc3 one*/ - if (fdt_node_check_compatible(gd->fdt_blob, dwc3_node, - "snps,dwc3") != 0) { + if (ofnode_device_is_compatible(dwc3_node, "snps,dwc3") != 0) { pr_err("Can't find dwc3 subnode for %s\n", dev->name); return -ENODEV; } diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c index 80754d7..cbab436 100644 --- a/drivers/usb/host/xhci-dwc3.c +++ b/drivers/usb/host/xhci-dwc3.c @@ -202,6 +202,7 @@ static int xhci_dwc3_probe(struct udevice *dev) struct dwc3 *dwc3_reg; enum usb_dr_mode dr_mode; int ret; + ofnode node; hccr = (struct xhci_hccr *)((uintptr_t)dev_read_addr(dev)); hcor = (struct xhci_hcor *)((uintptr_t)hccr + @@ -215,7 +216,7 @@ static int xhci_dwc3_probe(struct udevice *dev) dwc3_core_init(dwc3_reg); - dr_mode = usb_get_dr_mode(dev_of_offset(dev)); + dr_mode = usb_get_dr_mode(node); if (dr_mode == USB_DR_MODE_UNKNOWN) /* by default set dual role mode to HOST */ dr_mode = USB_DR_MODE_HOST; diff --git a/drivers/usb/host/xhci-zynqmp.c b/drivers/usb/host/xhci-zynqmp.c index e44e1ae..5a5b870 100644 --- a/drivers/usb/host/xhci-zynqmp.c +++ b/drivers/usb/host/xhci-zynqmp.c @@ -121,10 +121,9 @@ static int xhci_usb_remove(struct udevice *dev) static int xhci_usb_ofdata_to_platdata(struct udevice *dev) { struct zynqmp_xhci_platdata *plat = dev_get_platdata(dev); - const void *blob = gd->fdt_blob; /* Get the base address for XHCI controller from the device node */ - plat->hcd_base = fdtdec_get_addr(blob, dev_of_offset(dev), "reg"); + plat->hcd_base = dev_read_addr(dev); if (plat->hcd_base == FDT_ADDR_T_NONE) { debug("Can't get the XHCI register base address\n"); return -ENXIO; diff --git a/drivers/usb/musb-new/ti-musb.c b/drivers/usb/musb-new/ti-musb.c index 9fbe2d6..bdb5985 100644 --- a/drivers/usb/musb-new/ti-musb.c +++ b/drivers/usb/musb-new/ti-musb.c @@ -177,7 +177,6 @@ static int ti_musb_host_ofdata_to_platdata(struct udevice *dev) { struct ti_musb_platdata *platdata = dev_get_platdata(dev); const void *fdt = gd->fdt_blob; - int node = dev_of_offset(dev); int ret; ret = ti_musb_ofdata_to_platdata(dev); @@ -204,14 +203,12 @@ U_BOOT_DRIVER(ti_musb_host) = { static int ti_musb_wrapper_bind(struct udevice *parent) { - const void *fdt = gd->fdt_blob; - int node; + ofnode node; int ret; - for (node = fdt_first_subnode(fdt, dev_of_offset(parent)); node > 0; - node = fdt_next_subnode(fdt, node)) { + dev_for_each_subnode(node, parent) { struct udevice *dev; - const char *name = fdt_get_name(fdt, node, NULL); + const char *name = (char *)ofnode_get_name(node); enum usb_dr_mode dr_mode; struct driver *drv; @@ -226,7 +223,7 @@ static int ti_musb_wrapper_bind(struct udevice *parent) case USB_DR_MODE_HOST: /* Bind MUSB host */ ret = device_bind_driver_to_node(parent, "ti-musb-host", - name, offset_to_ofnode(node), &dev); + name, node, &dev); if (ret) { pr_err("musb - not able to bind usb host node\n"); return ret; diff --git a/include/linux/usb/otg.h b/include/linux/usb/otg.h index d2604c5..baf4d91 100644 --- a/include/linux/usb/otg.h +++ b/include/linux/usb/otg.h @@ -9,6 +9,8 @@ #ifndef __LINUX_USB_OTG_H #define __LINUX_USB_OTG_H +#include + enum usb_dr_mode { USB_DR_MODE_UNKNOWN, USB_DR_MODE_HOST, @@ -23,7 +25,7 @@ enum usb_dr_mode { * The function gets phy interface string from property 'dr_mode', * and returns the correspondig enum usb_dr_mode */ -enum usb_dr_mode usb_get_dr_mode(int node); +enum usb_dr_mode usb_get_dr_mode(ofnode node); /** * usb_get_maximum_speed() - Get maximum speed for given device @@ -32,6 +34,6 @@ enum usb_dr_mode usb_get_dr_mode(int node); * The function gets phy interface string from property 'maximum-speed', * and returns the correspondig enum usb_device_speed */ -enum usb_device_speed usb_get_maximum_speed(int node); +enum usb_device_speed usb_get_maximum_speed(ofnode node); #endif /* __LINUX_USB_OTG_H */