From patchwork Mon Jul 8 17:08:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1958075 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=fW3B6Cuo; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45e3:2400::1; helo=sv.mirrors.kernel.org; envelope-from=linux-pci+bounces-9958-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org [IPv6:2604:1380:45e3:2400::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WHrKM6ZQnz1xpP for ; Tue, 9 Jul 2024 03:12:39 +1000 (AEST) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 605BE280F8E for ; Mon, 8 Jul 2024 17:12:38 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2A54715278A; Mon, 8 Jul 2024 17:09:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="fW3B6Cuo" X-Original-To: linux-pci@vger.kernel.org Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11012063.outbound.protection.outlook.com [52.101.66.63]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1815815253F; Mon, 8 Jul 2024 17:09:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720458564; cv=fail; b=BNWR0K12ydUeF0JwUJXWLHaPB9joy6XxWLZJs8RWgchFgA+WHlMQFA6dDuYeRqxhzDzYHd7UoLHcqIGdrtoeJmPKg3AcjdsFjORPLriAecIo63QfKOsk29slaOzl9uDMbqAHtlRpk2WjEce5A1IfDMXVhSZs9li3rQ2iM4rDJZo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720458564; c=relaxed/simple; bh=3pumsXExIZES/wQ7p8FUfOIADVYn/d9v336SFPD/EFw=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=GfmZSH6eAUEvkL/sYPKBxqIfY6iWB49b2oLatq6o1zxrL8nv56Rtfh0bXrKEb4LVofzaZSsGQzTEjofOQHeMW18PKUTvUs4epj2jH3CTVvWY4UCi0qCj2yZDmpjAmg5G4Z3yw8kgFGoCkmm3TEIgdaup0PPWclI+xAoGsB3HJMY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b=fW3B6Cuo; arc=fail smtp.client-ip=52.101.66.63 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BVM8amH0m/aPdPyBBNey///hZtNhPdLBuZneMrBuYl+dLPTbdhaDkveAwowK0t/BwvANZLZ5CwtlLOVbM3x2yUHmeUC+EvB+aPwx+/WISG818cb2NEt7pDN9quiZolpzFLtIrRWtVYbt6ZQcH6Je3FyPud2sA0QirI3beqD5N6Ovr5sHv3rx+EokRzmUYk2yIHjqXbk1hp1pY2VrPa+wrPxjIVTf4wxpsGdvMwzoGKZZe2IH07qovif6K090f+CI8TyM/I6lKqrIXSMXMjkpnEDPbvhOftbITo3au8QN2h2LP8wels8Co8SmIGGY/y6dpIOvHUwBvLqNIIQ2sk3zBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=JZDtjLHt/nOYLulAatb6/N7XJedpDA0/1tsdJEj6zH8=; b=ixU1r9fWufMqEgwCnG7hGa4rnQfO0cgMcWiQ2js73eqrSPR58SMNTQXNB46IUmtdddzhtFsvI8MMng/k8BYK/hhYzcDme3HN5e1iyAY58VptmZLZtHMMppMCevtVIYfZ/FI/pQcwwL8+aiXg5roo46o4NB63pRa252KmQm+hKWtLayp+0ST8tXTJtBl8ApU9l+JfCOqpkcLAZw9tVM2qXChIhSUK2VErV9fy5yjjXGvEpA7dFVWSTlkbWfjg3Fn1HoWtrnQAJcYIWbHWpl/ZQp1Izx+Vmxu7CLGyAB0GomN7O8Q7aYiMVehgiFr0sdpTo/6V6q7VXcHheWSZ4veO+Q== 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=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JZDtjLHt/nOYLulAatb6/N7XJedpDA0/1tsdJEj6zH8=; b=fW3B6CuoMdul+Panys5D3fWqSfCzHVmdn0Tu56G0xfc6Nmt2L+bzGYG5UKlfRKlm4oFxdkoIIbnL3pWI7dFmnG/0YqcG0BJWkxCoKfmscoyA1NGQaI+1prNZztlAv1FO07bjTzOiPM5hB4HVs4KvixZRSO1FUwGnVZHbgmabdNU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by DBBPR04MB7867.eurprd04.prod.outlook.com (2603:10a6:10:1e5::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Mon, 8 Jul 2024 17:09:19 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%2]) with mapi id 15.20.7741.033; Mon, 8 Jul 2024 17:09:19 +0000 From: Frank Li Date: Mon, 08 Jul 2024 13:08:14 -0400 Subject: [PATCH v7 10/10] PCI: imx6: Add i.MX8Q PCIe root complex (RC) support Message-Id: <20240708-pci2_upstream-v7-10-ac00b8174f89@nxp.com> References: <20240708-pci2_upstream-v7-0-ac00b8174f89@nxp.com> In-Reply-To: <20240708-pci2_upstream-v7-0-ac00b8174f89@nxp.com> To: Richard Zhu , Lucas Stach , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Rob Herring , Bjorn Helgaas , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Philipp Zabel , Liam Girdwood , Mark Brown , Manivannan Sadhasivam , Krzysztof Kozlowski , Conor Dooley Cc: linux-pci@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1720458497; l=4317; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=wGqQ6/UbFLcRJ0QNOV7fQqSOcB4pTfQ/KMdX6Q+OqFw=; b=MN1SzuF3MRZV2gesPwoxaixsEwQyQyu4DY/Esh+VjHpBQy7JkkxInqjT4NNBkVw9bhYqGolL/ Zv833wJjANMB7lRKYa/af0hPjrFl3y5+dm8U3YMTbzE9lTonrJL8Ak3 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR13CA0198.namprd13.prod.outlook.com (2603:10b6:a03:2c3::23) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|DBBPR04MB7867:EE_ X-MS-Office365-Filtering-Correlation-Id: 221c84d3-10a6-41e0-745a-08dc9f70b474 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|7416014|1800799024|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?OrH8kvDpXilkEchMV3ynhC25XdI24In?= =?utf-8?q?Jaz1PGLBfiW9TnaFFBmBdm1a+RNhJZE/c4QSLKMFxg154UWYZyoMVM0OBk59ZKrBT?= =?utf-8?q?NC4AdtH+PL3zoSDLyVYz5j8Maffl0sTfAleQq4x+cToTw5/Oeu4QClgW5iJ8mOqVx?= =?utf-8?q?JZjmNH1bbOIkxGOP8xZSgJ2tUBYJruFycHVdFRGXISTsTmZu1Y9d68tsrDQGa2KOf?= =?utf-8?q?/0h1qQz2H4SfrZlK7f30Li2aX6psrNEotWZza+2OuuujWOhbAV9D/wPOKid74l/ky?= =?utf-8?q?o+/JMP0ikeF94YDIucNns1ZK8QQVQuk++Rtuo2poQlQW2pCZjkmqceSlJNe519LKp?= =?utf-8?q?fHYXNPhi6IL3WCavjZUgr9vE0GLIn8eVCbsox2gkIELEYeTzfSZT/hOaAfRYpQPKl?= =?utf-8?q?3Ov3GZyMGKOpCkXLHCXQU0tZDuZNQfViWUpa01BNVlev81hlRIVYxBJaD/MfzRYb/?= =?utf-8?q?IbzDYCNj2zcheILr/HPvnUubtdQRwBYFrDse3FgU3nBKmBWSEJuPHpsFLkKdsCb6W?= =?utf-8?q?bgKxGebYEqfsqT6W2EA3DLPtY/5HH0MJFruzkLmV3a/lnpBxepo4/iFvilk1sE2DP?= =?utf-8?q?Gl45Xy0x1xbw0sUMnD5MP+qa/yD2TCeOHzuOCzQ1tFvXT5kItY5t+jI94sKC8SmR6?= =?utf-8?q?AprxvYWH+rGI9Ty5bqyfQNMBRnCI3WiO+wugeGddR60kXx8+GO7QbH/2AS8ekSwmQ?= =?utf-8?q?8G/NiyMP83a5KojdzR/hY4gq35xEQY4cYHBrfA6I8imEQEXz07JLxeOU4/G2hdhTj?= =?utf-8?q?GGPK7Qlg805qMQ9HG2ofkFD7D9bjde1DF97NSaLAqnR+lg8aQEZM/zzkxftmM0A8x?= =?utf-8?q?Dokt3PhlKBXoCvKm2Ei1AHxmI1qKS/vGVtPZI1VTwqSO5rc2kcaOsEYF5oIxd2fIA?= =?utf-8?q?PKdZ+5hqjEFpoZfy/CBg8UIxj/QjmS/cpxFXgVHGtnUJzYx4zgLAMwYZJokXRogCC?= =?utf-8?q?358Qhz/TbOuSciIfd0sSIdNUs27ETT+jrOk1BfkltOUJtWEMfscIy3xk0dtmftBd2?= =?utf-8?q?GumSQxr9cbiD4Oqv34+YiEjBtkXSGWGdIYiJjIwO6Bz9b8AQqtqC9ZxbbRbCAhpW8?= =?utf-8?q?Aq2HyV8u24qU9dxFrd4A85jEuIYnIw6zeyTACDsWmzQiCmdZrwcUqHu3rtR2BKG8I?= =?utf-8?q?l5y9SVOccIoB1CY5vXeblxQe7CMQUAfX2Ksed5s/lvauh7h+Fw4tmrzzaG1MZwRPI?= =?utf-8?q?9WBf5nKakn2EPMXBBQpJ/6S8/F/d1rvxt9nKZ2huIAVzCqL1aNIqehOkjGtSCO3Sw?= =?utf-8?q?uMRwfbZKRaKDfx/utvz9PxHf74xOtzCToaApu+yOs1WNCNYs6j4Y3R53TmMMcEhAp?= =?utf-8?q?BiES7Nn40geAraWhgmVsNQXeLew+rvW7byY4Cj247OMjWa8lM4jI6xY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(52116014)(7416014)(1800799024)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?6xy1CCkpPz40uHOfflKP4/ji7xhW?= =?utf-8?q?io1ZJ5XkTlScT4Du3EDB5E7l2aWzlSOgoyulFiSdCu0rnrlnw1nbOVTLlBZ132suv?= =?utf-8?q?yUDFu3tXzl6Acae5gHaZMES9T3GAilld34ZiVkO8lVGf4/NtVrqJUUODXLtAHlhYo?= =?utf-8?q?oyJL9+cjMiU6YWiNc7C4KfIDu+aCZ7/FKIKAn6cR+1GNsvWnLGXCu5hsH2jCIAMn6?= =?utf-8?q?CrcyFUmCuTYFCTDg8W0nxIM5TMVs1w94ZqUBURr9sCwhBp6nYrD5Tb/bU7gu3hBD8?= =?utf-8?q?F47yCOxN9Uw8ZfebbJwKROukFpL7XWR+pMirbS2j+CsmgpB/XfeaKNiQr7V6VaOKo?= =?utf-8?q?CbyEZoH8drNWK3HSIkuRQ2OXZsrPOXX/aMsRvqS1iLL26CLdetBzbgIbvDeoRI01W?= =?utf-8?q?W8GMGtQ7JQVCD9OrghKYB5b+ooJaX/Bgg0ZaA1udU5LEeONgpx20S3AzxvrmySjHk?= =?utf-8?q?fwGsmirMNZc1i2XCb6lcnfUXGCNXVIJeUhWH130hjUM9BI/5i7hvub0nZZipSJtDN?= =?utf-8?q?VJMmmW4j2BH/OAdeOd7YzG3DoPIuNLXQrdz57WYEIdH4/iri6R2zAaA8LwQ7PEgqA?= =?utf-8?q?Qrz2bwAT7/veHWKYfQ3S9GFsL/gKahprsPKvQwZSvi4z5MeaFrhnFbn+tHiSOjj2H?= =?utf-8?q?b79bFqo7F3+0hOYrDjnLihfKSRKxe1IuvSB0vAPyxMaQKF42+8R4u5YMEZvw9bQrb?= =?utf-8?q?RdjQbQZJixZRXbPkEQFaaYYkB1G0/IhFEXxxFPTuK7g+IyHfQzg1tBGqjAT646qKe?= =?utf-8?q?dvOzyPgneAGHW+S88Rtvixz1Phv8US7wrXWkRMSYyIMuqfTDhheSVhTMJhuwJt/vD?= =?utf-8?q?hagb+DNHML2HtEk1ypCoVimoBJPe9krtTIQwoty6uAydkS++IPb9eAF/mLku9aJ2v?= =?utf-8?q?e8tds46se4nvtNfmLv2E00cx419Cuigiu01jksGs80IYdzWOV8fW2aOO6kt6Pghqb?= =?utf-8?q?Jqs/TH1YOhYEf8kvbvq33qRNM8xHKMztr9BbwYH+wXF0LDhEj/M11j8keZDXV1Qvq?= =?utf-8?q?DQYFTPUB+PKpdndAE/uwAulLsv6iUWEgKW4F9Nx8wRF/SthlFpF/CmqWNzUmmb7Fk?= =?utf-8?q?Ddywf2ghzGwLhnxNW5RgZJh52E3eztgafKZCN/pU1KMpo5iQ14BLkgvB4pb2Zmc1d?= =?utf-8?q?K88z5nZH6dnug6BGBId+Nootdrg0lMPjL9eY1H2QIUf4Z3iiqJXpDqNFTkJ6mZCm/?= =?utf-8?q?JEnjsm7ANS43WUvImf2IasQbP0Af0Tz6BidJ8YpRlSUkZpax9LkZrl/ZK56wZ3MgC?= =?utf-8?q?rS/IWoD27FfvOtX6GiK1qH5h/VzFOUfdzjwD0u5pwO1t8e5dSNRIQZ2YRPlMXXcBc?= =?utf-8?q?LPFsmwDxLsdgn+A6CVV4Xd52mQ0W/wAlkA2QZkOQyVHqDbb/rig8Laexd2Ym9ahwy?= =?utf-8?q?9GF7pKiNCprr9G5HiE0SewTyA27bxMcLQx0oQmngeARJbxw4R7VBF7DCZhk1gY/+R?= =?utf-8?q?KfiWn5DdyvjS8O0WQ86atzBwKyZ8MH2xtwjT9SB/BVIVlLuzXqH67rrU=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 221c84d3-10a6-41e0-745a-08dc9f70b474 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jul 2024 17:09:19.4070 (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: qDZ1mAkKSZLWiDNQ7YM3Rzs/l8doutK2dBFWlZGHZldGsa6771W0Dpm9X1C+0aGmFVJ+FItQ3zbDYU1vwuD6Rg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7867 From: Richard Zhu Implement i.MX8Q (i.MX8QM, i.MX8QXP, and i.MX8DXL) PCIe RC support. While the controller resembles that of iMX8MP, the PHY differs significantly. Notably, there's a distinction between PCI bus addresses and CPU addresses. Introduce IMX_PCIE_FLAG_CPU_ADDR_FIXUP in drvdata::flags to indicate driver need the cpu_addr_fixup() callback to facilitate CPU address to PCI bus address conversion according to "ranges" property. Signed-off-by: Richard Zhu Signed-off-by: Frank Li Reviewed-by: Manivannan Sadhasivam --- drivers/pci/controller/dwc/pci-imx6.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index c72c7a0b0e02d..4e029d1c284e8 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -66,6 +66,7 @@ enum imx_pcie_variants { IMX8MQ, IMX8MM, IMX8MP, + IMX8Q, IMX95, IMX8MQ_EP, IMX8MM_EP, @@ -81,6 +82,7 @@ enum imx_pcie_variants { #define IMX_PCIE_FLAG_HAS_PHY_RESET BIT(5) #define IMX_PCIE_FLAG_HAS_SERDES BIT(6) #define IMX_PCIE_FLAG_SUPPORT_64BIT BIT(7) +#define IMX_PCIE_FLAG_CPU_ADDR_FIXUP BIT(8) #define imx_check_flag(pci, val) (pci->drvdata->flags & val) @@ -1015,6 +1017,22 @@ static void imx_pcie_host_exit(struct dw_pcie_rp *pp) regulator_disable(imx_pcie->vpcie); } +static u64 imx_pcie_cpu_addr_fixup(struct dw_pcie *pcie, u64 cpu_addr) +{ + struct imx_pcie *imx_pcie = to_imx_pcie(pcie); + struct dw_pcie_rp *pp = &pcie->pp; + struct resource_entry *entry; + unsigned int offset; + + if (!(imx_pcie->drvdata->flags & IMX_PCIE_FLAG_CPU_ADDR_FIXUP)) + return cpu_addr; + + entry = resource_list_first_type(&pp->bridge->windows, IORESOURCE_MEM); + offset = entry->offset; + + return (cpu_addr - offset); +} + static const struct dw_pcie_host_ops imx_pcie_host_ops = { .init = imx_pcie_host_init, .deinit = imx_pcie_host_exit, @@ -1023,6 +1041,7 @@ static const struct dw_pcie_host_ops imx_pcie_host_ops = { static const struct dw_pcie_ops dw_pcie_ops = { .start_link = imx_pcie_start_link, .stop_link = imx_pcie_stop_link, + .cpu_addr_fixup = imx_pcie_cpu_addr_fixup, }; static void imx_pcie_ep_init(struct dw_pcie_ep *ep) @@ -1452,6 +1471,13 @@ static int imx_pcie_probe(struct platform_device *pdev) if (ret < 0) return ret; + if (imx_check_flag(imx_pcie, IMX_PCIE_FLAG_CPU_ADDR_FIXUP)) { + if (!resource_list_first_type(&pci->pp.bridge->windows, IORESOURCE_MEM)) { + dw_pcie_host_deinit(&pci->pp); + return dev_err_probe(dev, -ENODEV, "DTS Miss PCI memory range"); + } + } + if (pci_msi_enabled()) { u8 offset = dw_pcie_find_capability(pci, PCI_CAP_ID_MSI); @@ -1476,6 +1502,7 @@ static const char * const imx6q_clks[] = {"pcie_bus", "pcie", "pcie_phy"}; static const char * const imx8mm_clks[] = {"pcie_bus", "pcie", "pcie_aux"}; static const char * const imx8mq_clks[] = {"pcie_bus", "pcie", "pcie_phy", "pcie_aux"}; static const char * const imx6sx_clks[] = {"pcie_bus", "pcie", "pcie_phy", "pcie_inbound_axi"}; +static const char * const imx8q_clks[] = {"mstr", "slv", "dbi"}; static const struct imx_pcie_drvdata drvdata[] = { [IMX6Q] = { @@ -1579,6 +1606,13 @@ static const struct imx_pcie_drvdata drvdata[] = { .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, .enable_ref_clk = imx8mm_pcie_enable_ref_clk, }, + [IMX8Q] = { + .variant = IMX8Q, + .flags = IMX_PCIE_FLAG_HAS_PHYDRV | + IMX_PCIE_FLAG_CPU_ADDR_FIXUP, + .clk_names = imx8q_clks, + .clks_cnt = ARRAY_SIZE(imx8q_clks), + }, [IMX95] = { .variant = IMX95, .flags = IMX_PCIE_FLAG_HAS_SERDES, @@ -1656,6 +1690,7 @@ static const struct of_device_id imx_pcie_of_match[] = { { .compatible = "fsl,imx8mq-pcie", .data = &drvdata[IMX8MQ], }, { .compatible = "fsl,imx8mm-pcie", .data = &drvdata[IMX8MM], }, { .compatible = "fsl,imx8mp-pcie", .data = &drvdata[IMX8MP], }, + { .compatible = "fsl,imx8q-pcie", .data = &drvdata[IMX8Q], }, { .compatible = "fsl,imx95-pcie", .data = &drvdata[IMX95], }, { .compatible = "fsl,imx8mq-pcie-ep", .data = &drvdata[IMX8MQ_EP], }, { .compatible = "fsl,imx8mm-pcie-ep", .data = &drvdata[IMX8MM_EP], },