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