Received: by 2002:a05:6358:45e:b0:b5:b6eb:e1f9 with SMTP id 30csp1712459rwe; Fri, 2 Sep 2022 02:28:47 -0700 (PDT) X-Google-Smtp-Source: AA6agR4aHhUO6WdO04J6vemYCwKvLXfd6Y3w6O3U+vyQZNC2t21ECWGXDm34TLcLpbQxBgV7TBzz X-Received: by 2002:a17:902:b086:b0:171:2632:cd3b with SMTP id p6-20020a170902b08600b001712632cd3bmr35838693plr.111.1662110927370; Fri, 02 Sep 2022 02:28:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662110927; cv=none; d=google.com; s=arc-20160816; b=w2TUXHYe5JgjWB/C6m+ZZVZlaMPkXOH7CMmWHZ6ZBlMn7djHpXzkCRn0P4/eeQVvzr Ja9Cx69aevA8MOYvk5o4YtgIHwiaUHk8cbmLYiHcBHx+DJ3Xt7NNWVPxLaBZAF53Cr0G 9sXughORXMYyPpRiySIt8RndfvKjyAUzX9ojaT3rb7+KGXjAZDm9kFRWTqOCvBQdCnjw 1ucX06DViJlElTQpnQZHWlLBKhjIJCd8SVWURfcHav+jShdV4IcBqo6paxDqkWkR10u3 KXmRtHrrRnjuShxEGyWlaxcLSmcAOr3I92KNzx0u+slSukORjDId+G6cFVs4Ujce3yj2 aOJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=H7tIaQpJIE8a1EcmltqDy0xVAW6SxiMxQWBPNnx1xIA=; b=cudjIfdUsn1rU7JbKN85RmDFMbYbFfb6h9VS18ZII0JHW2RZt9cajTdoJKrulfzmuq 2KUxZn0PBVcSZRv0dtadTlyFWgtLVXzg+0seYndF3HpSehvJ0Os288s7jOkHbILRrY4v 2fg2qT6oGsDlpPTg0ffR7juv8vy6behyE7shNzfaC5BYNExEAy0UdM9h1DJZwQoEmVew zL1nC2HEQLZ4UtlrauNOetsd65ebmdqaA9oRDVjSqZOTxf0tf1Xu3S/KYF3H3Ouba1Oo gEgbSurebt5AJyvq/Hu9R9xHsnAlI58lpzTrn1AuXKUfIbEwIT/ypGNWAGEfuiU/79bA WTuw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g4-20020a170902d1c400b0016ec623eac3si1415628plb.239.2022.09.02.02.28.33; Fri, 02 Sep 2022 02:28:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236107AbiIBJQ2 (ORCPT + 99 others); Fri, 2 Sep 2022 05:16:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33334 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236139AbiIBJQD (ORCPT ); Fri, 2 Sep 2022 05:16:03 -0400 Received: from inva020.nxp.com (inva020.nxp.com [92.121.34.13]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8DCA065803; Fri, 2 Sep 2022 02:15:55 -0700 (PDT) Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 29DED1A2AEE; Fri, 2 Sep 2022 11:15:54 +0200 (CEST) Received: from aprdc01srsp001v.ap-rdc01.nxp.com (aprdc01srsp001v.ap-rdc01.nxp.com [165.114.16.16]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id E25601A2AEB; Fri, 2 Sep 2022 11:15:53 +0200 (CEST) Received: from localhost.localdomain (shlinux2.ap.freescale.net [10.192.224.44]) by aprdc01srsp001v.ap-rdc01.nxp.com (Postfix) with ESMTP id 5A93C1820F78; Fri, 2 Sep 2022 17:15:52 +0800 (+08) From: Richard Zhu To: p.zabel@pengutronix.de, l.stach@pengutronix.de, bhelgaas@google.com, lorenzo.pieralisi@arm.com, robh@kernel.org, shawnguo@kernel.org, vkoul@kernel.org, alexander.stein@ew.tq-group.com, marex@denx.de, richard.leitner@linux.dev Cc: linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@pengutronix.de, linux-imx@nxp.com Subject: [PATCH v7 0/7] Add the iMX8MP PCIe support Date: Fri, 2 Sep 2022 16:57:59 +0800 Message-Id: <1662109086-15881-1-git-send-email-hongxing.zhu@nxp.com> X-Mailer: git-send-email 2.7.4 X-Virus-Scanned: ClamAV using ClamSMTP X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Based on the 6.0-rc1 of the pci/next branch. This series adds the i.MX8MP PCIe support and tested on i.MX8MP EVK board when one PCIe NVME device is used. - i.MX8MP PCIe has reversed initial PERST bit value refer to i.MX8MQ/i.MX8MM. Add the PHY PERST explicitly for i.MX8MP PCIe PHY. - Add the i.MX8MP PCIe PHY support in the i.MX8M PCIe PHY driver. And share as much as possible codes with i.MX8MM PCIe PHY. - Add the i.MX8MP PCIe support in binding document, DTS files, and PCIe driver. Main changes v6-->v7: - Add "Reviewed-by: Lucas Stach " into first three patches. - Use "const *char" to replace the static allocation. Main changes v5-->v6: - To avoid code duplication when find the gpr syscon regmap, add the gpr compatible into the drvdata. - Add one missing space before one curly brace in 3/7 of v5 series. - 4/7 of v5 had been applied by Phillipp, thanks. For ease of tests, still keep it in v6. Main changes v4-->v5: - Use Lucas' approach, let blk-ctrl driver do the hsio-mix resets. - Fetch the iomuxc-gpr regmap by the different phandles. Main changes v3-->v4: - Regarding Phillipp's suggestions, add fix tag into the first commit. - Add Reviewed and Tested tags. Main changes v2-->v3: - Fix the schema checking error in the PHY dt-binding patch. - Inspired by Lucas, the PLL configurations might not required when external OSC is used as PCIe referrence clock. It's true. Remove all the HSIO PLL bit manipulations, and PCIe works fine on i.MX8MP EVK board with one NVME device is used. - Drop the #4 patch of v2, since it had been applied by Rob. Main changes v1-->v2: - It's my fault forget including Vinod, re-send v2 after include Vinod and linux-phy@lists.infradead.org. - List the basements of this patch-set. The branch, codes changes and so on. - Clean up some useless register and bit definitions in #3 patch. Documentation/devicetree/bindings/phy/fsl,imx8-pcie-phy.yaml | 16 ++++++++-- arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 53 +++++++++++++++++++++++++++++++ arch/arm64/boot/dts/freescale/imx8mp.dtsi | 43 +++++++++++++++++++++++++ drivers/pci/controller/dwc/pci-imx6.c | 27 ++++++++++++++-- drivers/phy/freescale/phy-fsl-imx8m-pcie.c | 144 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------- drivers/reset/reset-imx7.c | 1 + drivers/soc/imx/imx8mp-blk-ctrl.c | 10 ++++++ 7 files changed, 241 insertions(+), 52 deletions(-) [PATCH v7 1/7] dt-binding: phy: Add iMX8MP PCIe PHY binding [PATCH v7 2/7] arm64: dts: imx8mp: Add iMX8MP PCIe support [PATCH v7 3/7] arm64: dts: imx8mp-evk: Add PCIe support [PATCH v7 4/7] reset: imx7: Fix the iMX8MP PCIe PHY PERST support [PATCH v7 5/7] soc: imx: imx8mp-blk-ctrl: handle PCIe PHY resets [PATCH v7 6/7] phy: freescale: imx8m-pcie: Add i.MX8MP PCIe PHY [PATCH v7 7/7] PCI: imx6: Add i.MX8MP PCIe support