UPSTREAM: arm: armv7: solve issue for timer_rate_hz in arch timer
The current value timer_rate_hz causes a problem with function timer_get_us() from lib time and then an issue with readx_poll_timeout() function. With corrected value for tbclk() = timer_rate_hz = CONFIG_SYS_HZ_CLOCK the weak functions in lib timer can be used: - get_timer() - __udelay() So the specific function in this file are removed. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> (cherry picked from commit 77aace579a9a84c74e99d2e86ecc08b1d9ca402b) Change-Id: Id289de433e49d396a95e3a72acf210be3a2d910b Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
This commit is contained in:
parent
c39f2cf7f6
commit
dd239d3008
|
|
@ -17,7 +17,7 @@ int timer_init(void)
|
|||
gd->arch.tbl = 0;
|
||||
gd->arch.tbu = 0;
|
||||
|
||||
gd->arch.timer_rate_hz = CONFIG_SYS_HZ_CLOCK / CONFIG_SYS_HZ;
|
||||
gd->arch.timer_rate_hz = CONFIG_SYS_HZ_CLOCK;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -34,27 +34,9 @@ unsigned long long get_ticks(void)
|
|||
}
|
||||
|
||||
|
||||
ulong get_timer(ulong base)
|
||||
{
|
||||
return lldiv(get_ticks(), gd->arch.timer_rate_hz) - base;
|
||||
}
|
||||
|
||||
ulong timer_get_boot_us(void)
|
||||
{
|
||||
return lldiv(get_ticks(), CONFIG_SYS_HZ_CLOCK / (CONFIG_SYS_HZ * 1000));
|
||||
}
|
||||
|
||||
void __udelay(unsigned long usec)
|
||||
{
|
||||
unsigned long long endtime;
|
||||
|
||||
endtime = lldiv((unsigned long long)usec * gd->arch.timer_rate_hz,
|
||||
1000UL);
|
||||
|
||||
endtime += get_ticks();
|
||||
|
||||
while (get_ticks() < endtime)
|
||||
;
|
||||
return lldiv(get_ticks(), CONFIG_SYS_HZ_CLOCK / 1000000);
|
||||
}
|
||||
|
||||
ulong get_tbclk(void)
|
||||
|
|
|
|||
Loading…
Reference in New Issue