diff options
Diffstat (limited to 'include/asm-arm/arch-ns9xxx/clock.h')
-rw-r--r-- | include/asm-arm/arch-ns9xxx/clock.h | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/include/asm-arm/arch-ns9xxx/clock.h b/include/asm-arm/arch-ns9xxx/clock.h deleted file mode 100644 index b943d3a92a1d..000000000000 --- a/include/asm-arm/arch-ns9xxx/clock.h +++ /dev/null | |||
@@ -1,71 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-arm/arch-ns9xxx/clock.h | ||
3 | * | ||
4 | * Copyright (C) 2007 by Digi International Inc. | ||
5 | * All rights reserved. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License version 2 as published by | ||
9 | * the Free Software Foundation. | ||
10 | */ | ||
11 | #ifndef __ASM_ARCH_CLOCK_H | ||
12 | #define __ASM_ARCH_CLOCK_H | ||
13 | |||
14 | #include <asm/arch-ns9xxx/regs-sys.h> | ||
15 | |||
16 | #define CRYSTAL 29491200 /* Hz */ | ||
17 | |||
18 | /* The HRM calls this value f_vco */ | ||
19 | static inline u32 ns9xxx_systemclock(void) __attribute__((const)); | ||
20 | static inline u32 ns9xxx_systemclock(void) | ||
21 | { | ||
22 | u32 pll = __raw_readl(SYS_PLL); | ||
23 | |||
24 | /* | ||
25 | * The system clock should be a multiple of HZ * TIMERCLOCKSELECT (in | ||
26 | * time.c). | ||
27 | * | ||
28 | * The following values are given: | ||
29 | * - TIMERCLOCKSELECT == 2^i for an i in {0 .. 6} | ||
30 | * - CRYSTAL == 29491200 == 2^17 * 3^2 * 5^2 | ||
31 | * - ND in {0 .. 31} | ||
32 | * - FS in {0 .. 3} | ||
33 | * | ||
34 | * Assuming the worst, we consider: | ||
35 | * - TIMERCLOCKSELECT == 64 | ||
36 | * - ND == 0 | ||
37 | * - FS == 3 | ||
38 | * | ||
39 | * So HZ should be a divisor of: | ||
40 | * (CRYSTAL * (ND + 1) >> FS) / TIMERCLOCKSELECT | ||
41 | * == (2^17 * 3^2 * 5^2 * 1 >> 3) / 64 | ||
42 | * == 2^8 * 3^2 * 5^2 | ||
43 | * == 57600 | ||
44 | * | ||
45 | * Currently HZ is defined to be 100 for this platform. | ||
46 | * | ||
47 | * Fine. | ||
48 | */ | ||
49 | return CRYSTAL * (REGGETIM(pll, SYS_PLL, ND) + 1) | ||
50 | >> REGGETIM(pll, SYS_PLL, FS); | ||
51 | } | ||
52 | |||
53 | static inline u32 ns9xxx_cpuclock(void) __attribute__((const)); | ||
54 | static inline u32 ns9xxx_cpuclock(void) | ||
55 | { | ||
56 | return ns9xxx_systemclock() / 2; | ||
57 | } | ||
58 | |||
59 | static inline u32 ns9xxx_ahbclock(void) __attribute__((const)); | ||
60 | static inline u32 ns9xxx_ahbclock(void) | ||
61 | { | ||
62 | return ns9xxx_systemclock() / 4; | ||
63 | } | ||
64 | |||
65 | static inline u32 ns9xxx_bbusclock(void) __attribute__((const)); | ||
66 | static inline u32 ns9xxx_bbusclock(void) | ||
67 | { | ||
68 | return ns9xxx_systemclock() / 8; | ||
69 | } | ||
70 | |||
71 | #endif /* ifndef __ASM_ARCH_CLOCK_H */ | ||