]> git.karo-electronics.de Git - linux-beck.git/commitdiff
ARM: shmobile: r8a7778: implement SoC and board CCF support
authorUlrich Hecht <ulrich.hecht+renesas@gmail.com>
Mon, 16 Feb 2015 16:58:49 +0000 (17:58 +0100)
committerSimon Horman <horms+renesas@verge.net.au>
Mon, 23 Feb 2015 21:40:46 +0000 (06:40 +0900)
Disables the legacy clock framework and passes the mode bits to the CPG
driver if CCF is enabled.

Signed-off-by: Ulrich Hecht <ulrich.hecht+renesas@gmail.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
arch/arm/mach-shmobile/board-bockw-reference.c
arch/arm/mach-shmobile/setup-r8a7778.c

index d649ade4a202a2794abb107fd5b252047b5958c9..9a74efda3d18a8c45b0ac898205f7a5ac373917b 100644 (file)
@@ -36,7 +36,9 @@ static void __init bockw_init(void)
        void __iomem *fpga;
        void __iomem *pfc;
 
+#ifndef CONFIG_COMMON_CLK
        r8a7778_clock_init();
+#endif
        r8a7778_init_irq_extpin_dt(1);
        r8a7778_add_dt_devices();
 
index cef8895a9b8271dcd27549b7a5f6209cc4cb9abb..c49aa094fe17acb62e186155784a688e960767b9 100644 (file)
@@ -15,6 +15,7 @@
  * GNU General Public License for more details.
  */
 
+#include <linux/clk/shmobile.h>
 #include <linux/kernel.h>
 #include <linux/io.h>
 #include <linux/irqchip/arm-gic.h>
 #include "irqs.h"
 #include "r8a7778.h"
 
+#define MODEMR 0xffcc0020
+
+#ifdef CONFIG_COMMON_CLK
+static void __init r8a7778_timer_init(void)
+{
+       u32 mode;
+       void __iomem *modemr = ioremap_nocache(MODEMR, 4);
+
+       BUG_ON(!modemr);
+       mode = ioread32(modemr);
+       iounmap(modemr);
+       r8a7778_clocks_init(mode);
+}
+#endif
+
 /* SCIF */
 #define R8A7778_SCIF(index, baseaddr, irq)                     \
 static struct plat_sci_port scif##index##_platform_data = {    \
@@ -608,6 +624,9 @@ DT_MACHINE_START(R8A7778_DT, "Generic R8A7778 (Flattened Device Tree)")
        .init_early     = shmobile_init_delay,
        .init_irq       = r8a7778_init_irq_dt,
        .init_late      = shmobile_init_late,
+#ifdef CONFIG_COMMON_CLK
+       .init_time      = r8a7778_timer_init,
+#endif
        .dt_compat      = r8a7778_compat_dt,
 MACHINE_END