58135cf9fa677b34cdbeb0d4710920bf76ff53ae
[rpi-open-firmware.git] / lib / udelay.c
1 /*=============================================================================
2 Copyright (C) 2016 Kristina Brooks
3 All rights reserved.
4
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public License
7 as published by the Free Software Foundation; either version 2
8 of the License, or (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 FILE DESCRIPTION
16 Simple timer based delay routine.
17
18 =============================================================================*/
19
20 #ifdef __arm__
21 #else
22 #include "common.h"
23 #endif
24
25 #include "../hardware.h"
26
27
28 void udelay(uint32_t t) {
29 uint32_t tv = ST_CLO;
30
31 for (;;) {
32 /* nop still takes a cycle i think? */
33 __asm__ __volatile__ ("nop" :::);
34 if ((ST_CLO - tv) > t)
35 return;
36 }
37 }
This page took 0.066728 seconds and 4 git commands to generate.