mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees
@ 2026-05-20  8:48 Sherry Sun (OSS)
  2026-05-20  8:48 ` [PATCH V3 1/8] PCI: imx6: Integrate new pwrctrl API for pci-imx6 Sherry Sun (OSS)
                   ` (12 more replies)
  0 siblings, 13 replies; 19+ messages in thread
From: Sherry Sun (OSS) @ 2026-05-20  8:48 UTC (permalink / raw)
  To: robh, krzk+dt, conor+dt, Frank.Li, s.hauer, kernel, festevam,
	lpieralisi, kwilczynski, mani, bhelgaas, hongxing.zhu, l.stach
  Cc: imx, linux-pci, linux-arm-kernel, devicetree, linux-kernel, sherry.sun

From: Sherry Sun <sherry.sun@nxp.com>

This series integrates the PCI pwrctrl framework into the pci-imx6
driver and updates i.MX EVK board device trees to support it.

Patches 2-8 update device trees for i.MX EVK boards which maintained
by NXP to move power supply properties from the PCIe controller node
to the Root Port child node, which is required for pwrctrl framework.
Affected boards:
- i.MX6Q/DL SABRESD
- i.MX6SX SDB
- i.MX8MM EVK
- i.MX8MP EVK
- i.MX8MQ EVK
- i.MX8DXL/QM/QXP EVK
- i.MX95 15x15/19x19 EVK

The driver maintains legacy regulator handling for device trees that
haven't been updated yet. Both old and new device tree structures are
supported.

Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
---
Changes in V3:
1. Rebased on top of latest 7.1.0-rc4

Changes in V2:
1. After commit 2d8c5098b847 ("PCI/pwrctrl: Do not power off on pwrctrl
   device removal"), the pwrctrl drivers no longer power off devices
   during removal. Update pci-imx6 driver's shutdown callback in patch#1
   to explicitly call pci_pwrctrl_power_off_devices() before 
   pci_pwrctrl_destroy_devices() to ensure devices are properly powered
   off.
---

Sherry Sun (8):
  PCI: imx6: Integrate new pwrctrl API for pci-imx6
  arm: dts: imx6qdl-sabresd: Move power supply property to Root Port
    node
  arm: dts: imx6sx-sdb: Move power supply property to Root Port node
  arm64: dts: imx8mm-evk: Move power supply property to Root Port node
  arm64: dts: imx8mp-evk: Move power supply properties to Root Port node
  arm64: dts: imx8mq-evk: Move power supply properties to Root Port node
  arm64: dts: imx8dxl/qm/qxp: Move power supply properties to Root Port
    node
  arm64: dts: imx95: Move power supply properties to Root Port node

 .../arm/boot/dts/nxp/imx/imx6qdl-sabresd.dtsi |  2 +-
 arch/arm/boot/dts/nxp/imx/imx6sx-sdb.dtsi     |  2 +-
 arch/arm64/boot/dts/freescale/imx8dxl-evk.dts |  4 ++--
 arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi |  2 +-
 arch/arm64/boot/dts/freescale/imx8mp-evk.dts  |  4 ++--
 arch/arm64/boot/dts/freescale/imx8mq-evk.dts  |  4 ++--
 arch/arm64/boot/dts/freescale/imx8qm-mek.dts  |  4 ++--
 arch/arm64/boot/dts/freescale/imx8qxp-mek.dts |  4 ++--
 .../boot/dts/freescale/imx95-15x15-evk.dts    |  4 ++--
 .../boot/dts/freescale/imx95-19x19-evk.dts    |  8 +++----
 drivers/pci/controller/dwc/Kconfig            |  1 +
 drivers/pci/controller/dwc/pci-imx6.c         | 24 ++++++++++++++++++-
 12 files changed, 43 insertions(+), 20 deletions(-)

-- 
2.37.1


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH V3 1/8] PCI: imx6: Integrate new pwrctrl API for pci-imx6
  2026-05-20  8:48 [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Sherry Sun (OSS)
@ 2026-05-20  8:48 ` Sherry Sun (OSS)
  2026-05-20 18:38   ` Frank Li
  2026-05-20  8:48 ` [PATCH V3 2/8] arm: dts: imx6qdl-sabresd: Move power supply property to Root Port node Sherry Sun (OSS)
                   ` (11 subsequent siblings)
  12 siblings, 1 reply; 19+ messages in thread
From: Sherry Sun (OSS) @ 2026-05-20  8:48 UTC (permalink / raw)
  To: robh, krzk+dt, conor+dt, Frank.Li, s.hauer, kernel, festevam,
	lpieralisi, kwilczynski, mani, bhelgaas, hongxing.zhu, l.stach
  Cc: imx, linux-pci, linux-arm-kernel, devicetree, linux-kernel, sherry.sun

From: Sherry Sun <sherry.sun@nxp.com>

Integrate the PCI pwrctrl framework into the pci-imx6 driver to provide
standardized power management for PCIe devices.

Legacy regulator handling (vpcie-supply at controller level) is
maintained for backward compatibility with existing device trees.
New device trees should specify power supplies at the Root Port
level to utilize the pwrctrl framework.

Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
---
 drivers/pci/controller/dwc/Kconfig    |  1 +
 drivers/pci/controller/dwc/pci-imx6.c | 24 +++++++++++++++++++++++-
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dwc/Kconfig
index 216ede0a867e..aa0b784c85b4 100644
--- a/drivers/pci/controller/dwc/Kconfig
+++ b/drivers/pci/controller/dwc/Kconfig
@@ -114,6 +114,7 @@ config PCI_IMX6_HOST
 	depends on PCI_MSI
 	select PCIE_DW_HOST
 	select PCI_IMX6
+	select PCI_PWRCTRL_GENERIC
 	help
 	  Enables support for the PCIe controller in the i.MX SoCs to
 	  work in Root Complex mode. The PCI controller on i.MX is based
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index 773ab65b2afa..b137551871fc 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -20,6 +20,7 @@
 #include <linux/of.h>
 #include <linux/of_address.h>
 #include <linux/pci.h>
+#include <linux/pci-pwrctrl.h>
 #include <linux/platform_device.h>
 #include <linux/regmap.h>
 #include <linux/regulator/consumer.h>
@@ -1331,6 +1332,7 @@ static int imx_pcie_host_init(struct dw_pcie_rp *pp)
 			return ret;
 	}
 
+	/* Legacy regulator handling for DT backward compatibility. */
 	if (imx_pcie->vpcie) {
 		ret = regulator_enable(imx_pcie->vpcie);
 		if (ret) {
@@ -1340,10 +1342,22 @@ static int imx_pcie_host_init(struct dw_pcie_rp *pp)
 		}
 	}
 
+	ret = pci_pwrctrl_create_devices(dev);
+	if (ret) {
+		dev_err(dev, "failed to create pwrctrl devices\n");
+		goto err_reg_disable;
+	}
+
+	ret = pci_pwrctrl_power_on_devices(dev);
+	if (ret) {
+		dev_err(dev, "failed to power on pwrctrl devices\n");
+		goto err_pwrctrl_destroy;
+	}
+
 	ret = imx_pcie_clk_enable(imx_pcie);
 	if (ret) {
 		dev_err(dev, "unable to enable pcie clocks: %d\n", ret);
-		goto err_reg_disable;
+		goto err_pwrctrl_power_off;
 	}
 
 	if (pp->bridge && imx_check_flag(imx_pcie, IMX_PCIE_FLAG_HAS_LUT)) {
@@ -1402,6 +1416,11 @@ static int imx_pcie_host_init(struct dw_pcie_rp *pp)
 	phy_exit(imx_pcie->phy);
 err_clk_disable:
 	imx_pcie_clk_disable(imx_pcie);
+err_pwrctrl_power_off:
+	pci_pwrctrl_power_off_devices(dev);
+err_pwrctrl_destroy:
+	if (ret != -EPROBE_DEFER)
+		pci_pwrctrl_destroy_devices(dev);
 err_reg_disable:
 	if (imx_pcie->vpcie)
 		regulator_disable(imx_pcie->vpcie);
@@ -1420,6 +1439,7 @@ static void imx_pcie_host_exit(struct dw_pcie_rp *pp)
 	}
 	imx_pcie_clk_disable(imx_pcie);
 
+	pci_pwrctrl_power_off_devices(pci->dev);
 	if (imx_pcie->vpcie)
 		regulator_disable(imx_pcie->vpcie);
 }
@@ -1931,6 +1951,8 @@ static void imx_pcie_shutdown(struct platform_device *pdev)
 	/* bring down link, so bootloader gets clean state in case of reboot */
 	imx_pcie_assert_core_reset(imx_pcie);
 	imx_pcie_assert_perst(imx_pcie, true);
+	pci_pwrctrl_power_off_devices(&pdev->dev);
+	pci_pwrctrl_destroy_devices(&pdev->dev);
 }
 
 static const struct imx_pcie_drvdata drvdata[] = {
-- 
2.37.1


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH V3 2/8] arm: dts: imx6qdl-sabresd: Move power supply property to Root Port node
  2026-05-20  8:48 [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Sherry Sun (OSS)
  2026-05-20  8:48 ` [PATCH V3 1/8] PCI: imx6: Integrate new pwrctrl API for pci-imx6 Sherry Sun (OSS)
@ 2026-05-20  8:48 ` Sherry Sun (OSS)
  2026-05-20  8:48 ` [PATCH V3 3/8] arm: dts: imx6sx-sdb: " Sherry Sun (OSS)
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 19+ messages in thread
From: Sherry Sun (OSS) @ 2026-05-20  8:48 UTC (permalink / raw)
  To: robh, krzk+dt, conor+dt, Frank.Li, s.hauer, kernel, festevam,
	lpieralisi, kwilczynski, mani, bhelgaas, hongxing.zhu, l.stach
  Cc: imx, linux-pci, linux-arm-kernel, devicetree, linux-kernel, sherry.sun

From: Sherry Sun <sherry.sun@nxp.com>

Move the vpcie-supply property from the PCIe controller node to the Root
Port child node to support the new PCI pwrctrl framework.

Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
---
 arch/arm/boot/dts/nxp/imx/imx6qdl-sabresd.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-sabresd.dtsi b/arch/arm/boot/dts/nxp/imx/imx6qdl-sabresd.dtsi
index fe9046c03ddd..e52205d7c487 100644
--- a/arch/arm/boot/dts/nxp/imx/imx6qdl-sabresd.dtsi
+++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-sabresd.dtsi
@@ -756,12 +756,12 @@ &pcie {
 	pinctrl-0 = <&pinctrl_pcie>;
 	/* This property is deprecated, use reset-gpios from the Root Port node. */
 	reset-gpio = <&gpio7 12 GPIO_ACTIVE_LOW>;
-	vpcie-supply = <&reg_pcie>;
 	status = "okay";
 };
 
 &pcie_port0 {
 	reset-gpios = <&gpio7 12 GPIO_ACTIVE_LOW>;
+	vpcie-supply = <&reg_pcie>;
 };
 
 &pwm1 {
-- 
2.37.1


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH V3 3/8] arm: dts: imx6sx-sdb: Move power supply property to Root Port node
  2026-05-20  8:48 [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Sherry Sun (OSS)
  2026-05-20  8:48 ` [PATCH V3 1/8] PCI: imx6: Integrate new pwrctrl API for pci-imx6 Sherry Sun (OSS)
  2026-05-20  8:48 ` [PATCH V3 2/8] arm: dts: imx6qdl-sabresd: Move power supply property to Root Port node Sherry Sun (OSS)
@ 2026-05-20  8:48 ` Sherry Sun (OSS)
  2026-05-20  8:49 ` [PATCH V3 4/8] arm64: dts: imx8mm-evk: " Sherry Sun (OSS)
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 19+ messages in thread
From: Sherry Sun (OSS) @ 2026-05-20  8:48 UTC (permalink / raw)
  To: robh, krzk+dt, conor+dt, Frank.Li, s.hauer, kernel, festevam,
	lpieralisi, kwilczynski, mani, bhelgaas, hongxing.zhu, l.stach
  Cc: imx, linux-pci, linux-arm-kernel, devicetree, linux-kernel, sherry.sun

From: Sherry Sun <sherry.sun@nxp.com>

Move the vpcie-supply property from the PCIe controller node to the Root
Port child node to support the new PCI pwrctrl framework.

Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
---
 arch/arm/boot/dts/nxp/imx/imx6sx-sdb.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/nxp/imx/imx6sx-sdb.dtsi b/arch/arm/boot/dts/nxp/imx/imx6sx-sdb.dtsi
index 338de4d144b2..7633ba2139d3 100644
--- a/arch/arm/boot/dts/nxp/imx/imx6sx-sdb.dtsi
+++ b/arch/arm/boot/dts/nxp/imx/imx6sx-sdb.dtsi
@@ -284,12 +284,12 @@ &pcie {
 	pinctrl-0 = <&pinctrl_pcie>;
 	/* This property is deprecated, use reset-gpios from the Root Port node. */
 	reset-gpio = <&gpio2 0 GPIO_ACTIVE_LOW>;
-	vpcie-supply = <&reg_pcie_gpio>;
 	status = "okay";
 };
 
 &pcie_port0 {
 	reset-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
+	vpcie-supply = <&reg_pcie_gpio>;
 };
 
 &lcdif1 {
-- 
2.37.1


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH V3 4/8] arm64: dts: imx8mm-evk: Move power supply property to Root Port node
  2026-05-20  8:48 [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Sherry Sun (OSS)
                   ` (2 preceding siblings ...)
  2026-05-20  8:48 ` [PATCH V3 3/8] arm: dts: imx6sx-sdb: " Sherry Sun (OSS)
@ 2026-05-20  8:49 ` Sherry Sun (OSS)
  2026-05-20  8:49 ` [PATCH V3 5/8] arm64: dts: imx8mp-evk: Move power supply properties " Sherry Sun (OSS)
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 19+ messages in thread
From: Sherry Sun (OSS) @ 2026-05-20  8:49 UTC (permalink / raw)
  To: robh, krzk+dt, conor+dt, Frank.Li, s.hauer, kernel, festevam,
	lpieralisi, kwilczynski, mani, bhelgaas, hongxing.zhu, l.stach
  Cc: imx, linux-pci, linux-arm-kernel, devicetree, linux-kernel, sherry.sun

From: Sherry Sun <sherry.sun@nxp.com>

Move the vpcie-supply property from the PCIe controller node to the Root
Port child node to support the new PCI pwrctrl framework.

Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
---
 arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi
index e03aba825c18..ba7fa0815d13 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi
@@ -542,7 +542,6 @@ &pcie0 {
 	assigned-clock-rates = <10000000>, <250000000>;
 	assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_50M>,
 				 <&clk IMX8MM_SYS_PLL2_250M>;
-	vpcie-supply = <&reg_pcie0>;
 	supports-clkreq;
 	status = "okay";
 };
@@ -562,6 +561,7 @@ &pcie0_ep {
 
 &pcie0_port0 {
 	reset-gpios = <&gpio4 21 GPIO_ACTIVE_LOW>;
+	vpcie-supply = <&reg_pcie0>;
 };
 
 &sai2 {
-- 
2.37.1


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH V3 5/8] arm64: dts: imx8mp-evk: Move power supply properties to Root Port node
  2026-05-20  8:48 [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Sherry Sun (OSS)
                   ` (3 preceding siblings ...)
  2026-05-20  8:49 ` [PATCH V3 4/8] arm64: dts: imx8mm-evk: " Sherry Sun (OSS)
@ 2026-05-20  8:49 ` Sherry Sun (OSS)
  2026-05-20  8:49 ` [PATCH V3 6/8] arm64: dts: imx8mq-evk: " Sherry Sun (OSS)
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 19+ messages in thread
From: Sherry Sun (OSS) @ 2026-05-20  8:49 UTC (permalink / raw)
  To: robh, krzk+dt, conor+dt, Frank.Li, s.hauer, kernel, festevam,
	lpieralisi, kwilczynski, mani, bhelgaas, hongxing.zhu, l.stach
  Cc: imx, linux-pci, linux-arm-kernel, devicetree, linux-kernel, sherry.sun

From: Sherry Sun <sherry.sun@nxp.com>

Move the vpcie-supply and vpcie3v3aux-supply properties from the PCIe
controller node to the Root Port child node to support the new PCI
pwrctrl framework.

Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
---
 arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
index a7f3acdc36d1..cb2b820cf3bc 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
@@ -772,8 +772,6 @@ &pcie0 {
 	pinctrl-0 = <&pinctrl_pcie0>;
 	/* This property is deprecated, use reset-gpios from the Root Port node. */
 	reset-gpio = <&gpio2 7 GPIO_ACTIVE_LOW>;
-	vpcie-supply = <&reg_pcie0>;
-	vpcie3v3aux-supply = <&reg_pcie0>;
 	supports-clkreq;
 	status = "disabled";
 };
@@ -786,6 +784,8 @@ &pcie0_ep {
 
 &pcie0_port0 {
 	reset-gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
+	vpcie-supply = <&reg_pcie0>;
+	vpcie3v3aux-supply = <&reg_pcie0>;
 };
 
 &pwm1 {
-- 
2.37.1


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH V3 6/8] arm64: dts: imx8mq-evk: Move power supply properties to Root Port node
  2026-05-20  8:48 [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Sherry Sun (OSS)
                   ` (4 preceding siblings ...)
  2026-05-20  8:49 ` [PATCH V3 5/8] arm64: dts: imx8mp-evk: Move power supply properties " Sherry Sun (OSS)
@ 2026-05-20  8:49 ` Sherry Sun (OSS)
  2026-05-20  8:49 ` [PATCH V3 7/8] arm64: dts: imx8dxl/qm/qxp: " Sherry Sun (OSS)
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 19+ messages in thread
From: Sherry Sun (OSS) @ 2026-05-20  8:49 UTC (permalink / raw)
  To: robh, krzk+dt, conor+dt, Frank.Li, s.hauer, kernel, festevam,
	lpieralisi, kwilczynski, mani, bhelgaas, hongxing.zhu, l.stach
  Cc: imx, linux-pci, linux-arm-kernel, devicetree, linux-kernel, sherry.sun

From: Sherry Sun <sherry.sun@nxp.com>

Move the vpcie-supply and vpcie3v3aux-supply properties from the PCIe
controller node to the Root Port child node to support the new PCI
pwrctrl framework.

Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
---
 arch/arm64/boot/dts/freescale/imx8mq-evk.dts | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
index e7d87ea81b69..75d9b25d1f0e 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
@@ -403,8 +403,6 @@ &pcie1 {
 		 <&pcie0_refclk>,
 		 <&clk IMX8MQ_CLK_PCIE2_PHY>,
 		 <&clk IMX8MQ_CLK_PCIE2_AUX>;
-	vpcie-supply = <&reg_pcie1>;
-	vpcie3v3aux-supply = <&reg_pcie1>;
 	vph-supply = <&vgen5_reg>;
 	supports-clkreq;
 	status = "okay";
@@ -422,6 +420,8 @@ &pcie1_ep {
 
 &pcie1_port0 {
 	reset-gpios = <&gpio5 12 GPIO_ACTIVE_LOW>;
+	vpcie-supply = <&reg_pcie1>;
+	vpcie3v3aux-supply = <&reg_pcie1>;
 };
 
 &pgc_gpu {
-- 
2.37.1


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH V3 7/8] arm64: dts: imx8dxl/qm/qxp: Move power supply properties to Root Port node
  2026-05-20  8:48 [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Sherry Sun (OSS)
                   ` (5 preceding siblings ...)
  2026-05-20  8:49 ` [PATCH V3 6/8] arm64: dts: imx8mq-evk: " Sherry Sun (OSS)
@ 2026-05-20  8:49 ` Sherry Sun (OSS)
  2026-05-20  8:49 ` [PATCH V3 8/8] arm64: dts: imx95: " Sherry Sun (OSS)
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 19+ messages in thread
From: Sherry Sun (OSS) @ 2026-05-20  8:49 UTC (permalink / raw)
  To: robh, krzk+dt, conor+dt, Frank.Li, s.hauer, kernel, festevam,
	lpieralisi, kwilczynski, mani, bhelgaas, hongxing.zhu, l.stach
  Cc: imx, linux-pci, linux-arm-kernel, devicetree, linux-kernel, sherry.sun

From: Sherry Sun <sherry.sun@nxp.com>

Move the vpcie-supply and vpcie3v3aux-supply properties from the PCIe
controller nodes to the Root Port child nodes to support the new PCI
pwrctrl framework.

Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
---
 arch/arm64/boot/dts/freescale/imx8dxl-evk.dts | 4 ++--
 arch/arm64/boot/dts/freescale/imx8qm-mek.dts  | 4 ++--
 arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
index 78e8d41e6791..1084164d1381 100644
--- a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
@@ -677,8 +677,6 @@ &pcie0 {
 	pinctrl-names = "default";
 	/* This property is deprecated, use reset-gpios from the Root Port node. */
 	reset-gpio = <&lsio_gpio4 0 GPIO_ACTIVE_LOW>;
-	vpcie-supply = <&reg_pcieb>;
-	vpcie3v3aux-supply = <&reg_pcieb>;
 	status = "okay";
 };
 
@@ -692,6 +690,8 @@ &pcie0_ep {
 
 &pcieb_port0 {
 	reset-gpios = <&lsio_gpio4 0 GPIO_ACTIVE_LOW>;
+	vpcie-supply = <&reg_pcieb>;
+	vpcie3v3aux-supply = <&reg_pcieb>;
 };
 
 &sai0 {
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-mek.dts b/arch/arm64/boot/dts/freescale/imx8qm-mek.dts
index f706c86137c0..5e725ad8aef9 100644
--- a/arch/arm64/boot/dts/freescale/imx8qm-mek.dts
+++ b/arch/arm64/boot/dts/freescale/imx8qm-mek.dts
@@ -812,14 +812,14 @@ &pciea {
 	pinctrl-names = "default";
 	/* This property is deprecated, use reset-gpios from the Root Port node. */
 	reset-gpio = <&lsio_gpio4 29 GPIO_ACTIVE_LOW>;
-	vpcie-supply = <&reg_pciea>;
-	vpcie3v3aux-supply = <&reg_pciea>;
 	supports-clkreq;
 	status = "okay";
 };
 
 &pciea_port0 {
 	reset-gpios = <&lsio_gpio4 29 GPIO_ACTIVE_LOW>;
+	vpcie-supply = <&reg_pciea>;
+	vpcie3v3aux-supply = <&reg_pciea>;
 };
 
 &pcieb {
diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
index 2af32eca612a..a9b967d0a9be 100644
--- a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
+++ b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
@@ -732,8 +732,6 @@ &pcie0 {
 	pinctrl-names = "default";
 	/* This property is deprecated, use reset-gpios from the Root Port node. */
 	reset-gpios = <&lsio_gpio4 0 GPIO_ACTIVE_LOW>;
-	vpcie-supply = <&reg_pcieb>;
-	vpcie3v3aux-supply = <&reg_pcieb>;
 	supports-clkreq;
 	status = "okay";
 };
@@ -748,6 +746,8 @@ &pcie0_ep {
 
 &pcieb_port0 {
 	reset-gpios = <&lsio_gpio4 0 GPIO_ACTIVE_LOW>;
+	vpcie-supply = <&reg_pcieb>;
+	vpcie3v3aux-supply = <&reg_pcieb>;
 };
 
 &scu_key {
-- 
2.37.1


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH V3 8/8] arm64: dts: imx95: Move power supply properties to Root Port node
  2026-05-20  8:48 [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Sherry Sun (OSS)
                   ` (6 preceding siblings ...)
  2026-05-20  8:49 ` [PATCH V3 7/8] arm64: dts: imx8dxl/qm/qxp: " Sherry Sun (OSS)
@ 2026-05-20  8:49 ` Sherry Sun (OSS)
  2026-05-21  3:37 ` [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Hongxing Zhu (OSS)
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 19+ messages in thread
From: Sherry Sun (OSS) @ 2026-05-20  8:49 UTC (permalink / raw)
  To: robh, krzk+dt, conor+dt, Frank.Li, s.hauer, kernel, festevam,
	lpieralisi, kwilczynski, mani, bhelgaas, hongxing.zhu, l.stach
  Cc: imx, linux-pci, linux-arm-kernel, devicetree, linux-kernel, sherry.sun

From: Sherry Sun <sherry.sun@nxp.com>

Move the vpcie-supply and vpcie3v3aux-supply properties from the PCIe
controller nodes to the Root Port child nodes to support the new PCI
pwrctrl framework.

Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
---
 arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts | 4 ++--
 arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts b/arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts
index 7d820a0f80b2..0d1cdfd54cce 100644
--- a/arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts
@@ -555,8 +555,6 @@ &pcie0 {
 	pinctrl-names = "default";
 	/* This property is deprecated, use reset-gpios from the Root Port node. */
 	reset-gpio = <&gpio5 13 GPIO_ACTIVE_LOW>;
-	vpcie-supply = <&reg_m2_pwr>;
-	vpcie3v3aux-supply = <&reg_m2_pwr>;
 	supports-clkreq;
 	status = "disabled";
 };
@@ -570,6 +568,8 @@ &pcie0_ep {
 
 &pcie0_port0 {
 	reset-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
+	vpcie-supply = <&reg_m2_pwr>;
+	vpcie3v3aux-supply = <&reg_m2_pwr>;
 };
 
 &sai1 {
diff --git a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts
index 2e463bc7c601..c08731dfb1ee 100644
--- a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts
@@ -542,8 +542,6 @@ &pcie0 {
 	pinctrl-names = "default";
 	/* This property is deprecated, use reset-gpios from the Root Port node. */
 	reset-gpio = <&i2c7_pcal6524 5 GPIO_ACTIVE_LOW>;
-	vpcie-supply = <&reg_pcie0>;
-	vpcie3v3aux-supply = <&reg_pcie0>;
 	supports-clkreq;
 	status = "okay";
 };
@@ -557,6 +555,8 @@ &pcie0_ep {
 
 &pcie0_port0 {
 	reset-gpios = <&i2c7_pcal6524 5 GPIO_ACTIVE_LOW>;
+	vpcie-supply = <&reg_pcie0>;
+	vpcie3v3aux-supply = <&reg_pcie0>;
 };
 
 &pcie1 {
@@ -564,8 +564,6 @@ &pcie1 {
 	pinctrl-names = "default";
 	/* This property is deprecated, use reset-gpios from the Root Port node. */
 	reset-gpio = <&i2c7_pcal6524 16 GPIO_ACTIVE_LOW>;
-	vpcie-supply = <&reg_slot_pwr>;
-	vpcie3v3aux-supply = <&reg_slot_pwr>;
 	status = "okay";
 };
 
@@ -578,6 +576,8 @@ &pcie1_ep {
 
 &pcie1_port0 {
 	reset-gpios = <&i2c7_pcal6524 16 GPIO_ACTIVE_LOW>;
+	vpcie-supply = <&reg_slot_pwr>;
+	vpcie3v3aux-supply = <&reg_slot_pwr>;
 };
 
 &sai1 {
-- 
2.37.1


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH V3 1/8] PCI: imx6: Integrate new pwrctrl API for pci-imx6
  2026-05-20  8:48 ` [PATCH V3 1/8] PCI: imx6: Integrate new pwrctrl API for pci-imx6 Sherry Sun (OSS)
@ 2026-05-20 18:38   ` Frank Li
  0 siblings, 0 replies; 19+ messages in thread
From: Frank Li @ 2026-05-20 18:38 UTC (permalink / raw)
  To: Sherry Sun (OSS)
  Cc: robh, krzk+dt, conor+dt, s.hauer, kernel, festevam, lpieralisi,
	kwilczynski, mani, bhelgaas, hongxing.zhu, l.stach, imx,
	linux-pci, linux-arm-kernel, devicetree, linux-kernel,
	sherry.sun

On Wed, May 20, 2026 at 04:48:57PM +0800, Sherry Sun (OSS) wrote:
> From: Sherry Sun <sherry.sun@nxp.com>
>
> Integrate the PCI pwrctrl framework into the pci-imx6 driver to provide
> standardized power management for PCIe devices.
>
> Legacy regulator handling (vpcie-supply at controller level) is
> maintained for backward compatibility with existing device trees.
> New device trees should specify power supplies at the Root Port
> level to utilize the pwrctrl framework.
>
> Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
> ---

Reviewed-by: Frank Li <Frank.Li@nxp.com>

>  drivers/pci/controller/dwc/Kconfig    |  1 +
>  drivers/pci/controller/dwc/pci-imx6.c | 24 +++++++++++++++++++++++-
>  2 files changed, 24 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dwc/Kconfig
> index 216ede0a867e..aa0b784c85b4 100644
> --- a/drivers/pci/controller/dwc/Kconfig
> +++ b/drivers/pci/controller/dwc/Kconfig
> @@ -114,6 +114,7 @@ config PCI_IMX6_HOST
>  	depends on PCI_MSI
>  	select PCIE_DW_HOST
>  	select PCI_IMX6
> +	select PCI_PWRCTRL_GENERIC
>  	help
>  	  Enables support for the PCIe controller in the i.MX SoCs to
>  	  work in Root Complex mode. The PCI controller on i.MX is based
> diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
> index 773ab65b2afa..b137551871fc 100644
> --- a/drivers/pci/controller/dwc/pci-imx6.c
> +++ b/drivers/pci/controller/dwc/pci-imx6.c
> @@ -20,6 +20,7 @@
>  #include <linux/of.h>
>  #include <linux/of_address.h>
>  #include <linux/pci.h>
> +#include <linux/pci-pwrctrl.h>
>  #include <linux/platform_device.h>
>  #include <linux/regmap.h>
>  #include <linux/regulator/consumer.h>
> @@ -1331,6 +1332,7 @@ static int imx_pcie_host_init(struct dw_pcie_rp *pp)
>  			return ret;
>  	}
>
> +	/* Legacy regulator handling for DT backward compatibility. */
>  	if (imx_pcie->vpcie) {
>  		ret = regulator_enable(imx_pcie->vpcie);
>  		if (ret) {
> @@ -1340,10 +1342,22 @@ static int imx_pcie_host_init(struct dw_pcie_rp *pp)
>  		}
>  	}
>
> +	ret = pci_pwrctrl_create_devices(dev);
> +	if (ret) {
> +		dev_err(dev, "failed to create pwrctrl devices\n");
> +		goto err_reg_disable;
> +	}
> +
> +	ret = pci_pwrctrl_power_on_devices(dev);
> +	if (ret) {
> +		dev_err(dev, "failed to power on pwrctrl devices\n");
> +		goto err_pwrctrl_destroy;
> +	}
> +
>  	ret = imx_pcie_clk_enable(imx_pcie);
>  	if (ret) {
>  		dev_err(dev, "unable to enable pcie clocks: %d\n", ret);
> -		goto err_reg_disable;
> +		goto err_pwrctrl_power_off;
>  	}
>
>  	if (pp->bridge && imx_check_flag(imx_pcie, IMX_PCIE_FLAG_HAS_LUT)) {
> @@ -1402,6 +1416,11 @@ static int imx_pcie_host_init(struct dw_pcie_rp *pp)
>  	phy_exit(imx_pcie->phy);
>  err_clk_disable:
>  	imx_pcie_clk_disable(imx_pcie);
> +err_pwrctrl_power_off:
> +	pci_pwrctrl_power_off_devices(dev);
> +err_pwrctrl_destroy:
> +	if (ret != -EPROBE_DEFER)
> +		pci_pwrctrl_destroy_devices(dev);
>  err_reg_disable:
>  	if (imx_pcie->vpcie)
>  		regulator_disable(imx_pcie->vpcie);
> @@ -1420,6 +1439,7 @@ static void imx_pcie_host_exit(struct dw_pcie_rp *pp)
>  	}
>  	imx_pcie_clk_disable(imx_pcie);
>
> +	pci_pwrctrl_power_off_devices(pci->dev);
>  	if (imx_pcie->vpcie)
>  		regulator_disable(imx_pcie->vpcie);
>  }
> @@ -1931,6 +1951,8 @@ static void imx_pcie_shutdown(struct platform_device *pdev)
>  	/* bring down link, so bootloader gets clean state in case of reboot */
>  	imx_pcie_assert_core_reset(imx_pcie);
>  	imx_pcie_assert_perst(imx_pcie, true);
> +	pci_pwrctrl_power_off_devices(&pdev->dev);
> +	pci_pwrctrl_destroy_devices(&pdev->dev);
>  }
>
>  static const struct imx_pcie_drvdata drvdata[] = {
> --
> 2.37.1
>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* RE: [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees
  2026-05-20  8:48 [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Sherry Sun (OSS)
                   ` (7 preceding siblings ...)
  2026-05-20  8:49 ` [PATCH V3 8/8] arm64: dts: imx95: " Sherry Sun (OSS)
@ 2026-05-21  3:37 ` Hongxing Zhu (OSS)
  2026-05-21  4:40   ` Sherry Sun
  2026-06-10 13:48 ` (subset) " Manivannan Sadhasivam
                   ` (3 subsequent siblings)
  12 siblings, 1 reply; 19+ messages in thread
From: Hongxing Zhu (OSS) @ 2026-05-21  3:37 UTC (permalink / raw)
  To: Sherry Sun (OSS),
	robh, krzk+dt, conor+dt, Frank Li, s.hauer, kernel, festevam,
	lpieralisi, kwilczynski, mani, bhelgaas, l.stach
  Cc: imx, linux-pci, linux-arm-kernel, devicetree, linux-kernel, Sherry Sun

> -----Original Message-----
> From: Sherry Sun (OSS) <sherry.sun@oss.nxp.com>
> Sent: Wednesday, May 20, 2026 4:49 PM
> To: robh@kernel.org; krzk+dt@kernel.org; conor+dt@kernel.org; Frank Li
> <frank.li@nxp.com>; s.hauer@pengutronix.de; kernel@pengutronix.de;
> festevam@gmail.com; lpieralisi@kernel.org; kwilczynski@kernel.org;
> mani@kernel.org; bhelgaas@google.com; Hongxing Zhu
> <hongxing.zhu@nxp.com>; l.stach@pengutronix.de
> Cc: imx@lists.linux.dev; linux-pci@vger.kernel.org; linux-arm-
> kernel@lists.infradead.org; devicetree@vger.kernel.org; linux-
> kernel@vger.kernel.org; Sherry Sun <sherry.sun@nxp.com>
> Subject: [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees
> 
> From: Sherry Sun <sherry.sun@nxp.com>
> 
> This series integrates the PCI pwrctrl framework into the pci-imx6 driver and
> updates i.MX EVK board device trees to support it.
> 
> Patches 2-8 update device trees for i.MX EVK boards which maintained by NXP to
> move power supply properties from the PCIe controller node to the Root Port
> child node, which is required for pwrctrl framework.
> Affected boards:
> - i.MX6Q/DL SABRESD
> - i.MX6SX SDB
> - i.MX8MM EVK
> - i.MX8MP EVK
> - i.MX8MQ EVK
> - i.MX8DXL/QM/QXP EVK
> - i.MX95 15x15/19x19 EVK
> 
> The driver maintains legacy regulator handling for device trees that haven't been
> updated yet. Both old and new device tree structures are supported.
> 
> Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
Hi Sherry:
Since the vpcie3v3aux is used to power up the WAKE#, it is always on in this
pwrctrl framework whatever the system is in suspend or not, right?

Best Regards
Richard Zhu
> ---
> Changes in V3:
> 1. Rebased on top of latest 7.1.0-rc4
> 
> Changes in V2:
> 1. After commit 2d8c5098b847 ("PCI/pwrctrl: Do not power off on pwrctrl
>    device removal"), the pwrctrl drivers no longer power off devices
>    during removal. Update pci-imx6 driver's shutdown callback in patch#1
>    to explicitly call pci_pwrctrl_power_off_devices() before
>    pci_pwrctrl_destroy_devices() to ensure devices are properly powered
>    off.
> ---
> 
> Sherry Sun (8):
>   PCI: imx6: Integrate new pwrctrl API for pci-imx6
>   arm: dts: imx6qdl-sabresd: Move power supply property to Root Port
>     node
>   arm: dts: imx6sx-sdb: Move power supply property to Root Port node
>   arm64: dts: imx8mm-evk: Move power supply property to Root Port node
>   arm64: dts: imx8mp-evk: Move power supply properties to Root Port node
>   arm64: dts: imx8mq-evk: Move power supply properties to Root Port node
>   arm64: dts: imx8dxl/qm/qxp: Move power supply properties to Root Port
>     node
>   arm64: dts: imx95: Move power supply properties to Root Port node
> 
>  .../arm/boot/dts/nxp/imx/imx6qdl-sabresd.dtsi |  2 +-
>  arch/arm/boot/dts/nxp/imx/imx6sx-sdb.dtsi     |  2 +-
>  arch/arm64/boot/dts/freescale/imx8dxl-evk.dts |  4 ++--
> arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi |  2 +-
> arch/arm64/boot/dts/freescale/imx8mp-evk.dts  |  4 ++--
> arch/arm64/boot/dts/freescale/imx8mq-evk.dts  |  4 ++--
> arch/arm64/boot/dts/freescale/imx8qm-mek.dts  |  4 ++--
> arch/arm64/boot/dts/freescale/imx8qxp-mek.dts |  4 ++--
>  .../boot/dts/freescale/imx95-15x15-evk.dts    |  4 ++--
>  .../boot/dts/freescale/imx95-19x19-evk.dts    |  8 +++----
>  drivers/pci/controller/dwc/Kconfig            |  1 +
>  drivers/pci/controller/dwc/pci-imx6.c         | 24 ++++++++++++++++++-
>  12 files changed, 43 insertions(+), 20 deletions(-)
> 
> --
> 2.37.1


^ permalink raw reply	[flat|nested] 19+ messages in thread

* RE: [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees
  2026-05-21  3:37 ` [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Hongxing Zhu (OSS)
@ 2026-05-21  4:40   ` Sherry Sun
  2026-06-10 15:25     ` Manivannan Sadhasivam
  0 siblings, 1 reply; 19+ messages in thread
From: Sherry Sun @ 2026-05-21  4:40 UTC (permalink / raw)
  To: Hongxing Zhu (OSS), Sherry Sun (OSS),
	robh, krzk+dt, conor+dt, Frank Li, s.hauer, kernel, festevam,
	lpieralisi, kwilczynski, mani, bhelgaas, l.stach
  Cc: imx, linux-pci, linux-arm-kernel, devicetree, linux-kernel


> > -----Original Message-----
> > From: Sherry Sun (OSS) <sherry.sun@oss.nxp.com>
> > Sent: Wednesday, May 20, 2026 4:49 PM
> > To: robh@kernel.org; krzk+dt@kernel.org; conor+dt@kernel.org; Frank Li
> > <frank.li@nxp.com>; s.hauer@pengutronix.de; kernel@pengutronix.de;
> > festevam@gmail.com; lpieralisi@kernel.org; kwilczynski@kernel.org;
> > mani@kernel.org; bhelgaas@google.com; Hongxing Zhu
> > <hongxing.zhu@nxp.com>; l.stach@pengutronix.de
> > Cc: imx@lists.linux.dev; linux-pci@vger.kernel.org; linux-arm-
> > kernel@lists.infradead.org; devicetree@vger.kernel.org; linux-
> > kernel@vger.kernel.org; Sherry Sun <sherry.sun@nxp.com>
> > Subject: [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update
> > device trees
> >
> > From: Sherry Sun <sherry.sun@nxp.com>
> >
> > This series integrates the PCI pwrctrl framework into the pci-imx6
> > driver and updates i.MX EVK board device trees to support it.
> >
> > Patches 2-8 update device trees for i.MX EVK boards which maintained
> > by NXP to move power supply properties from the PCIe controller node
> > to the Root Port child node, which is required for pwrctrl framework.
> > Affected boards:
> > - i.MX6Q/DL SABRESD
> > - i.MX6SX SDB
> > - i.MX8MM EVK
> > - i.MX8MP EVK
> > - i.MX8MQ EVK
> > - i.MX8DXL/QM/QXP EVK
> > - i.MX95 15x15/19x19 EVK
> >
> > The driver maintains legacy regulator handling for device trees that
> > haven't been updated yet. Both old and new device tree structures are
> supported.
> >
> > Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
> Hi Sherry:
> Since the vpcie3v3aux is used to power up the WAKE#, it is always on in this
> pwrctrl framework whatever the system is in suspend or not, right?
> 

Hi Richard,
Currently the new pwrctrl framework doesn't support vpcie3v3aux, it handles all
regulators with of_regulator_bulk_get_all() and regulator_bulk_enable/disable().
The vpcie3v3aux now only works with pci-imx6 driver.

Best Regards
Sherry

> Best Regards
> Richard Zhu
> > ---
> > Changes in V3:
> > 1. Rebased on top of latest 7.1.0-rc4
> >
> > Changes in V2:
> > 1. After commit 2d8c5098b847 ("PCI/pwrctrl: Do not power off on pwrctrl
> >    device removal"), the pwrctrl drivers no longer power off devices
> >    during removal. Update pci-imx6 driver's shutdown callback in patch#1
> >    to explicitly call pci_pwrctrl_power_off_devices() before
> >    pci_pwrctrl_destroy_devices() to ensure devices are properly powered
> >    off.
> > ---
> >
> > Sherry Sun (8):
> >   PCI: imx6: Integrate new pwrctrl API for pci-imx6
> >   arm: dts: imx6qdl-sabresd: Move power supply property to Root Port
> >     node
> >   arm: dts: imx6sx-sdb: Move power supply property to Root Port node
> >   arm64: dts: imx8mm-evk: Move power supply property to Root Port node
> >   arm64: dts: imx8mp-evk: Move power supply properties to Root Port node
> >   arm64: dts: imx8mq-evk: Move power supply properties to Root Port node
> >   arm64: dts: imx8dxl/qm/qxp: Move power supply properties to Root Port
> >     node
> >   arm64: dts: imx95: Move power supply properties to Root Port node
> >
> >  .../arm/boot/dts/nxp/imx/imx6qdl-sabresd.dtsi |  2 +-
> >  arch/arm/boot/dts/nxp/imx/imx6sx-sdb.dtsi     |  2 +-
> >  arch/arm64/boot/dts/freescale/imx8dxl-evk.dts |  4 ++--
> > arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi |  2 +-
> > arch/arm64/boot/dts/freescale/imx8mp-evk.dts  |  4 ++--
> > arch/arm64/boot/dts/freescale/imx8mq-evk.dts  |  4 ++--
> > arch/arm64/boot/dts/freescale/imx8qm-mek.dts  |  4 ++--
> > arch/arm64/boot/dts/freescale/imx8qxp-mek.dts |  4 ++--
> >  .../boot/dts/freescale/imx95-15x15-evk.dts    |  4 ++--
> >  .../boot/dts/freescale/imx95-19x19-evk.dts    |  8 +++----
> >  drivers/pci/controller/dwc/Kconfig            |  1 +
> >  drivers/pci/controller/dwc/pci-imx6.c         | 24 ++++++++++++++++++-
> >  12 files changed, 43 insertions(+), 20 deletions(-)
> >
> > --
> > 2.37.1


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: (subset) [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees
  2026-05-20  8:48 [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Sherry Sun (OSS)
                   ` (8 preceding siblings ...)
  2026-05-21  3:37 ` [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Hongxing Zhu (OSS)
@ 2026-06-10 13:48 ` Manivannan Sadhasivam
  2026-06-10 15:29 ` Manivannan Sadhasivam
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 19+ messages in thread
From: Manivannan Sadhasivam @ 2026-06-10 13:48 UTC (permalink / raw)
  To: robh, krzk+dt, conor+dt, Frank.Li, s.hauer, kernel, festevam,
	lpieralisi, kwilczynski, bhelgaas, hongxing.zhu, l.stach,
	Sherry Sun (OSS)
  Cc: imx, linux-pci, linux-arm-kernel, devicetree, linux-kernel, sherry.sun


On Wed, 20 May 2026 16:48:56 +0800, Sherry Sun (OSS) wrote:
> From: Sherry Sun <sherry.sun@nxp.com>
> 
> This series integrates the PCI pwrctrl framework into the pci-imx6
> driver and updates i.MX EVK board device trees to support it.
> 
> Patches 2-8 update device trees for i.MX EVK boards which maintained
> by NXP to move power supply properties from the PCIe controller node
> to the Root Port child node, which is required for pwrctrl framework.
> Affected boards:
> - i.MX6Q/DL SABRESD
> - i.MX6SX SDB
> - i.MX8MM EVK
> - i.MX8MP EVK
> - i.MX8MQ EVK
> - i.MX8DXL/QM/QXP EVK
> - i.MX95 15x15/19x19 EVK
> 
> [...]

Applied, thanks!

[1/8] PCI: imx6: Integrate new pwrctrl API for pci-imx6
      commit: 85c1fcfa740d4c737f5575fc7251883e54227a51

Best regards,
-- 
Manivannan Sadhasivam <mani@kernel.org>


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees
  2026-05-21  4:40   ` Sherry Sun
@ 2026-06-10 15:25     ` Manivannan Sadhasivam
  0 siblings, 0 replies; 19+ messages in thread
From: Manivannan Sadhasivam @ 2026-06-10 15:25 UTC (permalink / raw)
  To: Sherry Sun
  Cc: Hongxing Zhu (OSS), Sherry Sun (OSS),
	robh, krzk+dt, conor+dt, Frank Li, s.hauer, kernel, festevam,
	lpieralisi, kwilczynski, bhelgaas, l.stach, imx, linux-pci,
	linux-arm-kernel, devicetree, linux-kernel

On Thu, May 21, 2026 at 04:40:35AM +0000, Sherry Sun wrote:
> 
> > > -----Original Message-----
> > > From: Sherry Sun (OSS) <sherry.sun@oss.nxp.com>
> > > Sent: Wednesday, May 20, 2026 4:49 PM
> > > To: robh@kernel.org; krzk+dt@kernel.org; conor+dt@kernel.org; Frank Li
> > > <frank.li@nxp.com>; s.hauer@pengutronix.de; kernel@pengutronix.de;
> > > festevam@gmail.com; lpieralisi@kernel.org; kwilczynski@kernel.org;
> > > mani@kernel.org; bhelgaas@google.com; Hongxing Zhu
> > > <hongxing.zhu@nxp.com>; l.stach@pengutronix.de
> > > Cc: imx@lists.linux.dev; linux-pci@vger.kernel.org; linux-arm-
> > > kernel@lists.infradead.org; devicetree@vger.kernel.org; linux-
> > > kernel@vger.kernel.org; Sherry Sun <sherry.sun@nxp.com>
> > > Subject: [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update
> > > device trees
> > >
> > > From: Sherry Sun <sherry.sun@nxp.com>
> > >
> > > This series integrates the PCI pwrctrl framework into the pci-imx6
> > > driver and updates i.MX EVK board device trees to support it.
> > >
> > > Patches 2-8 update device trees for i.MX EVK boards which maintained
> > > by NXP to move power supply properties from the PCIe controller node
> > > to the Root Port child node, which is required for pwrctrl framework.
> > > Affected boards:
> > > - i.MX6Q/DL SABRESD
> > > - i.MX6SX SDB
> > > - i.MX8MM EVK
> > > - i.MX8MP EVK
> > > - i.MX8MQ EVK
> > > - i.MX8DXL/QM/QXP EVK
> > > - i.MX95 15x15/19x19 EVK
> > >
> > > The driver maintains legacy regulator handling for device trees that
> > > haven't been updated yet. Both old and new device tree structures are
> > supported.
> > >
> > > Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
> > Hi Sherry:
> > Since the vpcie3v3aux is used to power up the WAKE#, it is always on in this
> > pwrctrl framework whatever the system is in suspend or not, right?
> > 
> 
> Hi Richard,
> Currently the new pwrctrl framework doesn't support vpcie3v3aux, it handles all
> regulators with of_regulator_bulk_get_all() and regulator_bulk_enable/disable().
> The vpcie3v3aux now only works with pci-imx6 driver.
> 

PWRCTRL_GENERIC driver can handle both vpcie3v3 and vpcie3v3aux, but not
POWER_SEQUENCING_PCIE_M2 driver, as there is no 3.3Vaux defined in M.2 spec.

- Mani

-- 
மணிவண்ணன் சதாசிவம்

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees
  2026-05-20  8:48 [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Sherry Sun (OSS)
                   ` (9 preceding siblings ...)
  2026-06-10 13:48 ` (subset) " Manivannan Sadhasivam
@ 2026-06-10 15:29 ` Manivannan Sadhasivam
  2026-06-29 16:15 ` (subset) " Frank.Li
  2026-06-29 16:18 ` Frank.Li
  12 siblings, 0 replies; 19+ messages in thread
From: Manivannan Sadhasivam @ 2026-06-10 15:29 UTC (permalink / raw)
  To: Sherry Sun (OSS)
  Cc: robh, krzk+dt, conor+dt, Frank.Li, s.hauer, kernel, festevam,
	lpieralisi, kwilczynski, bhelgaas, hongxing.zhu, l.stach, imx,
	linux-pci, linux-arm-kernel, devicetree, linux-kernel,
	sherry.sun

On Wed, May 20, 2026 at 04:48:56PM +0800, Sherry Sun (OSS) wrote:
> From: Sherry Sun <sherry.sun@nxp.com>
> 
> This series integrates the PCI pwrctrl framework into the pci-imx6
> driver and updates i.MX EVK board device trees to support it.
> 
> Patches 2-8 update device trees for i.MX EVK boards which maintained
> by NXP to move power supply properties from the PCIe controller node
> to the Root Port child node, which is required for pwrctrl framework.
> Affected boards:
> - i.MX6Q/DL SABRESD
> - i.MX6SX SDB
> - i.MX8MM EVK
> - i.MX8MP EVK
> - i.MX8MQ EVK
> - i.MX8DXL/QM/QXP EVK
> - i.MX95 15x15/19x19 EVK
> 
> The driver maintains legacy regulator handling for device trees that
> haven't been updated yet. Both old and new device tree structures are
> supported.
> 
> Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
> ---
> Changes in V3:
> 1. Rebased on top of latest 7.1.0-rc4
> 
> Changes in V2:
> 1. After commit 2d8c5098b847 ("PCI/pwrctrl: Do not power off on pwrctrl
>    device removal"), the pwrctrl drivers no longer power off devices
>    during removal. Update pci-imx6 driver's shutdown callback in patch#1
>    to explicitly call pci_pwrctrl_power_off_devices() before 
>    pci_pwrctrl_destroy_devices() to ensure devices are properly powered
>    off.
> ---
> 
> Sherry Sun (8):
>   PCI: imx6: Integrate new pwrctrl API for pci-imx6
>   arm: dts: imx6qdl-sabresd: Move power supply property to Root Port
>     node
>   arm: dts: imx6sx-sdb: Move power supply property to Root Port node
>   arm64: dts: imx8mm-evk: Move power supply property to Root Port node
>   arm64: dts: imx8mp-evk: Move power supply properties to Root Port node
>   arm64: dts: imx8mq-evk: Move power supply properties to Root Port node
>   arm64: dts: imx8dxl/qm/qxp: Move power supply properties to Root Port
>     node
>   arm64: dts: imx95: Move power supply properties to Root Port node

Acked-by: Manivannan Sadhasivam <mani@kernel.org>

- Mani

> 
>  .../arm/boot/dts/nxp/imx/imx6qdl-sabresd.dtsi |  2 +-
>  arch/arm/boot/dts/nxp/imx/imx6sx-sdb.dtsi     |  2 +-
>  arch/arm64/boot/dts/freescale/imx8dxl-evk.dts |  4 ++--
>  arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi |  2 +-
>  arch/arm64/boot/dts/freescale/imx8mp-evk.dts  |  4 ++--
>  arch/arm64/boot/dts/freescale/imx8mq-evk.dts  |  4 ++--
>  arch/arm64/boot/dts/freescale/imx8qm-mek.dts  |  4 ++--
>  arch/arm64/boot/dts/freescale/imx8qxp-mek.dts |  4 ++--
>  .../boot/dts/freescale/imx95-15x15-evk.dts    |  4 ++--
>  .../boot/dts/freescale/imx95-19x19-evk.dts    |  8 +++----
>  drivers/pci/controller/dwc/Kconfig            |  1 +
>  drivers/pci/controller/dwc/pci-imx6.c         | 24 ++++++++++++++++++-
>  12 files changed, 43 insertions(+), 20 deletions(-)
> 
> -- 
> 2.37.1
> 

-- 
மணிவண்ணன் சதாசிவம்

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: (subset) [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees
  2026-05-20  8:48 [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Sherry Sun (OSS)
                   ` (10 preceding siblings ...)
  2026-06-10 15:29 ` Manivannan Sadhasivam
@ 2026-06-29 16:15 ` Frank.Li
  2026-06-29 16:18 ` Frank.Li
  12 siblings, 0 replies; 19+ messages in thread
From: Frank.Li @ 2026-06-29 16:15 UTC (permalink / raw)
  To: robh, krzk+dt, conor+dt, s.hauer, kernel, festevam, lpieralisi,
	kwilczynski, mani, bhelgaas, hongxing.zhu, l.stach,
	Sherry Sun (OSS)
  Cc: Frank Li, imx, linux-pci, linux-arm-kernel, devicetree,
	linux-kernel, sherry.sun

From: Frank Li <Frank.Li@nxp.com>


On Wed, 20 May 2026 16:48:56 +0800, Sherry Sun (OSS) wrote:
> From: Sherry Sun <sherry.sun@nxp.com>
> 
> This series integrates the PCI pwrctrl framework into the pci-imx6
> driver and updates i.MX EVK board device trees to support it.
> 
> Patches 2-8 update device trees for i.MX EVK boards which maintained
> by NXP to move power supply properties from the PCIe controller node
> to the Root Port child node, which is required for pwrctrl framework.
> Affected boards:
> - i.MX6Q/DL SABRESD
> - i.MX6SX SDB
> - i.MX8MM EVK
> - i.MX8MP EVK
> - i.MX8MQ EVK
> - i.MX8DXL/QM/QXP EVK
> - i.MX95 15x15/19x19 EVK
> 
> [...]

Applied, thanks!

[4/8] arm64: dts: imx8mm-evk: Move power supply property to Root Port node
      commit: 1d054c3d7ba2acf95140d2296a7500c44b28756f
[5/8] arm64: dts: imx8mp-evk: Move power supply properties to Root Port node
      commit: 6be00d898ed3bf5cacc90bc58b8ab760ad5f26a2
[6/8] arm64: dts: imx8mq-evk: Move power supply properties to Root Port node
      commit: d6dd43676b6acb4967060a27c711a482b687142a
[7/8] arm64: dts: imx8dxl/qm/qxp: Move power supply properties to Root Port node
      commit: b3731b730e6f0256bed55562cef39e61aea006be
[8/8] arm64: dts: imx95: Move power supply properties to Root Port node
      commit: 0ac3b96903603e3a0c9e0ce732716837ddd86c7b

Best regards,
-- 
Frank Li <Frank.Li@nxp.com>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: (subset) [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees
  2026-05-20  8:48 [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Sherry Sun (OSS)
                   ` (11 preceding siblings ...)
  2026-06-29 16:15 ` (subset) " Frank.Li
@ 2026-06-29 16:18 ` Frank.Li
  2026-06-29 19:07   ` Frank Li
  12 siblings, 1 reply; 19+ messages in thread
From: Frank.Li @ 2026-06-29 16:18 UTC (permalink / raw)
  To: robh, krzk+dt, conor+dt, s.hauer, kernel, festevam, lpieralisi,
	kwilczynski, mani, bhelgaas, hongxing.zhu, l.stach,
	Sherry Sun (OSS)
  Cc: Frank Li, imx, linux-pci, linux-arm-kernel, devicetree,
	linux-kernel, sherry.sun

From: Frank Li <Frank.Li@nxp.com>


On Wed, 20 May 2026 16:48:56 +0800, Sherry Sun (OSS) wrote:
> From: Sherry Sun <sherry.sun@nxp.com>
> 
> This series integrates the PCI pwrctrl framework into the pci-imx6
> driver and updates i.MX EVK board device trees to support it.
> 
> Patches 2-8 update device trees for i.MX EVK boards which maintained
> by NXP to move power supply properties from the PCIe controller node
> to the Root Port child node, which is required for pwrctrl framework.
> Affected boards:
> - i.MX6Q/DL SABRESD
> - i.MX6SX SDB
> - i.MX8MM EVK
> - i.MX8MP EVK
> - i.MX8MQ EVK
> - i.MX8DXL/QM/QXP EVK
> - i.MX95 15x15/19x19 EVK
> 
> [...]

Applied, thanks!

[2/8] arm: dts: imx6qdl-sabresd: Move power supply property to Root Port node
      commit: 6ae623838bba6b1d7dab2164bd12a166eae670b7
[3/8] arm: dts: imx6sx-sdb: Move power supply property to Root Port node
      commit: 090ca78c5f5b8b475d51d729a7b79c5b7d8bbc47

Best regards,
-- 
Frank Li <Frank.Li@nxp.com>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: (subset) [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees
  2026-06-29 16:18 ` Frank.Li
@ 2026-06-29 19:07   ` Frank Li
  2026-06-30  2:23     ` Sherry Sun
  0 siblings, 1 reply; 19+ messages in thread
From: Frank Li @ 2026-06-29 19:07 UTC (permalink / raw)
  To: robh, krzk+dt, conor+dt, s.hauer, kernel, festevam, lpieralisi,
	kwilczynski, mani, bhelgaas, hongxing.zhu, l.stach,
	Sherry Sun (OSS)
  Cc: Frank Li, imx, linux-pci, linux-arm-kernel, devicetree,
	linux-kernel, sherry.sun

On Mon, Jun 29, 2026 at 12:18:15PM -0400, Frank.Li@oss.nxp.com wrote:
> From: Frank Li <Frank.Li@nxp.com>
>
>
> On Wed, 20 May 2026 16:48:56 +0800, Sherry Sun (OSS) wrote:
> > From: Sherry Sun <sherry.sun@nxp.com>
> >
> > This series integrates the PCI pwrctrl framework into the pci-imx6
> > driver and updates i.MX EVK board device trees to support it.
> >
> > Patches 2-8 update device trees for i.MX EVK boards which maintained
> > by NXP to move power supply properties from the PCIe controller node
> > to the Root Port child node, which is required for pwrctrl framework.
> > Affected boards:
> > - i.MX6Q/DL SABRESD
> > - i.MX6SX SDB
> > - i.MX8MM EVK
> > - i.MX8MP EVK
> > - i.MX8MQ EVK
> > - i.MX8DXL/QM/QXP EVK
> > - i.MX95 15x15/19x19 EVK
> >
> > [...]
>
> Applied, thanks!
>
> [2/8] arm: dts: imx6qdl-sabresd: Move power supply property to Root Port node
>       commit: 6ae623838bba6b1d7dab2164bd12a166eae670b7
> [3/8] arm: dts: imx6sx-sdb: Move power supply property to Root Port node
>       commit: 090ca78c5f5b8b475d51d729a7b79c5b7d8bbc47

Patches dropped since CHECK_DTBS warnings.

Frank

>
> Best regards,
> --
> Frank Li <Frank.Li@nxp.com>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* RE: (subset) [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees
  2026-06-29 19:07   ` Frank Li
@ 2026-06-30  2:23     ` Sherry Sun
  0 siblings, 0 replies; 19+ messages in thread
From: Sherry Sun @ 2026-06-30  2:23 UTC (permalink / raw)
  To: Frank Li (OSS),
	robh, krzk+dt, conor+dt, s.hauer, kernel, festevam, lpieralisi,
	kwilczynski, mani, bhelgaas, Hongxing Zhu, l.stach,
	Sherry Sun (OSS)
  Cc: Frank Li, imx, linux-pci, linux-arm-kernel, devicetree, linux-kernel

> Subject: Re: (subset) [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and
> update device trees
> 
> On Mon, Jun 29, 2026 at 12:18:15PM -0400, Frank.Li@oss.nxp.com wrote:
> > From: Frank Li <Frank.Li@nxp.com>
> >
> >
> > On Wed, 20 May 2026 16:48:56 +0800, Sherry Sun (OSS) wrote:
> > > From: Sherry Sun <sherry.sun@nxp.com>
> > >
> > > This series integrates the PCI pwrctrl framework into the pci-imx6
> > > driver and updates i.MX EVK board device trees to support it.
> > >
> > > Patches 2-8 update device trees for i.MX EVK boards which maintained
> > > by NXP to move power supply properties from the PCIe controller node
> > > to the Root Port child node, which is required for pwrctrl framework.
> > > Affected boards:
> > > - i.MX6Q/DL SABRESD
> > > - i.MX6SX SDB
> > > - i.MX8MM EVK
> > > - i.MX8MP EVK
> > > - i.MX8MQ EVK
> > > - i.MX8DXL/QM/QXP EVK
> > > - i.MX95 15x15/19x19 EVK
> > >
> > > [...]
> >
> > Applied, thanks!
> >
> > [2/8] arm: dts: imx6qdl-sabresd: Move power supply property to Root Port
> node
> >       commit: 6ae623838bba6b1d7dab2164bd12a166eae670b7
> > [3/8] arm: dts: imx6sx-sdb: Move power supply property to Root Port node
> >       commit: 090ca78c5f5b8b475d51d729a7b79c5b7d8bbc47
> 
> Patches dropped since CHECK_DTBS warnings.
> 

Sorry, will fix and re-send.

Best Regards
Sherry

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2026-06-30  2:23 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-20  8:48 [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Sherry Sun (OSS)
2026-05-20  8:48 ` [PATCH V3 1/8] PCI: imx6: Integrate new pwrctrl API for pci-imx6 Sherry Sun (OSS)
2026-05-20 18:38   ` Frank Li
2026-05-20  8:48 ` [PATCH V3 2/8] arm: dts: imx6qdl-sabresd: Move power supply property to Root Port node Sherry Sun (OSS)
2026-05-20  8:48 ` [PATCH V3 3/8] arm: dts: imx6sx-sdb: " Sherry Sun (OSS)
2026-05-20  8:49 ` [PATCH V3 4/8] arm64: dts: imx8mm-evk: " Sherry Sun (OSS)
2026-05-20  8:49 ` [PATCH V3 5/8] arm64: dts: imx8mp-evk: Move power supply properties " Sherry Sun (OSS)
2026-05-20  8:49 ` [PATCH V3 6/8] arm64: dts: imx8mq-evk: " Sherry Sun (OSS)
2026-05-20  8:49 ` [PATCH V3 7/8] arm64: dts: imx8dxl/qm/qxp: " Sherry Sun (OSS)
2026-05-20  8:49 ` [PATCH V3 8/8] arm64: dts: imx95: " Sherry Sun (OSS)
2026-05-21  3:37 ` [PATCH V3 0/8] PCI: imx6: Integrate pwrctrl API and update device trees Hongxing Zhu (OSS)
2026-05-21  4:40   ` Sherry Sun
2026-06-10 15:25     ` Manivannan Sadhasivam
2026-06-10 13:48 ` (subset) " Manivannan Sadhasivam
2026-06-10 15:29 ` Manivannan Sadhasivam
2026-06-29 16:15 ` (subset) " Frank.Li
2026-06-29 16:18 ` Frank.Li
2026-06-29 19:07   ` Frank Li
2026-06-30  2:23     ` Sherry Sun

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®