[PATCH 1/2] rtc-imxdi: Support for i.MX53

Roland Stigge stigge at antcom.de
Wed Oct 17 01:51:34 EST 2012


This patch enables support for i.MX53 in addition to i.MX25

Signed-off-by: Roland Stigge <stigge at antcom.de>
---
 drivers/rtc/Kconfig     |    2 +-
 drivers/rtc/rtc-imxdi.c |   25 ++++++++++++++++---------
 2 files changed, 17 insertions(+), 10 deletions(-)

--- linux-2.6.orig/drivers/rtc/Kconfig
+++ linux-2.6/drivers/rtc/Kconfig
@@ -768,7 +768,7 @@ config RTC_DRV_DAVINCI
 
 config RTC_DRV_IMXDI
 	tristate "Freescale IMX DryIce Real Time Clock"
-	depends on SOC_IMX25
+	depends on SOC_IMX25 || SOC_IMX53
 	help
 	   Support for Freescale IMX DryIce RTC
 
--- linux-2.6.orig/drivers/rtc/rtc-imxdi.c
+++ linux-2.6/drivers/rtc/rtc-imxdi.c
@@ -37,6 +37,7 @@
 #include <linux/rtc.h>
 #include <linux/sched.h>
 #include <linux/workqueue.h>
+#include <mach/hardware.h>
 
 /* DryIce Register Definitions */
 
@@ -402,11 +403,13 @@ static int dryice_rtc_probe(struct platf
 
 	mutex_init(&imxdi->write_mutex);
 
-	imxdi->clk = clk_get(&pdev->dev, NULL);
-	if (IS_ERR(imxdi->clk))
-		return PTR_ERR(imxdi->clk);
-	clk_prepare_enable(imxdi->clk);
-
+	/* For IMX53, RTC is available always */
+	if (cpu_is_mx25()) {
+		imxdi->clk = clk_get(&pdev->dev, NULL);
+		if (IS_ERR(imxdi->clk))
+			return PTR_ERR(imxdi->clk);
+		clk_prepare_enable(imxdi->clk);
+	}
 	/*
 	 * Initialize dryice hardware
 	 */
@@ -470,8 +473,10 @@ static int dryice_rtc_probe(struct platf
 	return 0;
 
 err:
-	clk_disable_unprepare(imxdi->clk);
-	clk_put(imxdi->clk);
+	if (cpu_is_mx25()) {
+		clk_disable_unprepare(imxdi->clk);
+		clk_put(imxdi->clk);
+	}
 
 	return rc;
 }
@@ -487,8 +492,10 @@ static int __devexit dryice_rtc_remove(s
 
 	rtc_device_unregister(imxdi->rtc);
 
-	clk_disable_unprepare(imxdi->clk);
-	clk_put(imxdi->clk);
+	if (cpu_is_mx25()) {
+		clk_disable_unprepare(imxdi->clk);
+		clk_put(imxdi->clk);
+	}
 
 	return 0;
 }


More information about the devicetree-discuss mailing list