get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.2/patches/2221639/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2221639,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/2221639/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260410023055.2439146-5-sherry.sun@nxp.com/",
    "project": {
        "id": 28,
        "url": "http://patchwork.ozlabs.org/api/1.2/projects/28/?format=api",
        "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": "<20260410023055.2439146-5-sherry.sun@nxp.com>",
    "list_archive_url": null,
    "date": "2026-04-10T02:30:47",
    "name": "[V12,04/12] 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": "67dce8ad1130fa3f99bed75286370e11f8ecb0c5",
    "submitter": {
        "id": 77063,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/77063/?format=api",
        "name": "Sherry Sun",
        "email": "sherry.sun@nxp.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260410023055.2439146-5-sherry.sun@nxp.com/mbox/",
    "series": [
        {
            "id": 499380,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/499380/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=499380",
            "date": "2026-04-10T02:30:43",
            "name": "pci-imx6: Add support for parsing the reset property in new Root Port binding",
            "version": 12,
            "mbox": "http://patchwork.ozlabs.org/series/499380/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2221639/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2221639/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linux-pci+bounces-52246-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=PU+s70jk;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-52246-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=\"PU+s70jk\"",
            "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.66.9",
            "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 sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::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 4fsLRX6yNvz1yGb\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 12:32:08 +1000 (AEST)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 897AE300B9C0\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 02:30:03 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 5B9F2EACD;\n\tFri, 10 Apr 2026 02:30:03 +0000 (UTC)",
            "from DUZPR83CU001.outbound.protection.outlook.com\n (mail-northeuropeazon11012009.outbound.protection.outlook.com [52.101.66.9])\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 7DCF430F52A;\n\tFri, 10 Apr 2026 02:30:01 +0000 (UTC)",
            "from VI0PR04MB12114.eurprd04.prod.outlook.com\n (2603:10a6:800:315::13) by AS5PR04MB9826.eurprd04.prod.outlook.com\n (2603:10a6:20b:673::20) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.42; Fri, 10 Apr\n 2026 02:29:58 +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; Fri, 10 Apr 2026\n 02:29:58 +0000"
        ],
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775788203; cv=fail;\n b=YVWD9Q2q2+oxhRqzb/If0Tc+ijkNKK+0oJbqPsQedklh8aeF8HrEq4smzrLWdrzHLCJ4uEVbHKf3Yr8ZGGM3GUNWaqLdXMbNcJpGYyz4FYXHcyO/aNmWtg9K15Q11zWznLgTv6hlHlm9L88kcFVSA3aauvN62PsEFc+9Qm33haw=",
            "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=Ed/CitOrU/w0C5pw6m3pUsQKETzRJtBKESc1+OnVA2PGqWUE1zDXPeXYtDPbqCwcjTvKiRoCkRcwJmzk4GBp+4AEEYnXGLThVOewLA/wVPqXKNdtqBsGD7ZO6m3qlLOQeNyv2tK59FNkZeKu6iyU7UB7lEhYZSKKpGjuE6CgZTckzexUhneNneJ/xifQpOGsr+flLILFRMdIVBm9/cNncBbAxoNLBXNsIzpkoTqT4aE9JYrB5YlScfkQ/JOMzN8kkgT++A8PyVt9DM29UxC750E7oOvmTnAvNGiuEdDrjHYxOuRL8+YgsqE3gcvAiljsGgjR+PH/67Y1JgfhtmwGZw=="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775788203; c=relaxed/simple;\n\tbh=TSZPx9Rlxs9RzNQ58CtdMU27Q3xG4/tL+W4dNCx6Rok=;\n\th=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=QTYiLHcqVO8dLPsZNFOKSuUKy3xyQNJFYGmepbHFnEpRzKV4gWYEvOKG0vPyM4zjcF1pagP8iS3o25CSBtaLGVxJmVyH1ONeSq8QHLWm+9zkZqyv4mkv73k21bbL8LB7gCKBl+1sS2FEimRLPvUmfyjvqsfaGNr3bFegOYZ2QE8=",
            "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=9eDEJjjvdauZ5NyK5r4UZU6erm3hSEAntgPB2/0oFIw=;\n b=beB9WSkMlqFIAZrT3l/OGc7GDmRF20q82WWVVcVEX1RW0rM9T7pc2xR26Hc5GI77uWgWQZD0cBNvdqCinouNcv6n0YROH4fHkFGKkGpiAa290hrqkVpgu67Zb17mKIXWR/Pm/8OljEyPt0AaGct3Xj+AAUPKdfJrD/axG4FYyeLE+cZs0fGvtym3WzoOx1D131rKLzfJgdqeVWD2qiL50RcgVEsp8BT68aypmdnDjN9tQCLOLUDbU+djPMRO/UldWywi7UC+MdmU/UTIFVwiQ7LUYWjaN+qlWdre24SHJh9/dv1tZUS+dVtcVtA+SuHT9k6B0Y4Sb7V9wBGIez4fVg=="
        ],
        "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=PU+s70jk; arc=fail smtp.client-ip=52.101.66.9",
            "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=9eDEJjjvdauZ5NyK5r4UZU6erm3hSEAntgPB2/0oFIw=;\n b=PU+s70jk0Qo6/F51azCK0bNQhXVIpJ/H5rGrKWZgK0FSBcYhn4PdwRyjnLpxESS0/IbEX1TflEDzvT/eKdulaLZAl+h9vc1q9WCjjKz2ATTa5zqarjGd4gjJJpjd9/HPpNLHgCN8bdgjpvedryH1DFJ8LXmuIsdVG/IVsfb8EiBypeTBqjJW4AJVbWhFSTvWqJyeBexuuHRLgNStz+Q+EdwZaBvgy3etbabCNFKkyWeYsBxN7VIadB4MHHsUD1F6kDTRLaN5RFRKS8p4VjV63q3vj1AGeM+j1/wpYTY0qMfLwnTL0YeHj/5yclOPRUcplMiZ5feUjXHxiji2oB5jPg==",
        "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 V12 04/12] PCI: imx6: Add support for parsing the reset\n property in new Root Port binding",
        "Date": "Fri, 10 Apr 2026 10:30:47 +0800",
        "Message-Id": "<20260410023055.2439146-5-sherry.sun@nxp.com>",
        "X-Mailer": "git-send-email 2.37.1",
        "In-Reply-To": "<20260410023055.2439146-1-sherry.sun@nxp.com>",
        "References": "<20260410023055.2439146-1-sherry.sun@nxp.com>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "SI1PR02CA0020.apcprd02.prod.outlook.com\n (2603:1096:4:1f4::9) 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_|AS5PR04MB9826:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "27aef8b2-a32f-4a5e-a879-08de96a90f90",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|1800799024|366016|19092799006|52116014|7416014|376014|38350700014|921020|18002099003|56012099003|22082099003;",
        "X-Microsoft-Antispam-Message-Info": "\n\tFLSrfJqSz6y1AnvHW3DvWCtC+ZRTe6gMSglGv3e1AKclQ8xjE2WXb2A+bMXERHiCxx3nq3w7iQ/mk2J44khF8L/axmz4GPBp6APX7yqoG1gclcX6gkpjYD06+9rRyRuLrftXLebNA1tyaSzIGJPx0/JHFzQ7z/NBJGdlN2FpVw+RxfRCY5yC4MGOnH4eZQZpFJ0OHZWnjemWgIX90k0qxAgZZNt4BW7rADQLenrVkjs4+YB840cGbW77av0uahEFV16cReGO20HqW3IQONNQpMUakNSLqkSfemNyOdTqqDdANGUZt2r4vs7yfP61L5LKhmRw/V5ixmQIwwnY1zktjGxOl/tFJRH2TJuzSpLHOeFFEroZ8vRYDON/L6E8Il4pt4j0LfcTaiiOUNNC/YGKoJU6nIb6Dm2yC4GZwSOPbZaCkW93yWWwNLFYGEJejv9dcqxylQmkSK6V1yDbTOgPRrZD4lNeMoBjeMj57XTOOX8uvlYNfDeq9WE810FHs+eLSe+piytNc2XL6gN17oWNzx/EOhX4ifmrdzQAlrt2VzqGXtIqh0EayDirGjeIqRYmasFRVwc1Qbl3SQqysp5cBSyY/Mk3hUakKZOqg1T+ID2QlsAdRUcBgzUFGwpKmyGR3c4LXVj0fQ85PNg84pUP3kEIsiRiRERbm+5Fqrvk/yyk+tb2RXBqltyxHCIo292k8k700ycT3VVuLrP8UsqcpHAXs2IlprZT2t7QxymwTudqhgyFi3pUW2JeErjbCYEy0/TaCwST0Ey11WyAMm7R2AQNWfuK+hkYLtufjGMlvS1NfCN8p9ZgeMEdFla+zqGX",
        "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)(1800799024)(366016)(19092799006)(52116014)(7416014)(376014)(38350700014)(921020)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n Jj4NhMsIUGrjXR32sdHnFrRb9qHqaL1+ZEs8Rtkvse3yTy4A9ibW6jK2um0RECBJzmQ2ctb2scfbacsI/4ZirdQRdGkOROz9tmYIJvjYzh/3h5NgJS2aZj3c2yHZnC7vFLtrBokyKGSqcapxWkNC8SB2v+sBSKLzdLZ40cF/R86LVU+wCwnvK+7BGg8ACZKnMEASYwMSdYQhVmCnhKQpt3PNcCV0gilBObEhM7Wva10/LIyfBHZ5XwmhREc8T/wi4fWUVOmNvOmcqrf68sxOA/FvPuxtHuLCcEXBiFN5vqQpRGc9ntyxiAVyFbjVll3ABc4ih4VV+jjJkv02nJWgQSdfKvGksS3XMpI0FHLq24lcu03GCxAiAdLj8Q2Yg0okdRsAJ0nwBn4OmPyjJ6qBRAJDHKxNHwoqFdm+zI8VsnBhqLVi5qTiwellYFRWw5u4fJRoGuYAOn7h/ClQgDKvUegePzLutaZatwIvTYsCYQv6/2x59tHY1TbL8l5e8NiCxTX5RNqyfjJ51UhlNdntSh1QrOjikTJJUyv0GxL+9lfinVgoA7GGpZuffUDVbD8AB0B2964vH28I8v67qn4NrFyDhrxezOApqtRemdn2KmPQfl7rxeMbzSCnyXsdiaeSRsH1EO3dU4GKBE95+gneNaSf9ceLfthWFHfrWECsEbe8OayOiJtb2d/YVvz3zxpbI5qsWSczvNv7LFwlYI4QYICXXXZliKiMEIAVvvZJ5ahTVfu9PnHYDE2HbEMFK9T+UR6cJXVEuixUMo2XEhyJ6plHfD8viclz8/mnZSPPryEesahVpxIOR0Tvuy6wOOrP0XIuvarYMNpeV8z+2JCaDJEh0so0HUxIzWu4dw3I6DM+yxDPdodiP5kjHOX4T9z9rO/o6KYa6IOrRYNtbFYG2fR4aQ7OdPYhFnOQiSehYzhzwwKw412+14fPTwSRjSlm6laeDZ/vKEa0Ntewx29WLKjJAqhKfPcMkvkL6LxytVfs3C3d8rXdz6d45QQJyvOAD/EJxwQPiwRAKGHAktjmJxX/sXQ8w1ZCIYgd57Zg4brD+NAHNDGSZTB3lkoaUk1tt+e5zKcOziD1egqmGC547TDCgPfXp5Lq2/+S77M9ADvMKkhMt1ry/MRFa0vALj/HFO4xj8EKzxEQXz83gaInqGlAzi3q9jJYbnBfCsVe8DlUD4X20FrWE/lrXl6I2u4btCQ4rsRcRXP3E4zDZgFfa1pEQ05KfXTIiU6Ef56GMba/KgZ7ZXy24tQ3b6TdkxWSbYtjdF9Z/14dEdj5gz7bcCiwBd/NsgqKlJto2qW3jveq27xkPKVMbijkyjEZorL1e4nQDzp8l52bNeZOt81vR4rTg/UDtyZuGI4bfzhZLPmiKFnwG1dcSli+T0BcXwdkzclDhpWkJHcnQZ8DI0XxV7moJN9EylR5FF2RScjSXXT7XWvQOp9xCUFjEZtREzIdTSd4YXk0kSFMrC98I862Qg1rF9mr0bGOdbB+ebtOGa/PW+BkXYzFz9nk5swaBQFrbOPLnyreDHoAn8CICCF+c+9nn4INbglycLxt3w5q/f1IBJeNQ1Xc+ifLUks0y09n5ki3mVxw9qLSGSXKY7Ot4+i/kUAFfcgBvg0Kl5b8t29L+kVsCzTd2VDDxi2q/p91ztj4pWEhQdZ3OrdH+SgAbGOStALm0kk9bWzjTOBaOKH3HuUnAgLd1yRUPz0bESPEDf4yVYIhSAc5XcpvvoxH5Q==",
        "X-OriginatorOrg": "nxp.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 27aef8b2-a32f-4a5e-a879-08de96a90f90",
        "X-MS-Exchange-CrossTenant-AuthSource": "VI0PR04MB12114.eurprd04.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "10 Apr 2026 02:29:58.8630\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 cPlzdyFxjTXBY/DkmUt0tVjKJuT53U+DkZvlYXEdCrG8zDFhY3TsyaFbhys1MEH1Xl1bt/RVDZ0rQoaCurYN9A==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "AS5PR04MB9826"
    },
    "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\nAdd support for parsing 'reset-gpios' from Root Port child nodes using\nthe common helper pci_host_common_parse_ports(), and update the reset\nGPIO handling to use the parsed port list from bridge->ports. To\nmaintain DT backwards compatibility, fallback to the legacy method of\nparsing the host bridge node if the reset property is not present in the\nRoot Port node.\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 | 68 +++++++++++++++++++++------\n 1 file changed, 54 insertions(+), 14 deletions(-)",
    "diff": "diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c\nindex d99da7e42590..fadaf2a582dc 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@@ -152,7 +153,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@@ -1224,6 +1224,29 @@ 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+\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@@ -1233,14 +1256,21 @@ 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+\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 || list_empty(&bridge->ports))\n+\t\treturn;\n+\n \tif (assert) {\n-\t\tgpiod_set_value_cansleep(imx_pcie->reset_gpiod, 1);\n+\t\tlist_for_each_entry(port, &bridge->ports, list)\n+\t\t\tgpiod_direction_output(port->reset, 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-\t\t}\n+\t\tmdelay(PCIE_T_PVPERL_MS);\n+\t\tlist_for_each_entry(port, &bridge->ports, list)\n+\t\t\tgpiod_direction_output(port->reset, 0);\n+\t\tmdelay(PCIE_RESET_CONFIG_WAIT_MS);\n \t}\n }\n \n@@ -1249,8 +1279,25 @@ 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+\tif (bridge && list_empty(&bridge->ports)) {\n+\t\t/* Parse Root Port nodes if present */\n+\t\tret = pci_host_common_parse_ports(dev, bridge);\n+\t\tif (ret) {\n+\t\t\tif (ret != -ENOENT) {\n+\t\t\t\tdev_err(dev, \"Failed to parse Root Port nodes: %d\\n\", ret);\n+\t\t\t\treturn ret;\n+\t\t\t}\n+\n+\t\t\t/* Fallback to legacy binding for DT backwards compatibility */\n+\t\t\tret = imx_pcie_parse_legacy_binding(imx_pcie);\n+\t\t\tif (ret)\n+\t\t\t\treturn ret;\n+\t\t}\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@@ -1704,13 +1751,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": [
        "V12",
        "04/12"
    ]
}