Skip to content

Commit

Permalink
rtc:ds3232/ds3231: Add support to generate 32KHz output
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Priyanka Jain authored and York Sun committed Sep 2, 2015
1 parent b7e84c9 commit c340941
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
10 changes: 10 additions & 0 deletions drivers/rtc/ds3231.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions include/rtc.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit c340941

Please sign in to comment.