[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID:
<VI0PR04MB12114C3AD27B4A625FE6CD1889297A@VI0PR04MB12114.eurprd04.prod.outlook.com>
Date: Thu, 22 Jan 2026 04:46:19 +0000
From: Sherry Sun <sherry.sun@....com>
To: Bjorn Helgaas <helgaas@...nel.org>
CC: Hongxing Zhu <hongxing.zhu@....com>, "l.stach@...gutronix.de"
<l.stach@...gutronix.de>, "bhelgaas@...gle.com" <bhelgaas@...gle.com>,
"lpieralisi@...nel.org" <lpieralisi@...nel.org>, "kwilczynski@...nel.org"
<kwilczynski@...nel.org>, "mani@...nel.org" <mani@...nel.org>,
"robh@...nel.org" <robh@...nel.org>, "krzk+dt@...nel.org"
<krzk+dt@...nel.org>, "conor+dt@...nel.org" <conor+dt@...nel.org>,
"shawnguo@...nel.org" <shawnguo@...nel.org>, "s.hauer@...gutronix.de"
<s.hauer@...gutronix.de>, "festevam@...il.com" <festevam@...il.com>, Frank Li
<frank.li@....com>, "kernel@...gutronix.de" <kernel@...gutronix.de>,
"linux-pci@...r.kernel.org" <linux-pci@...r.kernel.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"imx@...ts.linux.dev" <imx@...ts.linux.dev>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>, "linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>
Subject: RE: [PATCH 00/10] pci-imx6: Add support for parsing the reset
property in new Root Port binding
> On Mon, Jan 19, 2026 at 06:02:25PM +0800, Sherry Sun wrote:
> > This patch set adds support for parsing the reset property in new Root
> > Port binding in pci-imx6 driver, similar to the implementation in the
> > qcom pcie driver[1].
> >
> > The plan is to add the wake-gpio property to the root port in
> > subsequent patches. Also, the vpcie-supply property will be moved to
> > the root port node later based on the refactoring patch set for the
> > PCI pwrctrl framework[2].
> >
> > [1]
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore
> > .kernel.org%2Flinux-pci%2F20250702-perst-v5-0-920b3d1f6ee1%40qti.qualc
> >
> omm.com%2F&data=05%7C02%7Csherry.sun%40nxp.com%7C7e8defdd9684
> 411f0ee20
> >
> 8de5941a677%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C63904
> 63356634
> >
> 52311%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiI
> wLjAuMDAw
> >
> MCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C
> &sdat
> > a=jkm1JxVpIexu05qQIuwV69BTz0xIZOvpRbD3Uv7y414%3D&reserved=0
> > [2]
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore
> > .kernel.org%2Flinux-pci%2F20260115-pci-pwrctrl-rework-v5-0-9d26da3ce90
> >
> 3%40oss.qualcomm.com%2F&data=05%7C02%7Csherry.sun%40nxp.com%7C
> 7e8defdd
> >
> 9684411f0ee208de5941a677%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0
> %7C0%7C
> >
> 639046335663465203%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOn
> RydWUsIlY
> >
> iOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%
> 7C0%
> >
> 7C%7C%7C&sdata=YADwJTrzP8fhUR1zacByB1ii9Zl8NlISPINhs0WRmQs%3D&re
> served
> > =0
>
> Is there value in doing this? It looks like it might be making work for no
> benefit.
>
> Certainly for *new* drivers and DTs, we should put resets in the Root Port.
> But this looks like you're moving them in existing DTs. In that case, you still
> have to support the old DTs where the resets are in the host bridge.
>
> If you are adding support for hardware that has multiple Root Ports with
> separate resets for each Root Port, then of course you would need to put the
> reset info in per-Root Port stanzas and make changes to support that, but this
> series doesn't mention anything about multiple Root Ports.
Hi Bjorn,
The initial idea is to adopt the Manivannan’s recent PCIe M.2 Key‑E connector
support patch set [3] and PCI power control framework patches, and extend them
to the pcie‑imx6 driver. Since the new M.2/pwrctrl model is implemented based
on Root Ports and requires the pwrctrl driver to bind to a Root Port device, we
need to introduce a Root Port child node on i.MX boards that provide an M.2
connector.
To follow a more standardized DT structure, I believe it also makes sense to move
the reset-gpios and wake-gpios properties into the Root Port node. These signals
logically belong to the Root Port rather than the host bridge, and placing them
there aligns with the new M.2/pwrctrl model.
Regarding backward compatibility, as Frank suggested, I will not remove the old
reset-gpio property from existing DTS files to avoid function break. As for
whether we should backfill Root Port nodes for older DTS files, I don't have a
definitive opinion yet, hope your suggestions.
For new i.MX platforms—such as the upcoming i.MX952—we will add
vpcie-supply, reset-gpios, and wake-gpios directly under the Root Port node.
Therefore, driver updates are needed to support both the legacy properties
and the new standardized Root Port‑based layout.
[3] https://lore.kernel.org/linux-pci/20260112-pci-m2-e-v4-0-eff84d2c6d26@oss.qualcomm.com/
Best Regards
Sherry
>
> > Signed-off-by: Sherry Sun <sherry.sun@....com>
> > ---
> > Sherry Sun (10):
> > dt-bindings: PCI: fsl,imx6q-pcie: Add reset GPIO in Root Port node
> > PCI: imx6: Add support for parsing the reset property in new Root Port
> > binding
> > arm: dts: imx6qdl: Add Root Port node and move PERST property to Root
> > Port node
> > arm: dts: imx6sx: Add Root Port node and move PERST property to Root
> > Port node
> > arm: dts: imx7d: Add Root Port node and move PERST property to Root
> > Port node
> > arm64: dts: imx8mm: Add Root Port node and move PERST property to
> Root
> > Port node
> > arm64: dts: imx8mp: Add Root Port node and move PERST property to
> Root
> > Port node
> > arm64: dts: imx8mq: Add Root Port nodes and move PERST property to
> > Root Port node
> > arm64: dts: imx8dxl/qm/qxp: Add Root Port nodes and move PERST
> > property to Root Port node
> > arm64: dts: imx95: Add Root Port nodes and move PERST property to Root
> > Port node
> >
> > .../bindings/pci/fsl,imx6q-pcie.yaml | 29 ++++
> > .../arm/boot/dts/nxp/imx/imx6qdl-sabresd.dtsi | 5 +-
> > arch/arm/boot/dts/nxp/imx/imx6qdl.dtsi | 11 ++
> > .../arm/boot/dts/nxp/imx/imx6qp-sabreauto.dts | 5 +-
> > arch/arm/boot/dts/nxp/imx/imx6sx-sdb.dtsi | 5 +-
> > arch/arm/boot/dts/nxp/imx/imx6sx.dtsi | 11 ++
> > arch/arm/boot/dts/nxp/imx/imx7d-sdb.dts | 5 +-
> > arch/arm/boot/dts/nxp/imx/imx7d.dtsi | 11 ++
> > .../boot/dts/freescale/imx8-ss-hsio.dtsi | 11 ++
> > arch/arm64/boot/dts/freescale/imx8dxl-evk.dts | 5 +-
> > arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi | 5 +-
> > arch/arm64/boot/dts/freescale/imx8mm.dtsi | 11 ++
> > arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 5 +-
> > arch/arm64/boot/dts/freescale/imx8mp.dtsi | 11 ++
> > arch/arm64/boot/dts/freescale/imx8mq-evk.dts | 10 +-
> > arch/arm64/boot/dts/freescale/imx8mq.dtsi | 22 +++
> > arch/arm64/boot/dts/freescale/imx8qm-mek.dts | 10 +-
> > .../boot/dts/freescale/imx8qm-ss-hsio.dtsi | 22 +++
> > arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | 5 +-
> > .../boot/dts/freescale/imx95-15x15-evk.dts | 5 +-
> > .../boot/dts/freescale/imx95-19x19-evk.dts | 10 +-
> > arch/arm64/boot/dts/freescale/imx95.dtsi | 22 +++
> > drivers/pci/controller/dwc/pci-imx6.c | 128 ++++++++++++++++--
> > 23 files changed, 335 insertions(+), 29 deletions(-)
> >
> > --
> > 2.37.1
> >
Powered by blists - more mailing lists