diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2009-06-03 05:22:32 -0400 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2009-08-07 06:11:10 -0400 |
commit | 6d73665f052a8dadf6f33dfd2546e15199ad7c5f (patch) | |
tree | 8ab68874fbbfb7d1d46358daf4a5fa191c543978 /arch/arm/plat-mxc | |
parent | 5ef881bbecc72862fa379cb286a50f2781db4cec (diff) |
MXC PLL decoding: calculate mfn value with less magic
Also, use cpu_is_* macros rather than CONFIG_ARCH_*
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/plat-mxc')
-rw-r--r-- | arch/arm/plat-mxc/clock.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/arch/arm/plat-mxc/clock.c b/arch/arm/plat-mxc/clock.c index 92e13566cd4f..f653213b7416 100644 --- a/arch/arm/plat-mxc/clock.c +++ b/arch/arm/plat-mxc/clock.c | |||
@@ -39,6 +39,7 @@ | |||
39 | #include <linux/string.h> | 39 | #include <linux/string.h> |
40 | 40 | ||
41 | #include <mach/clock.h> | 41 | #include <mach/clock.h> |
42 | #include <mach/hardware.h> | ||
42 | 43 | ||
43 | static LIST_HEAD(clocks); | 44 | static LIST_HEAD(clocks); |
44 | static DEFINE_MUTEX(clocks_mutex); | 45 | static DEFINE_MUTEX(clocks_mutex); |
@@ -363,12 +364,11 @@ unsigned long mxc_decode_pll(unsigned int reg_val, u32 freq) | |||
363 | 364 | ||
364 | mfn_abs = mfn; | 365 | mfn_abs = mfn; |
365 | 366 | ||
366 | #if !defined CONFIG_ARCH_MX1 && !defined CONFIG_ARCH_MX21 | 367 | /* On all i.MXs except i.MX1 and i.MX21 mfn is a 10bit |
367 | if (mfn >= 0x200) { | 368 | * 2's complements number |
368 | mfn |= 0xFFFFFE00; | 369 | */ |
369 | mfn_abs = -mfn; | 370 | if (!cpu_is_mx1() && !cpu_is_mx21() && mfn >= 0x200) |
370 | } | 371 | mfn_abs = 0x400 - mfn; |
371 | #endif | ||
372 | 372 | ||
373 | freq *= 2; | 373 | freq *= 2; |
374 | freq /= pd + 1; | 374 | freq /= pd + 1; |
@@ -376,8 +376,10 @@ unsigned long mxc_decode_pll(unsigned int reg_val, u32 freq) | |||
376 | ll = (unsigned long long)freq * mfn_abs; | 376 | ll = (unsigned long long)freq * mfn_abs; |
377 | 377 | ||
378 | do_div(ll, mfd + 1); | 378 | do_div(ll, mfd + 1); |
379 | if (mfn < 0) | 379 | |
380 | if (!cpu_is_mx1() && !cpu_is_mx21() && mfn >= 0x200) | ||
380 | ll = -ll; | 381 | ll = -ll; |
382 | |||
381 | ll = (freq * mfi) + ll; | 383 | ll = (freq * mfi) + ll; |
382 | 384 | ||
383 | return ll; | 385 | return ll; |