Thread (5 messages) 5 messages, 3 authors, 2011-10-24

[PATCH] rtc: rtc-s3c: Add device tree support

From: Thomas Abraham <hidden>
Date: 2011-10-11 07:05:27
Also in: linux-devicetree, linux-samsung-soc

On 3 September 2011 21:19, Thomas Abraham [off-list ref] wrote:
Add device tree based discovery support for Samsung's rtc controller.

Cc: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Thomas Abraham <redacted>
---
?Documentation/devicetree/bindings/rtc/s3c-rtc.txt | ? 20 ++++++++++++++++++++
?drivers/rtc/rtc-s3c.c ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? 21 ++++++++++++++++++++-
?2 files changed, 40 insertions(+), 1 deletions(-)
?create mode 100644 Documentation/devicetree/bindings/rtc/s3c-rtc.txt
Ping. Any comments for this patch? If this looks fine, can this be
considered for 3.2 merge via the Samsung kernel tree.

Thanks,
Thomas.
quoted hunk ↗ jump to hunk
diff --git a/Documentation/devicetree/bindings/rtc/s3c-rtc.txt b/Documentation/devicetree/bindings/rtc/s3c-rtc.txt
new file mode 100644
index 0000000..90ec45f
--- /dev/null
+++ b/Documentation/devicetree/bindings/rtc/s3c-rtc.txt
@@ -0,0 +1,20 @@
+* Samsung's S3C Real Time Clock controller
+
+Required properties:
+- compatible: should be one of the following.
+ ? ?* "samsung,s3c2410-rtc" - for controllers compatible with s3c2410 rtc.
+ ? ?* "samsung,s3c6410-rtc" - for controllers compatible with s3c6410 rtc.
+- reg: physical base address of the controller and length of memory mapped
+ ?region.
+- interrupts: Two interrupt numbers to the cpu should be specified. First
+ ?interrupt number is the rtc alarm interupt and second interrupt number
+ ?is the rtc tick interrupt. The number of cells representing a interrupt
+ ?depends on the parent interrupt controller.
+
+Example:
+
+ ? ? ? rtc at 10070000 {
+ ? ? ? ? ? ? ? compatible = "samsung,s3c6410-rtc";
+ ? ? ? ? ? ? ? reg = <0x10070000 0x100>;
+ ? ? ? ? ? ? ? interrupts = <44 0 45 0>;
+ ? ? ? };
diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c
index 4e7c04e..29f928c 100644
--- a/drivers/rtc/rtc-s3c.c
+++ b/drivers/rtc/rtc-s3c.c
@@ -25,6 +25,7 @@
?#include <linux/clk.h>
?#include <linux/log2.h>
?#include <linux/slab.h>
+#include <linux/of.h>

?#include <mach/hardware.h>
?#include <asm/uaccess.h>
@@ -481,7 +482,13 @@ static int __devinit s3c_rtc_probe(struct platform_device *pdev)
? ? ? ? ? ? ? ?goto err_nortc;
? ? ? ?}

- ? ? ? s3c_rtc_cpu_type = platform_get_device_id(pdev)->driver_data;
+#ifdef CONFIG_OF
+ ? ? ? if (pdev->dev.of_node)
+ ? ? ? ? ? ? ? s3c_rtc_cpu_type = of_device_is_compatible(pdev->dev.of_node,
+ ? ? ? ? ? ? ? ? ? ? ? "samsung,s3c6410-rtc") ? TYPE_S3C64XX : TYPE_S3C2410;
+ ? ? ? else
+#endif
+ ? ? ? ? ? ? ? s3c_rtc_cpu_type = platform_get_device_id(pdev)->driver_data;

? ? ? ?/* Check RTC Time */
@@ -603,6 +610,17 @@ static int s3c_rtc_resume(struct platform_device *pdev)
?#define s3c_rtc_resume ?NULL
?#endif

+#ifdef CONFIG_OF
+static const struct of_device_id s3c_rtc_dt_match[] = {
+ ? ? ? { .compatible = "samsung,s3c2410-rtc" },
+ ? ? ? { .compatible = "samsung,s3c6410-rtc" },
+ ? ? ? {},
+};
+MODULE_DEVICE_TABLE(of, s3c_rtc_dt_match);
+#else
+#define s3c_rtc_dt_match NULL
+#endif
+
?static struct platform_device_id s3c_rtc_driver_ids[] = {
? ? ? ?{
? ? ? ? ? ? ? ?.name ? ? ? ? ? = "s3c2410-rtc",
@@ -625,6 +643,7 @@ static struct platform_driver s3c_rtc_driver = {
? ? ? ?.driver ? ? ? ? = {
? ? ? ? ? ? ? ?.name ? = "s3c-rtc",
? ? ? ? ? ? ? ?.owner ?= THIS_MODULE,
+ ? ? ? ? ? ? ? .of_match_table = s3c_rtc_dt_match,
? ? ? ?},
?};

--
1.6.6.rc2

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at ?http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help