xref: /rk3399_rockchip-uboot/lib/time.c (revision 1a4596601fd395f3afb8f82f3f840c5e00bdd57a)
178acc472SPeter Tyser /*
278acc472SPeter Tyser  * (C) Copyright 2000-2009
378acc472SPeter Tyser  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
478acc472SPeter Tyser  *
5*1a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
678acc472SPeter Tyser  */
778acc472SPeter Tyser 
878acc472SPeter Tyser #include <common.h>
978acc472SPeter Tyser #include <watchdog.h>
1078acc472SPeter Tyser 
1178acc472SPeter Tyser #ifndef CONFIG_WD_PERIOD
1278acc472SPeter Tyser # define CONFIG_WD_PERIOD	(10 * 1000 * 1000)	/* 10 seconds default*/
1378acc472SPeter Tyser #endif
1478acc472SPeter Tyser 
1578acc472SPeter Tyser /* ------------------------------------------------------------------------- */
1678acc472SPeter Tyser 
1778acc472SPeter Tyser void udelay(unsigned long usec)
1878acc472SPeter Tyser {
1978acc472SPeter Tyser 	ulong kv;
2078acc472SPeter Tyser 
2178acc472SPeter Tyser 	do {
2278acc472SPeter Tyser 		WATCHDOG_RESET();
2378acc472SPeter Tyser 		kv = usec > CONFIG_WD_PERIOD ? CONFIG_WD_PERIOD : usec;
2478acc472SPeter Tyser 		__udelay (kv);
2578acc472SPeter Tyser 		usec -= kv;
2678acc472SPeter Tyser 	} while(usec);
2778acc472SPeter Tyser }
28c4c9fbebSAnatolij Gustschin 
29c4c9fbebSAnatolij Gustschin void mdelay(unsigned long msec)
30c4c9fbebSAnatolij Gustschin {
31c4c9fbebSAnatolij Gustschin 	while (msec--)
32c4c9fbebSAnatolij Gustschin 		udelay(1000);
33c4c9fbebSAnatolij Gustschin }
34