rk3288: Increase the delay to 10us when DDR revoked reset.
After DDR PHY reset de-asserted, DLL automatically starts to lock, and the lock time is maximum 5.12us. The output clock of DLL supplies the clocks of DDR controller and PHY digital logic. So before DLL lock, the clocks of DDR controller and PHY digital logic are indeterminate. When programming DDR in the period of DLL unlock, the programming maybe unstable because of the indeterminate clocks. So we need wait for at least 5.12us after de-asserting reset, then start to program DDR registers. Add some redundancy, the waiting time hopes to achieve 10us. BUG=chrome-os-partner:33148 TEST=I'm using the following command line test ok(15000 cycles). "while sleep 4 && dut-control cold_reset:on sleep:.1 cold_reset:off; do : ; done" BRANCH=None Change-Id: I55f8cb11ed3d7962567c5f40a31e6c8aed8fdcb0 Signed-off-by: DaiLunXue <dlx@rock-chips.com> Reviewed-on: https://chromium-review.googlesource.com/232894 Reviewed-by: Julius Werner <jwerner@chromium.org> Commit-Queue: Lunxue Dai <lunxue.dai@rock-chips.com> Tested-by: Lunxue Dai <lunxue.dai@rock-chips.com>
This commit is contained in:
parent
f49a151e1d
commit
54e1a439c0
1 changed files with 1 additions and 1 deletions
|
|
@ -531,7 +531,7 @@ static void phy_pctrl_reset(struct rk3288_ddr_publ_regs *ddr_publ_regs,
|
|||
rkclk_ddr_reset(channel, 1, 0);
|
||||
udelay(10);
|
||||
rkclk_ddr_reset(channel, 0, 0);
|
||||
udelay(1);
|
||||
udelay(10);
|
||||
}
|
||||
|
||||
static void phy_dll_bypass_set(struct rk3288_ddr_publ_regs *ddr_publ_regs,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue