xref: /rk3399_rockchip-uboot/lib/time.c (revision 2108f4c4a302a021a8807a7baac16dd680a8f3d0)
178acc472SPeter Tyser /*
278acc472SPeter Tyser  * (C) Copyright 2000-2009
378acc472SPeter Tyser  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
478acc472SPeter Tyser  *
51a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
678acc472SPeter Tyser  */
778acc472SPeter Tyser 
878acc472SPeter Tyser #include <common.h>
978acc472SPeter Tyser #include <watchdog.h>
1078acc472SPeter Tyser 
11*2108f4c4SRob Herring #if CONFIG_SYS_HZ != 1000
12*2108f4c4SRob Herring #warning "CONFIG_SYS_HZ must be 1000 and should not be defined by platforms"
13*2108f4c4SRob Herring #endif
14*2108f4c4SRob Herring 
1578acc472SPeter Tyser #ifndef CONFIG_WD_PERIOD
1678acc472SPeter Tyser # define CONFIG_WD_PERIOD	(10 * 1000 * 1000)	/* 10 seconds default*/
1778acc472SPeter Tyser #endif
1878acc472SPeter Tyser 
1978acc472SPeter Tyser /* ------------------------------------------------------------------------- */
2078acc472SPeter Tyser 
2178acc472SPeter Tyser void udelay(unsigned long usec)
2278acc472SPeter Tyser {
2378acc472SPeter Tyser 	ulong kv;
2478acc472SPeter Tyser 
2578acc472SPeter Tyser 	do {
2678acc472SPeter Tyser 		WATCHDOG_RESET();
2778acc472SPeter Tyser 		kv = usec > CONFIG_WD_PERIOD ? CONFIG_WD_PERIOD : usec;
2878acc472SPeter Tyser 		__udelay (kv);
2978acc472SPeter Tyser 		usec -= kv;
3078acc472SPeter Tyser 	} while(usec);
3178acc472SPeter Tyser }
32c4c9fbebSAnatolij Gustschin 
33c4c9fbebSAnatolij Gustschin void mdelay(unsigned long msec)
34c4c9fbebSAnatolij Gustschin {
35c4c9fbebSAnatolij Gustschin 	while (msec--)
36c4c9fbebSAnatolij Gustschin 		udelay(1000);
37c4c9fbebSAnatolij Gustschin }
38