diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/rtc/bfin_rtc.c | 6 | ||||
| -rw-r--r-- | drivers/rtc/ds12887.c | 4 | ||||
| -rw-r--r-- | drivers/rtc/ds1302.c | 6 | ||||
| -rw-r--r-- | drivers/rtc/ds1306.c | 8 | ||||
| -rw-r--r-- | drivers/rtc/ds1307.c | 6 | ||||
| -rw-r--r-- | drivers/rtc/ds1337.c | 6 | ||||
| -rw-r--r-- | drivers/rtc/ds1374.c | 11 | ||||
| -rw-r--r-- | drivers/rtc/ds1556.c | 3 | ||||
| -rw-r--r-- | drivers/rtc/ds164x.c | 4 | ||||
| -rw-r--r-- | drivers/rtc/ds174x.c | 4 | ||||
| -rw-r--r-- | drivers/rtc/ds3231.c | 6 | ||||
| -rw-r--r-- | drivers/rtc/isl1208.c | 6 | ||||
| -rw-r--r-- | drivers/rtc/m41t11.c | 7 | ||||
| -rw-r--r-- | drivers/rtc/m41t60.c | 6 | ||||
| -rw-r--r-- | drivers/rtc/m41t62.c | 4 | ||||
| -rw-r--r-- | drivers/rtc/m48t35ax.c | 4 | ||||
| -rw-r--r-- | drivers/rtc/max6900.c | 4 | ||||
| -rw-r--r-- | drivers/rtc/mc146818.c | 4 | ||||
| -rw-r--r-- | drivers/rtc/mcfrtc.c | 4 | ||||
| -rw-r--r-- | drivers/rtc/mk48t59.c | 4 | ||||
| -rw-r--r-- | drivers/rtc/mpc5xxx.c | 4 | ||||
| -rw-r--r-- | drivers/rtc/mpc8xx.c | 4 | ||||
| -rw-r--r-- | drivers/rtc/pcf8563.c | 6 | ||||
| -rw-r--r-- | drivers/rtc/rs5c372.c | 8 | ||||
| -rw-r--r-- | drivers/rtc/rx8025.c | 17 | ||||
| -rw-r--r-- | drivers/rtc/s3c24x0_rtc.c | 4 | ||||
| -rw-r--r-- | drivers/rtc/x1205.c | 4 | 
27 files changed, 116 insertions, 38 deletions
| diff --git a/drivers/rtc/bfin_rtc.c b/drivers/rtc/bfin_rtc.c index 5755a20bc..ce4f1711d 100644 --- a/drivers/rtc/bfin_rtc.c +++ b/drivers/rtc/bfin_rtc.c @@ -85,7 +85,7 @@ void rtc_set(struct rtc_time *tmp)  }  /* Read the time from the RTC_STAT. time_in_seconds is seconds since Jan 1970 */ -void rtc_get(struct rtc_time *tmp) +int rtc_get(struct rtc_time *tmp)  {  	uint32_t cur_rtc_stat;  	int time_in_sec; @@ -95,7 +95,7 @@ void rtc_get(struct rtc_time *tmp)  	if (tmp == NULL) {  		puts("Error getting the date/time\n"); -		return; +		return -1;  	}  	wait_for_complete(); @@ -112,6 +112,8 @@ void rtc_get(struct rtc_time *tmp)  	/* Calculate the total number of seconds since epoch */  	time_in_sec = (tm_sec) + MIN_TO_SECS(tm_min) + HRS_TO_SECS(tm_hr) + DAYS_TO_SECS(tm_day);  	to_tm(time_in_sec, tmp); + +	return 0;  }  #endif diff --git a/drivers/rtc/ds12887.c b/drivers/rtc/ds12887.c index 84fecf019..57a446d30 100644 --- a/drivers/rtc/ds12887.c +++ b/drivers/rtc/ds12887.c @@ -88,7 +88,7 @@ static unsigned char bin2bcd (unsigned int n)  /* ------------------------------------------------------------------------- */ -void rtc_get (struct rtc_time *tmp) +int rtc_get (struct rtc_time *tmp)  {  	uchar sec, min, hour, mday, wday, mon, year; @@ -150,6 +150,8 @@ else  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec);  #endif + +	return 0;  }  void rtc_set (struct rtc_time *tmp) diff --git a/drivers/rtc/ds1302.c b/drivers/rtc/ds1302.c index 55af1302d..3a856c840 100644 --- a/drivers/rtc/ds1302.c +++ b/drivers/rtc/ds1302.c @@ -253,9 +253,10 @@ rtc_reset(void)  	/* TODO */  } -void +int  rtc_get(struct rtc_time *tmp)  { +	int rel = 0;  	struct ds1302_st bbclk;  	if(!ds1302_initted) rtc_init(); @@ -265,6 +266,7 @@ rtc_get(struct rtc_time *tmp)  	if (bbclk.CH) {  		printf("ds1302: rtc_get: Clock was halted, clock probably "  			"corrupt\n"); +		rel = -1;  	}  	tmp->tm_sec=10*bbclk.sec10+bbclk.sec; @@ -281,6 +283,8 @@ rtc_get(struct rtc_time *tmp)  	DPRINTF("Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec ); + +	return rel;  }  void diff --git a/drivers/rtc/ds1306.c b/drivers/rtc/ds1306.c index 89e433dab..1c8ac7f29 100644 --- a/drivers/rtc/ds1306.c +++ b/drivers/rtc/ds1306.c @@ -91,7 +91,7 @@ static void init_spi (void);  /* ------------------------------------------------------------------------- */  /* read clock time from DS1306 and return it in *tmp */ -void rtc_get (struct rtc_time *tmp) +int rtc_get (struct rtc_time *tmp)  {  	volatile immap_t *immap = (immap_t *) CFG_IMMR;  	unsigned char spi_byte;	/* Data Byte */ @@ -141,6 +141,8 @@ void rtc_get (struct rtc_time *tmp)  	debug ("Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",  	       tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  	       tmp->tm_hour, tmp->tm_min, tmp->tm_sec); + +	return 0;  }  /* ------------------------------------------------------------------------- */ @@ -304,7 +306,7 @@ static unsigned char rtc_read (unsigned char reg);  static void rtc_write (unsigned char reg, unsigned char val);  /* read clock time from DS1306 and return it in *tmp */ -void rtc_get (struct rtc_time *tmp) +int rtc_get (struct rtc_time *tmp)  {  	unsigned char sec, min, hour, mday, wday, mon, year; @@ -349,6 +351,8 @@ void rtc_get (struct rtc_time *tmp)  	debug ("Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",  	       tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  	       tmp->tm_hour, tmp->tm_min, tmp->tm_sec); + +	return 0;  }  /* ------------------------------------------------------------------------- */ diff --git a/drivers/rtc/ds1307.c b/drivers/rtc/ds1307.c index c882d7989..b20f193b4 100644 --- a/drivers/rtc/ds1307.c +++ b/drivers/rtc/ds1307.c @@ -83,8 +83,9 @@ static unsigned bcd2bin (uchar c);  /*   * Get the current time from the RTC   */ -void rtc_get (struct rtc_time *tmp) +int rtc_get (struct rtc_time *tmp)  { +	int rel = 0;  	uchar sec, min, hour, mday, wday, mon, year;  	sec = rtc_read (RTC_SEC_REG_ADDR); @@ -104,6 +105,7 @@ void rtc_get (struct rtc_time *tmp)  		/* clear the CH flag */  		rtc_write (RTC_SEC_REG_ADDR,  			   rtc_read (RTC_SEC_REG_ADDR) & ~RTC_SEC_BIT_CH); +		rel = -1;  	}  	tmp->tm_sec  = bcd2bin (sec & 0x7F); @@ -119,6 +121,8 @@ void rtc_get (struct rtc_time *tmp)  	DEBUGR ("Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec); + +	return rel;  } diff --git a/drivers/rtc/ds1337.c b/drivers/rtc/ds1337.c index c636ac594..50ab44690 100644 --- a/drivers/rtc/ds1337.c +++ b/drivers/rtc/ds1337.c @@ -84,8 +84,9 @@ static unsigned bcd2bin (uchar c);  /*   * Get the current time from the RTC   */ -void rtc_get (struct rtc_time *tmp) +int rtc_get (struct rtc_time *tmp)  { +	int rel = 0;  	uchar sec, min, hour, mday, wday, mon_cent, year, control, status;  	control = rtc_read (RTC_CTL_REG_ADDR); @@ -107,6 +108,7 @@ void rtc_get (struct rtc_time *tmp)  		/* clear the OSF flag */  		rtc_write (RTC_STAT_REG_ADDR,  			   rtc_read (RTC_STAT_REG_ADDR) & ~RTC_STAT_BIT_OSF); +		rel = -1;  	}  	tmp->tm_sec  = bcd2bin (sec & 0x7F); @@ -122,6 +124,8 @@ void rtc_get (struct rtc_time *tmp)  	DEBUGR ("Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec); + +	return rel;  } diff --git a/drivers/rtc/ds1374.c b/drivers/rtc/ds1374.c index e773dd926..f6bb2965a 100644 --- a/drivers/rtc/ds1374.c +++ b/drivers/rtc/ds1374.c @@ -107,8 +107,8 @@ static void rtc_write_raw (uchar reg, uchar val);  /*   * Get the current time from the RTC   */ -void rtc_get (struct rtc_time *tm){ - +int rtc_get (struct rtc_time *tm){ +	int rel = 0;  	unsigned long time1, time2;  	unsigned int limit;  	unsigned char tmp; @@ -138,18 +138,23 @@ void rtc_get (struct rtc_time *tm){  	if (time1 != time2) {  		printf("can't get consistent time from rtc chip\n"); +		rel = -1;  	}  	DEBUGR ("Get RTC s since 1.1.1970: %d\n", time1);  	to_tm(time1, tm); /* To Gregorian Date */ -	if (rtc_read(RTC_SR_ADDR) & RTC_SR_BIT_OSF) +	if (rtc_read(RTC_SR_ADDR) & RTC_SR_BIT_OSF) {  		printf ("### Warning: RTC oscillator has stopped\n"); +		rel = -1; +	}  	DEBUGR ("Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",  		tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_wday,  		tm->tm_hour, tm->tm_min, tm->tm_sec); + +	return rel;  }  /* diff --git a/drivers/rtc/ds1556.c b/drivers/rtc/ds1556.c index 4365cfb98..2c496f510 100644 --- a/drivers/rtc/ds1556.c +++ b/drivers/rtc/ds1556.c @@ -69,7 +69,7 @@ static unsigned bcd2bin(uchar c);  /* ------------------------------------------------------------------------- */ -void rtc_get( struct rtc_time *tmp ) +int rtc_get( struct rtc_time *tmp )  {  	uchar sec, min, hour;  	uchar mday, wday, mon, year; @@ -118,6 +118,7 @@ void rtc_get( struct rtc_time *tmp )  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec );  #endif +	return 0;  }  void rtc_set( struct rtc_time *tmp ) diff --git a/drivers/rtc/ds164x.c b/drivers/rtc/ds164x.c index bff22b9a0..5943f8711 100644 --- a/drivers/rtc/ds164x.c +++ b/drivers/rtc/ds164x.c @@ -70,7 +70,7 @@ static unsigned bcd2bin(uchar c);  /* ------------------------------------------------------------------------- */ -void rtc_get( struct rtc_time *tmp ) +int rtc_get( struct rtc_time *tmp )  {  	uchar sec, min, hour;  	uchar mday, wday, mon, year; @@ -115,6 +115,8 @@ void rtc_get( struct rtc_time *tmp )  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec );  #endif + +	return 0;  }  void rtc_set( struct rtc_time *tmp ) diff --git a/drivers/rtc/ds174x.c b/drivers/rtc/ds174x.c index 5f85a6817..81a9cb3d3 100644 --- a/drivers/rtc/ds174x.c +++ b/drivers/rtc/ds174x.c @@ -65,7 +65,7 @@ static unsigned bcd2bin(uchar c);  /* ------------------------------------------------------------------------- */ -void rtc_get( struct rtc_time *tmp ) +int rtc_get( struct rtc_time *tmp )  {  	uchar sec, min, hour;  	uchar mday, wday, mon, year; @@ -142,6 +142,8 @@ void rtc_set( struct rtc_time *tmp )  	/* unlock clock registers after read */  	rtc_write( RTC_CONTROLA, ( reg_a  & ~RTC_CA_WRITE )); + +	return 0;  }  void rtc_reset (void) diff --git a/drivers/rtc/ds3231.c b/drivers/rtc/ds3231.c index fe11b869f..95cb18634 100644 --- a/drivers/rtc/ds3231.c +++ b/drivers/rtc/ds3231.c @@ -86,8 +86,9 @@ static unsigned bcd2bin (uchar c);  /*   * Get the current time from the RTC   */ -void rtc_get (struct rtc_time *tmp) +int rtc_get (struct rtc_time *tmp)  { +	int rel = 0;  	uchar sec, min, hour, mday, wday, mon_cent, year, control, status;  	control = rtc_read (RTC_CTL_REG_ADDR); @@ -109,6 +110,7 @@ void rtc_get (struct rtc_time *tmp)  		/* clear the OSF flag */  		rtc_write (RTC_STAT_REG_ADDR,  			   rtc_read (RTC_STAT_REG_ADDR) & ~RTC_STAT_BIT_OSF); +		rel = -1;  	}  	tmp->tm_sec  = bcd2bin (sec & 0x7F); @@ -124,6 +126,8 @@ void rtc_get (struct rtc_time *tmp)  	DEBUGR ("Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec); + +	return rel;  } diff --git a/drivers/rtc/isl1208.c b/drivers/rtc/isl1208.c index d87280229..3d46fd065 100644 --- a/drivers/rtc/isl1208.c +++ b/drivers/rtc/isl1208.c @@ -73,8 +73,9 @@ static unsigned bcd2bin (uchar c);   * Get the current time from the RTC   */ -void rtc_get (struct rtc_time *tmp) +int rtc_get (struct rtc_time *tmp)  { +	int rel = 0;  	uchar sec, min, hour, mday, wday, mon, year, status;  	status = rtc_read (RTC_STAT_REG_ADDR); @@ -94,6 +95,7 @@ void rtc_get (struct rtc_time *tmp)  		printf ("### Warning: RTC oscillator has stopped\n");  		rtc_write(RTC_STAT_REG_ADDR,  			rtc_read(RTC_STAT_REG_ADDR) &~ (RTC_STAT_BIT_BAT|RTC_STAT_BIT_RTCF)); +		rel = -1;  	}  	tmp->tm_sec  = bcd2bin (sec & 0x7F); @@ -109,6 +111,8 @@ void rtc_get (struct rtc_time *tmp)  	DEBUGR ("Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec); + +	return rel;  }  /* diff --git a/drivers/rtc/m41t11.c b/drivers/rtc/m41t11.c index 81da33a31..fce00d935 100644 --- a/drivers/rtc/m41t11.c +++ b/drivers/rtc/m41t11.c @@ -96,14 +96,16 @@ static unsigned char bin2bcd (unsigned int n)  #define M41T11_STORAGE_SZ  (64-REG_CNT) -void rtc_get (struct rtc_time *tmp) +int rtc_get (struct rtc_time *tmp)  { +	int rel = 0;  	uchar data[RTC_REG_CNT];  	i2c_read(CFG_I2C_RTC_ADDR, RTC_SEC_ADDR, 1, data, RTC_REG_CNT);  	if( data[RTC_SEC_ADDR] & 0x80 ){  		printf( "m41t11 RTC Clock stopped!!!\n" ); +		rel = -1;  	}  	tmp->tm_sec  = bcd2bin (data[RTC_SEC_ADDR]  & 0x7F);  	tmp->tm_min  = bcd2bin (data[RTC_MIN_ADDR]  & 0x7F); @@ -120,6 +122,7 @@ void rtc_get (struct rtc_time *tmp)  		i2c_read(CFG_I2C_RTC_ADDR, M41T11_YEAR_DATA, 1, ¢, M41T11_YEAR_SIZE);  		if( !(data[RTC_HOUR_ADDR] & 0x80) ){  			printf( "m41t11 RTC: cann't keep track of years without CEB set\n" ); +			rel = -1;  		}  		if( (cent & 0x1) != ((data[RTC_HOUR_ADDR]&0x40)>>7) ){  			/*century flip store off new year*/ @@ -136,6 +139,8 @@ void rtc_get (struct rtc_time *tmp)  	debug ( "Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec); + +	return rel;  }  void rtc_set (struct rtc_time *tmp) diff --git a/drivers/rtc/m41t60.c b/drivers/rtc/m41t60.c index 7c80143e6..8a32ea074 100644 --- a/drivers/rtc/m41t60.c +++ b/drivers/rtc/m41t60.c @@ -170,12 +170,12 @@ static uchar *rtc_validate(void)  	return data;  } -void rtc_get(struct rtc_time *tmp) +int rtc_get(struct rtc_time *tmp)  {  	uchar const *const data = rtc_validate();  	if (!data) -		return; +		return -1;  	tmp->tm_sec = bcd2bin(data[RTC_SEC] & 0x7F);  	tmp->tm_min = bcd2bin(data[RTC_MIN] & 0x7F); @@ -190,6 +190,8 @@ void rtc_get(struct rtc_time *tmp)  	debug("Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",  	      tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  	      tmp->tm_hour, tmp->tm_min, tmp->tm_sec); + +	return 0;  }  void rtc_set(struct rtc_time *tmp) diff --git a/drivers/rtc/m41t62.c b/drivers/rtc/m41t62.c index 2bdca3bdf..cf2a9574a 100644 --- a/drivers/rtc/m41t62.c +++ b/drivers/rtc/m41t62.c @@ -64,7 +64,7 @@  #define M41T62_FEATURE_HT	(1 << 0)  #define M41T62_FEATURE_BL	(1 << 1) -void rtc_get(struct rtc_time *tm) +int rtc_get(struct rtc_time *tm)  {  	u8 buf[M41T62_DATETIME_REG_SIZE]; @@ -92,6 +92,8 @@ void rtc_get(struct rtc_time *tm)  	      __FUNCTION__,  	      tm->tm_sec, tm->tm_min, tm->tm_hour,  	      tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday); + +	return 0;  }  void rtc_set(struct rtc_time *tm) diff --git a/drivers/rtc/m48t35ax.c b/drivers/rtc/m48t35ax.c index 0a0ffa8aa..be29279d0 100644 --- a/drivers/rtc/m48t35ax.c +++ b/drivers/rtc/m48t35ax.c @@ -42,7 +42,7 @@ static unsigned bcd2bin(uchar c);  /* ------------------------------------------------------------------------- */ -void rtc_get (struct rtc_time *tmp) +int rtc_get (struct rtc_time *tmp)  {  	uchar sec, min, hour, cent_day, date, month, year;  	uchar ccr;			/* Clock control register */ @@ -83,6 +83,8 @@ void rtc_get (struct rtc_time *tmp)  	debug ( "Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec); + +	return 0;  }  void rtc_set (struct rtc_time *tmp) diff --git a/drivers/rtc/max6900.c b/drivers/rtc/max6900.c index c75a8e04c..e9979f227 100644 --- a/drivers/rtc/max6900.c +++ b/drivers/rtc/max6900.c @@ -63,7 +63,7 @@ static unsigned char bin2bcd (unsigned int n)  /* ------------------------------------------------------------------------- */ -void rtc_get (struct rtc_time *tmp) +int rtc_get (struct rtc_time *tmp)  {  	uchar sec, min, hour, mday, wday, mon, cent, year;  	int retry = 1; @@ -103,6 +103,8 @@ void rtc_get (struct rtc_time *tmp)  	debug ( "Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec); + +	return 0;  }  void rtc_set (struct rtc_time *tmp) diff --git a/drivers/rtc/mc146818.c b/drivers/rtc/mc146818.c index ab377ed73..70f7017a3 100644 --- a/drivers/rtc/mc146818.c +++ b/drivers/rtc/mc146818.c @@ -57,7 +57,7 @@ static unsigned bcd2bin(uchar c);  /* ------------------------------------------------------------------------- */ -void rtc_get (struct rtc_time *tmp) +int rtc_get (struct rtc_time *tmp)  {  	uchar sec, min, hour, mday, wday, mon, year;    /* here check if rtc can be accessed */ @@ -101,6 +101,8 @@ void rtc_get (struct rtc_time *tmp)  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec);  #endif + +	return 0;  }  void rtc_set (struct rtc_time *tmp) diff --git a/drivers/rtc/mcfrtc.c b/drivers/rtc/mcfrtc.c index 27386e586..d235d10f2 100644 --- a/drivers/rtc/mcfrtc.c +++ b/drivers/rtc/mcfrtc.c @@ -39,7 +39,7 @@  #define isleap(y) ((((y) % 4) == 0 && ((y) % 100) != 0) || ((y) % 400) == 0)  #define	STARTOFTIME		1970 -void rtc_get(struct rtc_time *tmp) +int rtc_get(struct rtc_time *tmp)  {  	volatile rtc_t *rtc = (rtc_t *) (CFG_MCFRTC_BASE); @@ -64,6 +64,8 @@ void rtc_get(struct rtc_time *tmp)  	       tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  	       tmp->tm_hour, tmp->tm_min, tmp->tm_sec);  #endif + +	return 0;  }  void rtc_set(struct rtc_time *tmp) diff --git a/drivers/rtc/mk48t59.c b/drivers/rtc/mk48t59.c index bacdb5b70..59813998e 100644 --- a/drivers/rtc/mk48t59.c +++ b/drivers/rtc/mk48t59.c @@ -135,7 +135,7 @@ void nvram_write(short dest, const void *src, size_t count)  /* ------------------------------------------------------------------------- */ -void rtc_get (struct rtc_time *tmp) +int rtc_get (struct rtc_time *tmp)  {  	uchar save_ctrl_a;  	uchar sec, min, hour, mday, wday, mon, year; @@ -183,6 +183,8 @@ void rtc_get (struct rtc_time *tmp)  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec);  #endif + +	return 0;  }  void rtc_set (struct rtc_time *tmp) diff --git a/drivers/rtc/mpc5xxx.c b/drivers/rtc/mpc5xxx.c index 216386aba..a6555f5eb 100644 --- a/drivers/rtc/mpc5xxx.c +++ b/drivers/rtc/mpc5xxx.c @@ -55,7 +55,7 @@ typedef struct rtc5200 {  /*****************************************************************************   * get time   *****************************************************************************/ -void rtc_get (struct rtc_time *tmp) +int rtc_get (struct rtc_time *tmp)  {  	RTC5200	*rtc = (RTC5200 *) (CFG_MBAR+0x800);  	ulong time, date, time2; @@ -81,6 +81,8 @@ void rtc_get (struct rtc_time *tmp)  	debug ( "Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec); + +	return 0;  }  /***************************************************************************** diff --git a/drivers/rtc/mpc8xx.c b/drivers/rtc/mpc8xx.c index 8d10c0e46..057547bc3 100644 --- a/drivers/rtc/mpc8xx.c +++ b/drivers/rtc/mpc8xx.c @@ -35,7 +35,7 @@  /* ------------------------------------------------------------------------- */ -void rtc_get (struct rtc_time *tmp) +int rtc_get (struct rtc_time *tmp)  {  	volatile immap_t *immr = (immap_t *)CFG_IMMR;  	ulong tim; @@ -47,6 +47,8 @@ void rtc_get (struct rtc_time *tmp)  	debug ( "Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec); + +	return 0;  }  void rtc_set (struct rtc_time *tmp) diff --git a/drivers/rtc/pcf8563.c b/drivers/rtc/pcf8563.c index 2d73d5d7e..c384975f3 100644 --- a/drivers/rtc/pcf8563.c +++ b/drivers/rtc/pcf8563.c @@ -41,8 +41,9 @@ static unsigned bcd2bin(uchar c);  /* ------------------------------------------------------------------------- */ -void rtc_get (struct rtc_time *tmp) +int rtc_get (struct rtc_time *tmp)  { +	int rel = 0;  	uchar sec, min, hour, mday, wday, mon_cent, year;  	sec	= rtc_read (0x02); @@ -65,6 +66,7 @@ void rtc_get (struct rtc_time *tmp)  	if (sec & 0x80) {  		puts ("### Warning: RTC Low Voltage - date/time not reliable\n"); +		rel = -1;  	}  	tmp->tm_sec  = bcd2bin (sec  & 0x7F); @@ -80,6 +82,8 @@ void rtc_get (struct rtc_time *tmp)  	debug ( "Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec); + +	return rel;  }  void rtc_set (struct rtc_time *tmp) diff --git a/drivers/rtc/rs5c372.c b/drivers/rtc/rs5c372.c index 3d1346eaa..1c9b75242 100644 --- a/drivers/rtc/rs5c372.c +++ b/drivers/rtc/rs5c372.c @@ -166,7 +166,7 @@ rs5c372_convert_to_time(struct rtc_time *dt, unsigned char *buf)  /*   * Get the current time from the RTC   */ -void +int  rtc_get (struct rtc_time *tmp)  {  	unsigned char buf[RS5C372_RAM_SIZE]; @@ -176,7 +176,7 @@ rtc_get (struct rtc_time *tmp)  		rs5c372_enable();  	if (!setup_done) -		return; +		return -1;  	memset(buf, 0, sizeof(buf)); @@ -184,12 +184,12 @@ rtc_get (struct rtc_time *tmp)  	ret = rs5c372_readram(buf, RS5C372_RAM_SIZE);  	if (ret != 0) {  		printf("%s: failed\n", __FUNCTION__); -		return; +		return -1;  	}  	rs5c372_convert_to_time(tmp, buf); -	return; +	return 0;  }  /* diff --git a/drivers/rtc/rx8025.c b/drivers/rtc/rx8025.c index 9122f12fc..64eafe5c3 100644 --- a/drivers/rtc/rx8025.c +++ b/drivers/rtc/rx8025.c @@ -96,8 +96,9 @@ static unsigned bcd2bin (uchar c);  /*   * Get the current time from the RTC   */ -void rtc_get (struct rtc_time *tmp) +int rtc_get (struct rtc_time *tmp)  { +	int rel = 0;  	uchar sec, min, hour, mday, wday, mon, year, ctl2;  	uchar buf[16]; @@ -118,14 +119,20 @@ void rtc_get (struct rtc_time *tmp)  	/* dump status */  	ctl2 = rtc_read(RTC_CTL2_REG_ADDR); -	if (ctl2 & RTC_CTL2_BIT_PON) +	if (ctl2 & RTC_CTL2_BIT_PON) {  		printf("RTC: power-on detected\n"); +		rel = -1; +	} -	if (ctl2 & RTC_CTL2_BIT_VDET) +	if (ctl2 & RTC_CTL2_BIT_VDET) {  		printf("RTC: voltage drop detected\n"); +		rel = -1; +	} -	if (!(ctl2 & RTC_CTL2_BIT_XST)) +	if (!(ctl2 & RTC_CTL2_BIT_XST)) {  		printf("RTC: oscillator stop detected\n"); +		rel = -1; +	}  	tmp->tm_sec  = bcd2bin (sec & 0x7F);  	tmp->tm_min  = bcd2bin (min & 0x7F); @@ -140,6 +147,8 @@ void rtc_get (struct rtc_time *tmp)  	DEBUGR ("Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec); + +	return rel;  }  /* diff --git a/drivers/rtc/s3c24x0_rtc.c b/drivers/rtc/s3c24x0_rtc.c index 7f8b4fad0..358aef751 100644 --- a/drivers/rtc/s3c24x0_rtc.c +++ b/drivers/rtc/s3c24x0_rtc.c @@ -70,7 +70,7 @@ static unsigned char bin2bcd (unsigned int n)  /* ------------------------------------------------------------------------- */ -void rtc_get (struct rtc_time *tmp) +int rtc_get (struct rtc_time *tmp)  {  	S3C24X0_RTC * const rtc = S3C24X0_GetBase_RTC();  	uchar sec, min, hour, mday, wday, mon, year; @@ -131,6 +131,8 @@ void rtc_get (struct rtc_time *tmp)  		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,  		tmp->tm_hour, tmp->tm_min, tmp->tm_sec);  #endif + +	return 0;  }  void rtc_set (struct rtc_time *tmp) diff --git a/drivers/rtc/x1205.c b/drivers/rtc/x1205.c index 319f0512c..0e1813917 100644 --- a/drivers/rtc/x1205.c +++ b/drivers/rtc/x1205.c @@ -104,7 +104,7 @@ static void rtc_write(int reg, u8 val)   * rtc_time -- month 0-11, hour 0-23, yr = calendar year-epoch   * Epoch is initialized as 2000. Time is set to UTC.   */ -void rtc_get(struct rtc_time *tm) +int rtc_get(struct rtc_time *tm)  {  	u8 buf[8]; @@ -130,6 +130,8 @@ void rtc_get(struct rtc_time *tm)  	      __FUNCTION__,  	      tm->tm_sec, tm->tm_min, tm->tm_hour,  	      tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday); + +	return 0;  }  void rtc_set(struct rtc_time *tm) |