summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoakim Tjernlund <Joakim.Tjernlund@transmode.se>2008-03-26 13:02:13 +0100
committerWolfgang Denk <wd@denx.de>2008-03-26 15:17:42 +0100
commitda8808df7a9cef5a3d2ee286ef9ebf9de1780660 (patch)
treeae0425036c6294d2157e502e610a788f3d117879
parent438a4c11260b4ea9805039b0b4f92f9df5306b02 (diff)
downloadu-boot-imx-da8808df7a9cef5a3d2ee286ef9ebf9de1780660.zip
u-boot-imx-da8808df7a9cef5a3d2ee286ef9ebf9de1780660.tar.gz
u-boot-imx-da8808df7a9cef5a3d2ee286ef9ebf9de1780660.tar.bz2
Add CFG_RTC_DS1337_NOOSC to turn off OSC output
The default settings for RTC DS1337 keeps the OSC output, 32,768 Hz, on. This add CFG_RTC_DS1337_NOOSC to turn it off. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
-rw-r--r--README1
-rw-r--r--drivers/rtc/ds1337.c11
2 files changed, 10 insertions, 2 deletions
diff --git a/README b/README
index a9663a3..b3423e3 100644
--- a/README
+++ b/README
@@ -689,6 +689,7 @@ The following options need to be configured:
CONFIG_RTC_DS164x - use Dallas DS164x RTC
CONFIG_RTC_ISL1208 - use Intersil ISL1208 RTC
CONFIG_RTC_MAX6900 - use Maxim, Inc. MAX6900 RTC
+ CFG_RTC_DS1337_NOOSC - Turn off the OSC output for DS1337
Note that if the RTC uses I2C, then the I2C interface
must also be configured. See I2C Support, below.
diff --git a/drivers/rtc/ds1337.c b/drivers/rtc/ds1337.c
index 50ab446..69ab2bf 100644
--- a/drivers/rtc/ds1337.c
+++ b/drivers/rtc/ds1337.c
@@ -158,11 +158,18 @@ void rtc_set (struct rtc_time *tmp)
* SQW/INTB* pin and program it for 32,768 Hz output. Note that
* according to the datasheet, turning on the square wave output
* increases the current drain on the backup battery from about
- * 600 nA to 2uA.
+ * 600 nA to 2uA. Define CFG_RTC_DS1337_NOOSC if you wish to turn
+ * off the OSC output.
*/
+#ifdef CFG_RTC_DS1337_NOOSC
+ #define RTC_DS1337_RESET_VAL \
+ (RTC_CTL_BIT_INTCN | RTC_CTL_BIT_RS1 | RTC_CTL_BIT_RS2)
+#else
+ #define RTC_DS1337_RESET_VAL (RTC_CTL_BIT_RS1 | RTC_CTL_BIT_RS2)
+#endif
void rtc_reset (void)
{
- rtc_write (RTC_CTL_REG_ADDR, RTC_CTL_BIT_RS1 | RTC_CTL_BIT_RS2);
+ rtc_write (RTC_CTL_REG_ADDR, RTC_DS1337_RESET_VAL);
}