diff options
author | Steven King <sfking@fdwdc.com> | 2012-06-17 01:03:38 -0700 |
---|---|---|
committer | Greg Ungerer <gerg@uclinux.org> | 2012-07-16 09:59:21 +1000 |
commit | c785a3d728b44fb49bfff481042fe81973476809 (patch) | |
tree | fa99a5e06fd7244f1c3eb61c25b37c29deb93776 /arch/m68k | |
parent | 32234328e24a38d8f9c42bd534ebfbd73fce8435 (diff) | |
download | linux-c785a3d728b44fb49bfff481042fe81973476809.tar.gz linux-c785a3d728b44fb49bfff481042fe81973476809.tar.bz2 linux-c785a3d728b44fb49bfff481042fe81973476809.zip |
m68knommu: Add rtc device for m5441x.
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>
Diffstat (limited to 'arch/m68k')
-rw-r--r-- | arch/m68k/include/asm/m5441xsim.h | 6 | ||||
-rw-r--r-- | arch/m68k/platform/coldfire/clk.c | 13 | ||||
-rw-r--r-- | arch/m68k/platform/coldfire/m5441x.c | 37 |
3 files changed, 49 insertions, 7 deletions
diff --git a/arch/m68k/include/asm/m5441xsim.h b/arch/m68k/include/asm/m5441xsim.h index 86315a96604d..cc798ab9524b 100644 --- a/arch/m68k/include/asm/m5441xsim.h +++ b/arch/m68k/include/asm/m5441xsim.h @@ -180,6 +180,12 @@ #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. diff --git a/arch/m68k/platform/coldfire/clk.c b/arch/m68k/platform/coldfire/clk.c index c06c0f4a0ffc..75f9ee967ea7 100644 --- a/arch/m68k/platform/coldfire/clk.c +++ b/arch/m68k/platform/coldfire/clk.c @@ -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); diff --git a/arch/m68k/platform/coldfire/m5441x.c b/arch/m68k/platform/coldfire/m5441x.c index 3020ceaba629..98a13cce93d8 100644 --- a/arch/m68k/platform/coldfire/m5441x.c +++ b/arch/m68k/platform/coldfire/m5441x.c @@ -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); |