From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chuanhua Han Date: Mon, 22 Jul 2019 15:56:42 +0800 Subject: [U-Boot] [PATCH] rtc: ds3232/ds3231: Add support to generate 32KHz output for driver module Message-ID: <20190722075642.1456-1-chuanhua.han@nxp.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de This patch add an implementation of the rtc_enable_32khz_output() that uses the driver model i2c APIs. Signed-off-by: Chuanhua Han --- drivers/rtc/ds3231.c | 17 +++++++++++++++++ include/rtc.h | 1 + 2 files changed, 18 insertions(+) diff --git a/drivers/rtc/ds3231.c b/drivers/rtc/ds3231.c index 79b026a..2f7bbc2 100644 --- a/drivers/rtc/ds3231.c +++ b/drivers/rtc/ds3231.c @@ -251,6 +251,23 @@ static int ds3231_probe(struct udevice *dev) return 0; } +void rtc_enable_32khz_output(void) +{ + int ret; + struct udevice *dev; + +#ifdef CONFIG_DS3231_BUS_NUM + ret = i2c_get_chip_for_busnum(CONFIG_DS3231_BUS_NUM, + CONFIG_SYS_I2C_RTC_ADDR, 1, &dev); +#else + ret = i2c_get_chip_for_busnum(0, CONFIG_SYS_I2C_RTC_ADDR, 1, &dev); +#endif + if (!ret) + dm_i2c_reg_write(dev, RTC_STAT_REG_ADDR, + RTC_STAT_BIT_BB32KHZ | + RTC_STAT_BIT_EN32KHZ); +} + static const struct rtc_ops ds3231_rtc_ops = { .get = ds3231_rtc_get, .set = ds3231_rtc_set, diff --git a/include/rtc.h b/include/rtc.h index b255bdc..690391e 100644 --- a/include/rtc.h +++ b/include/rtc.h @@ -166,6 +166,7 @@ int rtc_read32(struct udevice *dev, unsigned int reg, u32 *valuep); */ int rtc_write32(struct udevice *dev, unsigned int reg, u32 value); +void rtc_enable_32khz_output(void); #else int rtc_get (struct rtc_time *); int rtc_set (struct rtc_time *); -- 2.9.5