{"id":2219023,"url":"http://patchwork.ozlabs.org/api/patches/2219023/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260402095107.205439-6-sherry.sun@nxp.com/","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/projects/28/?format=json","name":"Linux PCI development","link_name":"linux-pci","list_id":"linux-pci.vger.kernel.org","list_email":"linux-pci@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260402095107.205439-6-sherry.sun@nxp.com>","list_archive_url":null,"date":"2026-04-02T09:50:59","name":"[V10,05/13] PCI: imx6: Add support for parsing the reset property in new Root Port binding","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"4523963ed4523290df1ede11c1e4162e57b6e2c7","submitter":{"id":77063,"url":"http://patchwork.ozlabs.org/api/people/77063/?format=json","name":"Sherry Sun","email":"sherry.sun@nxp.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260402095107.205439-6-sherry.sun@nxp.com/mbox/","series":[{"id":498458,"url":"http://patchwork.ozlabs.org/api/series/498458/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/list/?series=498458","date":"2026-04-02T09:50:55","name":"pci-imx6: Add support for parsing the reset property in new Root Port binding","version":10,"mbox":"http://patchwork.ozlabs.org/series/498458/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2219023/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2219023/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <linux-pci+bounces-51721-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256\n header.s=selector1 header.b=HPPWCaDH;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-pci+bounces-51721-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=\"HPPWCaDH\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.84.35","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=nxp.com","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nxp.com;"],"Received":["from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fmcrN5l8yz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 02 Apr 2026 21:03:48 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 2A4743189682\n\tfor <incoming@patchwork.ozlabs.org>; Thu,  2 Apr 2026 09:52:22 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id EE0403DF008;\n\tThu,  2 Apr 2026 09:50:44 +0000 (UTC)","from DB3PR0202CU003.outbound.protection.outlook.com\n (mail-northeuropeazon11010035.outbound.protection.outlook.com [52.101.84.35])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 74D653E316E;\n\tThu,  2 Apr 2026 09:50:39 +0000 (UTC)","from VI0PR04MB12114.eurprd04.prod.outlook.com\n (2603:10a6:800:315::13) by AM9PR04MB8471.eurprd04.prod.outlook.com\n (2603:10a6:20b:416::22) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Thu, 2 Apr\n 2026 09:50:32 +0000","from VI0PR04MB12114.eurprd04.prod.outlook.com\n ([fe80::feda:fd0e:147f:f994]) by VI0PR04MB12114.eurprd04.prod.outlook.com\n ([fe80::feda:fd0e:147f:f994%6]) with mapi id 15.20.9769.018; Thu, 2 Apr 2026\n 09:50:32 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775123443; cv=fail;\n b=ipbx4USWtOAoV/ggh5dZ6x16hEy2uOI50/F8oqAlQp7I5GaHi42pLvZuGwOZFn258VEdKcrkK09uMRUbN2ZD5DYRPnLL60aewP6ennkaOQie7r6w9lQTpLgTVXP4C9jC1gqEuG4ztAnKcFkiS16naneyT1xpsdVx9OQgTM4I0t4=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=tN7SgY8IM3Lp64Vycy9BQTnF56Gmj56BCbNA2UpXcQ2XEuF7hZhw2rVIIz+B/PwyaR92CNBW0TATpjgBAsqQtpd4wWUdqk6sBULPcxHKCndoZzUnKHBiMXNdJoOZDKhfCy3NzPuZwdsM9wh1d2vkSvdikkqCBhNv77rU1NADBgiyqgjuLvPLWrKbIrpiMfIFpfhRxp/h+LHPVSjRVbnMo+OK4HTCmF6LgIywUJXt05ZLZ6mgGbPC4v5/3jxg135SHVHTnAV0OTj8E1+MeNLtjXbBL0p2PWD9ixKEU0KZP34sTRU/rsSyosMCvhTMJHyPOup5Zkuqm8Skzu4NcC87mQ=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775123443; c=relaxed/simple;\n\tbh=SHgkdcWQLmIWNdmd6FVTnV40+Bso2NkdfEmA7AAkDSw=;\n\th=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=QdFkO4HH7ovO9NthkuG2v7lhRzAmLDGszvG1OANtJW0bHZzPbwvVvrubHt46NDczoa+vr3smUepIUT1h8PzW9vL7Bld1bZRvl/cPttGF+9laQJ6DOQvaGTI4A0ydoa77anbj4AfJxfiGFUuea5r2dD8oH/8YYu5aFvWgVa1OU8Q=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=q+/4iNXAH2Vuhz/GgTRpfoMMfLPcLnPEqw2X2iiifgM=;\n b=K4Vl8x+PknAQMdfXE5JtHK0Xb2j7d/DDiQUHR0rLW2qNdwi80Mo/1hhsqF84M31DZn2eSZu4ja8ZNQDQr4m4iDvtOjS8iz7K7W7lSpO9Q8+b7ZlKVMbNqVBYjO5ymleCwLlY8W0DSQLIfg9w5eHRUO/DuImiekxbQVqJ6UZfSVWzQiUFlAr3/CUkcLR6UH9abEKlbUVUn0hbwLdg2RkeqXInWnxRRE8G2O1MZnvzvW5sRQYD7aJ+CiFcJzuOuES4g7C5OfdoLHV50j77HHEiXH8FFEdCrdUXqD3hLWhnYYRzJLHKR2jHu9arEuJ8asldCQlPCsn39QHlrhF3TZfVhQ=="],"ARC-Authentication-Results":["i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com;\n spf=pass smtp.mailfrom=nxp.com;\n dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=HPPWCaDH; arc=fail smtp.client-ip=52.101.84.35","i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass\n header.d=nxp.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=q+/4iNXAH2Vuhz/GgTRpfoMMfLPcLnPEqw2X2iiifgM=;\n b=HPPWCaDH83AkVpSg6BfpCchkhTSBJaf4C8BujnPYeplFWmSsht+9+XF3Q7FEng86E3qP75PJuVpypHaLHbUlI/jYC5ymST9RGK8ZyQ3cxPGaIvdwkDHWiEtIHoyeORxO0ZWRRj3ePo+YiKvZm5uhqqEulQHLb+iVTyWoSnk5GxgdVVSpl83vddJDcGk1r3/5/vIMCrfjDBQsc81gF7RqO07WDxiublR27h02JuI4D5HrNwIJ7oA1EXa5YqFAzPdn6QYtiEF04UsmyVS54KjjYhNQEHO5hxy4buvigNBsGIOghyrzXwnyNUAIh2GNQ9lA1i9aq7+Qbr0KU+tlwgsB+w==","From":"Sherry Sun <sherry.sun@nxp.com>","To":"robh@kernel.org,\n\tkrzk+dt@kernel.org,\n\tconor+dt@kernel.org,\n\tFrank.Li@nxp.com,\n\ts.hauer@pengutronix.de,\n\tkernel@pengutronix.de,\n\tfestevam@gmail.com,\n\tlpieralisi@kernel.org,\n\tkwilczynski@kernel.org,\n\tmani@kernel.org,\n\tbhelgaas@google.com,\n\thongxing.zhu@nxp.com,\n\tl.stach@pengutronix.de","Cc":"imx@lists.linux.dev,\n\tlinux-pci@vger.kernel.org,\n\tlinux-arm-kernel@lists.infradead.org,\n\tdevicetree@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org","Subject":"[PATCH V10 05/13] PCI: imx6: Add support for parsing the reset\n property in new Root Port binding","Date":"Thu,  2 Apr 2026 17:50:59 +0800","Message-Id":"<20260402095107.205439-6-sherry.sun@nxp.com>","X-Mailer":"git-send-email 2.37.1","In-Reply-To":"<20260402095107.205439-1-sherry.sun@nxp.com>","References":"<20260402095107.205439-1-sherry.sun@nxp.com>","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-ClientProxiedBy":"MA5P287CA0163.INDP287.PROD.OUTLOOK.COM\n (2603:1096:a01:1ba::11) To VI0PR04MB12114.eurprd04.prod.outlook.com\n (2603:10a6:800:315::13)","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"VI0PR04MB12114:EE_|AM9PR04MB8471:EE_","X-MS-Office365-Filtering-Correlation-Id":"cf032d08-5110-4c00-9c13-08de909d47ed","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"\n\tBCL:0;ARA:13230040|366016|1800799024|19092799006|376014|7416014|52116014|38350700014|56012099003|22082099003|921020|18002099003;","X-Microsoft-Antispam-Message-Info":"\n\tvyLJghb+VJxKn8KI5q+ymIk7WZiumY3WgKF1g7okBdtU7Tfc4F+g+JqRmNso8jPbdAUYMIaIHEH6aYZIaLGJ19qMM3DnMW4W1ZdcHThE7vWaH+VfvDiy9w82REcrjJPzmIfA2aOAO9/KUVBjKH0NXsrb9E/292v+WgcO5nYpz74kBBua5ueQjqLjeL1JEwSPCYSu/H5TJgZujBH8bZBJsEPP0GZALvzLe33Cl+afDHd0+wn3hMxrIb1/VovME6jy+ZgkAVCPUOOaWRvN/44IJhPcq/FuvrEcf6S7EDLqOAjdcZF2SqfRtu5zbWIt8fRPyh/mjtT7Rm3DOfBaUP41I4TtlkIjf2DL3G/8C5Gou5U6awRv/mXucWVtnrr+ZPLuYCSnvpqmW2SHx9cGuq4hT12iDHDVfhid/VLr8RhQzJYbckRtUVermBed+6DbzemEyhS7JsZD7+/+zGsRr1WE/qVYsLq18fk4YExdUcDKj5kkqIw/c2IjZ+AgNCe03A0vzZBUXObONofiMG42iFJuKmGSc5j93iIzwXLVuBVvcTQT/6CrFSIpV9HFQSX5QeI0kBDVA3QCI8wuN3/zO3uchKYNsSMC8ytLXp/se+qksdAaBDka+wrqtVA/idK9maJEcxp91L37IxQqMYXPJWljH7BaCdAhxI6feljW5ZKgEK3Pd6lsg/N/5V3PL8txDMrxR65x8VUJAVZTR6drMgffdtPdL+EPalWWLn5fomoir73HiWmUE45ryfnptA1b7Cq4NBO7C2RmljIlj1ljqZpZl4a1MLwS6rmslvjaoE+fPCEgDVyzzhOzecQWW4I35ZfA","X-Forefront-Antispam-Report":"\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR04MB12114.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(19092799006)(376014)(7416014)(52116014)(38350700014)(56012099003)(22082099003)(921020)(18002099003);DIR:OUT;SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n Tj41lA27r9qsjDnHisScfkLXEZNwCHjFzpzOP2YV2vcyjp71Neukfll4e4riKBPVlkXhQbVew/AhkIoFlbSm3VrBFQaBhukUASzDOJ7Fzbqjjs4yfCTRK5h7rzI6yyMHKqhlTHibcQu5eYP4Gbe8nzo0SwKWg3bBAy+hiVCA6bui7uLk5hfhus40e4LFk/HRqDtdvgeojAvR6WiaEAxVvBxJUkLopqHX7wwWO9OHQLUk9YVz/B5Xhu2V/12AqyMpUnf514Ra/sRRealYVBckUG0r661hATOC8C4vbdRjgGXZbkAKwLeXikh6iWWAOxbwOV1dxUTNtQ9p8BtCWZ7qXyuYPOEVu4FepKZdWa176joIsIDpM8/OcssTOslKP89h+OHy6b6mor3j3Gnae6juZp5DhQKLMEkMyaYOx9yt890gN7BHbv0+yOWWU97eOclmSuZdJEzOq2jo5M2ojnocpbka5eI4BmexFwGByAewdEamBO2kcyVSJUUx0I64QcyNyMFOpM+tj01B7X4ENs/dvrJOsgiXe6VdB29CNfvJgcIKfWZ1IyhLSwhGgQVTJyp25kOJ7FEKoHboR4BsJeY6Fg128CEiSKcjy7waA6OsT37JNXmex/4/t3qtcPYkyXuUXwNpuTVf03eyEoed8GGO6p7k7/mE4w8PUXxOBRaS6o7aCjGUj51JfvCc78PjLju6N/2nDvmlzXHMHaZafduhPQbXK5Dyr2aZhoGv+tq+reynvG+nadPLo8581Gn/sKVuiIadY7qske0u7l0Ud2Bh98psPPzrKkmwMUNpg76h5pzaBO+XNhwzysVc6y3b9iTX995vzDU+2nKmE3iK9MiDVSbigsOEQShpQiEme4mKFynOIEvehqtEALBGXWYU2CZjIeqqvhdugF1khuUIVV/M+iGudQn1F9/4/HmxgbmswrtfgikcsQnAPXweXDiFyPivx4k1oL+oSsg4zjMdUTfWHq6hDfYtGjSV7ljeM/AhUrNFpS+974ENO9Ezr5JRSfq9BVona49kOMqTfyGZVPVYog/GCOplj84PKegOFxEyW2xYYWLoXyVGIbDD2mXJutIDJ15smg1NbTkO5Kq7PEoL/gooxCft/n1ckYHpOtpwdIC0H9T/Hp9LHJNOa8Iq7TZllbjx7xibrrXSq13keKymy6AcgIgeUyfh10Uq+UYNl1RPHd4uOQPIydSqqK2xqtkojUcG038n3SpN0/rk1KmKmVl3FhNb/4HSxQF4g1xGE76+FAe+FwURSz+PNGtyBVkd7BeW64+yRfO4NrhggGGhXRY5yC/c6KWue6rqKYtTKMYUl9teGNMKW5842fw0CWGWPB6/3mwvEbCB9TgCktFPxTbnyY4Cy578vrrY7Ixsa3hZ3dYbXUWE/ukObJK7c6b6wA6n1BziwTlCW4Li6JYvCa50/l99L/edXuSGObmNH1ToAWWbxK/gK8IWM8UNDVITpoGEBghgqeKvIrdovAgVj7XVfFqs6hPJJYSyASi3V/EdcqJpw2STDTevqfi1F4ZHq72rbbh3CTOTcV37QnN0OET1fPOEIcWvl/RGdZV/2farRmdA99lVxHEM4kyZ06VpnoCmnaPjyyp43tt6goorNd456mAQKDQmLBirZpfIjzQO0GBvpzwS3heRNGxkeDBJDHMUTQpRBLkzyt3pxw+BiBqp6PtzKemEAVUDr4RVYOathsflqrYoFafJh9qO1B17JVN2Kx7zUiB5owyK0Z+Isw==","X-OriginatorOrg":"nxp.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n cf032d08-5110-4c00-9c13-08de909d47ed","X-MS-Exchange-CrossTenant-AuthSource":"VI0PR04MB12114.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"02 Apr 2026 09:50:32.8620\n (UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"686ea1d3-bc2b-4c6f-a92c-d99c5c301635","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"\n 0KZFxcaoFWYuY4FA5lEuvAgj/2vOybU4NIZpJ+vWtFiY9u0XG8Akq7UqQjywfvOJ+3Jl7ACtQJ16TjFYl++KJg==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"AM9PR04MB8471"},"content":"The current DT binding for pci-imx6 specifies the 'reset-gpios' property\nin the host bridge node. However, the PERST# signal logically belongs to\nindividual Root Ports rather than the host bridge itself. This becomes\nimportant when supporting PCIe KeyE connector and PCI power control\nframework for pci-imx6 driver, which requires properties to be specified\nin Root Port nodes.\n\nWith the common Root Port parsing now handled in dw_pcie_host_init(),\nupdate the reset GPIO handling to use the parsed port list from\nbridge->ports. To maintain DT backwards compatibility, fallback to the\nlegacy method of parsing the host bridge node if the reset property is\nnot present in the Root Port node (indicated by an empty ports list).\n\nSince now the reset GPIO is obtained with GPIOD_ASIS flag, it may be in\ninput mode, using gpiod_direction_output() instead of\ngpiod_set_value_cansleep() to ensure the reset GPIO is properly\nconfigured as output before setting its value.\n\nSigned-off-by: Sherry Sun <sherry.sun@nxp.com>\n---\n drivers/pci/controller/dwc/pci-imx6.c | 70 +++++++++++++++++++++------\n 1 file changed, 55 insertions(+), 15 deletions(-)","diff":"diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c\nindex 948ffb75d122..b44563309d40 100644\n--- a/drivers/pci/controller/dwc/pci-imx6.c\n+++ b/drivers/pci/controller/dwc/pci-imx6.c\n@@ -34,6 +34,7 @@\n #include <linux/pm_runtime.h>\n \n #include \"../../pci.h\"\n+#include \"../pci-host-common.h\"\n #include \"pcie-designware.h\"\n \n #define IMX8MQ_GPR_PCIE_REF_USE_PAD\t\tBIT(9)\n@@ -150,7 +151,6 @@ struct imx_lut_data {\n \n struct imx_pcie {\n \tstruct dw_pcie\t\t*pci;\n-\tstruct gpio_desc\t*reset_gpiod;\n \tstruct clk_bulk_data\t*clks;\n \tint\t\t\tnum_clks;\n \tbool\t\t\tsupports_clkreq;\n@@ -1222,6 +1222,32 @@ static void imx_pcie_disable_device(struct pci_host_bridge *bridge,\n \timx_pcie_remove_lut(imx_pcie, pci_dev_id(pdev));\n }\n \n+static int imx_pcie_parse_legacy_binding(struct imx_pcie *pcie)\n+{\n+\tstruct device *dev = pcie->pci->dev;\n+\tstruct pci_host_bridge *bridge = pcie->pci->pp.bridge;\n+\tstruct pci_host_port *port;\n+\tstruct gpio_desc *reset;\n+\n+\treset = devm_gpiod_get_optional(dev, \"reset\", GPIOD_ASIS);\n+\tif (IS_ERR(reset))\n+\t\treturn PTR_ERR(reset);\n+\n+\tif (!reset)\n+\t\treturn 0;\n+\n+\tport = devm_kzalloc(dev, sizeof(*port), GFP_KERNEL);\n+\tif (!port)\n+\t\treturn -ENOMEM;\n+\n+\tport->reset = reset;\n+\tINIT_LIST_HEAD(&port->list);\n+\tlist_add_tail(&port->list, &bridge->ports);\n+\n+\treturn devm_add_action_or_reset(dev, pci_host_common_delete_ports,\n+\t\t\t\t\t&bridge->ports);\n+}\n+\n static void imx_pcie_vpcie_aux_disable(void *data)\n {\n \tstruct regulator *vpcie_aux = data;\n@@ -1231,13 +1257,22 @@ static void imx_pcie_vpcie_aux_disable(void *data)\n \n static void imx_pcie_assert_perst(struct imx_pcie *imx_pcie, bool assert)\n {\n-\tif (assert) {\n-\t\tgpiod_set_value_cansleep(imx_pcie->reset_gpiod, 1);\n-\t} else {\n-\t\tif (imx_pcie->reset_gpiod) {\n-\t\t\tmsleep(PCIE_T_PVPERL_MS);\n-\t\t\tgpiod_set_value_cansleep(imx_pcie->reset_gpiod, 0);\n-\t\t\tmsleep(PCIE_RESET_CONFIG_WAIT_MS);\n+\tstruct dw_pcie *pci = imx_pcie->pci;\n+\tstruct pci_host_bridge *bridge = pci->pp.bridge;\n+\tstruct pci_host_port *port;\n+\n+\tif (!bridge)\n+\t\treturn;\n+\n+\tlist_for_each_entry(port, &bridge->ports, list) {\n+\t\tif (assert) {\n+\t\t\tgpiod_direction_output(port->reset, 1);\n+\t\t} else {\n+\t\t\tif (port->reset) {\n+\t\t\t\tmsleep(PCIE_T_PVPERL_MS);\n+\t\t\t\tgpiod_direction_output(port->reset, 0);\n+\t\t\t\tmsleep(PCIE_RESET_CONFIG_WAIT_MS);\n+\t\t\t}\n \t\t}\n \t}\n }\n@@ -1247,8 +1282,20 @@ static int imx_pcie_host_init(struct dw_pcie_rp *pp)\n \tstruct dw_pcie *pci = to_dw_pcie_from_pp(pp);\n \tstruct device *dev = pci->dev;\n \tstruct imx_pcie *imx_pcie = to_imx_pcie(pci);\n+\tstruct pci_host_bridge *bridge = pp->bridge;\n \tint ret;\n \n+\t/*\n+\t * For DT backward compatibility: if no Root Port nodes were parsed\n+\t * (indicated by empty ports list), parse reset-gpios from the host\n+\t * bridge node.\n+\t */\n+\tif (bridge && list_empty(&bridge->ports)) {\n+\t\tret = imx_pcie_parse_legacy_binding(imx_pcie);\n+\t\tif (ret)\n+\t\t\treturn ret;\n+\t}\n+\n \timx_pcie_assert_perst(imx_pcie, true);\n \n \t/* Keep 3.3Vaux supply enabled for the entire PCIe controller lifecycle */\n@@ -1702,13 +1749,6 @@ static int imx_pcie_probe(struct platform_device *pdev)\n \t\t\treturn PTR_ERR(imx_pcie->phy_base);\n \t}\n \n-\t/* Fetch GPIOs */\n-\timx_pcie->reset_gpiod = devm_gpiod_get_optional(dev, \"reset\", GPIOD_OUT_HIGH);\n-\tif (IS_ERR(imx_pcie->reset_gpiod))\n-\t\treturn dev_err_probe(dev, PTR_ERR(imx_pcie->reset_gpiod),\n-\t\t\t\t     \"unable to get reset gpio\\n\");\n-\tgpiod_set_consumer_name(imx_pcie->reset_gpiod, \"PCIe reset\");\n-\n \t/* Fetch clocks */\n \timx_pcie->num_clks = devm_clk_bulk_get_all(dev, &imx_pcie->clks);\n \tif (imx_pcie->num_clks < 0)\n","prefixes":["V10","05/13"]}