diff --git a/drivers/rtc/rv3029.c b/drivers/rtc/rv3029.c
index e012168..8033695 100644
--- a/drivers/rtc/rv3029.c
+++ b/drivers/rtc/rv3029.c
@@ -84,12 +84,10 @@
 	tmp->tm_yday = 0;
 	tmp->tm_isdst = 0;
 
-#ifdef RTC_DEBUG
-	printf( "Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",
+	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 );
 
-#endif
 	return 0;
 }
 
@@ -97,11 +95,10 @@
 {
 	int	ret;
 	unsigned char buf[RTC_RV3029_PAGE_LEN];
-#ifdef RTC_DEBUG
-	printf( "Set DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",
+
+	debug( "Set 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);
-#endif
 
 	if (tmp->tm_year < 2000) {
 		printf("RTC: year %d < 2000 not possible\n", tmp->tm_year);
@@ -122,16 +119,15 @@
 
 	/* give the RTC some time to update */
 	udelay(1000);
-	return 0;
+	return ret;
 }
 
 /* sets EERE-Bit  (automatic EEPROM refresh) */
 static void set_eere_bit(int state)
 {
-	int ret;
 	unsigned char reg_ctrl1;
 
-	ret = i2c_read(CONFIG_SYS_I2C_RTC_ADDR, RTC_RV3029_CTRL1, 1,
+	(void)i2c_read(CONFIG_SYS_I2C_RTC_ADDR, RTC_RV3029_CTRL1, 1,
 			&reg_ctrl1, 1);
 
 	if (state)
@@ -139,18 +135,18 @@
 	else
 		reg_ctrl1 &= (~RTC_RV3029_CTRL1_EERE);
 
-	ret = i2c_write(CONFIG_SYS_I2C_RTC_ADDR, RTC_RV3029_CTRL1, 1,
+	(void)i2c_write(CONFIG_SYS_I2C_RTC_ADDR, RTC_RV3029_CTRL1, 1,
 		&reg_ctrl1, 1);
 }
 
 /* waits until EEPROM page is no longer busy (times out after 10ms*loops) */
 static int wait_eebusy(int loops)
 {
-	int i, ret;
+	int i;
 	unsigned char ctrl_status;
 
 	for (i = 0; i < loops; i++) {
-		ret = i2c_read(CONFIG_SYS_I2C_RTC_ADDR, RTC_RV3029_CTRL_STATUS,
+		(void)i2c_read(CONFIG_SYS_I2C_RTC_ADDR, RTC_RV3029_CTRL_STATUS,
 			1, &ctrl_status, 1);
 
 		if ((ctrl_status & RTC_RV3029_CTRLS_EEBUSY) == 0)
@@ -162,11 +158,10 @@
 
 void rtc_reset (void)
 {
-	int	ret;
 	unsigned char buf[RTC_RV3029_PAGE_LEN];
 
 	buf[0] = RTC_RV3029_CTRL_SYS_R;
-	ret = i2c_write(CONFIG_SYS_I2C_RTC_ADDR, RTC_RV3029_CTRL_RESET, 1,
+	(void)i2c_write(CONFIG_SYS_I2C_RTC_ADDR, RTC_RV3029_CTRL_RESET, 1,
 			buf, 1);
 
 #if defined(CONFIG_SYS_RV3029_TCR)
@@ -178,7 +173,7 @@
 	set_eere_bit(0);
 	wait_eebusy(100);
 	/* read current trickle charger setting */
-	ret = i2c_read(CONFIG_SYS_I2C_RTC_ADDR, RTC_RV3029_EEPROM_CTRL,
+	(void)i2c_read(CONFIG_SYS_I2C_RTC_ADDR, RTC_RV3029_EEPROM_CTRL,
 			1, buf, 1);
 	/* enable automatic EEPROM refresh again */
 	set_eere_bit(1);
@@ -195,7 +190,7 @@
 		 */
 		set_eere_bit(0);
 		wait_eebusy(100);
-		ret = i2c_write(CONFIG_SYS_I2C_RTC_ADDR,
+		(void)i2c_write(CONFIG_SYS_I2C_RTC_ADDR,
 				RTC_RV3029_EEPROM_CTRL, 1, buf, 1);
 		/*
 		 * it is necessary to wait 10ms before EEBUSY-Bit may be read
