1 // SPDX-License-Identifier: GPL-2.0+
4 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
14 static int do_sleep(cmd_tbl_t
*cmdtp
, int flag
, int argc
, char * const argv
[])
16 ulong start
= get_timer(0);
24 delay
= simple_strtoul(argv
[1], NULL
, 10) * CONFIG_SYS_HZ
;
26 frpart
= strchr(argv
[1], '.');
29 uint mult
= CONFIG_SYS_HZ
/ 10;
30 for (frpart
++; *frpart
!= '\0' && mult
> 0; frpart
++) {
31 if (*frpart
< '0' || *frpart
> '9') {
35 mdelay
+= (*frpart
- '0') * mult
;
42 while (get_timer(start
) < delay
) {
53 sleep
, 2, 1, do_sleep
,
54 "delay execution for some time",
56 " - delay execution for N seconds (N is _decimal_ and can be\n"
60 #ifdef CONFIG_CMD_TIMER
61 static int do_timer(cmd_tbl_t
*cmdtp
, int flag
, int argc
, char * const argv
[])
68 if (!strcmp(argv
[1], "start"))
71 if (!strcmp(argv
[1], "get")) {
72 ulong msecs
= get_timer(start
) * 1000 / CONFIG_SYS_HZ
;
73 printf("%ld.%03d\n", msecs
/ 1000, (int)(msecs
% 1000));
80 timer
, 2, 1, do_timer
,
81 "access the system timer",
82 "start - Reset the timer reference.\n"
83 "timer get - Print the time since 'start'."