{"id":2223897,"url":"http://patchwork.ozlabs.org/api/patches/2223897/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260416111422.183860-4-sherry.sun@nxp.com/","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/projects/28/?format=json","name":"Linux PCI development","link_name":"linux-pci","list_id":"linux-pci.vger.kernel.org","list_email":"linux-pci@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260416111422.183860-4-sherry.sun@nxp.com>","list_archive_url":null,"date":"2026-04-16T11:14:13","name":"[V13,03/12] PCI: imx6: Assert PERST# before enabling regulators","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"62d1ebc7c98301a0f45a12b0e2759bcf378331ba","submitter":{"id":77063,"url":"http://patchwork.ozlabs.org/api/people/77063/?format=json","name":"Sherry Sun","email":"sherry.sun@nxp.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260416111422.183860-4-sherry.sun@nxp.com/mbox/","series":[{"id":500134,"url":"http://patchwork.ozlabs.org/api/series/500134/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/list/?series=500134","date":"2026-04-16T11:14:11","name":"pci-imx6: Add support for parsing the reset property in new Root Port binding","version":13,"mbox":"http://patchwork.ozlabs.org/series/500134/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2223897/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2223897/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <linux-pci+bounces-52600-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=nTiCyp4s;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-52600-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=\"nTiCyp4s\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.83.68","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 [172.234.253.10])\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 4fxFqw5BY6z1yDF\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 21:18:20 +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 6DD0C31708A0\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 11:13:13 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id CD1873A6B99;\n\tThu, 16 Apr 2026 11:13:12 +0000 (UTC)","from GVXPR05CU001.outbound.protection.outlook.com\n (mail-swedencentralazon11013068.outbound.protection.outlook.com\n [52.101.83.68])\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 315043A6B9E;\n\tThu, 16 Apr 2026 11:13:11 +0000 (UTC)","from VI0PR04MB12114.eurprd04.prod.outlook.com\n (2603:10a6:800:315::13) by AS8PR04MB8804.eurprd04.prod.outlook.com\n (2603:10a6:20b:42f::24) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.25; Thu, 16 Apr\n 2026 11:13:07 +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.9818.023; Thu, 16 Apr 2026\n 11:13:07 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776337992; cv=fail;\n b=sU2AwVJ1bKtUJU3E1Shljx6WjHlihGhu2YzSlFfBTGkb2UpdtFM26sDE/uScTWcde8UgxgHDzPmUQMBk7PK6TKsZ27HShJiS9rTBdJIIQXR0sVVreDL0ZNROt8/56ssAhnMevIX0raOMHHeTO1F+6PYsgzMwJTUbF4uPp01FoXE=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=O2DdRnPfjAmOoCR9fPmv3GgwWcCn67ol1rdLgkImDsadPMJrcgQtFNd+rYBmuyTL2PVhB1rb+ysAycBvQXbZNlnhijKeGoCNyIc8Mni52etVOSEQMgIugJrgWXc4sqxPtJg8abW1mX9zQd9fzKdplIPQ7UazK9Ot8LWOlrYzdUTEKjcDY9JkdASYPuOkz/i016qlgrrDQnKW0buXTDwRbGmaebhkUfPmxYaH5GmgPRVqkngKMY1ACsBv8TaNHEbAHS4+aYk+PtMbPN0O9DWiZrIF2DGPPe6t90YIHHZinyx3ZK4F19NQ+gkE5VbHy7r2mPosgUMCc32i6LIghOT0mw=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776337992; c=relaxed/simple;\n\tbh=B+IUcdsIJ2cNFPRVaG+xcPg4bNSXo9vHqnC7VOsbhpA=;\n\th=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=uxfHZNkzHnXke4hp/oVyBQlQ3Z0SBwHcXo20zWpPsmFAjY3KE3hxUl0f8HOvFSaX5RjXjveRjsGNTdl1FhIiyf17lAFGhj/Y8MO9HAPPmmZ4/mS8/Hsuw4skWmZYNZ29Gw3sd1d5l9r3C77JABE42CSZUj2IyXupRoT+jLD4s1o=","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=jGVHqOPs/4jMGkcftvgjRX5BCFrejfz9iGaZzDJBg8s=;\n b=FMSTzmPdqfz/fy8l9vfrqUbSaIJ2G67odFLr6zVKU5SCmNHGUyiu1qhi9BnGyYx0X6HwGysYp8IBd0M8rl4GtO2uBtqIkrxfQDkiCtDcPBViIXGrbk7+CNfCo0WmRWpkvmsQBdhYaWj9L9Szxmm107eLkaBBUm3jQoEud6VRrDMbz6ABW/iWEixhtvMgtuIq2AUVy4NzeJ11BEeM5m23YmqKuOjZaxCoqLBNOkA+wuL2k+OgE6NEqID7zAVPz7pj95MMwNlol0bIMBYes6nHd2O37aAaSrwmRCxRkAgEnWJXkbsIzwLDma8Q8mfH9qNkeyfxx1ad1/4bobk074/DOA=="],"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=nTiCyp4s; arc=fail smtp.client-ip=52.101.83.68","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=jGVHqOPs/4jMGkcftvgjRX5BCFrejfz9iGaZzDJBg8s=;\n b=nTiCyp4st81yTX7ACgopFjVtUd5tYEVE0oSYuubPscjDF4TwornARmmsGmKjAc68ubGm01o+c1ycXtvTFsLgcOA1znMphBXvRXXDa2SPzeBADwww9L03cKRwcT+EpJfC3MaubBE+jYzevOKVA2c3GwqOW24o5a9kPWbkXnAdCMHDYQFWof2HnEuIl+b96SWMRzVl5r0I6xz7366b/3n5X6/6/1qFnys6f227KeqWX+bxq7PHYnk5KNTa+Ps9R9jSNzkDysXrOKgcDX4Vm2FoJeGU6Nuf83uAKe4tj70c7avIJsgBuMd31DOYDkOoTXTnjD1xL0F/729HefG4FxOARg==","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 V13 03/12] PCI: imx6: Assert PERST# before enabling regulators","Date":"Thu, 16 Apr 2026 19:14:13 +0800","Message-Id":"<20260416111422.183860-4-sherry.sun@nxp.com>","X-Mailer":"git-send-email 2.37.1","In-Reply-To":"<20260416111422.183860-1-sherry.sun@nxp.com>","References":"<20260416111422.183860-1-sherry.sun@nxp.com>","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-ClientProxiedBy":"MA0PR01CA0076.INDPRD01.PROD.OUTLOOK.COM\n (2603:1096:a01:ad::17) 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_|AS8PR04MB8804:EE_","X-MS-Office365-Filtering-Correlation-Id":"df8c594e-962a-428c-4506-08de9ba92360","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"\n\tBCL:0;ARA:13230040|376014|366016|52116014|7416014|1800799024|19092799006|18002099003|56012099003|22082099003|38350700014|921020;","X-Microsoft-Antispam-Message-Info":"\n\tBvXq88dyeqYlPSt2gUuJ3CJ3Yl4XjQJgDd9bb86+bM5mPQsuQ1r4B8wc3wiEid6aszkDGNWP8kjvzJ3jkPBQd1NKF4DzeVFTKrow4aUFiRZ+9l+jIx9LppP/Qjwo6BAfM7ao3g/jWJ2Zdu+RjoNH6f6vnccB8yf3CSv5zURKnkoVmw6J5qJFb33Kh5QGhrElbRMmDGDrKkeIASZLQqdl55Nvujbi53xmfGSzhJG6qSjydLlknzsa5Y2UeCpHjm3PQ7FNciy9kRUhzc6cgSUhsazkZLtlqReLjiSaAfHlkKUkAz36ip4pvv1BqpcXg49Vq2UJTBzahSC7Az0YukFSevr/P36R6gu7FrAdrU503AwabFhFQyqpPwwSHUTJIp9P3avqUmc0tyEMFhenzoLpOv0XuhHWhuthpRnOVNZp2kH8OgdxjP1lYnmecYOUgoGwu+nIn6Ix1LSXsS33jOOev79PPbwMh8hb7LO+eyzhjbXG9Rhf+DhwG16SV4N/6cStyY/Bz8cuHSY+EKhEIojStPNbtSezHFYKUfZY1Y+dHuo8yCQ6BKl05MFBCDgJzfmcU8ZnOz5w5qywJ3nqm8rTL/9oBzQ9Jp0Rf8F5UiyAoaOTNPZQiP+dSJ0s1QoYP8cHAdD2SXWkbSvWhCMGynLyy0T/0qhKLlcFVyhhz4VCNzYt8LRI8HclQB243KPntbPnojN3YChoYfL2nxEtTYJWMRRDHGWNINQ2WXkGI2Mt6/Hv+KW0tmQ82dJ359Ht3q0StHCufml4D9v0QH0gjh3kJfjXT2B9p7JHRnx1du15ziBTfNnxcTsgGY3Xe4Fdfxrd","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)(376014)(366016)(52116014)(7416014)(1800799024)(19092799006)(18002099003)(56012099003)(22082099003)(38350700014)(921020);DIR:OUT;SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n /pvjZxRQ4W+wL95iu+5oZnw6hK2m1Ofp0pziWQkxdK1sJgoIDZa+UIOq1O0I6pkUnuX1gZZtjNvw6tJp7pIdZKpe/zMbKwYvHmCNHpVcrjvOsaD7KNLnVyBzurRhiOqpirDzUKC16Mv0QSr52Aqn3zazo1+Cd8TxDrjoy8lwqVOGwYYHEOSrhKTwdD+QaLIAL5UNp6mG12ZJju80GKd5tutCoxcfTUp7/Jml7qHy9645FVTHfXIEM/nliMGYfvbBdpTX18Kv7J2NZVsTUY2xyo6aguBDacntx+wVX+ikyHoVsfcE2siNFMiWkeXmpOW7evax/Zs19e/a3TLgX+GwMmDRWRvCVDDZROlSOByN1x0EgJbbrmPuZHCDRmyC/XwxFV74abaxn69D4F9HjiKr6VlBB7HThmGolAu8KgOKX6YnMsUdHOCp2JZE7nV18uOPzqi5T4bLMQHiX7jE4kL/LSkN2zsyvmux/iAlKW73VQc5+zds2TWkt93bCEML5MqxmVIF3I+bggRWoWnVYNlXyU+Cr2/4voB3FUcZYZRy7+EQeUfP/+TRhrM8rPTwoF2aU/mm35/zSTkOAS0YeAzmiVGV+XrvmVJUwyMCT88wp6MYU4gXdGMjQ04hJk0m4piFcXfbyBFVJI5V8U9R+JYuok5lvqiq3rf0mceMZP06qbY+w7BiTd/c7TF4X4Y3GPxLaCyZoRlg/z1CyDKh9z0wFrln1qHFLYe7NWuNX2pnRGgBpCTesd3y4L61heRfUt3lDZcIFEmOK+WSraajIaMb+Yc31nvJ4QANMjWfFgZ0YxK55+cQbO9JVGo1mA+WVPCkK1e1uKJjzc5xv5tc4lbV/nM+47vvTOo0Yv6dVnIz8hFouippnqzstiJFE2YxdbkldDexec+GmN4M2j9zWOy84tyXvNmnPTQsfZ625lFCDWrFAf37Oj3kvZlxQnD6q8iItxGKkviRuGA+i+LKYE76K4ocVeNiunVqkJJ9YZ0gBTJu6DGVqmgs3j1wqYPY+fBfVop7jSkmvjkel56AAjFTj977xzcrMen0yIPjYk+MvNTjZc46v7fbdQszXzErdSKrD6QuoxPwlaQZLvTf6QyvQb8kH1bqGJzriVmKZMTYbDlVHMsBEwRQG+09QARJmYPYhy+wlWYv/Kp5ZzdaxKaD9CJxPKQyMfARlCvMl/kb+U9TxIyR85NhRRs9adxCv84KFjZeFJGKLIXAhRQf6K8T5/Ny5+yGAs9C6q12W7mpfuZNveEdfS7rGFZjhZBS/5vgUQhrb16v6BPWNHF/6iMusYP69/3Ud0fThqnxIVHyV1j5FUVZBPcJfVOpm4ASd5dF9E+F/e9jKguMobQLmFkABGqSTWEExujKB8GBP73nAg1+eRvD691SfRAw5X9svIV+ApQP399oEVn2Oi3s5tiqwQVinzD8kQyDrGQ884WEi3bohJK0TaCeMdOXZTjLcbAr4nibIgllJwJ9gL+zWujEca1co1x8FENfqRLR+hsn+V1PHEo1uveKG/CdnhQq6tLn7P+yo0LRKy6I2omJVes9haYxl4NG1Dm80raFvIekLAtMslqu9OqIsc7fq34uSQ9jYRQU717JdT4kNBim4qTAB26/WQeAOgTZpY+TbP1FKqjBkjsmi94CY5erXEJDmfHQ6lYW2zSvcOFapTADF8gWNe73hXQPu/0QlIMtwpKtIavkoSWmQYrZCZX3HN7fCIAD0FP4/vATva+siXO59HSlEw==","X-OriginatorOrg":"nxp.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n df8c594e-962a-428c-4506-08de9ba92360","X-MS-Exchange-CrossTenant-AuthSource":"VI0PR04MB12114.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"16 Apr 2026 11:13:07.9233\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 r/1N35lPVHHduUoTj5pJi1xDAXgeS5jeSDjk+un6/vayCTJU6stbklaHXq++IjnPa5MgIB6fU88npZ5sdlWKlw==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"AS8PR04MB8804"},"content":"The PCIe endpoint may start responding or driving signals as soon as\nits supply is enabled, even before the reference clock is stable.\nAsserting PERST# before enabling the regulator ensures that the\nendpoint remains in reset throughout the entire power-up sequence,\nuntil both power and refclk are known to be stable and link\ninitialization can safely begin.\n\nCurrently, the driver enables the vpcie3v3aux regulator in\nimx_pcie_probe() before PERST# is asserted in imx_pcie_host_init(),\nwhich may cause PCIe endpoint undefined behavior during early\npower-up. However, there is no issue so far because PERST# is\nrequested as GPIOD_OUT_HIGH in imx_pcie_probe(), which guarantees\nthat PERST# is asserted before enabling the vpcie3v3aux regulator.\n\nThis is prepare for the upcoming changes that will parse the reset\nproperty using the new Root Port binding, which will use GPIOD_ASIS\nwhen requesting the reset GPIO. With GPIOD_ASIS, the GPIO state is not\nguaranteed, so explicit sequencing is required.\n\nFix the power sequencing by:\n1. Moving vpcie3v3aux regulator enable from probe to\n   imx_pcie_host_init(), where it can be properly sequenced with PERST#.\n2. Moving imx_pcie_assert_perst() before regulator and clock enable to\n   ensure correct ordering.\n\nSigned-off-by: Sherry Sun <sherry.sun@nxp.com>\n---\n drivers/pci/controller/dwc/pci-imx6.c | 49 +++++++++++++++++++++------\n 1 file changed, 39 insertions(+), 10 deletions(-)","diff":"diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c\nindex e35044cc5218..735127ed1455 100644\n--- a/drivers/pci/controller/dwc/pci-imx6.c\n+++ b/drivers/pci/controller/dwc/pci-imx6.c\n@@ -168,6 +168,8 @@ struct imx_pcie {\n \tu32\t\t\ttx_swing_full;\n \tu32\t\t\ttx_swing_low;\n \tstruct regulator\t*vpcie;\n+\tstruct regulator\t*vpcie_aux;\n+\tbool\t\t\tvpcie_aux_enabled;\n \tstruct regulator\t*vph;\n \tvoid __iomem\t\t*phy_base;\n \n@@ -1222,6 +1224,13 @@ 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 void imx_pcie_vpcie_aux_disable(void *data)\n+{\n+\tstruct regulator *vpcie_aux = data;\n+\n+\tregulator_disable(vpcie_aux);\n+}\n+\n static void imx_pcie_assert_perst(struct imx_pcie *imx_pcie, bool assert)\n {\n \tif (assert) {\n@@ -1242,6 +1251,24 @@ static int imx_pcie_host_init(struct dw_pcie_rp *pp)\n \tstruct imx_pcie *imx_pcie = to_imx_pcie(pci);\n \tint ret;\n \n+\timx_pcie_assert_perst(imx_pcie, true);\n+\n+\t/* Keep 3.3Vaux supply enabled for the entire PCIe controller lifecycle */\n+\tif (imx_pcie->vpcie_aux && !imx_pcie->vpcie_aux_enabled) {\n+\t\tret = regulator_enable(imx_pcie->vpcie_aux);\n+\t\tif (ret) {\n+\t\t\tdev_err(dev, \"failed to enable vpcie_aux regulator: %d\\n\",\n+\t\t\t\tret);\n+\t\t\treturn ret;\n+\t\t}\n+\t\timx_pcie->vpcie_aux_enabled = true;\n+\n+\t\tret = devm_add_action_or_reset(dev, imx_pcie_vpcie_aux_disable,\n+\t\t\t\t\t       imx_pcie->vpcie_aux);\n+\t\tif (ret)\n+\t\t\treturn ret;\n+\t}\n+\n \tif (imx_pcie->vpcie) {\n \t\tret = regulator_enable(imx_pcie->vpcie);\n \t\tif (ret) {\n@@ -1251,25 +1278,24 @@ static int imx_pcie_host_init(struct dw_pcie_rp *pp)\n \t\t}\n \t}\n \n+\tret = imx_pcie_clk_enable(imx_pcie);\n+\tif (ret) {\n+\t\tdev_err(dev, \"unable to enable pcie clocks: %d\\n\", ret);\n+\t\tgoto err_reg_disable;\n+\t}\n+\n \tif (pp->bridge && imx_check_flag(imx_pcie, IMX_PCIE_FLAG_HAS_LUT)) {\n \t\tpp->bridge->enable_device = imx_pcie_enable_device;\n \t\tpp->bridge->disable_device = imx_pcie_disable_device;\n \t}\n \n \timx_pcie_assert_core_reset(imx_pcie);\n-\timx_pcie_assert_perst(imx_pcie, true);\n \n \tif (imx_pcie->drvdata->init_phy)\n \t\timx_pcie->drvdata->init_phy(imx_pcie);\n \n \timx_pcie_configure_type(imx_pcie);\n \n-\tret = imx_pcie_clk_enable(imx_pcie);\n-\tif (ret) {\n-\t\tdev_err(dev, \"unable to enable pcie clocks: %d\\n\", ret);\n-\t\tgoto err_reg_disable;\n-\t}\n-\n \tif (imx_pcie->phy) {\n \t\tret = phy_init(imx_pcie->phy);\n \t\tif (ret) {\n@@ -1782,9 +1808,12 @@ static int imx_pcie_probe(struct platform_device *pdev)\n \tof_property_read_u32(node, \"fsl,max-link-speed\", &pci->max_link_speed);\n \timx_pcie->supports_clkreq = of_property_read_bool(node, \"supports-clkreq\");\n \n-\tret = devm_regulator_get_enable_optional(&pdev->dev, \"vpcie3v3aux\");\n-\tif (ret < 0 && ret != -ENODEV)\n-\t\treturn dev_err_probe(dev, ret, \"failed to enable Vaux supply\\n\");\n+\timx_pcie->vpcie_aux = devm_regulator_get_optional(&pdev->dev, \"vpcie3v3aux\");\n+\tif (IS_ERR(imx_pcie->vpcie_aux)) {\n+\t\tif (PTR_ERR(imx_pcie->vpcie_aux) != -ENODEV)\n+\t\t\treturn PTR_ERR(imx_pcie->vpcie_aux);\n+\t\timx_pcie->vpcie_aux = NULL;\n+\t}\n \n \timx_pcie->vpcie = devm_regulator_get_optional(&pdev->dev, \"vpcie\");\n \tif (IS_ERR(imx_pcie->vpcie)) {\n","prefixes":["V13","03/12"]}