diff options
author | Priyanka Jain <Priyanka.Jain@freescale.com> | 2015-06-29 10:09:23 (GMT) |
---|---|---|
committer | York Sun <yorksun@freescale.com> | 2015-09-02 02:37:23 (GMT) |
commit | c340941e443748bbcd0e35172b481ea2077d2582 (patch) | |
tree | f90085efd86b1abdb69abb100135ca190055dfdf | |
parent | b7e84c93c450480ca4ff51ad2eb56bd83c1dc368 (diff) | |
download | u-boot-fsl-qoriq-c340941e443748bbcd0e35172b481ea2077d2582.tar.xz |
rtc:ds3232/ds3231: Add support to generate 32KHz output
RTC devices can generate 32KHz output if for
-DS3232 device, EN32KHz bit and BB32KHz bit are set
-DS3231 device, EN32KHz bit is set, BB32KHz bit is don't care
Patch adds rtc_enable_32khz_output() which when called
will enable 32KHz output on 32KHz pin
Signed-off-by: Priyanka Jain <Priyanka.Jain@freescale.com>
Reviewed-by: York Sun <yorksun@freescale.com>
-rw-r--r-- | drivers/rtc/ds3231.c | 10 | ||||
-rw-r--r-- | include/rtc.h | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/rtc/ds3231.c b/drivers/rtc/ds3231.c index c84bbc6..e5e1be1 100644 --- a/drivers/rtc/ds3231.c +++ b/drivers/rtc/ds3231.c @@ -49,6 +49,8 @@ #define RTC_STAT_BIT_A1F 0x1 /* Alarm 1 flag */ #define RTC_STAT_BIT_A2F 0x2 /* Alarm 2 flag */ #define RTC_STAT_BIT_OSF 0x80 /* Oscillator stop flag */ +#define RTC_STAT_BIT_BB32KHZ 0x40 /* Battery backed 32KHz Output */ +#define RTC_STAT_BIT_EN32KHZ 0x8 /* Enable 32KHz Output */ static uchar rtc_read (uchar reg); @@ -141,6 +143,14 @@ void rtc_reset (void) rtc_write (RTC_CTL_REG_ADDR, RTC_CTL_BIT_RS1 | RTC_CTL_BIT_RS2); } +/* + * Enable 32KHz output + */ +void rtc_enable_32khz_output(void) +{ + rtc_write(RTC_STAT_REG_ADDR, + RTC_STAT_BIT_BB32KHZ | RTC_STAT_BIT_EN32KHZ); +} /* * Helper functions diff --git a/include/rtc.h b/include/rtc.h index bd8621d..69fe8d4 100644 --- a/include/rtc.h +++ b/include/rtc.h @@ -151,6 +151,7 @@ int rtc_write32(struct udevice *dev, unsigned int reg, u32 value); int rtc_get (struct rtc_time *); int rtc_set (struct rtc_time *); void rtc_reset (void); +void rtc_enable_32khz_output(void); /** * rtc_read8() - Read an 8-bit register |