[rtc-linux] [PATCH 2/2] rtc: rtc-s3c: Updates RTC driver for clock enabling support
Wan ZongShun
mcuos.com at gmail.com
Thu Jul 22 02:09:00 EDT 2010
2010/7/21 Kukjin Kim <kgene.kim at samsung.com>:
> From: Atul Dahiya <atul.dahiya at samsung.com>
>
> This Patch updates existing Samsung RTC driver for clock enabling support.
>
> Signed-off-by: Atul Dahiya <atul.dahiya at samsung.com>
> Signed-off-by: Kukjin Kim <kgene.kim at samsung.com>
> ---
> drivers/rtc/rtc-s3c.c | 22 ++++++++++++++++++++++
> 1 files changed, 22 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c
> index 70b68d3..c032a15 100644
> --- a/drivers/rtc/rtc-s3c.c
> +++ b/drivers/rtc/rtc-s3c.c
> @@ -1,5 +1,8 @@
> /* drivers/rtc/rtc-s3c.c
> *
> + * Copyright (c) 2010 Samsung Electronics Co., Ltd.
> + * http://www.samsung.com/
> + *
> * Copyright (c) 2004,2006 Simtec Electronics
> * Ben Dooks, <ben at simtec.co.uk>
> * http://armlinux.simtec.co.uk/
> @@ -39,6 +42,7 @@ enum s3c_cpu_type {
>
> static struct resource *s3c_rtc_mem;
>
> +static struct clk *rtc_clk;
> static void __iomem *s3c_rtc_base;
> static int s3c_rtc_alarmno = NO_IRQ;
> static int s3c_rtc_tickno = NO_IRQ;
> @@ -431,6 +435,10 @@ static int __devexit s3c_rtc_remove(struct platform_device *dev)
> s3c_rtc_setpie(&dev->dev, 0);
> s3c_rtc_setaie(0);
>
> + clk_disable(rtc_clk);
> + clk_put(rtc_clk);
> + rtc_clk = NULL;
> +
> iounmap(s3c_rtc_base);
> release_resource(s3c_rtc_mem);
> kfree(s3c_rtc_mem);
> @@ -488,6 +496,16 @@ static int __devinit s3c_rtc_probe(struct platform_device *pdev)
> goto err_nomap;
> }
>
> + rtc_clk = clk_get(&pdev->dev, "rtc");
Do you really need the second argument? I think the bus clock for
a device should be findable with NULL for s3c platform..
> + if (IS_ERR(rtc_clk)) {
> + dev_err(&pdev->dev, "failed to find rtc clock source\n");
> + ret = PTR_ERR(rtc_clk);
> + rtc_clk = NULL;
> + goto err_clk;
> + }
> +
> + clk_enable(rtc_clk);
> +
> /* check to see if everything is setup correctly */
>
> s3c_rtc_enable(pdev, 1);
> @@ -523,6 +541,10 @@ static int __devinit s3c_rtc_probe(struct platform_device *pdev)
>
> err_nortc:
> s3c_rtc_enable(pdev, 0);
> + clk_disable(rtc_clk);
> + clk_put(rtc_clk);
> +
> + err_clk:
> iounmap(s3c_rtc_base);
>
> err_nomap:
> --
> 1.6.2.5
>
> --
> You received this message because you are subscribed to "rtc-linux".
> Membership options at http://groups.google.com/group/rtc-linux .
> Please read http://groups.google.com/group/rtc-linux/web/checklist
> before submitting a driver.
--
*linux-arm-kernel mailing list
mail addr:linux-arm-kernel at lists.infradead.org
you can subscribe by:
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
* linux-arm-NUC900 mailing list
mail addr:NUC900 at googlegroups.com
main web: https://groups.google.com/group/NUC900
you can subscribe it by sending me mail:
mcuos.com at gmail.com
More information about the linux-arm-kernel
mailing list