All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] rtc: pcf8563: Make century compatible with Linux
Date: Sat, 4 Aug 2012 01:06:16 +0200 (CEST)	[thread overview]
Message-ID: <2079223004.1091305.1344035176283.JavaMail.root@advansee.com> (raw)
In-Reply-To: <2136837803.335794.1342793136811.JavaMail.root@advansee.com>

On Fri, Jul 20, 2012 at 04:05:36 PM, Beno?t Th?baudeau wrote:
> This driver uses the century bit of this RTC in the opposite way
> Linux does.
> From Linux's rtc-pcf8563.c:
> 	/*
> 	 * The meaning of MO_C bit varies by the chip type.
> 	 * From PCF8563 datasheet: this bit is toggled when the years
> 	 * register overflows from 99 to 00
> 	 *   0 indicates the century is 20xx
> 	 *   1 indicates the century is 19xx
> 	 * From RTC8564 datasheet: this bit indicates change of
> 	 * century. When the year digit data overflows from 99 to 00,
> 	 * this bit is set. By presetting it to 0 while still in the
> 	 * 20th century, it will be set in year 2000, ...
> 	 * There seems no reliable way to know how the system use this
> 	 * bit.  So let's do it heuristically, assuming we are live in
> 	 * 1970...2069.
> 	 */
> 
> As U-Boot's PCF8563 driver does not say it is supposed to support the
> RTC8564,
> make this driver compatible with Linux's by giving the opposite
> meaning to the
> century bit.
> 
> Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
> Cc: Wolfgang Denk <wd@denx.de>
> ---
>  .../drivers/rtc/pcf8563.c                          |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git u-boot-66714b1.orig/drivers/rtc/pcf8563.c
> u-boot-66714b1/drivers/rtc/pcf8563.c
> index 339e5f6..a028533 100644
> --- u-boot-66714b1.orig/drivers/rtc/pcf8563.c
> +++ u-boot-66714b1/drivers/rtc/pcf8563.c
> @@ -72,7 +72,7 @@ int rtc_get (struct rtc_time *tmp)
>  	tmp->tm_hour = bcd2bin (hour & 0x3F);
>  	tmp->tm_mday = bcd2bin (mday & 0x3F);
>  	tmp->tm_mon  = bcd2bin (mon_cent & 0x1F);
> -	tmp->tm_year = bcd2bin (year) + ((mon_cent & 0x80) ? 2000 : 1900);
> +	tmp->tm_year = bcd2bin (year) + ((mon_cent & 0x80) ? 1900 : 2000);
>  	tmp->tm_wday = bcd2bin (wday & 0x07);
>  	tmp->tm_yday = 0;
>  	tmp->tm_isdst= 0;
> @@ -94,7 +94,7 @@ int rtc_set (struct rtc_time *tmp)
>  
>  	rtc_write (0x08, bin2bcd(tmp->tm_year % 100));
>  
> -	century = (tmp->tm_year >= 2000) ? 0x80 : 0;
> +	century = (tmp->tm_year >= 2000) ? 0 : 0x80;
>  	rtc_write (0x07, bin2bcd(tmp->tm_mon) | century);
>  
>  	rtc_write (0x06, bin2bcd(tmp->tm_wday));
> 

Ping?

Beno?t

  reply	other threads:[~2012-08-03 23:06 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-20 14:05 [U-Boot] [PATCH] rtc: pcf8563: Make century compatible with Linux Benoît Thébaudeau
2012-08-03 23:06 ` Benoît Thébaudeau [this message]
2012-08-10 14:40   ` Benoît Thébaudeau
2012-09-02 15:31 ` Wolfgang Denk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2079223004.1091305.1344035176283.JavaMail.root@advansee.com \
    --to=benoit.thebaudeau@advansee.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.