rtc/spear: Add Device Tree probing capability

Submitted by Viresh KUMAR on March 26, 2012, 9:54 a.m.

Details

Message ID 8747a4b3bdcfb7b3384c14ca909228e1164d0fc5.1332755275.git.viresh.kumar@st.com
State Superseded
Headers show

Commit Message

Viresh KUMAR March 26, 2012, 9:54 a.m.
SPEAr platforms now support DT and so must convert all drivers support DT. This
patch adds DT probing support for rtc and updates its documentation too.

Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
---
 Documentation/devicetree/bindings/rtc/spear-rtc.txt |   18 ++++++++++++++++++
 drivers/rtc/rtc-spear.c                             |   10 ++++++++++
 2 files changed, 28 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/rtc/spear-rtc.txt

Comments

Stefan Roese March 26, 2012, 11:32 a.m.
On Monday 26 March 2012 11:54:22 Viresh Kumar wrote:
> SPEAr platforms now support DT and so must convert all drivers support DT.
> This patch adds DT probing support for rtc and updates its documentation
> too.
> 
> Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
> ---
>  Documentation/devicetree/bindings/rtc/spear-rtc.txt |   18
> ++++++++++++++++++ drivers/rtc/rtc-spear.c                             |  
> 10 ++++++++++ 2 files changed, 28 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/rtc/spear-rtc.txt
> 
> diff --git a/Documentation/devicetree/bindings/rtc/spear-rtc.txt
> b/Documentation/devicetree/bindings/rtc/spear-rtc.txt new file mode 100644
> index 0000000..928410f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/rtc/spear-rtc.txt
> @@ -0,0 +1,18 @@
> +* SPEAr RTC
> +
> +Required properties:
> +- compatible : "st,spear-rtc"
> +- reg : Address range of the rtc registers
> +- interrupt-parent: Should be the phandle for the interrupt controller
> +  that services interrupts for this device
> +- interrupt: Should contain the rtc interrupt number
> +
> +Example:
> +
> +	rtc@fc000000 {
> +		compatible = "st,spear-rtc";

With Rob's comments in mind, wouldn't it be better to use a more specific 
compatible property? Should we stick with "st,spear600-rtc"? Or use "st-
spear300-rtc" as "oldest" SoC variant?

Thanks,
Stefan
Viresh KUMAR March 26, 2012, 11:39 a.m.
On 3/26/2012 5:02 PM, Stefan Roese wrote:
>> > +	rtc@fc000000 {
>> > +		compatible = "st,spear-rtc";
> With Rob's comments in mind, wouldn't it be better to use a more specific 
> compatible property? Should we stick with "st,spear600-rtc"? Or use "st-
> spear300-rtc" as "oldest" SoC variant?

Can name it spear600-rtc then.
Arnd Bergmann March 26, 2012, 12:36 p.m.
On Monday 26 March 2012, Stefan Roese wrote:
> > diff --git a/Documentation/devicetree/bindings/rtc/spear-rtc.txt
> > b/Documentation/devicetree/bindings/rtc/spear-rtc.txt new file mode 100644
> > index 0000000..928410f
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/rtc/spear-rtc.txt
> > @@ -0,0 +1,18 @@
> > +* SPEAr RTC
> > +
> > +Required properties:
> > +- compatible : "st,spear-rtc"
> > +- reg : Address range of the rtc registers
> > +- interrupt-parent: Should be the phandle for the interrupt controller
> > +  that services interrupts for this device
> > +- interrupt: Should contain the rtc interrupt number
> > +
> > +Example:
> > +
> > +     rtc@fc000000 {
> > +             compatible = "st,spear-rtc";
> 
> With Rob's comments in mind, wouldn't it be better to use a more specific 
> compatible property? Should we stick with "st,spear600-rtc"? Or use "st-
> spear300-rtc" as "oldest" SoC variant?

I wouldn't mind if you list all three, or at least spear600 as the actual
chip and spear300 as the one that introduced the device. Of course, if the
device itself is licensed from some other vendor or was used in a prior product,
I would list that one.

	Arnd

Patch hide | download patch | download mbox

diff --git a/Documentation/devicetree/bindings/rtc/spear-rtc.txt b/Documentation/devicetree/bindings/rtc/spear-rtc.txt
new file mode 100644
index 0000000..928410f
--- /dev/null
+++ b/Documentation/devicetree/bindings/rtc/spear-rtc.txt
@@ -0,0 +1,18 @@ 
+* SPEAr RTC
+
+Required properties:
+- compatible : "st,spear-rtc"
+- reg : Address range of the rtc registers
+- interrupt-parent: Should be the phandle for the interrupt controller
+  that services interrupts for this device
+- interrupt: Should contain the rtc interrupt number
+
+Example:
+
+	rtc@fc000000 {
+		compatible = "st,spear-rtc";
+		reg = <0xfc000000 0x1000>;
+		interrupt-parent = <&vic1>;
+		interrupts = <12>;
+	};
+
diff --git a/drivers/rtc/rtc-spear.c b/drivers/rtc/rtc-spear.c
index e38da0d..4a12fe5 100644
--- a/drivers/rtc/rtc-spear.c
+++ b/drivers/rtc/rtc-spear.c
@@ -16,6 +16,7 @@ 
 #include <linux/io.h>
 #include <linux/irq.h>
 #include <linux/module.h>
+#include <linux/of.h>
 #include <linux/platform_device.h>
 #include <linux/rtc.h>
 #include <linux/slab.h>
@@ -519,6 +520,14 @@  static void spear_rtc_shutdown(struct platform_device *pdev)
 	clk_disable(config->clk);
 }
 
+#ifdef CONFIG_OF
+static const struct of_device_id spear_rtc_id_table[] = {
+	{ .compatible = "st,spear-rtc" },
+	{}
+};
+MODULE_DEVICE_TABLE(of, spear_rtc_id_table);
+#endif
+
 static struct platform_driver spear_rtc_driver = {
 	.probe = spear_rtc_probe,
 	.remove = __devexit_p(spear_rtc_remove),
@@ -527,6 +536,7 @@  static struct platform_driver spear_rtc_driver = {
 	.shutdown = spear_rtc_shutdown,
 	.driver = {
 		.name = "rtc-spear",
+		.of_match_table = of_match_ptr(spear_rtc_id_table),
 	},
 };