rtc: rtc-s3c: Add device tree support
Subsystems (3)
PATCH 1/1 rtc: rtc-s3c: Add device tree support
Add device tree based discovery support for Samsung's rtc controller.
--- 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
Documentation/devicetree/bindings/rtc/s3c-rtc.txt new file +20 -0
@@ -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>; + };
drivers/rtc/rtc-s3c.c +20 -1
@@ -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, }, };
Signature · 1 line
1.6.6.rc2
PATCH 1/1 rtc: rtc-s3c: Add device tree support
Quoted 9 lines · Thomas Abraham
Add device tree based discovery support for Samsung's rtc controller.
Cc Ben Dooks <[email protected]>Signed-off-by Thomas Abraham <[email protected]>---
?Documentation/devicetree/bindings/rtc/s3c-rtc.txt | ? 20 ++++++++++++++++++++ ?drivers/rtc/rtc-s3c.c ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? 21 ++++++++++++++++++++- ?2 files changed, 40 insertions(+), 1 deletions(-)
?create mode 100644Documentation/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 88 lines
Documentation/devicetree/bindings/rtc/s3c-rtc.txt new file +20
-0@@ -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>; + ? ? ? };drivers/rtc/rtc-s3c.c +0
-0@@ -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>drivers/rtc/rtc-s3c.c +7
-1@@ -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 */
drivers/rtc/rtc-s3c.c +0
-0@@ -603,6 +610,17 @@ static int s3c_rtc_resume(struct platform_device *pdev)?#define
s3c_rtc_resume?NULL
?#endifdrivers/rtc/rtc-s3c.c +11
-0+#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_ids3c_rtc_driver_ids[] = { ? ? ? ?{
? ? ? ? ? ? ? ?.name ? ? ? ? ? = "s3c2410-rtc",drivers/rtc/rtc-s3c.c +1
-1@@ -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
PATCH 1/1 rtc: rtc-s3c: Add device tree support
Quoted 9 lines · Thomas Abraham
Quoted 6 lines · Thomas Abraham
Add device tree based discovery support for Samsung's rtc controller.
Cc Ben Dooks <[email protected]>Signed-off-by Thomas Abraham <[email protected]>---
?Documentation/devicetree/bindings/rtc/s3c-rtc.txt | ? 20
Quoted 9 lines
++++++++++++++++++++
Quoted 1 line
?drivers/rtc/rtc-s3c.c ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? 21
++++++++++++++++++++-
Quoted 2 lines
?2 files changed, 40 insertions(+), 1 deletions(-)
?create mode 100644Documentation/devicetree/bindings/rtc/s3c-rtc.txtPing. Any comments for this patch? If this looks fine, can this be considered for 3.2 merge via the Samsung kernel tree.
(Cc'ed Alessandro Zummo who is RTC Subsystem maintainer)
I'm ok with this, so if this can be got the ack from Grant and Alessandro, will take this.
Quoted 13 lines
Review
Quoted 2 lines
(quoted diff) +0
-0
b/Documentation/devicetree/bindings/rtc/s3c-rtc.txtDocumentation/devicetree/bindings/rtc/s3c-rtc.txt line 5
Quoted 10 lines
new file mode 100644
index 0000000..90ec45fDocumentation/devicetree/bindings/rtc/s3c-rtc.txt new file +5
-0@@ -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.
Quoted 1 line
Documentation/devicetree/bindings/rtc/s3c-rtc.txt line 6
Quoted 1 line
Documentation/devicetree/bindings/rtc/s3c-rtc.txt new file +1
-0+ ? ?* "samsung,s3c6410-rtc" - for controllers compatible with s3c6410
rtc.
Quoted 1 line
Documentation/devicetree/bindings/rtc/s3c-rtc.txt line 7
Quoted 1 line
Documentation/devicetree/bindings/rtc/s3c-rtc.txt new file +1
-0+- reg: physical base address of the controller and length of memory
mapped
Quoted 2 lines
Documentation/devicetree/bindings/rtc/s3c-rtc.txt line 9
Quoted 2 lines
Documentation/devicetree/bindings/rtc/s3c-rtc.txt new file +2
-0+ ?region. +- interrupts: Two interrupt numbers to the cpu should be specified.
First
Quoted 1 line
Documentation/devicetree/bindings/rtc/s3c-rtc.txt line 10
Quoted 1 line
Documentation/devicetree/bindings/rtc/s3c-rtc.txt new file +1
-0+ ?interrupt number is the rtc alarm interupt and second interrupt
number
Quoted 1 line
Documentation/devicetree/bindings/rtc/s3c-rtc.txt line 11
Quoted 1 line
Documentation/devicetree/bindings/rtc/s3c-rtc.txt new file +1
-0+ ?is the rtc tick interrupt. The number of cells representing a
interrupt
Quoted 26 lines
drivers/rtc/rtc-s3c.c static int __devinit s3c_rtc_probe(struct
Quoted 22 lines
Documentation/devicetree/bindings/rtc/s3c-rtc.txt new file +9
-0+ ?depends on the parent interrupt controller. + +Example: + + ? ? ? rtc at 10070000 { + ? ? ? ? ? ? ? compatible = "samsung,s3c6410-rtc"; + ? ? ? ? ? ? ? reg = <0x10070000 0x100>; + ? ? ? ? ? ? ? interrupts = <44 0 45 0>; + ? ? ? };drivers/rtc/rtc-s3c.c +0
-0@@ -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>drivers/rtc/rtc-s3c.c +0
-0@@ -481,7 +482,13 @@ static int __devinit s3c_rtc_probe(struct
platform_device*pdev)Quoted 3 lines
drivers/rtc/rtc-s3c.c +0
-0? ? ? ? ? ? ? ?goto err_nortc; ? ? ? ?}
Quoted 10 lines
drivers/rtc/rtc-s3c.c static int __devinit s3c_rtc_probe(struct · line 489
Quoted 6 lines
drivers/rtc/rtc-s3c.c +4
-1- ? ? ? 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;Quoted 3 lines
drivers/rtc/rtc-s3c.c +3
-0+ ? ? ? else +#endif + ? ? ? ? ? ? ? s3c_rtc_cpu_type =
platform_get_device_id(pdev)->driver_data;
Quoted 4 lines
drivers/rtc/rtc-s3c.c static int s3c_rtc_resume(struct platform_device
Quoted 4 lines
? ? ? ?/* Check RTC Time */
drivers/rtc/rtc-s3c.c +0
-0@@ -603,6 +610,17 @@ static int s3c_rtc_resume(struct platform_device
*pdev)
Quoted 6 lines
drivers/rtc/rtc-s3c.c static int s3c_rtc_resume(struct platform_device *pdev) · line 615
Quoted 6 lines
?#define
s3c_rtc_resume?NULL
?#endifdrivers/rtc/rtc-s3c.c +3
-0+#ifdef CONFIG_OF +static const struct of_device_id s3c_rtc_dt_match[] = { + { .compatible = "samsung,s3c2410-rtc" },
^^^^^^^
Quoted 1 line
Quoted 1 line
+ { .compatible = "samsung,s3c6410-rtc" },
^^^^^^^
Quoted 1 line
Quoted 1 line
+ {},
^^^^^^^
should be Tab?
Quoted 6 lines
Quoted 6 lines
drivers/rtc/rtc-s3c.c +6
-0+}; +MODULE_DEVICE_TABLE (of, s3c_rtc_dt_match); +#else +#define s3c_rtc_dt_match NULL +#endif +
Quoted 8 lines
drivers/rtc/rtc-s3c.c static struct platform_driver s3c_rtc_driver = { · line 646
Quoted 8 lines
?static struct
platform_device_ids3c_rtc_driver_ids[] = { ? ? ? ?{
? ? ? ? ? ? ? ?.name ? ? ? ? ? = "s3c2410-rtc",drivers/rtc/rtc-s3c.c +1
-0@@ -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,
^^^^^^^^^^^^^^^
Same as above...
But I know, Thomas' original patch has no problem...probably when ping, happened above.
Quoted 4 lines
drivers/rtc/rtc-s3c.c static struct platform_driver s3c_rtc_driver = {
Quoted 4 lines
drivers/rtc/rtc-s3c.c +0
-1? ? ? ?}, ?}; --
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.
PATCH 1/1 rtc: rtc-s3c: Add device tree support
Quoted 16 lines · Kukjin Kim
Quoted 15 lines · Thomas Abraham
Quoted 6 lines · Thomas Abraham
Add device tree based discovery support for Samsung's rtc controller.
Cc Ben Dooks <[email protected]>Signed-off-by Thomas Abraham <[email protected]>---
?Documentation/devicetree/bindings/rtc/s3c-rtc.txt | ? 20++++++++++++++++++++
Quoted 1 line
?drivers/rtc/rtc-s3c.c ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? 21
++++++++++++++++++++-
Quoted 2 lines
?2 files changed, 40 insertions(+), 1 deletions(-)
?create mode 100644Documentation/devicetree/bindings/rtc/s3c-rtc.txt
Quoted 7 lines
Quoted 3 lines
Ping. Any comments for this patch? If this looks fine, can this be considered for 3.2 merge via the Samsung kernel tree.
(Cc'ed Alessandro Zummo who is RTC Subsystem maintainer)
I'm ok with this, so if this can be got the ack from Grant and Alessandro, will take this.
Quoted 114 lines
Quoted 4 lines
Review
Quoted 3 lines
(quoted diff) +0
-0
b/Documentation/devicetree/bindings/rtc/s3c-rtc.txtQuoted 10 lines
Documentation/devicetree/bindings/rtc/s3c-rtc.txt line 5
Quoted 10 lines
new file mode 100644
index 0000000..90ec45fDocumentation/devicetree/bindings/rtc/s3c-rtc.txt new file +5
-0@@ -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 s3c2410rtc.
Quoted 1 line
Documentation/devicetree/bindings/rtc/s3c-rtc.txt line 6
Quoted 1 line
Documentation/devicetree/bindings/rtc/s3c-rtc.txt new file +1
-0+ ? ?* "samsung,s3c6410-rtc" - for controllers compatible with s3c6410rtc.
Quoted 1 line
Documentation/devicetree/bindings/rtc/s3c-rtc.txt line 7
Quoted 1 line
Documentation/devicetree/bindings/rtc/s3c-rtc.txt new file +1
-0+- reg: physical base address of the controller and length of memorymapped
Quoted 2 lines
Documentation/devicetree/bindings/rtc/s3c-rtc.txt line 9
Quoted 2 lines
Documentation/devicetree/bindings/rtc/s3c-rtc.txt new file +2
-0+ ?region. +- interrupts: Two interrupt numbers to the cpu should be specified.First
Quoted 1 line
Documentation/devicetree/bindings/rtc/s3c-rtc.txt line 10
Quoted 1 line
Documentation/devicetree/bindings/rtc/s3c-rtc.txt new file +1
-0+ ?interrupt number is the rtc alarm interupt and second interruptnumber
Quoted 1 line
Documentation/devicetree/bindings/rtc/s3c-rtc.txt line 11
Quoted 1 line
Documentation/devicetree/bindings/rtc/s3c-rtc.txt new file +1
-0+ ?is the rtc tick interrupt. The number of cells representing ainterrupt
Quoted 26 lines
drivers/rtc/rtc-s3c.c static int __devinit s3c_rtc_probe(struct
Quoted 22 lines
Documentation/devicetree/bindings/rtc/s3c-rtc.txt new file +9
-0+ ?depends on the parent interrupt controller. + +Example: + + ? ? ? rtc at 10070000 { + ? ? ? ? ? ? ? compatible = "samsung,s3c6410-rtc"; + ? ? ? ? ? ? ? reg = <0x10070000 0x100>; + ? ? ? ? ? ? ? interrupts = <44 0 45 0>; + ? ? ? };drivers/rtc/rtc-s3c.c +0
-0@@ -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>drivers/rtc/rtc-s3c.c +0
-0@@ -481,7 +482,13 @@ static int __devinit s3c_rtc_probe(struct
platform_device*pdev)Quoted 3 lines
drivers/rtc/rtc-s3c.c +0
-0? ? ? ? ? ? ? ?goto err_nortc; ? ? ? ?}Quoted 10 lines
drivers/rtc/rtc-s3c.c static int __devinit s3c_rtc_probe(struct · line 489
Quoted 6 lines
drivers/rtc/rtc-s3c.c +4
-1- ? ? ? 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;Quoted 3 lines
drivers/rtc/rtc-s3c.c +3
-0+ ? ? ? else +#endif + ? ? ? ? ? ? ? s3c_rtc_cpu_type =platform_get_device_id(pdev)->driver_data;
Quoted 4 lines
drivers/rtc/rtc-s3c.c static int s3c_rtc_resume(struct platform_device
Quoted 4 lines
? ? ? ?/* Check RTC Time */
drivers/rtc/rtc-s3c.c +0
-0@@ -603,6 +610,17 @@ static int s3c_rtc_resume(struct platform_device*pdev)
Quoted 6 lines
drivers/rtc/rtc-s3c.c static int s3c_rtc_resume(struct platform_device *pdev) · line 615
Quoted 6 lines
?#define
s3c_rtc_resume?NULL
?#endifdrivers/rtc/rtc-s3c.c +3
-0+#ifdef CONFIG_OF +static const struct of_device_id s3c_rtc_dt_match[] = { + { .compatible = "samsung,s3c2410-rtc" },^^^^^^^Quoted 1 line
Quoted 1 line
+ { .compatible = "samsung,s3c6410-rtc" },
^^^^^^^Quoted 1 line
Quoted 1 line
+ {},
^^^^^^^should be Tab?
Quoted 6 lines
Quoted 6 lines
drivers/rtc/rtc-s3c.c +6
-0+}; +MODULE_DEVICE_TABLE (of, s3c_rtc_dt_match); +#else +#define s3c_rtc_dt_match NULL +#endif +Quoted 8 lines
drivers/rtc/rtc-s3c.c static struct platform_driver s3c_rtc_driver = { · line 646
Quoted 8 lines
?static struct
platform_device_ids3c_rtc_driver_ids[] = { ? ? ? ?{
? ? ? ? ? ? ? ?.name ? ? ? ? ? = "s3c2410-rtc",drivers/rtc/rtc-s3c.c +1
-0@@ -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,^^^^^^^^^^^^^^^Same as above...
But I know, Thomas' original patch has no problem...probably when ping, happened above.
Quoted 4 lines
drivers/rtc/rtc-s3c.c static struct platform_driver s3c_rtc_driver = {
Quoted 4 lines
drivers/rtc/rtc-s3c.c +0
-1? ? ? ?}, ?}; --Thanks.
Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.
Kukjin Kim
AppliedPATCH 1/1 rtc: rtc-s3c: Add device tree support
Quoted 20 lines · Grant Likely
Quoted 19 lines · Kukjin Kim
Quoted 18 lines · Thomas Abraham
Quoted 6 lines · Thomas Abraham
Add device tree based discovery support for Samsung's rtc controller.
Cc Ben Dooks<[email protected]>Signed-off-by Thomas Abraham<[email protected]>--- Documentation/devicetree/bindings/rtc/s3c-rtc.txt | 20++++++++++++++++++++
Quoted 1 line
drivers/rtc/rtc-s3c.c | 21++++++++++++++++++++-
Quoted 2 lines
2 files changed, 40 insertions(+), 1 deletions(-)create mode 100644
Documentation/devicetree/bindings/rtc/s3c-rtc.txtPing. Any comments for this patch? If this looks fine, can this be considered for 3.2 merge via the Samsung kernel tree.
Quoted 6 lines
Quoted 4 lines
(Cc'ed Alessandro Zummo who is RTC Subsystem maintainer)
I'm ok with this, so if this can be got the ack from Grant and Alessandro, will take this.
Acked-by Grant Likely<[email protected]>
Hi Alessandro,
Applied this in Samsung tree for supporting device tree for upcoming 3.2 merge window.
If any problems, please let me know before sending to upstream.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.