From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 74FC1103A9A8 for ; Wed, 25 Mar 2026 11:00:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-Type: Content-Transfer-Encoding:References:In-Reply-To:Message-Id:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=hfbs++LmFD5hYL733QHlHoNKtAt+15CrwJzRfB8lvX0=; b=uy2lU59RGP9xDGdM1V9U7yuxlR VybKf/NXQyWdwVdIYvPfpxkrb/rBpBMsRHsScQvaaVEbCeBJ23H2Spi6B/2+FmcB7svPipS/H8UA6 T6bvBvuTMzlDYW0seM/DUX/Im8K2Ft32TDWMb4LF4PSRFImHWaIZRZ99iHM2EWqKpRl+trYR0/v6b XCZD3F/uTjhYNq9tM4UdcoA57dmuL783fV30Lk8TtJojIwrRN3faZeD+sT8Mw5kDSfJIw/4WG2jCS yr+mNrOjeP2Ai9pP1oGQPDnFj8OwayGXOzgSZQWysB8Too7cqaFD/a+tsBjV4zbG83uPP1dTs2AAM RRaCmmxw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1w5Lye-00000003CAN-3uBC; Wed, 25 Mar 2026 11:00:44 +0000 Received: from mail-northeuropeazlp170110003.outbound.protection.outlook.com ([2a01:111:f403:c200::3] helo=DU2PR03CU002.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1w5Lyc-00000003C8r-1w9X for linux-arm-kernel@lists.infradead.org; Wed, 25 Mar 2026 11:00:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VuuXG/bX3z2m3Hm00U3PNXXEOK+t2QU9yT98Ap8gSpzyAcLLHutThYeqK0FjR19j0LWgXzilcAdZMYzR4GbNo+pN5JDtoGB3i/AREjxatWn5RvsRFbxzC53ZfvjkgjCkeAzgdspCIegK6NRASmQyj6qJyMcPV/2s71Sm8cczKvRkLXY7/29WceWEFnmpVeaCjgpLoQvRsbtqpP5bD3CE86KV2z6xe5+kfK2xnXx4bd4c5WYssxC+sn5lQNY2I4lD2FV7F/5Vlez0daAbxLgY+UCFDGzewIBuutYwinJfAzh1f44AKEreZAspApUK52UBeJ8PLzMajhrkVDZJxS8f4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=hfbs++LmFD5hYL733QHlHoNKtAt+15CrwJzRfB8lvX0=; b=ngHcVVXib51sM6GTk83gJu6ljCiZRuaEmOiONgpADOvC087W41SeByUPxLwmVcIZ8p/PhJpvG6UsX99VlDUFGTXJlRe4Smkh/NRG7lvlYS22qY0mqNbopqAyVETaKLSgy8ETZL63BHuXWLfF1iLtVejCQ+aqhe3Vg6gOPYkpb9+lu1XNWwQSe4m7F5MUTDdCnZ/gJwks2sIfpR4J7yfEWJg6ybJRIrxsfJiuoSSFyB2Q+xoXYiaTxMI/BgOv7HjbzCZ8ecWxSEpNU0Wk8hDy7TQOApfzB5buSaBLz4IsXxdQyoGuQWXbzKdF24gpd33ZBSiTxL+I6kib/ZuUmKZsyA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hfbs++LmFD5hYL733QHlHoNKtAt+15CrwJzRfB8lvX0=; b=FYYS6CYTb4NINWRwGGP2l+V/YPWK5iKnudO57j+OwRVE9yY42dcYUBvjaiHe/IYI0rzOxzWucN3HW0b2jvMcaXb6l4UY2cHaKcHy2cvUY3nPoiFngjcwOxChPQ/QocGcWrpDedi2UT4WQWoh8l6Ak4wkrqQQnEERd9B0QzGq688zn6oyChCizDEwAd2WyDgkFkhW00qU6loElMi/IOuc1sj/MAvYTs9bZUdGmxzFw13ItAAB24ezPNaPUrqCEyspTS4PY8mSj9JFgspaZrJw0Ste7jm5vjRWAfsrOu0QDmI5/41On/GQdNCRfArsXVB+m1CvKMo13lh37IibXiYErQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from VI0PR04MB12114.eurprd04.prod.outlook.com (2603:10a6:800:315::13) by GVXPR04MB12268.eurprd04.prod.outlook.com (2603:10a6:150:2c7::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.24; Wed, 25 Mar 2026 11:00:40 +0000 Received: from VI0PR04MB12114.eurprd04.prod.outlook.com ([fe80::feda:fd0e:147f:f994]) by VI0PR04MB12114.eurprd04.prod.outlook.com ([fe80::feda:fd0e:147f:f994%5]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026 11:00:39 +0000 From: Sherry Sun To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, 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@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 Subject: [PATCH 1/8] PCI: imx6: Integrate new pwrctrl API for pci-imx6 Date: Wed, 25 Mar 2026 19:00:51 +0800 Message-Id: <20260325110058.2854742-2-sherry.sun@nxp.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20260325110058.2854742-1-sherry.sun@nxp.com> References: <20260325110058.2854742-1-sherry.sun@nxp.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MA1PR01CA0174.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a01:d::12) To VI0PR04MB12114.eurprd04.prod.outlook.com (2603:10a6:800:315::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR04MB12114:EE_|GVXPR04MB12268:EE_ X-MS-Office365-Filtering-Correlation-Id: 708019a6-5ed3-4434-713e-08de8a5dbff4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|52116014|376014|1800799024|7416014|366016|921020|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: y3LVbPR0KqfGU5hlWvzXhbbTBMNRfV+un6nVQ8z1SfvqOyDs9QGglYtaYF85JdlClwIFvrcM5UofqxNfLj824CdQoP2c+ikNRFDxjOJJtDhGTddDb9nTeI0yJpE8iby9TCOmY2B8wRcHnrKFg2AIFqdf+IERJuUEkmK7YVWH77WdcaMtBaQYUB/Db9Z8U32Jz/3T1vomI9fRHOgiYK6bPf0hHJuX8Y2u2KN5ApMyGbbW7KgtVWs0j/3gz84jF2oexqFMFS48a2wtFQZCUwnJZzbyLTL8DKdiDz9aZCFN2Fhv8kZ7FJgP88MoMIrOxrlMA1/HsgxonvNTKMNiIV8kzd2xxTnbtttcl3a5dDbD0kpKhkH3qr9nD8RRbjgVeDfcx9VtsqLh2yF7HDXs57eJzeslFws4s3chC8pfetnUJcqCEYhJqCotkvSjP8lKjXnLJHJEV1TWO31k9NpTnrxhnQ2mEhhxVQdjALAo2B1ElJTV4g15V1Pze/AvZxinV+HYmdFCAvtlJGLZ8GeBfnrgRLFLaMM1g450QvuK40ZyWcj6kQy4VA2mhIYGvfi2lDWtFvOae8vg4loqSCnk7MI63G96EMVCcUhZz5rHXkVMwGSA4QgW35xLteq+x3vmbyM2t5Ezp59QXldoXe0mYgmXqFsjQgonWA1ZbdojCwK5LECTD9ZdqJjvvyrMzfE6EyBH5bJj/tA+vEmpfLEthARb+guXgiw2Hl9QOIV6cpEFQ6ZMfpdEDuydAgEOiA73azhaCI4/OrVvJdyRSKU5D8RojbIm0/lW9DUEZXkZa3nLKPQWrU9Ka+d47ayeaIABYEIc X-Forefront-Antispam-Report: CIP: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)(19092799006)(52116014)(376014)(1800799024)(7416014)(366016)(921020)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?s+ucVhJefVzB8ziSJlA8BWdVcgZCB9SqTneJ/kADeilyFpZnrUO/wqAI5sOP?= =?us-ascii?Q?S3ejeMsXZ4zFOIUBQvm+eC1jJu6sXg8ActqaYzY5GWuzGnsQ/Wla/CMPEAly?= =?us-ascii?Q?VJEEOFjJx3WsK1SjT9jg2hSfZs57Ghk7Uc7qRbsew8W5+u2MIbR59TDyzZQy?= =?us-ascii?Q?M8+Gpgdim7A6oA/dAjxMzYBtmSWN2Cn515iaS/SN1ccLMUF80nNEzzXkQbe/?= =?us-ascii?Q?n5NmuVAGkbZz4GlH3D7D9xBCGfeM0UyrxQKGNBJHUO4AD0vmu77z/3Kh0Bqv?= =?us-ascii?Q?44qjEbM4W6BNicnz2YaTgXUxOa50L4uVJWJ1/7dFP5FsYVACr5w/Du05ng04?= =?us-ascii?Q?Kz+wVLkpJrK7GzaFSGjAIsr7NjrLy4+xK9/P+XyfDVDaTj8qScGKHPIdQAMx?= =?us-ascii?Q?Ah5ff+8ooXwYs+b+wDOis+SxMSxvG6l8aaVufzZpnfRe3yeyk19yl1GJBPRU?= =?us-ascii?Q?SsABSW4y8WwAN6iBVQZSwRccLFAQcgt1zNopkWEnaenewL5SkAJ8Vlat2Gtz?= =?us-ascii?Q?NR5qSeZcPY0VE5g7yj4AKkrMaKAf0EZUzaQkVBVV+bX0nmdsYEQNRBk4Nh3L?= =?us-ascii?Q?OzFOl7fKOl8OyUi4EjU5JnrUA5zl+mXHxJlOEGKSlsIa9QbvvLEu3ioUlN+e?= =?us-ascii?Q?ZifIAwW+gEbfzGffCGxzsRW8RKOsOsOrLGCYqmLwfebv+cmcZ28GmtpGVIjB?= =?us-ascii?Q?zdLeGuOL7x8Fj4ea7iT6STB2K4d9ZTiJHlcPczzf/5UkN3WiJlDVI2OszLZv?= =?us-ascii?Q?IUrg4HfC0A4Wj9thMTTdgMO501z407gFlLARTwEB4few3gxauroI8QpBtgVV?= =?us-ascii?Q?XLHtel0jxLZAXobdDMFMlgDTIFY71c/PN9GF9hb8YXPbJDpelnZuxa68tA7y?= =?us-ascii?Q?s1EZtJOAqUfz2QSbAS7NjZo97Dzdj3GX+0EeoucBlqZ9HsTQZrRk22bO+Xp8?= =?us-ascii?Q?CCH+EW1D2cju9mkY0rZD6qzuAb9f9/artRbNFoJxEATmGDRqUPfg3U4V7qsa?= =?us-ascii?Q?KdDIbPh7TXYfw3qktLy3rb1HAx/AIcETQhqIIRSXfUbR5SoCJNHLZip0DXEY?= =?us-ascii?Q?t3EQkHUwmG/GbJO4qekrq0MNiidFK2+vVt17KWSU/pmx9cldqYIl6uKg9vuS?= =?us-ascii?Q?/tHBZ/j9h/M8jR+0vwmdpPpXIwd1Mo9AUKMX74rwYXgbg8AtuWArarSWAMG2?= =?us-ascii?Q?/TcvkALxng6JYZ4F3IjeZ9lK86my6oE5bv6Wlu2vy6D2PgtsqrA71y8sY7y2?= =?us-ascii?Q?3h2gThsI2PuQtXTK4txoZdxn7whWG6HTzo9w/WwP/dcA7+C7er3gtrSwSy0H?= =?us-ascii?Q?VUe5qXa0RCsxkiHFEJnQPKBcSU2G1Z1T3WL4cvZrQ/iOioaV4QXEMv+QrkZK?= =?us-ascii?Q?F+58pgjmjRST2OVRiBplJ5kgwwhllbdPzpAsAjJnbrhmAHclSLYzkCW9GHE6?= =?us-ascii?Q?G0V7DTezrMoL9YICyqm9hURZtxrPpCxWN9T8DvuAHFOZaF8pFv6vt485Eu1M?= =?us-ascii?Q?aVLF0FJbCHLpgO5yLZ/7PtobixVOmA16pUPdzI2IJhC60ilqnwmo5clBUbyy?= =?us-ascii?Q?V2Cf98YJUjVKrzBw/w4Xf/B+8bbrDgewRw5AVUH5OiQQ7E+uwjXb5lBHzeK1?= =?us-ascii?Q?KHs/aciNz8cJgzBOeQ4g5rVAHjWjzRyJhFLgaGVwUtp4Wa4XiOiEKwaI93wa?= =?us-ascii?Q?5xXkEqR3wqO1Bl/11HHwwf/FV2eO5arPX+yPeO5jNdhIpGDIXSe2i4iPSDFF?= =?us-ascii?Q?bouHvXxMHw=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 708019a6-5ed3-4434-713e-08de8a5dbff4 X-MS-Exchange-CrossTenant-AuthSource: VI0PR04MB12114.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 11:00:39.1459 (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: 856Gtynen1nIOmYR/ANmgLe4LeHwGHGm+vsOkX1oX/dpWY26eu57qA1GUgJd4jiZcPYT+U5ugnNR6EhX8QgbdA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB12268 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260325_040042_508423_2602DF74 X-CRM114-Status: GOOD ( 16.33 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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 --- drivers/pci/controller/dwc/Kconfig | 1 + drivers/pci/controller/dwc/pci-imx6.c | 23 ++++++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dwc/Kconfig index f2fde13107f2..327b0dc65550 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 77483f44c593..b9d72793f266 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -1314,6 +1315,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) { @@ -1323,10 +1325,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)) { @@ -1385,6 +1399,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); @@ -1403,6 +1422,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); } @@ -1911,6 +1931,7 @@ 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_destroy_devices(&pdev->dev); } static const struct imx_pcie_drvdata drvdata[] = { -- 2.37.1