diff options
Diffstat (limited to 'drivers/rtc/rs5c372.c')
| -rw-r--r-- | drivers/rtc/rs5c372.c | 25 | 
1 files changed, 14 insertions, 11 deletions
| diff --git a/drivers/rtc/rs5c372.c b/drivers/rtc/rs5c372.c index 38db19929..d6cd7c825 100644 --- a/drivers/rtc/rs5c372.c +++ b/drivers/rtc/rs5c372.c @@ -50,8 +50,8 @@ static unsigned int rtc_debug = DEBUG;  #define rtc_debug 0	/* gcc will remove all the debug code for us */  #endif -#ifndef CFG_I2C_RTC_ADDR -#define CFG_I2C_RTC_ADDR 0x32 +#ifndef CONFIG_SYS_I2C_RTC_ADDR +#define CONFIG_SYS_I2C_RTC_ADDR 0x32  #endif  #define RS5C372_RAM_SIZE 0x10 @@ -77,7 +77,7 @@ rs5c372_readram(unsigned char *buf, int len)  {  	int ret; -	ret = i2c_read(CFG_I2C_RTC_ADDR, 0, 0, buf, len); +	ret = i2c_read(CONFIG_SYS_I2C_RTC_ADDR, 0, 0, buf, len);  	if (ret != 0) {  		printf("%s: failed to read\n", __FUNCTION__);  		return ret; @@ -117,7 +117,7 @@ rs5c372_enable(void)  	buf[14] = 0; /* reg. 13 */  	buf[15] = 0; /* reg. 14 */  	buf[16] = USE_24HOUR_MODE; /* reg. 15 */ -	ret = i2c_write(CFG_I2C_RTC_ADDR, 0, 0, buf, RS5C372_RAM_SIZE+1); +	ret = i2c_write(CONFIG_SYS_I2C_RTC_ADDR, 0, 0, buf, RS5C372_RAM_SIZE+1);  	if (ret != 0) {  		printf("%s: failed\n", __FUNCTION__);  		return; @@ -195,8 +195,7 @@ rtc_get (struct rtc_time *tmp)  /*   * Set the RTC   */ -void -rtc_set (struct rtc_time *tmp) +int rtc_set (struct rtc_time *tmp)  {  	unsigned char buf[8], reg15;  	int ret; @@ -205,7 +204,7 @@ rtc_set (struct rtc_time *tmp)  		rs5c372_enable();  	if (!setup_done) -		return; +		return -1;  	if(rtc_debug > 2) {  		printf("rtc_set: tm_year = %d\n", tmp->tm_year); @@ -219,7 +218,7 @@ rtc_set (struct rtc_time *tmp)  	memset(buf, 0, sizeof(buf));  	/* only read register 15 */ -	ret = i2c_read(CFG_I2C_RTC_ADDR, 0, 0, buf, 1); +	ret = i2c_read(CONFIG_SYS_I2C_RTC_ADDR, 0, 0, buf, 1);  	if (ret == 0) {  		/* need to save register 15 */ @@ -248,12 +247,16 @@ rtc_set (struct rtc_time *tmp)  			printf("WARNING: year should be between 1970 and 2069!\n");  		buf[7] = bin2bcd(tmp->tm_year % 100); -		ret = i2c_write(CFG_I2C_RTC_ADDR, 0, 0, buf, 8); -		if (ret != 0) +		ret = i2c_write(CONFIG_SYS_I2C_RTC_ADDR, 0, 0, buf, 8); +		if (ret != 0) {  			printf("rs5c372_set_datetime(), i2c_master_send() returned %d\n",ret); +			return -1; +		} +	} else { +		return -1;  	} -	return; +	return 0;  }  /* |