From: Frank Li <Frank.Li@nxp.com> To: krzysztof.kozlowski@linaro.org Cc: Frank.Li@nxp.com, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: [PATCH v7 02/16] PCI: imx6: Simplify phy handling by using by using IMX6_PCIE_FLAG_HAS_PHY Date: Wed, 27 Dec 2023 13:27:13 -0500 [thread overview] Message-ID: <20231227182727.1747435-3-Frank.Li@nxp.com> (raw) In-Reply-To: <20231227182727.1747435-1-Frank.Li@nxp.com> Refactors the phy handling logic in the imx6 PCI driver by adding IMX6_PCIE_FLAG_HAS_PHY bitmask define for drvdata::flags. The drvdata::flags and a bitmask ensures a cleaner and more scalable switch-case structure for handling phy. Signed-off-by: Frank Li <Frank.Li@nxp.com> --- Notes: Change from v4 to v5: - none, Keep IMX6_PCIE_FLAG_HAS_PHY to indicate dts mismatch when platform require phy suppport. Change from v1 to v3: - none drivers/pci/controller/dwc/pci-imx6.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 50d9faaa17f71..4d620249f3d52 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -60,6 +60,9 @@ enum imx6_pcie_variants { #define IMX6_PCIE_FLAG_IMX6_PHY BIT(0) #define IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE BIT(1) #define IMX6_PCIE_FLAG_SUPPORTS_SUSPEND BIT(2) +#define IMX6_PCIE_FLAG_HAS_PHY BIT(3) + +#define imx6_check_flag(pci, val) (pci->drvdata->flags & val) #define IMX6_PCIE_MAX_CLKS 6 @@ -1277,6 +1280,13 @@ static int imx6_pcie_probe(struct platform_device *pdev) if (ret) return ret; + if (imx6_check_flag(imx6_pcie, IMX6_PCIE_FLAG_HAS_PHY)) { + imx6_pcie->phy = devm_phy_get(dev, "pcie-phy"); + if (IS_ERR(imx6_pcie->phy)) + return dev_err_probe(dev, PTR_ERR(imx6_pcie->phy), + "failed to get pcie phy\n"); + } + switch (imx6_pcie->drvdata->variant) { case IMX7D: if (dbi_base->start == IMX8MQ_PCIE2_BASE_ADDR) @@ -1306,11 +1316,6 @@ static int imx6_pcie_probe(struct platform_device *pdev) return dev_err_probe(dev, PTR_ERR(imx6_pcie->apps_reset), "failed to get pcie apps reset control\n"); - imx6_pcie->phy = devm_phy_get(dev, "pcie-phy"); - if (IS_ERR(imx6_pcie->phy)) - return dev_err_probe(dev, PTR_ERR(imx6_pcie->phy), - "failed to get pcie phy\n"); - break; default: break; @@ -1444,13 +1449,15 @@ static const struct imx6_pcie_drvdata drvdata[] = { }, [IMX8MM] = { .variant = IMX8MM, - .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, + .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND | + IMX6_PCIE_FLAG_HAS_PHY, .gpr = "fsl,imx8mm-iomuxc-gpr", .clk_names = {"pcie_bus", "pcie", "pcie_aux"}, }, [IMX8MP] = { .variant = IMX8MP, - .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, + .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND | + IMX6_PCIE_FLAG_HAS_PHY, .gpr = "fsl,imx8mp-iomuxc-gpr", .clk_names = {"pcie_bus", "pcie", "pcie_aux"}, }, @@ -1462,12 +1469,14 @@ static const struct imx6_pcie_drvdata drvdata[] = { }, [IMX8MM_EP] = { .variant = IMX8MM_EP, + .flags = IMX6_PCIE_FLAG_HAS_PHY, .mode = DW_PCIE_EP_TYPE, .gpr = "fsl,imx8mm-iomuxc-gpr", .clk_names = {"pcie_bus", "pcie", "pcie_aux"}, }, [IMX8MP_EP] = { .variant = IMX8MP_EP, + .flags = IMX6_PCIE_FLAG_HAS_PHY, .mode = DW_PCIE_EP_TYPE, .gpr = "fsl,imx8mp-iomuxc-gpr", .clk_names = {"pcie_bus", "pcie", "pcie_aux"}, -- 2.34.1
WARNING: multiple messages have this Message-ID (diff)
From: Frank Li <Frank.Li@nxp.com> To: krzysztof.kozlowski@linaro.org Cc: Frank.Li@nxp.com, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: [PATCH v7 02/16] PCI: imx6: Simplify phy handling by using by using IMX6_PCIE_FLAG_HAS_PHY Date: Wed, 27 Dec 2023 13:27:13 -0500 [thread overview] Message-ID: <20231227182727.1747435-3-Frank.Li@nxp.com> (raw) In-Reply-To: <20231227182727.1747435-1-Frank.Li@nxp.com> Refactors the phy handling logic in the imx6 PCI driver by adding IMX6_PCIE_FLAG_HAS_PHY bitmask define for drvdata::flags. The drvdata::flags and a bitmask ensures a cleaner and more scalable switch-case structure for handling phy. Signed-off-by: Frank Li <Frank.Li@nxp.com> --- Notes: Change from v4 to v5: - none, Keep IMX6_PCIE_FLAG_HAS_PHY to indicate dts mismatch when platform require phy suppport. Change from v1 to v3: - none drivers/pci/controller/dwc/pci-imx6.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 50d9faaa17f71..4d620249f3d52 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -60,6 +60,9 @@ enum imx6_pcie_variants { #define IMX6_PCIE_FLAG_IMX6_PHY BIT(0) #define IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE BIT(1) #define IMX6_PCIE_FLAG_SUPPORTS_SUSPEND BIT(2) +#define IMX6_PCIE_FLAG_HAS_PHY BIT(3) + +#define imx6_check_flag(pci, val) (pci->drvdata->flags & val) #define IMX6_PCIE_MAX_CLKS 6 @@ -1277,6 +1280,13 @@ static int imx6_pcie_probe(struct platform_device *pdev) if (ret) return ret; + if (imx6_check_flag(imx6_pcie, IMX6_PCIE_FLAG_HAS_PHY)) { + imx6_pcie->phy = devm_phy_get(dev, "pcie-phy"); + if (IS_ERR(imx6_pcie->phy)) + return dev_err_probe(dev, PTR_ERR(imx6_pcie->phy), + "failed to get pcie phy\n"); + } + switch (imx6_pcie->drvdata->variant) { case IMX7D: if (dbi_base->start == IMX8MQ_PCIE2_BASE_ADDR) @@ -1306,11 +1316,6 @@ static int imx6_pcie_probe(struct platform_device *pdev) return dev_err_probe(dev, PTR_ERR(imx6_pcie->apps_reset), "failed to get pcie apps reset control\n"); - imx6_pcie->phy = devm_phy_get(dev, "pcie-phy"); - if (IS_ERR(imx6_pcie->phy)) - return dev_err_probe(dev, PTR_ERR(imx6_pcie->phy), - "failed to get pcie phy\n"); - break; default: break; @@ -1444,13 +1449,15 @@ static const struct imx6_pcie_drvdata drvdata[] = { }, [IMX8MM] = { .variant = IMX8MM, - .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, + .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND | + IMX6_PCIE_FLAG_HAS_PHY, .gpr = "fsl,imx8mm-iomuxc-gpr", .clk_names = {"pcie_bus", "pcie", "pcie_aux"}, }, [IMX8MP] = { .variant = IMX8MP, - .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, + .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND | + IMX6_PCIE_FLAG_HAS_PHY, .gpr = "fsl,imx8mp-iomuxc-gpr", .clk_names = {"pcie_bus", "pcie", "pcie_aux"}, }, @@ -1462,12 +1469,14 @@ static const struct imx6_pcie_drvdata drvdata[] = { }, [IMX8MM_EP] = { .variant = IMX8MM_EP, + .flags = IMX6_PCIE_FLAG_HAS_PHY, .mode = DW_PCIE_EP_TYPE, .gpr = "fsl,imx8mm-iomuxc-gpr", .clk_names = {"pcie_bus", "pcie", "pcie_aux"}, }, [IMX8MP_EP] = { .variant = IMX8MP_EP, + .flags = IMX6_PCIE_FLAG_HAS_PHY, .mode = DW_PCIE_EP_TYPE, .gpr = "fsl,imx8mp-iomuxc-gpr", .clk_names = {"pcie_bus", "pcie", "pcie_aux"}, -- 2.34.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-12-27 18:28 UTC|newest] Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-12-27 18:27 [PATCH v7 00/16] PCI: imx6: Clean up and add imx95 pci support Frank Li 2023-12-27 18:27 ` Frank Li 2023-12-27 18:27 ` [PATCH v7 01/16] PCI: imx6: Simplify clock handling by using bulk_clk_*() function Frank Li 2023-12-27 18:27 ` Frank Li 2024-01-02 8:47 ` Marco Felsch 2024-01-02 8:47 ` Marco Felsch 2024-01-03 17:02 ` Frank Li 2024-01-03 17:02 ` Frank Li 2024-01-04 10:07 ` Marco Felsch 2024-01-04 10:07 ` Marco Felsch 2024-01-06 15:27 ` Manivannan Sadhasivam 2024-01-06 15:27 ` Manivannan Sadhasivam 2024-01-06 16:48 ` Frank Li 2024-01-06 16:48 ` Frank Li 2024-01-07 3:02 ` Manivannan Sadhasivam 2024-01-07 3:02 ` Manivannan Sadhasivam 2023-12-27 18:27 ` Frank Li [this message] 2023-12-27 18:27 ` [PATCH v7 02/16] PCI: imx6: Simplify phy handling by using by using IMX6_PCIE_FLAG_HAS_PHY Frank Li 2024-01-06 15:33 ` Manivannan Sadhasivam 2024-01-06 15:33 ` Manivannan Sadhasivam 2024-01-06 16:50 ` Frank Li 2024-01-06 16:50 ` Frank Li 2024-01-07 3:04 ` Manivannan Sadhasivam 2024-01-07 3:04 ` Manivannan Sadhasivam 2023-12-27 18:27 ` [PATCH v7 03/16] PCI: imx6: Simplify reset handling by using by using *_FLAG_HAS_*_RESET Frank Li 2023-12-27 18:27 ` Frank Li 2023-12-27 18:27 ` [PATCH v7 04/16] dt-bindings: imx6q-pcie: Add linux,pci-domain as required for iMX8MQ Frank Li 2023-12-27 18:27 ` Frank Li 2024-01-07 3:15 ` Manivannan Sadhasivam 2024-01-07 3:15 ` Manivannan Sadhasivam 2024-01-07 4:47 ` Frank Li 2024-01-07 4:47 ` Frank Li 2024-01-07 5:19 ` Manivannan Sadhasivam 2024-01-07 5:19 ` Manivannan Sadhasivam 2024-01-07 5:38 ` Frank Li 2024-01-07 5:38 ` Frank Li 2024-01-07 6:29 ` Manivannan Sadhasivam 2024-01-07 6:29 ` Manivannan Sadhasivam 2024-01-09 3:49 ` Rob Herring 2024-01-09 3:49 ` Rob Herring 2024-01-09 3:49 ` Rob Herring 2024-01-09 3:49 ` Rob Herring 2023-12-27 18:27 ` [PATCH v7 05/16] PCI: imx6: Using "linux,pci-domain" as slot ID Frank Li 2023-12-27 18:27 ` Frank Li 2024-01-07 3:22 ` Manivannan Sadhasivam 2024-01-07 3:22 ` Manivannan Sadhasivam 2023-12-27 18:27 ` [PATCH v7 06/16] PCI: imx6: Simplify ltssm_enable() by using ltssm_off and ltssm_mask Frank Li 2023-12-27 18:27 ` Frank Li 2024-01-07 3:24 ` Manivannan Sadhasivam 2024-01-07 3:24 ` Manivannan Sadhasivam 2023-12-27 18:27 ` [PATCH v7 07/16] PCI: imx6: Simplify configure_type() by using mode_off and mode_mask Frank Li 2023-12-27 18:27 ` Frank Li 2024-01-07 5:16 ` Manivannan Sadhasivam 2024-01-07 5:16 ` Manivannan Sadhasivam 2024-01-07 5:32 ` Frank Li 2024-01-07 5:32 ` Frank Li 2024-01-07 5:35 ` Manivannan Sadhasivam 2024-01-07 5:35 ` Manivannan Sadhasivam 2023-12-27 18:27 ` [PATCH v7 08/16] PCI: imx6: Simplify switch-case logic by involve init_phy callback Frank Li 2023-12-27 18:27 ` Frank Li 2024-01-07 5:33 ` Manivannan Sadhasivam 2024-01-07 5:33 ` Manivannan Sadhasivam 2023-12-27 18:27 ` [PATCH v7 09/16] dt-bindings: imx6q-pcie: Clean up irrationality clocks check Frank Li 2023-12-27 18:27 ` Frank Li 2024-01-07 5:34 ` Manivannan Sadhasivam 2024-01-07 5:34 ` Manivannan Sadhasivam 2023-12-27 18:27 ` [PATCH v7 10/16] dt-bindings: imx6q-pcie: restruct reg and reg-name Frank Li 2023-12-27 18:27 ` Frank Li 2024-01-07 5:35 ` Manivannan Sadhasivam 2024-01-07 5:35 ` Manivannan Sadhasivam 2023-12-27 18:27 ` [PATCH v7 11/16] dt-bindings: imx6q-pcie: Add imx95 pcie compatible string Frank Li 2023-12-27 18:27 ` Frank Li 2024-01-02 16:03 ` Rob Herring 2024-01-02 16:03 ` Rob Herring 2023-12-27 18:27 ` [PATCH v7 12/16] PCI: imx6: Add iMX95 PCIe support Frank Li 2023-12-27 18:27 ` Frank Li 2024-01-07 5:51 ` Manivannan Sadhasivam 2024-01-07 5:51 ` Manivannan Sadhasivam 2023-12-27 18:27 ` [PATCH v7 13/16] PCI: imx6: Clean up get addr_space code Frank Li 2023-12-27 18:27 ` Frank Li 2024-01-07 5:55 ` Manivannan Sadhasivam 2024-01-07 5:55 ` Manivannan Sadhasivam 2023-12-27 18:27 ` [PATCH v7 14/16] PCI: imx6: Add epc_features in imx6_pcie_drvdata Frank Li 2023-12-27 18:27 ` Frank Li 2024-01-07 6:16 ` Manivannan Sadhasivam 2024-01-07 6:16 ` Manivannan Sadhasivam 2023-12-27 18:27 ` [PATCH v7 15/16] dt-bindings: imx6q-pcie: Add iMX95 pcie endpoint compatible string Frank Li 2023-12-27 18:27 ` Frank Li 2024-01-09 3:53 ` Rob Herring 2024-01-09 3:53 ` Rob Herring 2023-12-27 18:27 ` [PATCH v7 16/16] PCI: imx6: Add iMX95 Endpoint (EP) function support Frank Li 2023-12-27 18:27 ` Frank Li 2024-01-07 6:26 ` Manivannan Sadhasivam 2024-01-07 6:26 ` Manivannan Sadhasivam 2024-01-08 17:39 ` Frank Li 2024-01-08 17:39 ` Frank Li
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20231227182727.1747435-3-Frank.Li@nxp.com \ --to=frank.li@nxp.com \ --cc=bhelgaas@google.com \ --cc=conor+dt@kernel.org \ --cc=devicetree@vger.kernel.org \ --cc=festevam@gmail.com \ --cc=helgaas@kernel.org \ --cc=hongxing.zhu@nxp.com \ --cc=imx@lists.linux.dev \ --cc=kernel@pengutronix.de \ --cc=krzysztof.kozlowski+dt@linaro.org \ --cc=krzysztof.kozlowski@linaro.org \ --cc=kw@linux.com \ --cc=l.stach@pengutronix.de \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-imx@nxp.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=lpieralisi@kernel.org \ --cc=manivannan.sadhasivam@linaro.org \ --cc=robh@kernel.org \ --cc=s.hauer@pengutronix.de \ --cc=shawnguo@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.