All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] nds32: ag101/ag102: Inconsistent timer3 counter unit?
@ 2013-07-03 15:17 Axel Lin
  2013-07-08  3:02 ` Kuan-Yu Kuo
  0 siblings, 1 reply; 2+ messages in thread
From: Axel Lin @ 2013-07-03 15:17 UTC (permalink / raw)
  To: u-boot

Hi Macpaul,

For the case CONFIG_FTTMR010_EXT_CLK is not defined:

In reset_timer_masked():
lastdec = readl(&tmr->timer3_counter) / (CONFIG_SYS_CLK_FREQ / 2);

In get_timer_masked():
ulong now = readl(&tmr->timer3_counter) / (CONFIG_SYS_CLK_FREQ / 2 / 1024);

The code looks strange. 
(Why one needs to be divided by 1024 and the other one does not?)
I'm not sure which one is correct.

Regards,
Axel

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [U-Boot] nds32: ag101/ag102: Inconsistent timer3 counter unit?
  2013-07-03 15:17 [U-Boot] nds32: ag101/ag102: Inconsistent timer3 counter unit? Axel Lin
@ 2013-07-08  3:02 ` Kuan-Yu Kuo
  0 siblings, 0 replies; 2+ messages in thread
From: Kuan-Yu Kuo @ 2013-07-08  3:02 UTC (permalink / raw)
  To: u-boot

Hi Axel,

2013/7/3 Axel Lin <axel.lin@ingics.com>:
> Hi Macpaul,
>
> For the case CONFIG_FTTMR010_EXT_CLK is not defined:
>
> In reset_timer_masked():
> lastdec = readl(&tmr->timer3_counter) / (CONFIG_SYS_CLK_FREQ / 2);
>
> In get_timer_masked():
> ulong now = readl(&tmr->timer3_counter) / (CONFIG_SYS_CLK_FREQ / 2 / 1024);
>
> The code looks strange.
> (Why one needs to be divided by 1024 and the other one does not?)
> I'm not sure which one is correct.
>
> Regards,
> Axel
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

The unit of "readl(&tmr->timer3_counter) / (CONFIG_SYS_CLK_FREQ / 2)" is second.
However, there is a definition CONFIG_SYS_HZ = 1000 in
include/configs/adp-ag101p.h ,
this means the accuracy of "lastdec" and "now" should be in millisecond,
I think divided by 1024 is just for this purpose, but use CONFIG_SYS_HZ to
replace 1024 would be better.

so the correct should be:
lastdec = readl(&tmr->timer3_counter) / (CONFIG_SYS_CLK_FREQ / 2 /
CONFIG_SYS_HZ);
ulong now = readl(&tmr->timer3_counter) / (CONFIG_SYS_CLK_FREQ / 2 /
CONFIG_SYS_HZ);

Best Regards,
Kuan-Yu Kuo

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-07-08  3:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-03 15:17 [U-Boot] nds32: ag101/ag102: Inconsistent timer3 counter unit? Axel Lin
2013-07-08  3:02 ` Kuan-Yu Kuo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.