Message ID | 20250228103959.47419-2-eichest@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | phy: freescale: imx8m-pcie: fix and cleanup phy | expand |
On Fr, 2025-02-28 at 11:38 +0100, Stefan Eichenberger wrote: > From: Stefan Eichenberger <stefan.eichenberger@toradex.com> > > Remove the switch statement and base perst release on whether it is > found in the device tree. The probe function fails without the reset > property, making it mandatory. Therefore, always release reset > independent of the variant. > > This does not change the behavior of the driver but reduces driver > complexity and allows for easier future modifications. > > Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com> > --- > drivers/phy/freescale/phy-fsl-imx8m-pcie.c | 12 ++++-------- > 1 file changed, 4 insertions(+), 8 deletions(-) > > diff --git a/drivers/phy/freescale/phy-fsl-imx8m-pcie.c b/drivers/phy/freescale/phy-fsl-imx8m-pcie.c > index e98361dcdeadf..00f957a42d9dc 100644 > --- a/drivers/phy/freescale/phy-fsl-imx8m-pcie.c > +++ b/drivers/phy/freescale/phy-fsl-imx8m-pcie.c > @@ -141,15 +141,11 @@ static int imx8_pcie_phy_power_on(struct phy *phy) > IMX8MM_GPR_PCIE_REF_CLK_PLL); > usleep_range(100, 200); > > - switch (imx8_phy->drvdata->variant) { > - case IMX8MP: > + if (imx8_phy->perst) This check is not necessary, reset_control_deassert(NULL) is a no-op: > reset_control_deassert(imx8_phy->perst); regards Philipp
diff --git a/drivers/phy/freescale/phy-fsl-imx8m-pcie.c b/drivers/phy/freescale/phy-fsl-imx8m-pcie.c index e98361dcdeadf..00f957a42d9dc 100644 --- a/drivers/phy/freescale/phy-fsl-imx8m-pcie.c +++ b/drivers/phy/freescale/phy-fsl-imx8m-pcie.c @@ -141,15 +141,11 @@ static int imx8_pcie_phy_power_on(struct phy *phy) IMX8MM_GPR_PCIE_REF_CLK_PLL); usleep_range(100, 200); - switch (imx8_phy->drvdata->variant) { - case IMX8MP: + if (imx8_phy->perst) reset_control_deassert(imx8_phy->perst); - fallthrough; - case IMX8MM: - reset_control_deassert(imx8_phy->reset); - usleep_range(200, 500); - break; - } + + reset_control_deassert(imx8_phy->reset); + usleep_range(200, 500); /* Do the PHY common block reset */ regmap_update_bits(imx8_phy->iomuxc_gpr, IOMUXC_GPR14,