Skip to content

Commit

Permalink
rtc: omap: Add internal clock enabling support
Browse files Browse the repository at this point in the history
The rtc can be clocked by an internal 32K clock. Adding the support
to enable the same.

Signed-off-by: Keerthy <j-keerthy@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
  • Loading branch information
Keerthy authored and Alexandre Belloni committed Sep 5, 2015
1 parent fff51e7 commit 532409a
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions drivers/rtc/rtc-omap.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include <linux/of_device.h>
#include <linux/pm_runtime.h>
#include <linux/io.h>
#include <linux/clk.h>

/*
* The OMAP RTC is a year/month/day/hours/minutes/seconds BCD clock
Expand Down Expand Up @@ -132,6 +133,7 @@ struct omap_rtc_device_type {
struct omap_rtc {
struct rtc_device *rtc;
void __iomem *base;
struct clk *clk;
int irq_alarm;
int irq_timer;
u8 interrupts_reg;
Expand Down Expand Up @@ -553,6 +555,11 @@ static int omap_rtc_probe(struct platform_device *pdev)
if (rtc->irq_alarm <= 0)
return -ENOENT;

rtc->clk = devm_clk_get(&pdev->dev, "int-clk");

if (!IS_ERR(rtc->clk))
clk_prepare_enable(rtc->clk);

res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
rtc->base = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(rtc->base))
Expand Down Expand Up @@ -681,6 +688,9 @@ static int __exit omap_rtc_remove(struct platform_device *pdev)

device_init_wakeup(&pdev->dev, 0);

if (!IS_ERR(rtc->clk))
clk_disable_unprepare(rtc->clk);

rtc->type->unlock(rtc);
/* leave rtc running, but disable irqs */
rtc_write(rtc, OMAP_RTC_INTERRUPTS_REG, 0);
Expand Down

0 comments on commit 532409a

Please sign in to comment.