{"id":2219021,"url":"http://patchwork.ozlabs.org/api/covers/2219021/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/cover/20260402095107.205439-1-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-1-sherry.sun@nxp.com>","list_archive_url":null,"date":"2026-04-02T09:50:54","name":"[V10,00/13] pci-imx6: Add support for parsing the reset property in new Root Port binding","submitter":{"id":77063,"url":"http://patchwork.ozlabs.org/api/people/77063/?format=json","name":"Sherry Sun","email":"sherry.sun@nxp.com"},"mbox":"http://patchwork.ozlabs.org/project/linux-pci/cover/20260402095107.205439-1-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/covers/2219021/comments/","headers":{"Return-Path":"\n <linux-pci+bounces-51716-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=aA+k6oEL;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-pci+bounces-51716-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=\"aA+k6oEL\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.65.22","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\n [IPv6:2600:3c04:e001:36c::12fc:5321])\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 4fmcpr4lw8z1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 02 Apr 2026 21:02:28 +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 56A713164BBD\n\tfor <incoming@patchwork.ozlabs.org>; Thu,  2 Apr 2026 09:51:05 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 27B5D317145;\n\tThu,  2 Apr 2026 09:50:09 +0000 (UTC)","from DU2PR03CU002.outbound.protection.outlook.com\n (mail-northeuropeazon11011022.outbound.protection.outlook.com [52.101.65.22])\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 B1D2A3D3D13;\n\tThu,  2 Apr 2026 09:50:04 +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:00 +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:49:59 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775123408; cv=fail;\n b=eVexkdMHsLdVBPlrosEOXL4Wgc91FZ7sBw6jsanESJd2UY+gjL9RFTEd+hSxm96DU3BW+kod+8SaxbhWsK22vJV2o72Ja+JkX0ZirpOAptr7hwiDUF7WIvgy0u+/crOAbPaNc13gTr5oiaN+beQ21qxBqVLyZRyGLccY1wYVBuQ=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=VMBFFjgtmbFmdtq7PGHAKVPhQWDBCKrl8/ZC/jt15K/oX/aVpNlSUhCtZmUyZP9KCZIuHY+VvAcSKvijgYxpP9xv2OUbRtXe+PXO5skSJ3ITO2sYbtvamD6L5WuLfs9st4UMgUjeKWdv4idyu+meOqCL0f9DBzXs13nobUo+jdOu/yAS2dTy3vagPY88iOSwwPstHjGvjzdglVWwMAXGF41yqUMxzaWRW0pwTpk8h92+rvi0IzJMLfgiMLKJfUUCJ8nBYPuztZokXyboNFRZR1oFnff3MuIxaylsA/EcgrtZdVUi5BGq9I6FQQrqDtI1JwqJU8GoDd8YA3hRuto1pg=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775123408; c=relaxed/simple;\n\tbh=Zd9mh0p+9C2VBP5XfzlqbPiOiWv+1lXFSKEJps7v53w=;\n\th=From:To:Cc:Subject:Date:Message-Id:Content-Type:MIME-Version;\n b=apICsoXjnm+MfMg7yi/a4BWJGDoOK6ambBGRx2X8RoWbCogIv2KtG0VGDvIO8XbvC4Gkq8DywLnNgluc734IfIYqcl/u2uqvX94uzVIgzbjwbCIKOhLgEcU81GkL9spb7MYPsqfd1UBFnmSLQO+f+FcfzcZ2JaBhrBttKErzjMI=","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=OKXeHHcF4QAyMIiBQqrBIK7KqfF9/6tx/42tSIlUDGI=;\n b=GPZwtlHI1Lr8z/egpPxxzLvC6QBoLdZ23YqL+ugdiqMRkLRE6YBWMNeGD4gVHK2B6fPE2fkecbYU+UoPUb9xeo2+ZgOg18fMdOB1zABdmG3up/8eZl4TsfFU/ZevLYcMHbKipHrNQb7vJV0RJgRRe/lDg/a6eWkSuWYTg8btU3e1UuCl9l72WdMUVg73DAKEhIA3I3/E6Phvax8yDR+4+50HxZ7ANeW3qc3HGN4XNsdfGnmAcMXERc92fM0Z5AM6vQzk5namRWS1c9twX/gkdgr5Fb89DE12Afd7rOOQskamQmlmBsw9DB4xEF9ktAkRZO4u4QCoEBM1Plk5Fm5yEA=="],"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=aA+k6oEL; arc=fail smtp.client-ip=52.101.65.22","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=OKXeHHcF4QAyMIiBQqrBIK7KqfF9/6tx/42tSIlUDGI=;\n b=aA+k6oELWa/dfFgsw7pbPFIJUNC3bTrzi9oRCXxxmzpygB9B4h/p1lT664dIMZOnWyADXbt87b9LBZb4ZPv/X0dQB0f5A6gG+tsc4m/R+XMt6pft+vIUfLL0puZxsvMD4hMyxzlhuVDI58CNmqpm2eWJfTz5biJLYMXqaj0siOhqyFAc3dGrf/Y5ZnWqrpOomxgflNw7akzhekfvEm5TBQ89X/SupXKFZo3cXFa3glOw/u3b4QPzPFvx0EabTbx1rmxLp2TIXcILO2qsmiYcZ+svMCI47iD3WfUc8tiFdPofJIRi3/51W29qdBF/lFUGctQhNnvKU2PS+NO2Bb0xLA==","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 00/13] pci-imx6: Add support for parsing the reset\n property in new Root Port binding","Date":"Thu,  2 Apr 2026 17:50:54 +0800","Message-Id":"<20260402095107.205439-1-sherry.sun@nxp.com>","X-Mailer":"git-send-email 2.37.1","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","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":"40cdc46b-5260-4a51-22de-08de909d345c","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|921020|18002099003;","X-Microsoft-Antispam-Message-Info":"\n\tkkuj7Mtyr775Elojx8qESheyYJ29qyEihjm5xtQbkTGPDQFmrtC7UV7cv2tD9lkhS2Bv3yR8nsUWsZRYzzNyo82Odk96waPv2CJcujYfr1iGkHFw80A/b0l2YaSnFQJ42UgSyMg79BPebFp+RjUBf8C2qWPPZ03b5GoVyUm/2xvJ4Q9sGYXbauJgPAObLlBVqt9vO7i4XanNgeJYWZZ7/+MUoOSvr3bRAbTAnwwNctOc1dB+EdOGx6XyPUOuoBJtk9v5vo771naybXM1y1bFijIIBRqfMZTLppR4zardA7JL+B30F4swlWduyjGzutJEnPuX5QE/CBC5my5/XOATMoRQAT5QilOz19FlatF1NSrn9CgPiDvRKBS6cuQ6TydO0ipU4nhcNQN6y5FWSzfOFF3ydaQkGu87jkiGfvwxukkofFSS7TO3av1JLDmT6fNBirflPp5Gpl8KXltzaWmPtHAVmkIwh+KGNEPi05tbM6OgPhAGWGFPgtxxDu1tsf6te/nnX6LUZMrrXM6fK42f34JPw7ROu/VR9omejWQCLJMAOijbDYCva+HCZ+CIs4dSk8Uw0CFHq/fC7FmH2dwh1ovPveWcVto3snJVswFsz4h8ZuH41M74YjnjxmmlEMC97wboJhs8z/Y6l+/fuwynf2jVp6YQKwf0jpnkKiokXNUnJbDxZDJHNu1RkGA+MwxCWq/RGYS1NrRrCJJr/9osE23Ap0l0U+TlOQ/9CHg8hDArszcRiY9JGbWYgIBuwmaSWUVK+0s+Re9P9J4YwCEardI6o0ZNVBb9W7B+onxRZbMoDlvcoChxwNCRlnZ6DzR5","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)(921020)(18002099003);DIR:OUT;SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?JxB//7rAN+yLSo2ZYg5fKFZ3ZdCi?=\n\t=?utf-8?q?Mb2Lbc7C3U4CK7OmItMkoi5hDhkM7xBC4Bcqm9hZi0SqdXUZiB7mrZFzLesFXNsKd?=\n\t=?utf-8?q?yQJajKNI6kAz2IT2G9aK2g/nz7gvX3RkSUwky7fuGnSKMat/Tha76tTKyBay0La6A?=\n\t=?utf-8?q?WLubHLLYoAYtQrIH0bVT1Z049YPumEIOyrejmlD2mrnbPuwFyxBbkniSr4+k2cGjX?=\n\t=?utf-8?q?mf8LHovdbA//3kAOVWhJ2mrTjC2CNaVRDfkewFYwWh2zJwdvv3dzve6vXN7K2mLCU?=\n\t=?utf-8?q?35I99YgLa+CX89Mpg89jMl2NzXh991lqOEVsELuhWSgopXjoA2slsQwWpteFSoa27?=\n\t=?utf-8?q?zeNoR9zMQ8AMNPhzigTlH4BqVunOkSzsWYLiv/w8ZpXkD3KPwHAO9bFQwAhuyp56P?=\n\t=?utf-8?q?BFjmRzbDCCd/ELS+6q/5vgFDVPoYSLJvznKENp4Z0o5Pyo+Y7D02mtkE4dWi5hnvr?=\n\t=?utf-8?q?SX9/5FFaUi8MN60kvx0rG2+Mik4MV3WoazNuArMkK+bB17z7hr5Wzm9JcqDjGpoSq?=\n\t=?utf-8?q?YgdCUKQLj41NlfYV9p9zgvwQ73I7r6E7CFTzeMY40zNZwbzrQ7mtQb2ekUOsCpgG0?=\n\t=?utf-8?q?MDjvqJ+q6r4xcgXbh+I2MOuB6vNUTYzv+F4QW77qCOqeOmgNGPtIwSxB2XeMpeeYV?=\n\t=?utf-8?q?lkooDjSvAIua6PKz2hS45xGlR9Ds3gLpLoxXLHJBMn7onpipZApi0hhrO4wAtxAvX?=\n\t=?utf-8?q?yi09i9c9gS5PPeLTrgOzf1Wu3+lK22bNrYHs4f9qkk5rre3ggFl5fkuMqypcHi1Vp?=\n\t=?utf-8?q?0MZYRWE/383qcA8h22GY0uicxZ4I9vqPNEmRB6rOk9yzSPWccezS45JvzCEwTedZm?=\n\t=?utf-8?q?GYzAJg3TNq6HUUTOKavV4lxphLQSSTjcWgk2F6OYawZD5ZfP6ggKBLIb03x18x51H?=\n\t=?utf-8?q?PvLkFN0DTV+vJl2ALlQvkO9bQHX/agvHuIWF9yDwJQtlpAOW+ZmUXEHnkK+2YY+kN?=\n\t=?utf-8?q?0oMSraD0ea8fFK7vJR/e3DY8T7fSu7uNbXNOpGDvSIxePJDgD1jf0ue+mHQQ1yCJa?=\n\t=?utf-8?q?kPgw7kst9ep1O+phz8eLmvMhYH9RnWsrYB8klG64m4dHhJ1oDhpAKlmhL3IKLv/9e?=\n\t=?utf-8?q?m1F6XlmS8++sANS71YIYXHWh2TxydgG3ylj8n5rVfOddr3M9tR6qcpqqg9CMU5aWf?=\n\t=?utf-8?q?gGNQn89jnTKSG4utYrmMFgG+KjKYEh7dcrgpbfaXJnDtkfh7/kpjOePRFj/1Vj4SE?=\n\t=?utf-8?q?pe2PnvpEwvHMceGA4+WqZFh+bgDVzXVHk6tBxFJOchAsdF3fwBITHtyLiMCnnNmHb?=\n\t=?utf-8?q?OIMTGssCmzo2y95DPNr0SW4dwM9bHp4UOI0c+cJVQ9HwWTpFs5wH6+cqtUrKMXOe8?=\n\t=?utf-8?q?CYZMLjBZ7QxGZXTpn0VcVY/bRcTt90q/brXEtiDSmmER1KECzskq5Qkpiszr1H/R6?=\n\t=?utf-8?q?vArt+gTcBRIGutC38q6vBKoErV7TF1g1cJpAu11OQmSb4SVQLD/P3S8THKtMpWBCB?=\n\t=?utf-8?q?lnKRCzqlBuVn6pqk80Eit/uO2VoELAKSwxWlodyrGfPDlU3sRMXyThkyIAsv10yhb?=\n\t=?utf-8?q?JZGyg/xodDysxvog/GwLl9yBxK0Qh6YreC6fBlPFemI786T+YXRB9aEzCFbwWl60e?=\n\t=?utf-8?q?/4+54zjQcoESvI/kcjfhtX00+JeW6+HsNykMGMYzb8rcwItQZQYepRetXgFQH56am?=\n\t=?utf-8?q?Eo5+ehZcSYf477yO+gl2tTjS0FP2kQBw=3D=3D?=","X-OriginatorOrg":"nxp.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 40cdc46b-5260-4a51-22de-08de909d345c","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:49:59.7831\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 5Ik9TvC4MqDazsa7u7o392T7KzdfL5PxVNtJ60/EzD8CGHQ/P4Hn1VYZ1ibluIp4IuCQteJ4pWrY6iR6GMrmiA==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"AM9PR04MB8471"},"content":"Note: This patch set depends on my two patches [1] and [2], which do some\ncleanup work on the pci-imx6 driver. \n\nThis patch set adds support for parsing the reset property in new Root Port\nbinding in pci-imx6 driver, similar to the implementation in the qcom pcie\ndriver[3].\n\nAlso introduce generic helper functions to parse Root Port device tree\nnodes and extract common properties like reset GPIOs. This allows multiple\nPCI host controller drivers to share the same parsing logic.\n\nDefine struct pci_host_port to hold common Root Port properties\n(currently only reset GPIO descriptor) and add\npci_host_common_parse_ports() to parse Root Port nodes from device tree.\nAlso add the 'ports' list to struct pci_host_bridge for better maintain\nparsed Root Port information.\n\nThe plan is to add the wake-gpio property to the root port in subsequent\npatches. Also, the vpcie-supply property will be moved to the root port\nnode later based on the refactoring patch set for the PCI pwrctrl\nframework[4]. \n\nThe initial idea is to adopt the Manivannan’s recent PCIe M.2 KeyE\nconnector support patch set[5] and PCI power control framework patches[4],\nand extend them to the pcie-imx6 driver. Since the new M.2/pwrctrl model is\nimplemented based on Root Ports and requires the pwrctrl driver to bind to\na Root Port device, we need to introduce a Root Port child node on i.MX\nboards that provide an M.2 connector.\n\nTo follow a more standardized DT structure, it also makes sense to move\nthe reset-gpios and wake-gpios properties into the Root Port node. These\nsignals logically belong to the Root Port rather than the host bridge,\nand placing them there aligns with the new M.2/pwrctrl model.\n\nRegarding backward compatibility, as Frank suggested, I will not remove\nthe old reset-gpio property from existing DTS files to avoid function\nbreak.\n\nFor new i.MX platforms — such as the upcoming i.MX952-evk will add\nvpcie-supply, reset-gpios, and wake-gpios directly under the Root Port\nnode.\nTherefore, driver updates are needed to support both the legacy\nproperties and the new standardized Root Port based layout.\n\n[1] https://lore.kernel.org/all/20260306021247.991976-1-sherry.sun@nxp.com/\n[2] https://lore.kernel.org/all/20260306030456.1032815-1-sherry.sun@nxp.com/\n[3] https://lore.kernel.org/linux-pci/20250702-perst-v5-0-920b3d1f6ee1@qti.qualcomm.com/\n[4] https://lore.kernel.org/linux-pci/20260115-pci-pwrctrl-rework-v5-0-9d26da3ce903@oss.qualcomm.com/\n[5] https://lore.kernel.org/linux-pci/20260112-pci-m2-e-v4-0-eff84d2c6d26@oss.qualcomm.com/\n\nSigned-off-by: Sherry Sun <sherry.sun@nxp.com>\n---\nChanges in V10:\n1. Use gpiod_direction_output() instead of gpiod_set_value_cansleep() to\n   ensure the reset GPIO is properly configured as output before setting\n   its value in patch#5 as now the reset GPIO is obtained with\n   GPIOD_ASIS flag.\n\nChanges in V9:\n1. Improve the error handling in pci_host_common_parse_ports() as Mani suggested. \n2. Move the list_empty check and the comment to imx_pcie_host_init() to make it\n   clear that imx_pcie_parse_legacy_binding() is a fallback as Mani suggested.\n3. Export pci_host_common_delete_ports() so that it can be called by\n   imx_pcie_parse_legacy_binding().\n\nChanges in V8:\n1. Add back the cleanup function pci_host_common_delete_ports() to properly\n   handles the ports list instead of simply using pci_free_resource_list().\n2. Improve the patch#4 commit message.\n3. Remove the irrelevant code change in patch#4.\n\nChanges in V7:\n1. Change to use GPIOD_ASIS when requesting perst gpio as Mani suggested.\n   using bridge->dev.\n2. Add a seperate patch to move vpcie3v3aux regulator enable from probe to\n   imx_pcie_host_init() and move imx_pcie_assert_perst() before regulator and\n   clock enable for pci-imx6.\n3. Add device pointer parameter for pci_host_common_parse_port() instead of\n\nChanges in V6:\n1. Drop the pre-allocate pci_host_bridge struct changes in dw_pcie_host_init()\n   and imx_pcie_probe().\n2. Parse Root Port nodes in dw_pcie_host_init() as Frank and Mani suggested.\n3. Move the imx_pcie_parse_legacy_binding() from imx_pcie_probe() to\n   imx_pcie_host_init(), so that dw_pcie_host_init() parse Root Port first, if\n   no Root Port nodes were parsed(indicated by empty ports list), then parse\n   legacy binding.\n4. Add device pointer parameter for pci_host_common_parse_ports().\n5. Add NULL pointer check for reset gpio in imx_pcie_parse_legacy_binding().\n\nChanges in V5:\n1. Add the Root Port list(pci_host_port) to struct pci_host_bridge for better\n   maintain parsed Root Port information.\n2. Delete the pci_host_common_delete_ports() as now the Root Port list in\n   pci_host_bridge can be cleared by pci_release_host_bridge_dev().\n3. Change the common API pci_host_common_parse_ports() pass down struct\n   pci_host_bridge *. \n4. Modify dw_pcie_host_init() to allow drivers to pre-allocate pci_host_bridge\n   struct when needed.\n5. Allocate bridge early in imx_pcie_probe() to parse Root Ports.\n\nChanges in V4:\n1. Add common helpers for parsing Root Port properties in pci-host-common.c in\n   patch#2.\n2. Call common pci_host_common_parse_ports() and pci_host_common_delete_ports()\n   in pci-imx6 driver.\n3. Use PCIE_T_PVPERL_MS and PCIE_RESET_CONFIG_WAIT_MS instead of magic number\n   100 in patch#3 as Manivannan suggested.\n4. Use \"PERST#\" instead of \"PCIe reset\" for the reset gpio lable in patch#3.\n\nChanges in V3:\n1. Improve the patch#2 commit message as Frank suggested.\n2. Add Reviewed-by tag for patch#1.\n\nChanges in V2:\n1. Improve the patch#1 commit message as Frank suggested.\n2. Also mark the reset-gpio-active-high property as deprecated in\n   imx6q-pcie DT binding as Rob suggested.\n3. The imx_pcie_delete_ports() has been moved up so that the\n   imx_pcie_parse_ports() can call this helper function in error handling.\n4. Keep the old reset-gpio property in the host bridge node for the\n   existing dts files and add comments to avoid confusion.\n---\n\nSherry Sun (13):\n  dt-bindings: PCI: fsl,imx6q-pcie: Add reset GPIO in Root Port node\n  PCI: host-generic: Add common helpers for parsing Root Port properties\n  PCI: dwc: Parse Root Port nodes in dw_pcie_host_init()\n  PCI: imx6: Assert PERST# before enabling regulators\n  PCI: imx6: Add support for parsing the reset property in new Root Port\n    binding\n  arm: dts: imx6qdl: Add Root Port node and PERST property\n  arm: dts: imx6sx: Add Root Port node and PERST property\n  arm: dts: imx7d: Add Root Port node and PERST property\n  arm64: dts: imx8mm: Add Root Port node and PERST property\n  arm64: dts: imx8mp: Add Root Port node and PERST property\n  arm64: dts: imx8mq: Add Root Port node and PERST property\n  arm64: dts: imx8dxl/qm/qxp: Add Root Port node and PERST property\n  arm64: dts: imx95: Add Root Port node and PERST property\n\n .../bindings/pci/fsl,imx6q-pcie.yaml          |  32 +++++\n .../arm/boot/dts/nxp/imx/imx6qdl-sabresd.dtsi |   5 +\n arch/arm/boot/dts/nxp/imx/imx6qdl.dtsi        |  11 ++\n .../arm/boot/dts/nxp/imx/imx6qp-sabreauto.dts |   5 +\n arch/arm/boot/dts/nxp/imx/imx6sx-sdb.dtsi     |   5 +\n arch/arm/boot/dts/nxp/imx/imx6sx.dtsi         |  11 ++\n arch/arm/boot/dts/nxp/imx/imx7d-sdb.dts       |   5 +\n arch/arm/boot/dts/nxp/imx/imx7d.dtsi          |  11 ++\n .../boot/dts/freescale/imx8-ss-hsio.dtsi      |  11 ++\n arch/arm64/boot/dts/freescale/imx8dxl-evk.dts |   5 +\n arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi |   5 +\n arch/arm64/boot/dts/freescale/imx8mm.dtsi     |  11 ++\n arch/arm64/boot/dts/freescale/imx8mp-evk.dts  |   5 +\n arch/arm64/boot/dts/freescale/imx8mp.dtsi     |  11 ++\n arch/arm64/boot/dts/freescale/imx8mq-evk.dts  |  10 ++\n arch/arm64/boot/dts/freescale/imx8mq.dtsi     |  22 ++++\n arch/arm64/boot/dts/freescale/imx8qm-mek.dts  |  10 ++\n .../boot/dts/freescale/imx8qm-ss-hsio.dtsi    |  22 ++++\n arch/arm64/boot/dts/freescale/imx8qxp-mek.dts |   5 +\n .../boot/dts/freescale/imx95-15x15-evk.dts    |   5 +\n .../boot/dts/freescale/imx95-19x19-evk.dts    |  10 ++\n arch/arm64/boot/dts/freescale/imx95.dtsi      |  22 ++++\n drivers/pci/controller/dwc/pci-imx6.c         | 119 ++++++++++++++----\n .../pci/controller/dwc/pcie-designware-host.c |   8 ++\n drivers/pci/controller/pci-host-common.c      |  77 ++++++++++++\n drivers/pci/controller/pci-host-common.h      |  16 +++\n drivers/pci/probe.c                           |   1 +\n include/linux/pci.h                           |   1 +\n 28 files changed, 436 insertions(+), 25 deletions(-)"}