m68knommu: Add rtc device for m5441x.
authorSteven King <sfking@fdwdc.com>
Sun, 17 Jun 2012 08:03:38 +0000 (01:03 -0700)
committerGreg Ungerer <gerg@uclinux.org>
Sun, 15 Jul 2012 23:59:21 +0000 (09:59 +1000)
Add definitions for the m5441x rtc device and an init_BSP function to the
m5441x device code.

Signed-off-by: Steven King <sfking@fdwdc.com>
arch/m68k/include/asm/m5441xsim.h
arch/m68k/platform/coldfire/clk.c
arch/m68k/platform/coldfire/m5441x.c

index 86315a96604d464bd2116e3c33ab41efe06701dc..cc798ab9524bebf4e701ba77e5eb2fac09c0463f 100644 (file)
 #define MCFEPORT_EPPAR         0xfc090000
 #define MCFEPORT_EPIER         0xfc090003
 #define MCFEPORT_EPFR          0xfc090006
+/*
+ *  RTC Module.
+ */
+#define MCFRTC_BASE            0xfc0a8000
+#define MCFRTC_SIZE            (0xfc0a8840 - 0xfc0a8000)
+#define MCF_IRQ_RTC            (MCFINT2_VECBASE + MCFINT2_RTC)
 
 /*
  *  GPIO Module.
index c06c0f4a0ffca624b171a1d1e86d3c3e5c485986..75f9ee967ea71cc696c3ed9cc5efb390b4ed209a 100644 (file)
@@ -48,13 +48,6 @@ unsigned long clk_get_rate(struct clk *clk)
        return MCF_CLK;
 }
 EXPORT_SYMBOL(clk_get_rate);
-
-struct clk *devm_clk_get(struct device *dev, const char *id)
-{
-       return NULL;
-}
-EXPORT_SYMBOL(devm_clk_get);
-
 #else
 static DEFINE_SPINLOCK(clk_lock);
 
@@ -153,3 +146,9 @@ struct clk_ops clk_ops1 = {
 };
 #endif /* MCFPM_PPMCR1 */
 #endif /* MCFPM_PPMCR0 */
+
+struct clk *devm_clk_get(struct device *dev, const char *id)
+{
+       return NULL;
+}
+EXPORT_SYMBOL(devm_clk_get);
index 3020ceaba629e5b75007ad029416f24e6f4a0896..98a13cce93d82ef0a70a6d9b354531248f2a8d80 100644 (file)
@@ -222,3 +222,40 @@ void __init config_BSP(char *commandp, int size)
        m5441x_uarts_init();
        m5441x_fec_init();
 }
+
+
+#if IS_ENABLED(CONFIG_RTC_DRV_M5441x)
+static struct resource m5441x_rtc_resources[] = {
+       {
+               .start          = MCFRTC_BASE,
+               .end            = MCFRTC_BASE + MCFRTC_SIZE - 1,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = MCF_IRQ_RTC,
+               .end            = MCF_IRQ_RTC,
+               .flags          = IORESOURCE_IRQ,
+       },
+};
+
+static struct platform_device m5441x_rtc = {
+       .name                   = "mcfrtc",
+       .id                     = 0,
+       .resource               = m5441x_rtc_resources,
+       .num_resources          = ARRAY_SIZE(m5441x_rtc_resources),
+};
+#endif
+
+static struct platform_device *m5441x_devices[] __initdata = {
+#if IS_ENABLED(CONFIG_RTC_DRV_M5441x)
+       &m5441x_rtc,
+#endif
+};
+
+static int __init init_BSP(void)
+{
+       platform_add_devices(m5441x_devices, ARRAY_SIZE(m5441x_devices));
+       return 0;
+}
+
+arch_initcall(init_BSP);