diff options
author | Kim, Milo <Milo.Kim@ti.com> | 2012-12-17 16:02:51 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-17 17:15:21 -0800 |
commit | 18c701a9dbe91768e1629f1aece9d50543b3abfa (patch) | |
tree | cdf878420aea8e3e9e5a655399c1eb2b7e1318ac /drivers/rtc | |
parent | 162a96ea4bc77ad8d553ea5de6300b6ed70d13e1 (diff) | |
download | kernel_goldelico_gta04-18c701a9dbe91768e1629f1aece9d50543b3abfa.zip kernel_goldelico_gta04-18c701a9dbe91768e1629f1aece9d50543b3abfa.tar.gz kernel_goldelico_gta04-18c701a9dbe91768e1629f1aece9d50543b3abfa.tar.bz2 |
drivers/rtc/rtc-tps65910.c: enable RTC power domain on initialization
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>
Diffstat (limited to 'drivers/rtc')
-rw-r--r-- | drivers/rtc/rtc-tps65910.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/rtc/rtc-tps65910.c b/drivers/rtc/rtc-tps65910.c index 687006f..22eb4eb 100644 --- a/drivers/rtc/rtc-tps65910.c +++ b/drivers/rtc/rtc-tps65910.c @@ -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) |