From patchwork Tue Apr 8 02:59:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Zhu X-Patchwork-Id: 14042106 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 2050FC36010 for ; Tue, 8 Apr 2025 03:14:32 +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=efEvitd2FYcZSyWZ5fqreRfGXp95/be3n61ocZj27PQ=; b=BERFrCJ15Owy3krU5tshXvCGT6 Di6J6ld81lGRKa2Bh0XcRi+gUw7lu746sYXtwk2YoPqUeminIdALKYKav6hcvcBB38nmXtzz5PcKC hj0gdj2oM2GvALQLMO6goWfjMEkF1KGxjZJv/aoYE7uRymKxZGxVoWyMWfjqL1nFSGUKj1iUoH6d7 9Z9VF8P//aXV68RUkZ1fNMyztEasUIo6Cfpo5izOKI3ZAGCDoHkLXu4o24faUyPliHlY5PTPVAmqj Kly04ymf3/piXM6Z5oIQAfmLFdoHvwOcP6TRewjqH2ZDyV2rpbPHSkzyfzBIFOP7h/KQBwdxJnl5C T7fTOgaQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.1 #2 (Red Hat Linux)) id 1u1zPs-00000002bOA-15be; Tue, 08 Apr 2025 03:14:24 +0000 Received: from mail-westeuropeazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c201::7] helo=AM0PR02CU008.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.1 #2 (Red Hat Linux)) id 1u1zD2-00000002Zav-3VWm for linux-arm-kernel@lists.infradead.org; Tue, 08 Apr 2025 03:01:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jXe8SR20ZVjBl6iUJFVVhVB8PCQkSCkNLZ+A7pWuh8jUczs8VgTE0GoiTLiSWhKzKKKL/sbQb+DpWvZ3te8uboH9NzR2/euCm4euAle+GJXpQdoexMVMZ4wtW4iRMk9Y3iTL5ILABVwBLc7PSVcu5j+CiWRpULSDlB9M7QuT5dbTdCFrqOT0GyplcF54qo2hvqh+Ix8w13ZUizZO4VHVXGvefFyRxD73N7JnH2Zm+fdOm0c3w6qk3tD4clfY7vXNWLJZiynCHx2MDhZJmrWRwmiYBJu07Qyr5nMafz/Enpy3PDKy6iYmsEarjkm0VVNqVuVNGgZG7uciZpo6fHSeOA== 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=efEvitd2FYcZSyWZ5fqreRfGXp95/be3n61ocZj27PQ=; b=derlZW4drbfcFNEjnvEw7fZnWmte1n1Da5aVb09jFDO5+CC5Elqnz96Zn9EzcU3nKCbOVgkatfEBWpp1Cyi+OtmnirSAFpOsngUwnO9pThnjXMwYLj8YduzDPXA0uXHl/xniM2eEPjc65/a3RcQv8+tjKL5Dudd+I9ZqmnTvx842DSoGvYoBcpkRmvHSlkCoVa9IPhAxqlp/73pPl3uWmYLtjCT1AE9tNEJRz7r/t3/5mFzdF/X8CdZKN08Z99SHgGNfuNG/3OI4uhoo8gdJBPG+sZCefrAlAMESFb8hQM6FE2JAxX0YLxE5mJe+fLHPoEWhFV2uvPk4j+DMwJy8Yg== 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=efEvitd2FYcZSyWZ5fqreRfGXp95/be3n61ocZj27PQ=; b=F/Qc8HE1oGsI0La4IpQewLV472trXSSjB4UtsxkVrWA3HnMfPTSBP4Zzu6ZIWYskfmMqTt4QgOHrZZvLvRtlL8IwWDyPEaKqaTkGSXOSnZse9/JEayPLcLUACO5KaBVE/q/nYsevV5j2ILP+zoYPVReQiLUTzsHfomLPmdDZgRFBlfCLREFBC1vh7l3hi8JVRTczR0Ft+O8nTwq0B8Dfy5gvkXwQY0ilHShJo75XfbX6hDkIEva32hi6ZVhxccVr3IjClZQHrml7fkEsup9t+5MWAqYJ089CKbw2X0gO62LHV2xMpsET/fxjs9DVxaG5gYk7fZc/SnuC757oVQkFpw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AS8PR04MB8676.eurprd04.prod.outlook.com (2603:10a6:20b:42b::10) by PA4PR04MB7536.eurprd04.prod.outlook.com (2603:10a6:102:e1::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Tue, 8 Apr 2025 03:01:06 +0000 Received: from AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::28b2:de72:ad25:5d93]) by AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::28b2:de72:ad25:5d93%4]) with mapi id 15.20.8606.033; Tue, 8 Apr 2025 03:01:06 +0000 From: Richard Zhu To: frank.li@nxp.com, l.stach@pengutronix.de, lpieralisi@kernel.org, kw@linux.com, manivannan.sadhasivam@linaro.org, robh@kernel.org, bhelgaas@google.com, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com Cc: linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, Richard Zhu , Frank Li Subject: [PATCH v5 3/7] PCI: imx6: Toggle the cold reset for i.MX95 PCIe Date: Tue, 8 Apr 2025 10:59:26 +0800 Message-Id: <20250408025930.1863551-4-hongxing.zhu@nxp.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20250408025930.1863551-1-hongxing.zhu@nxp.com> References: <20250408025930.1863551-1-hongxing.zhu@nxp.com> X-ClientProxiedBy: SG2P153CA0051.APCP153.PROD.OUTLOOK.COM (2603:1096:4:c6::20) To AS8PR04MB8676.eurprd04.prod.outlook.com (2603:10a6:20b:42b::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR04MB8676:EE_|PA4PR04MB7536:EE_ X-MS-Office365-Filtering-Correlation-Id: 7caacd9b-11b8-4749-2373-08dd76499ada X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|7416014|366016|1800799024|38350700014|921020; X-Microsoft-Antispam-Message-Info: dqc728n43an9EBtAOEGzOZF02kmdXWRMBVqrB3jMOLsR5isGGv2Z/qE73ZSMIFOepd6gQV21KHwH5E4DXl7Xfn1CyCdzcn7uqZbK2FYnrVBMi+cFJBu39U05I47k4rM+nKIO31QYazRFIsJFM3bWkNgj083t/kedL8+zY1wQlm8JNP0g4Zh23tlAoAmck2drOsqVc5z+GiCFu7KT+RirBAzPuaEzojf0N2aj02bC5MRjLqJAl/cJXdKdPULnLNXXTLSo0ouZZOGvguZXL21QD9UM3KKBlGcTHtfZ51QDWnlkuUelMBfLBF5SOgUUCfc+giQGxOKkXl+x3xO5oaD7qFBGQDmZZtg+H4bhpwN9ZWX1c8eBtAdVL/AiZrJDPyigX/hzmFrIfpO3Gc4viLvWjzhzxFacskdJ2VQp8+kebiKHuFBHAaeSLTeUj8gQeWQH8ok//dBULEVwVXY1JYmapu14zM+RRUeCVG/YY3/cTX8lY7JFuj3GlxzO/ZAWjSUVriHwVqeGqHK9VOGAWCSnT+C1DGp42pqpbH41df1UuUi+aXkZYpXsjDiqXufTrz4QNbWMdlbTAX5SQ86q8FT1A9mcNhlezcy7AYDPNKyqlKYgYLYes6EqqNHw1SOfTYFGc6B79lAxt2V8hnv3Ssrijy92chmpeIeNC5D8y9BVO4Ao+g/q/g5LMYAzNqVbV0r9/CI6nhR4j3LvsuInxe5PRo5ytotKzE9djR33w1Nvc1L4bVjQ89z8rNhpaJsjpng3aCoKyyqCSmpkIpG2+ZgXbqKqowJItlJ1wl6uhrdrogvobBCcIEOzLqjla8XzojELFXrS4zflXfNveyKpfwTbLas0uN0HT3Am/Jh+DxrmiCcq0LTEFyexNDcK6GKvCAGLChTgC+17Y9blyA201WO1L4bgryNHtTN2s1DYIKNxG43uzRQXnQACxmCcT1TbFVO5e2gTHu2KkWmMy8MFnPFwzmGJ0lYD39bI/qFarw1opqZ7d8ebzMprzfi69NKhE3apwF4KtSBOJZHEzl8FJ4gojDmty3zl6500zYa3CWiObYzNheCnq4CqnUiuod/5kHyyvjhnPdNv2VcEPQQsEbCL9cwgCfXPlq1BDq6pq9NNKHfx/4YtVJfIAO5hFHl7ovVuDViyYwGeyRE2myTVHETxu1Z+LlDeuCIuegi7IDvzga6CLCS+ROLh4mB8PlyIMluNIOMkyaoJL9PEUBOIPZWbRkjl7b06CDNgDiHHAJD4UUTVkxp4Uua47ELFC26Gi0SeczjxYTcpMHpF/POV/Tvzb1LWR40KbLOaDT1ZuI+rdNXrryn5NYY3xi+H6teUTYsr5KxGnrG95uWzvPWq2VAZOZfhdvMCud+9gmNxAMx37IMkL0/+dIbBNr/GjuFdlXnvyxOlult1OfXb8mzawrzEWrVMaLvF/gQqYUyYvRPjvUKNqPl1jMj6QTLRQVQkM04TRsGfwxJTHdwemfRWfk5YJg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB8676.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(7416014)(366016)(1800799024)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 7DX5mXjBk80Xl+ihE2HJprXplEkRXVIiZEUM2OoDOTgdrX51gtTUmY+n9XVOzeO9mtXVZOhMM402KIGTJjQn4SEQ49FCGI3pzFKyzBFY+KUsqoYWNPErJySDD/1u0zclOskN2WYhG+VsV+eaTpWcX+31wqotd2wI7twTSDb0r6T6qMYNBjFlTRUOpQHcKmgiDfa8FFWeJEvITNy1OSnvsZhUlK2Wf2DW+K6atr0JCnql25NKkWx3rJ7UfKvA1jUX5UQSq8GPLqZRI3gdFRify6pkfx6XVV5AO/2R/GAyLuk+0Gz01rZ3qdsc3WbWk9hWcBiCwr9szFZCg8FrW0PHVy1XaoWGOu+9MFATcW1t5+JwoR33FgappNIwq03+dTivi1FWTQIO/TAxjjnM8pj3txoSaGoq6N5jGgm0Ib8XwxG8XVwRLNtDmKlByEsN21NreSJMQtJuiJ5KZyBX1w8LaKRhcN46NjQ3lp+ERM14AwMT6kUazvPPNX1eiAodR6d57oU5mkkjWA86/GlxrYVzWpBcwaERHR+VGnZoR2Nq/OYaYSTkTdaCXyRDzF5y7z0UFDvbSKSAH3u3OMk0FDGbzXGplVXVkbVQGP6dG9Jc7yC+1E5dFoJn1GukGokCuAPiUroSKnwuSwKNsGDHVC3ceu7gd8T5j53MJulftcoA9hNk+ZOXRhxAi4eIaKmSYkYBwsoI7KG5CG5OusUMFfYQJgGB40th+MssXx7mvR0a3Dba9ZnNggRdD2btuEqBuWZd5Ki7Z9ncYP4PffD6ARJ9kqS9Unrx+jEbyNQabK6vtejUm7hHpoZZyWt8iL4h8/QpE9lpXFyVCSsPhOaoE5OWHuPL9uZPsyIAIn69/ZchCSYFpWsVOeoqXIx1L43kIDe8Z/uMBrPaAXWNqFCEQN9NLNc8JLRqrL39AZ5r8XU4oGPtaHNF0LrPudVAnIHOw0xyrpgOAgx1WlhJ8zhTCbqdn/5dEG89X888ep4xbL/zqEh9NjoUD0JpVwE2xmvlvLUJ2LnNxoHeIn8U3I9GV1PHZpTFtwr5A/aowhlMsqw5LYarKlPTnu3qR/p35z8fdyL/bdS8cryN+BvC1zqbEgUkjGsoyBMzm4uSrQl+4GaknHhVNZFbsuy8ZkQOG/coBy0tb2xviiGtKO9cawdzdOqq39V1QY5k6RuJVjZwTcbSbIGSRinaF2NnsNiLE3uVIl5h+N2mmrNXgySZRiI5AWH4ktOXRl7lkD9e8Wx7/CApMBddBNZUeHuMahXlnddswS+izOqXs3dwXDLYeqyY7Fhl5pchTSsLPBPp9RsBuRuHzqbVP1RXA6/PSPxMfMuaevpOq4XBuLbc4sxOv/JiJ2Otiklb6O3qlS454a6MwFMZLMtZ7TQv5d5I5mIAL5AU3vzp7u9SENTg4bdcJiJLoXqL8/yTf2AzkP64lMWWXSZRNv4/R9YBe/vky4mG3X8IJcF6J1xBFiUHPGvznYM3cFU8/nPnreqXVZxwgnKjObvzOlL8D7lKH6wCvSeTnsiG4CTEQw9rOKGk02yrUD9C+OAm353DSZJITZVNHujROTFycVnNESn1scUtrL/kmiSk7cMh X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7caacd9b-11b8-4749-2373-08dd76499ada X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8676.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 03:01:06.0865 (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: OBHpT7Y58iTlIfu3Tq47KxAG8TBv16bc7DXY9eWltNFgStUb0ammcu59F6ER+GY1VN9tSEYYiNPTV8u9fbpLmA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7536 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250407_200108_878125_FC1A29EB X-CRM114-Status: GOOD ( 13.68 ) 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 Add the cold reset toggle for i.MX95 PCIe to align PHY's power up sequency. Signed-off-by: Richard Zhu Reviewed-by: Frank Li Reviewed-by: Manivannan Sadhasivam --- drivers/pci/controller/dwc/pci-imx6.c | 42 +++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index c5871c3d4194..7c60b712480a 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -71,6 +71,9 @@ #define IMX95_SID_MASK GENMASK(5, 0) #define IMX95_MAX_LUT 32 +#define IMX95_PCIE_RST_CTRL 0x3010 +#define IMX95_PCIE_COLD_RST BIT(0) + #define to_imx_pcie(x) dev_get_drvdata((x)->dev) enum imx_pcie_variants { @@ -773,6 +776,43 @@ static int imx7d_pcie_core_reset(struct imx_pcie *imx_pcie, bool assert) return 0; } +static int imx95_pcie_core_reset(struct imx_pcie *imx_pcie, bool assert) +{ + u32 val; + + if (assert) { + /* + * From i.MX95 PCIe PHY perspective, the COLD reset toggle + * should be complete after power-up by the following sequence. + * > 10us(at power-up) + * > 10ns(warm reset) + * |<------------>| + * ______________ + * phy_reset ____/ \________________ + * ____________ + * ref_clk_en_______________________/ + * Toggle COLD reset aligned with this sequence for i.MX95 PCIe. + */ + regmap_set_bits(imx_pcie->iomuxc_gpr, IMX95_PCIE_RST_CTRL, + IMX95_PCIE_COLD_RST); + /* + * Make sure the write to IMX95_PCIE_RST_CTRL is flushed to the + * hardware by doing a read. Otherwise, there is no guarantee + * that the write has reached the hardware before udelay(). + */ + regmap_read_bypassed(imx_pcie->iomuxc_gpr, IMX95_PCIE_RST_CTRL, + &val); + udelay(15); + regmap_clear_bits(imx_pcie->iomuxc_gpr, IMX95_PCIE_RST_CTRL, + IMX95_PCIE_COLD_RST); + regmap_read_bypassed(imx_pcie->iomuxc_gpr, IMX95_PCIE_RST_CTRL, + &val); + udelay(10); + } + + return 0; +} + static void imx_pcie_assert_core_reset(struct imx_pcie *imx_pcie) { reset_control_assert(imx_pcie->pciephy_reset); @@ -1739,6 +1779,7 @@ static const struct imx_pcie_drvdata drvdata[] = { .ltssm_mask = IMX95_PCIE_LTSSM_EN, .mode_off[0] = IMX95_PE0_GEN_CTRL_1, .mode_mask[0] = IMX95_PCIE_DEVICE_TYPE, + .core_reset = imx95_pcie_core_reset, .init_phy = imx95_pcie_init_phy, }, [IMX8MQ_EP] = { @@ -1792,6 +1833,7 @@ static const struct imx_pcie_drvdata drvdata[] = { .mode_off[0] = IMX95_PE0_GEN_CTRL_1, .mode_mask[0] = IMX95_PCIE_DEVICE_TYPE, .init_phy = imx95_pcie_init_phy, + .core_reset = imx95_pcie_core_reset, .epc_features = &imx95_pcie_epc_features, .mode = DW_PCIE_EP_TYPE, },