[PATCH] ARM: imx: Add RTC support for i.MX27
Alexander Shiyan
shc_work at mail.ru
Sat Jun 15 11:41:06 EDT 2013
This patch adds support using i.MX27 On-Chip RTC from board files.
Signed-off-by: Alexander Shiyan <shc_work at mail.ru>
---
arch/arm/mach-imx/devices-imx27.h | 4 ++++
arch/arm/mach-imx/devices/devices-common.h | 1 +
arch/arm/mach-imx/devices/platform-mxc_rtc.c | 14 ++++++++++----
3 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/arch/arm/mach-imx/devices-imx27.h b/arch/arm/mach-imx/devices-imx27.h
index 1309625..7d1aac2 100644
--- a/arch/arm/mach-imx/devices-imx27.h
+++ b/arch/arm/mach-imx/devices-imx27.h
@@ -73,6 +73,10 @@ extern const struct imx_mxc_nand_data imx27_mxc_nand_data;
#define imx27_add_mxc_nand(pdata) \
imx_add_mxc_nand(&imx27_mxc_nand_data, pdata)
+extern const struct imx_mxc_rtc_data imx27_mxc_rtc_data;
+#define imx27_add_mxc_rtc() \
+ imx_add_mxc_rtc(&imx27_mxc_rtc_data)
+
extern const struct imx_mxc_w1_data imx27_mxc_w1_data;
#define imx27_add_mxc_w1() \
imx_add_mxc_w1(&imx27_mxc_w1_data)
diff --git a/arch/arm/mach-imx/devices/devices-common.h b/arch/arm/mach-imx/devices/devices-common.h
index 453e20b..32c49c6 100644
--- a/arch/arm/mach-imx/devices/devices-common.h
+++ b/arch/arm/mach-imx/devices/devices-common.h
@@ -305,6 +305,7 @@ struct platform_device *__init imx_add_mxc_pwm(
struct imx_mxc_rtc_data {
const char *devid;
resource_size_t iobase;
+ resource_size_t iosize;
resource_size_t irq;
};
struct platform_device *__init imx_add_mxc_rtc(
diff --git a/arch/arm/mach-imx/devices/platform-mxc_rtc.c b/arch/arm/mach-imx/devices/platform-mxc_rtc.c
index c7fffaa..385fe4e 100644
--- a/arch/arm/mach-imx/devices/platform-mxc_rtc.c
+++ b/arch/arm/mach-imx/devices/platform-mxc_rtc.c
@@ -9,21 +9,27 @@
#include "../hardware.h"
#include "devices-common.h"
-#define imx_mxc_rtc_data_entry_single(soc, _devid) \
+#define imx_mxc_rtc_data_entry_single(soc, _devid, _size) \
{ \
.devid = _devid, \
.iobase = soc ## _RTC_BASE_ADDR, \
+ .iosize = _size, \
.irq = soc ## _INT_RTC, \
}
+#ifdef CONFIG_SOC_IMX27
+const struct imx_mxc_rtc_data imx27_mxc_rtc_data __initconst =
+ imx_mxc_rtc_data_entry_single(MX27, "imx21-rtc", SZ_4K);
+#endif /* ifdef CONFIG_SOC_IMX27 */
+
#ifdef CONFIG_SOC_IMX31
const struct imx_mxc_rtc_data imx31_mxc_rtc_data __initconst =
- imx_mxc_rtc_data_entry_single(MX31, "imx21-rtc");
+ imx_mxc_rtc_data_entry_single(MX31, "imx21-rtc", SZ_16K);
#endif /* ifdef CONFIG_SOC_IMX31 */
#ifdef CONFIG_SOC_IMX35
const struct imx_mxc_rtc_data imx35_mxc_rtc_data __initconst =
- imx_mxc_rtc_data_entry_single(MX35, "imx21-rtc");
+ imx_mxc_rtc_data_entry_single(MX35, "imx21-rtc", SZ_16K);
#endif /* ifdef CONFIG_SOC_IMX35 */
struct platform_device *__init imx_add_mxc_rtc(
@@ -32,7 +38,7 @@ struct platform_device *__init imx_add_mxc_rtc(
struct resource res[] = {
{
.start = data->iobase,
- .end = data->iobase + SZ_16K - 1,
+ .end = data->iobase + data->iosize - 1,
.flags = IORESOURCE_MEM,
}, {
.start = data->irq,
--
1.8.1.5
More information about the linux-arm-kernel
mailing list