[PATCH] phy: airoha: adjust initialization delay in airoha_pcie_phy_init()

Lorenzo Bianconi lorenzo at kernel.org
Tue Jul 9 00:03:50 PDT 2024


Align phy-pcie initialization delay to the vendor sdk in
airoha_pcie_phy_init routine and allow the hw to complete required
configuration before proceeding

Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
---
 drivers/phy/phy-airoha-pcie.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/phy/phy-airoha-pcie.c b/drivers/phy/phy-airoha-pcie.c
index bd3edaa986c8..445bacfdaaf4 100644
--- a/drivers/phy/phy-airoha-pcie.c
+++ b/drivers/phy/phy-airoha-pcie.c
@@ -18,6 +18,9 @@
 #define LEQ_LEN_CTRL_MAX_VAL	7
 #define FREQ_LOCK_MAX_ATTEMPT	10
 
+/* PCIe-PHY initialization time in ms needed by the hw to complete */
+#define PHY_HW_INIT_TIME_MS	30
+
 enum airoha_pcie_port_gen {
 	PCIE_PORT_GEN1 = 1,
 	PCIE_PORT_GEN2,
@@ -1180,8 +1183,11 @@ static int airoha_pcie_phy_init(struct phy *phy)
 				 PCIE_DA_XPON_CDR_PR_PWDB);
 	airoha_phy_pma1_set_bits(pcie_phy, REG_PCIE_PMA_SS_DA_XPON_PWDB0,
 				 PCIE_DA_XPON_CDR_PR_PWDB);
-
-	usleep_range(100, 200);
+	/*
+	 * Wait for the time in ms needed by the hw to complete the PCIe-PHY
+	 * initialization
+	 */
+	mdelay(PHY_HW_INIT_TIME_MS);
 
 	return 0;
 }
-- 
2.45.2




More information about the linux-phy mailing list