Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
cris
arch-v32
lib
delay.c
Go to the documentation of this file.
1
/*
2
* Precise Delay Loops for ETRAX FS
3
*
4
* Copyright (C) 2006 Axis Communications AB.
5
*
6
*/
7
8
#include <hwregs/reg_map.h>
9
#include <
hwregs/reg_rdwr.h
>
10
#include <hwregs/timer_defs.h>
11
#include <linux/types.h>
12
#include <
linux/delay.h
>
13
#include <linux/module.h>
14
15
/*
16
* On ETRAX FS, we can check the free-running read-only 100MHz timer
17
* getting 32-bit 10ns precision, theoretically good for 42.94967295
18
* seconds. Unsigned arithmetic and careful expression handles
19
* wrapping.
20
*/
21
22
void
cris_delay10ns
(
u32
n10ns)
23
{
24
u32
t0
=
REG_RD
(
timer
,
regi_timer0
, r_time);
25
while
(
REG_RD
(
timer
,
regi_timer0
, r_time) - t0 < n10ns)
26
;
27
}
28
EXPORT_SYMBOL
(
cris_delay10ns
);
Generated on Thu Jan 10 2013 12:56:28 for Linux Kernel by
1.8.2