[PATCH] rtc: rtc-s3c: Add device tree support
Kukjin Kim
kgene.kim at samsung.com
Tue Oct 11 21:48:07 EST 2011
Thomas Abraham wrote:
>
> On 3 September 2011 21:19, Thomas Abraham <thomas.abraham at linaro.org>
> wrote:
> > Add device tree based discovery support for Samsung's rtc controller.
> >
> > Cc: Ben Dooks <ben-linux at fluff.org>
> > Signed-off-by: Thomas Abraham <thomas.abraham at linaro.org>
> > ---
> > 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.
>
(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.
> >
> > 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" },
^^^^^^^
> > + {},
^^^^^^^
should be Tab?
> > +};
> > +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,
^^^^^^^^^^^^^^^
Same as above...
But I know, Thomas' original patch has no problem...probably when ping,
happened above.
> > },
> > };
> >
> > --
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim at samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
More information about the devicetree-discuss
mailing list