-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Vineet Gupta
committed
Feb 11, 2013
1 parent
776af71
commit 6cca9f5
Showing
8 changed files
with
426 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: bf90e1eab682dcb79b7765989fb65835ce9d6165 | ||
refs/heads/master: d8005e6b95268cbb50db3773d5f180c32a9434fe |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
/* | ||
* Copyright (C) 2012 Synopsys, Inc. (www.synopsys.com) | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
*/ | ||
|
||
#ifndef _ASM_ARC_CLK_H | ||
#define _ASM_ARC_CLK_H | ||
|
||
/* Although we can't really hide core_freq, the accessor is still better way */ | ||
extern unsigned long core_freq; | ||
|
||
static inline unsigned long arc_get_core_freq(void) | ||
{ | ||
return core_freq; | ||
} | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
/* | ||
* Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
* | ||
* Delay routines using pre computed loops_per_jiffy value. | ||
* | ||
* vineetg: Feb 2012 | ||
* -Rewrote in "C" to avoid dealing with availability of H/w MPY | ||
* -Also reduced the num of MPY operations from 3 to 2 | ||
* | ||
* Amit Bhor: Codito Technologies 2004 | ||
*/ | ||
|
||
#ifndef __ASM_ARC_UDELAY_H | ||
#define __ASM_ARC_UDELAY_H | ||
|
||
#include <asm/param.h> /* HZ */ | ||
|
||
static inline void __delay(unsigned long loops) | ||
{ | ||
__asm__ __volatile__( | ||
"1: sub.f %0, %0, 1 \n" | ||
" jpnz 1b \n" | ||
: "+r"(loops) | ||
: | ||
: "cc"); | ||
} | ||
|
||
extern void __bad_udelay(void); | ||
|
||
/* | ||
* Normal Math for computing loops in "N" usecs | ||
* -we have precomputed @loops_per_jiffy | ||
* -1 sec has HZ jiffies | ||
* loops per "N" usecs = ((loops_per_jiffy * HZ / 1000000) * N) | ||
* | ||
* Approximate Division by multiplication: | ||
* -Mathematically if we multiply and divide a number by same value the | ||
* result remains unchanged: In this case, we use 2^32 | ||
* -> (loops_per_N_usec * 2^32 ) / 2^32 | ||
* -> (((loops_per_jiffy * HZ / 1000000) * N) * 2^32) / 2^32 | ||
* -> (loops_per_jiffy * HZ * N * 4295) / 2^32 | ||
* | ||
* -Divide by 2^32 is very simply right shift by 32 | ||
* -We simply need to ensure that the multiply per above eqn happens in | ||
* 64-bit precision (if CPU doesn't support it - gcc can emaulate it) | ||
*/ | ||
|
||
static inline void __udelay(unsigned long usecs) | ||
{ | ||
unsigned long loops; | ||
|
||
/* (long long) cast ensures 64 bit MPY - real or emulated | ||
* HZ * 4295 is pre-evaluated by gcc - hence only 2 mpy ops | ||
*/ | ||
loops = ((long long)(usecs * 4295 * HZ) * | ||
(long long)(loops_per_jiffy)) >> 32; | ||
|
||
__delay(loops); | ||
} | ||
|
||
#define udelay(n) (__builtin_constant_p(n) ? ((n) > 20000 ? __bad_udelay() \ | ||
: __udelay(n)) : __udelay(n)) | ||
|
||
#endif /* __ASM_ARC_UDELAY_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
/* | ||
* Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
*/ | ||
|
||
#ifndef _ASM_ARC_TIMEX_H | ||
#define _ASM_ARC_TIMEX_H | ||
|
||
#define CLOCK_TICK_RATE 80000000 /* slated to be removed */ | ||
|
||
#include <asm-generic/timex.h> | ||
|
||
/* XXX: get_cycles() to be implemented with RTSC insn */ | ||
|
||
#endif /* _ASM_ARC_TIMEX_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
/* | ||
* Copyright (C) 2012 Synopsys, Inc. (www.synopsys.com) | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
*/ | ||
|
||
#include <asm/clk.h> | ||
|
||
unsigned long core_freq = CONFIG_ARC_PLAT_CLK; |
Oops, something went wrong.