[U-Boot] [PATCH][v0] RTC driver for PT7C4338 chip.
Wolfgang Denk
wd at denx.de
Wed Oct 20 22:06:07 CEST 2010
Dear Priyanka Jain,
In message <1287564032-32198-1-git-send-email-Priyanka.Jain at freescale.com> you wrote:
> PT7C4338 chip is manufactured by Pericom Technology Inc.
> It is a serial real-time clock which provides:
> 1)Low-power clock/calendar.
> 2)Programmable square-wave output.
> It has 56 bytes of nonvolatile RAM.
>
> Freescale P1010RDB uses PT7C4338 as RTC.
>
> Signed-off-by: Priyanka Jain <Priyanka.Jain at freescale.com>
> Acked-by: Timur Tabi <timur at freescale.com>
> ---
> drivers/rtc/Makefile | 1 +
> drivers/rtc/pt7c4338.c | 161 ++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 162 insertions(+), 0 deletions(-)
> create mode 100644 drivers/rtc/pt7c4338.c
...
> +/* Get the current time from the RTC */
> +int rtc_get(struct rtc_time *tmp)
> +{
> + int ret = 0;
> + u8 sec, min, hour, mday, wday, mon, year, ctl_stat;
> +
> + ctl_stat = rtc_read(RTC_CTL_STAT_REG_ADDR);
> + sec = rtc_read(RTC_SEC_REG_ADDR);
> + min = rtc_read(RTC_MIN_REG_ADDR);
> + hour = rtc_read(RTC_HR_REG_ADDR);
> + wday = rtc_read(RTC_DAY_REG_ADDR);
> + mday = rtc_read(RTC_DATE_REG_ADDR);
> + mon = rtc_read(RTC_MON_REG_ADDR);
> + year = rtc_read(RTC_YR_REG_ADDR);
> + debug("Get RTC year: %02x mon: %02x mday: %02x wday: %02x "
> + "hr: %02x min: %02x sec: %02x control_status: %02x\n",
> + year, mon, mday, wday, hour, min, sec, ctl_stat);
> +
> + if (ctl_stat & RTC_CTL_STAT_BIT_OSF) {
> + printf("### Warning: RTC oscillator has stopped\n");
> + /* clear the OSF flag */
> + rtc_write(RTC_CTL_STAT_REG_ADDR,
> + rtc_read(RTC_CTL_STAT_REG_ADDR)\
> + & ~RTC_CTL_STAT_BIT_OSF);
> + ret = -1;
I guess you want to return here, not fall through?
> + }
> +
> + if (sec & RTC_SEC_BIT_CH) {
> + printf("### Warning: RTC oscillator has stopped\n");
> + /* clear the CH flag */
> + rtc_write(RTC_SEC_REG_ADDR,
> + rtc_read(RTC_SEC_REG_ADDR) & ~RTC_SEC_BIT_CH);
> + ret = -1;
I guess you want to return here, not fall through?
Is it correct to have two different causes for the "Warning: RTC
oscillator has stopped" message? I would be a bit connnnnnnnnnnfused
what it means when I see this twice on a system.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Totally illogical, there was no chance.
-- Spock, "The Galileo Seven", stardate 2822.3
More information about the U-Boot
mailing list