diff options
Diffstat (limited to 'arch/arm/mach-s3c64xx')
-rw-r--r-- | arch/arm/mach-s3c64xx/clock.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-s3c64xx/include/mach/regs-sys.h | 1 |
2 files changed, 8 insertions, 1 deletions
diff --git a/arch/arm/mach-s3c64xx/clock.c b/arch/arm/mach-s3c64xx/clock.c index 8cf39e33579e..872e68361eb4 100644 --- a/arch/arm/mach-s3c64xx/clock.c +++ b/arch/arm/mach-s3c64xx/clock.c | |||
@@ -744,7 +744,13 @@ void __init_or_cpufreq s3c6400_setup_clocks(void) | |||
744 | printk(KERN_INFO "S3C64XX: PLL settings, A=%ld, M=%ld, E=%ld\n", | 744 | printk(KERN_INFO "S3C64XX: PLL settings, A=%ld, M=%ld, E=%ld\n", |
745 | apll, mpll, epll); | 745 | apll, mpll, epll); |
746 | 746 | ||
747 | hclk2 = mpll / GET_DIV(clkdiv0, S3C6400_CLKDIV0_HCLK2); | 747 | if(__raw_readl(S3C64XX_OTHERS) & S3C64XX_OTHERS_SYNCMUXSEL) |
748 | /* Synchronous mode */ | ||
749 | hclk2 = apll / GET_DIV(clkdiv0, S3C6400_CLKDIV0_HCLK2); | ||
750 | else | ||
751 | /* Asynchronous mode */ | ||
752 | hclk2 = mpll / GET_DIV(clkdiv0, S3C6400_CLKDIV0_HCLK2); | ||
753 | |||
748 | hclk = hclk2 / GET_DIV(clkdiv0, S3C6400_CLKDIV0_HCLK); | 754 | hclk = hclk2 / GET_DIV(clkdiv0, S3C6400_CLKDIV0_HCLK); |
749 | pclk = hclk2 / GET_DIV(clkdiv0, S3C6400_CLKDIV0_PCLK); | 755 | pclk = hclk2 / GET_DIV(clkdiv0, S3C6400_CLKDIV0_PCLK); |
750 | 756 | ||
diff --git a/arch/arm/mach-s3c64xx/include/mach/regs-sys.h b/arch/arm/mach-s3c64xx/include/mach/regs-sys.h index 774e0de31400..b91e02093289 100644 --- a/arch/arm/mach-s3c64xx/include/mach/regs-sys.h +++ b/arch/arm/mach-s3c64xx/include/mach/regs-sys.h | |||
@@ -26,5 +26,6 @@ | |||
26 | #define S3C64XX_OTHERS S3C_SYSREG(0x900) | 26 | #define S3C64XX_OTHERS S3C_SYSREG(0x900) |
27 | 27 | ||
28 | #define S3C64XX_OTHERS_USBMASK (1 << 16) | 28 | #define S3C64XX_OTHERS_USBMASK (1 << 16) |
29 | #define S3C64XX_OTHERS_SYNCMUXSEL (1 << 6) | ||
29 | 30 | ||
30 | #endif /* _PLAT_REGS_SYS_H */ | 31 | #endif /* _PLAT_REGS_SYS_H */ |