linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4 v2] Miscellaneous s3c64xx fixes.
@ 2011-08-21 23:48 Tomasz Figa
  2011-08-21 23:48 ` [PATCH 1/4 v2] ARM: s3c64xx: DMA: Use S3C64XX_SDMA_SEL register name instead of numeric address Tomasz Figa
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Tomasz Figa @ 2011-08-21 23:48 UTC (permalink / raw)
  To: linux-arm-kernel



^ permalink raw reply	[flat|nested] 9+ messages in thread
* [PATCH 4/4 v2] ARM: s3c64xx: Add support for synchronous clock operation.
@ 2011-08-19  9:54 Tomasz Figa
  0 siblings, 0 replies; 9+ messages in thread
From: Tomasz Figa @ 2011-08-19  9:54 UTC (permalink / raw)
  To: linux-arm-kernel

Some boards based on S3C6410 use synchronous clocking, which means that HCLKx2
and other system clocks are generated from APLL instead of MPLL.

This patch adds support for such boards, by calculating hclk2 depending on
the status of S3C_OTHERS_SYNCMUXSEL bit in S3C64XX_OTHERS registers.

Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
---
 arch/arm/mach-s3c64xx/clock.c                 |    8 +++++++-
 arch/arm/mach-s3c64xx/include/mach/regs-sys.h |    3 ++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-s3c64xx/clock.c b/arch/arm/mach-s3c64xx/clock.c
index fdfc4d5..a7dab43 100644
--- a/arch/arm/mach-s3c64xx/clock.c
+++ b/arch/arm/mach-s3c64xx/clock.c
@@ -780,7 +780,13 @@ void __init_or_cpufreq s3c6400_setup_clocks(void)
 	printk(KERN_INFO "S3C64XX: PLL settings, A=%ld, M=%ld, E=%ld\n",
 	       apll, mpll, epll);
 
-	hclk2 = mpll / GET_DIV(clkdiv0, S3C6400_CLKDIV0_HCLK2);
+	if(__raw_readl(S3C64XX_OTHERS) & S3C64XX_OTHERS_SYNCMUXSEL)
+		/* Synchronous mode */
+		hclk2 = apll / GET_DIV(clkdiv0, S3C6400_CLKDIV0_HCLK2);
+	else
+		/* Asynchronous mode */
+		hclk2 = mpll / GET_DIV(clkdiv0, S3C6400_CLKDIV0_HCLK2);
+
 	hclk = hclk2 / GET_DIV(clkdiv0, S3C6400_CLKDIV0_HCLK);
 	pclk = hclk2 / GET_DIV(clkdiv0, S3C6400_CLKDIV0_PCLK);
 
diff --git a/arch/arm/mach-s3c64xx/include/mach/regs-sys.h b/arch/arm/mach-s3c64xx/include/mach/regs-sys.h
index 774e0de..00c5d8b 100644
--- a/arch/arm/mach-s3c64xx/include/mach/regs-sys.h
+++ b/arch/arm/mach-s3c64xx/include/mach/regs-sys.h
@@ -25,6 +25,7 @@
 
 #define S3C64XX_OTHERS		S3C_SYSREG(0x900)
 
-#define S3C64XX_OTHERS_USBMASK	(1 << 16)
+#define S3C64XX_OTHERS_USBMASK		(1 << 16)
+#define S3C64XX_OTHERS_SYNCMUXSEL	(1 << 6)
 
 #endif /* _PLAT_REGS_SYS_H */
-- 
1.7.6

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2011-08-25 23:33 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-21 23:48 [PATCH 0/4 v2] Miscellaneous s3c64xx fixes Tomasz Figa
2011-08-21 23:48 ` [PATCH 1/4 v2] ARM: s3c64xx: DMA: Use S3C64XX_SDMA_SEL register name instead of numeric address Tomasz Figa
2011-08-21 23:49 ` [PATCH 2/4 v2] ARM: s3c64xx: Save/restore S3C64XX_SDMA_SEL on suspend/resume Tomasz Figa
2011-08-21 23:49 ` [PATCH 3/4 v2] ARM: s3c64xx: Save/restore S3C64XX_MODEM_MIFPCON on suspend/resume to preserve LCD bypass state Tomasz Figa
2011-08-21 23:50 ` [PATCH 4/4 v2] ARM: s3c64xx: Add support for synchronous clock operation Tomasz Figa
2011-08-23  2:42   ` Kukjin Kim
2011-08-23 10:40     ` [PATCH 4/4 v3] " Tomasz Figa
2011-08-25 23:33       ` Kukjin Kim
  -- strict thread matches above, loose matches on Subject: below --
2011-08-19  9:54 [PATCH 4/4 v2] " Tomasz Figa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).