phy: rockchip-emmc: give DLL some extra time to be ready

According to the databook, 10.2us is the max time for dll to be ready to
work. However in testing, some chips need 20us for dll to be ready. This
patch adds some extra margin for dllrdy to be ready, fixing our
-ETIMEDOUT issues.

Signed-off-by: Shawn Lin <[email protected]>
Signed-off-by: Brian Norris <[email protected]>
Signed-off-by: Douglas Anderson <[email protected]>
Acked-by: Kishon Vijay Abraham I <[email protected]>
Tested-by: Heiko Stuebner <[email protected]>
Signed-off-by: Ulf Hansson <[email protected]>
This commit is contained in:
Shawn Lin 2016-06-20 10:56:40 -07:00 • committed by Ulf Hansson
commit 4d54a25ba5

View file

@ -119,10 +119,11 @@ static int rockchip_emmc_phy_power(struct rockchip_emmc_phy *rk_phy,
PHYCTRL_ENDLL_MASK,
PHYCTRL_ENDLL_SHIFT));
/*
* After enable analog DLL circuits, we need extra 10.2us
* for dll to be ready for work.
* After enable analog DLL circuits, we need an extra 10.2us
* for dll to be ready for work. But according to testing, we
* find some chips need more than 25us.
*/
udelay(11);
udelay(30);
regmap_read(rk_phy->reg_base,
rk_phy->reg_offset + GRF_EMMCPHY_STATUS,
&dllrdy);