drivers/rtc/rtc-tps65910.c: enable RTC power domain on initialization
authorKim, Milo <Milo.Kim@ti.com>
Tue, 18 Dec 2012 00:02:51 +0000 (16:02 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 18 Dec 2012 01:15:21 +0000 (17:15 -0800)
Enabling RTC HW block depends on the default value of TPS65910 register.
In some mode, RTC block is disabled by default.(eg.  AM3517 Craneboard) In
this case, RTC_PWDN(RTC power down) bit should be cleared to enable the
RTC HW block.

This patch also works in case that RTC block is active by default, because
there is no side effect even if the bit is updated again.

Tested on AM3517 Craneboard.

Signed-off-by: Milo(Woogyom) Kim <milo.kim@ti.com>
Acked-by: Venu Byravarasu <vbyravarasu@nvidia.com>
Cc: Samuel Ortiz <sameo@linux.intel.com>
Cc: Sivaram Nair <sivaramn@nvidia.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/rtc/rtc-tps65910.c

index 687006f31727d832273f260cc7a6afa39592b210..22eb4ebfa1a64cf295b80b02cb09339de15c56ab 100644 (file)
@@ -247,6 +247,13 @@ static int __devinit tps65910_rtc_probe(struct platform_device *pdev)
                return ret;
 
        dev_dbg(&pdev->dev, "Enabling rtc-tps65910.\n");
+
+       /* Enable RTC digital power domain */
+       ret = regmap_update_bits(tps65910->regmap, TPS65910_DEVCTRL,
+               DEVCTRL_RTC_PWDN_MASK, 0 << DEVCTRL_RTC_PWDN_SHIFT);
+       if (ret < 0)
+               return ret;
+
        rtc_reg = TPS65910_RTC_CTRL_STOP_RTC;
        ret = regmap_write(tps65910->regmap, TPS65910_RTC_CTRL, rtc_reg);
        if (ret < 0)