ARM: shmobile: marzen-reference: Initialize CPG device
authorSimon Horman <horms+renesas@verge.net.au>
Thu, 15 May 2014 11:32:06 +0000 (20:32 +0900)
committerSimon Horman <horms@verge.net.au>
Fri, 5 Dec 2014 00:24:50 +0000 (09:24 +0900)
On multiplatform kernels clocks are handled by the CCF CPG driver. It
must be explicitly initialized by a call to r8a7779_clocks_init() with
the value of the boot mode pins.

Based on similar work for the Koelsch board by Laurent Pinchart.

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
(cherry picked from commit a92fbd077bbfbe98e4dee84081d84c44ae99538b)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
arch/arm/mach-shmobile/board-marzen-reference.c

index d90843b..f642819 100644 (file)
@@ -19,7 +19,8 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-#include <linux/clk-provider.h>
+#include <linux/clk/shmobile.h>
+#include <linux/clocksource.h>
 #include <linux/of_platform.h>
 #include <mach/r8a7779.h>
 #include <asm/irq.h>
 #include "common.h"
 #include "irqs.h"
 
-static void __init marzen_init(void)
+static void __init marzen_init_timer(void)
 {
 #ifdef CONFIG_COMMON_CLK
-       of_clk_init(NULL);
-#else
+       r8a7779_clocks_init(r8a7779_read_mode_pins());
+#endif
+       clocksource_of_init();
+}
+
+static void __init marzen_init(void)
+{
+#ifndef CONFIG_COMMON_CLK
        r8a7779_clock_init();
 #endif
        r8a7779_add_standard_devices_dt();
@@ -48,6 +55,7 @@ DT_MACHINE_START(MARZEN, "marzen")
        .smp            = smp_ops(r8a7779_smp_ops),
        .map_io         = r8a7779_map_io,
        .init_early     = r8a7779_init_delay,
+       .init_time      = marzen_init_timer,
        .nr_irqs        = NR_IRQS_LEGACY,
        .init_irq       = r8a7779_init_irq_dt,
        .init_machine   = marzen_init,