unified VC4 and ARM runtime code (including C++ runtime), updated some minor bits
[rpi-open-firmware.git] / lib / udelay.c
1 /*=============================================================================
2 Copyright (C) 2016-2017 Authors of rpi-open-firmware
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 #include <lib/runtime.h>
21 #include <hardware.h>
22
23 void udelay(uint32_t t) {
24 uint32_t tv = ST_CLO;
25 for (;;) {
26 /* nop still takes a cycle i think? */
27 __asm__ __volatile__ ("nop" :::);
28 if ((ST_CLO - tv) > t)
29 return;
30 }
31 }
This page took 0.074603 seconds and 4 git commands to generate.