Browse Source

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>
Joakim Tjernlund 17 years ago
parent
commit
da8808df7a
2 changed files with 10 additions and 2 deletions
  1. 1 0
      README
  2. 9 2
      drivers/rtc/ds1337.c

+ 1 - 0
README

@@ -689,6 +689,7 @@ The following options need to be configured:
 		CONFIG_RTC_DS164x	- use Dallas DS164x RTC
 		CONFIG_RTC_DS164x	- use Dallas DS164x RTC
 		CONFIG_RTC_ISL1208	- use Intersil ISL1208 RTC
 		CONFIG_RTC_ISL1208	- use Intersil ISL1208 RTC
 		CONFIG_RTC_MAX6900	- use Maxim, Inc. MAX6900 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
 		Note that if the RTC uses I2C, then the I2C interface
 		must also be configured. See I2C Support, below.
 		must also be configured. See I2C Support, below.

+ 9 - 2
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
  * SQW/INTB* pin and program it for 32,768 Hz output. Note that
  * according to the datasheet, turning on the square wave output
  * according to the datasheet, turning on the square wave output
  * increases the current drain on the backup battery from about
  * 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)
 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);
 }
 }