arm: mach-mxs: add device for rtc
authorWolfram Sang <w.sang@pengutronix.de>
Mon, 2 May 2011 14:21:49 +0000 (16:21 +0200)
committerSascha Hauer <s.hauer@pengutronix.de>
Tue, 23 Aug 2011 06:56:15 +0000 (08:56 +0200)
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Tested-by: Shawn Guo <shawn.guo@freescale.com>
arch/arm/mach-mxs/devices-mx23.h
arch/arm/mach-mxs/devices-mx28.h
arch/arm/mach-mxs/devices/Kconfig
arch/arm/mach-mxs/devices/Makefile
arch/arm/mach-mxs/devices/platform-rtc-stmp3xxx.c [new file with mode: 0644]

index c6f345febd39ecc8419fc538ffe768a1ae07e7af..3fa651d2c994064df280a11109716b9f0b8e4282 100644 (file)
@@ -29,3 +29,5 @@ extern const struct mxs_mxs_mmc_data mx23_mxs_mmc_data[] __initconst;
 
 struct platform_device *__init mx23_add_mxsfb(
                const struct mxsfb_platform_data *pdata);
+
+struct platform_device *__init mx23_add_rtc_stmp3xxx(void);
index c0f21cef4b5d93bf539acf9a3fc0ff934354dcdf..c8887103f0e32670b043d948d60f6b0fc915cecb 100644 (file)
@@ -48,3 +48,5 @@ struct platform_device *__init mx28_add_mxsfb(
 
 extern const struct mxs_saif_data mx28_saif_data[] __initconst;
 #define mx28_add_saif(id)              mxs_add_saif(&mx28_saif_data[id])
+
+struct platform_device *__init mx28_add_rtc_stmp3xxx(void);
index b55437124fdaef7cd0015fef724cc693bd39547e..18b6bf526a272242b1a0d03a78ee4b64b4209f7a 100644 (file)
@@ -26,3 +26,6 @@ config MXS_HAVE_PLATFORM_MXSFB
 
 config MXS_HAVE_PLATFORM_MXS_SAIF
        bool
+
+config MXS_HAVE_PLATFORM_RTC_STMP3XXX
+       bool
index d3e8cc3886290cab94bb7045edaa3db434db6637..f52e3e53baecea42559efed2051e3ca6270cf944 100644 (file)
@@ -9,3 +9,4 @@ obj-$(CONFIG_MXS_HAVE_PLATFORM_MXS_PWM) += platform-mxs-pwm.o
 obj-y += platform-gpio-mxs.o
 obj-$(CONFIG_MXS_HAVE_PLATFORM_MXSFB) += platform-mxsfb.o
 obj-$(CONFIG_MXS_HAVE_PLATFORM_MXS_SAIF) += platform-mxs-saif.o
+obj-$(CONFIG_MXS_HAVE_PLATFORM_RTC_STMP3XXX) += platform-rtc-stmp3xxx.o
diff --git a/arch/arm/mach-mxs/devices/platform-rtc-stmp3xxx.c b/arch/arm/mach-mxs/devices/platform-rtc-stmp3xxx.c
new file mode 100644 (file)
index 0000000..639eaee
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2011 Pengutronix, Wolfram Sang <w.sang@pengutronix.de>
+ *
+ * This program is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License version 2 as published by the
+ * Free Software Foundation.
+ */
+#include <asm/sizes.h>
+#include <mach/mx23.h>
+#include <mach/mx28.h>
+#include <mach/devices-common.h>
+
+#ifdef CONFIG_SOC_IMX23
+struct platform_device *__init mx23_add_rtc_stmp3xxx(void)
+{
+       struct resource res[] = {
+               {
+                       .start = MX23_RTC_BASE_ADDR,
+                       .end = MX23_RTC_BASE_ADDR + SZ_8K - 1,
+                       .flags = IORESOURCE_MEM,
+               }, {
+                       .start = MX23_INT_RTC_ALARM,
+                       .end = MX23_INT_RTC_ALARM,
+                       .flags = IORESOURCE_IRQ,
+               },
+       };
+
+       return mxs_add_platform_device("stmp3xxx-rtc", 0, res, ARRAY_SIZE(res),
+                                       NULL, 0);
+}
+#endif /* CONFIG_SOC_IMX23 */
+
+#ifdef CONFIG_SOC_IMX28
+struct platform_device *__init mx28_add_rtc_stmp3xxx(void)
+{
+       struct resource res[] = {
+               {
+                       .start = MX28_RTC_BASE_ADDR,
+                       .end = MX28_RTC_BASE_ADDR + SZ_8K - 1,
+                       .flags = IORESOURCE_MEM,
+               }, {
+                       .start = MX28_INT_RTC_ALARM,
+                       .end = MX28_INT_RTC_ALARM,
+                       .flags = IORESOURCE_IRQ,
+               },
+       };
+
+       return mxs_add_platform_device("stmp3xxx-rtc", 0, res, ARRAY_SIZE(res),
+                                       NULL, 0);
+}
+#endif /* CONFIG_SOC_IMX28 */