]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
rtc: allow rtc_set to return an error and use it in cmd_date
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Mon, 1 Sep 2008 21:06:23 +0000 (23:06 +0200)
committerWolfgang Denk <wd@denx.de>
Sat, 6 Sep 2008 22:56:36 +0000 (00:56 +0200)
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
36 files changed:
board/bmw/m48t59y.c
board/cray/L1/L1.c
board/etin/debris/phantom.c
board/mousse/m48t59y.c
common/cmd_date.c
cpu/s3c44b0/cpu.c
drivers/rtc/bfin_rtc.c
drivers/rtc/ds12887.c
drivers/rtc/ds1302.c
drivers/rtc/ds1306.c
drivers/rtc/ds1307.c
drivers/rtc/ds1337.c
drivers/rtc/ds1374.c
drivers/rtc/ds1556.c
drivers/rtc/ds164x.c
drivers/rtc/ds174x.c
drivers/rtc/ds3231.c
drivers/rtc/isl1208.c
drivers/rtc/m41t11.c
drivers/rtc/m41t60.c
drivers/rtc/m41t62.c
drivers/rtc/m48t35ax.c
drivers/rtc/max6900.c
drivers/rtc/mc13783-rtc.c
drivers/rtc/mc146818.c
drivers/rtc/mcfrtc.c
drivers/rtc/mk48t59.c
drivers/rtc/mpc5xxx.c
drivers/rtc/mpc8xx.c
drivers/rtc/pcf8563.c
drivers/rtc/pl031.c [changed mode: 0755->0644]
drivers/rtc/rs5c372.c
drivers/rtc/rx8025.c
drivers/rtc/s3c24x0_rtc.c
drivers/rtc/x1205.c
include/rtc.h

index a1a85d0fc9fa5d8bccbbecd6659f057f01d6719c..4e83b9076e3645fd8da3ebccb50d9ae94adeb5a1 100644 (file)
@@ -299,8 +299,7 @@ rtc_get( struct rtc_time *tmp )
        return 0;
 }
 
-void
-rtc_set( struct rtc_time *tmp )
+int rtc_set( struct rtc_time *tmp )
 {
        m48_tod_set(tmp->tm_year,               /* 1980-2079 */
                    tmp->tm_mon,                /* 01-12 */
@@ -315,6 +314,7 @@ rtc_set( struct rtc_time *tmp )
                tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
 #endif
 
+       return 0;
 }
 
 void
index f0dfa07fdcc8830a74f87dfa2aeed0210ef3238a..49a9e5e11d0d97fe309f26fb85a1f426712f6f07 100644 (file)
@@ -181,9 +181,9 @@ int rtc_get (struct rtc_time *tmp)
 {
        return 0;
 }
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
-       return;
+       return 0;
 }
 void rtc_reset (void)
 {
index 263da6b7c966c7b1d94501a482d66e7822700330..48b81f71e7765fcdb31df92daa1c70813a289466 100644 (file)
@@ -254,7 +254,7 @@ int rtc_get( struct rtc_time *tmp)
        return 0;
 }
 
-void rtc_set( struct rtc_time *tmp )
+int rtc_set( struct rtc_time *tmp )
 {
        if (phantom_flag < 0)
                phantom_flag = get_phantom_flag();
@@ -307,6 +307,8 @@ void rtc_set( struct rtc_time *tmp )
                /* unlock clock registers after read */
                rtc_write( RTC_CONTROLA, ( reg_a  & ~RTC_CA_WRITE ));
        }
+
+       return 0;
 }
 
 #endif
index 2c1e6cf8b7c151936e7a27107c075e57649722fd..beb26fe2dc3ebee43858c2a104816ef839fe97de 100644 (file)
@@ -299,8 +299,7 @@ rtc_get( struct rtc_time *tmp )
        return 0;
 }
 
-void
-rtc_set( struct rtc_time *tmp )
+int rtc_set( struct rtc_time *tmp )
 {
        m48_tod_set(tmp->tm_year,               /* 1980-2079 */
                    tmp->tm_mon,                /* 01-12 */
@@ -315,6 +314,7 @@ rtc_set( struct rtc_time *tmp )
                tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
 #endif
 
+       return 0;
 }
 
 void
index 751159847a487da0fd3c034d355417eed03ca646..d6cd565adf2cf52f9e9019b38b8957c72202c5f6 100644 (file)
@@ -56,18 +56,30 @@ int do_date (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
                        rtc_reset ();
                } else {
                        /* initialize tm with current time */
-                       rtc_get (&tm);
-                       /* insert new date & time */
-                       if (mk_date (argv[1], &tm) != 0) {
-                               puts ("## Bad date format\n");
-                               break;
+                       rcode = rtc_get (&tm);
+
+                       if(!rcode) {
+                               /* insert new date & time */
+                               if (mk_date (argv[1], &tm) != 0) {
+                                       puts ("## Bad date format\n");
+                                       break;
+                               }
+                               /* and write to RTC */
+                               rcode = rtc_set (&tm);
+                               if(rcode)
+                                       puts("## Set date failled\n");
+                       } else {
+                               puts("## Get date failled\n");
                        }
-                       /* and write to RTC */
-                       rtc_set (&tm);
                }
                /* FALL TROUGH */
        case 1:                 /* get date & time */
-               rtc_get (&tm);
+               rcode = rtc_get (&tm);
+
+               if (rcode) {
+                       puts("## Get date failled\n");
+                       break;
+               }
 
                printf ("Date: %4d-%02d-%02d (%sday)    Time: %2d:%02d:%02d\n",
                        tm.tm_year, tm.tm_mon, tm.tm_mday,
index eae6adbc0bf3d05855c1e07644d20d9f93af2d9e..fd09bf9106a9fca537cd676d930c52e167cd8bca 100644 (file)
@@ -188,7 +188,7 @@ int rtc_get (struct rtc_time* tm)
        return 0;
 }
 
-void rtc_set (struct rtc_time* tm)
+int rtc_set (struct rtc_time* tm)
 {
        if(tm->tm_year < 2000)
                tm->tm_year -= 1900;
@@ -204,6 +204,8 @@ void rtc_set (struct rtc_time* tm)
        BCDMIN = HEX2BCD(tm->tm_min);
        BCDSEC = HEX2BCD(tm->tm_sec);
        RTCCON &= 1;
+
+       return 0;
 }
 
 void rtc_reset (void)
index ee8acd3595fe42aa8ea6a94c1669638137404eca..3f8c7eda60d96377270e95ab1df23c1f2245cedb 100644 (file)
@@ -53,7 +53,7 @@ int rtc_init(void)
 /* Set the time. Get the time_in_secs which is the number of seconds since Jan 1970 and set the RTC registers
  * based on this value.
  */
-void rtc_set(struct rtc_time *tmp)
+int rtc_set(struct rtc_time *tmp)
 {
        unsigned long remain, days, hrs, mins, secs;
 
@@ -61,7 +61,7 @@ void rtc_set(struct rtc_time *tmp)
 
        if (tmp == NULL) {
                puts("Error setting the date/time\n");
-               return;
+               return -1;
        }
 
        wait_for_complete();
@@ -82,6 +82,8 @@ void rtc_set(struct rtc_time *tmp)
 
        /* Encode these time values into our RTC_STAT register */
        bfin_write_RTC_STAT(SET_ALARM(days, hrs, mins, secs));
+
+       return 0;
 }
 
 /* Read the time from the RTC_STAT. time_in_seconds is seconds since Jan 1970 */
index fb1825bf15c997491c32b3122c77674e33a6eefe..25ca1333e23166c00b122e2fb4f17c9c1fcf6e65 100644 (file)
@@ -154,7 +154,7 @@ else
        return 0;
 }
 
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
        uchar save_ctrl_b;
        uchar sec, min, hour, mday, wday, mon, year;
@@ -202,6 +202,8 @@ void rtc_set (struct rtc_time *tmp)
        /* enables the RTC to update the regs */
        save_ctrl_b &= ~RTC_CB_SET;
        rtc_write(RTC_CONTROL_B, save_ctrl_b);
+
+       return 0;
 }
 
 void rtc_reset (void)
index d28a9fd724cae6362ef8518655345046356971b8..87ddd019168b701eb128bf17ff54dd6282f88829 100644 (file)
@@ -287,8 +287,7 @@ rtc_get(struct rtc_time *tmp)
        return rel;
 }
 
-void
-rtc_set(struct rtc_time *tmp)
+int rtc_set(struct rtc_time *tmp)
 {
        struct ds1302_st bbclk;
        unsigned char b=0;
@@ -326,6 +325,8 @@ rtc_set(struct rtc_time *tmp)
 
        write_ser_drv(0x8e,&b,1);           /* disable write protect */
        write_ser_drv(0xbe,(unsigned char *)&bbclk, 8);     /* write burst */
+
+       return 0;
 }
 
 #endif
index 12528ed1ce79d0d3d3a141a7b4b73acf1f46fe48..03c4089267e1923522308a77ff6c7a027e53363b 100644 (file)
@@ -141,7 +141,7 @@ int rtc_get (struct rtc_time *tmp)
 /* ------------------------------------------------------------------------- */
 
 /* set clock time in DS1306 RTC and in MPC8xx RTC */
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
        volatile immap_t *immap = (immap_t *) CFG_IMMR;
 
@@ -209,6 +209,8 @@ void rtc_set (struct rtc_time *tmp)
        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);
+
+       return 0;
 }
 
 /* ------------------------------------------------------------------------- */
@@ -371,7 +373,7 @@ int rtc_get (struct rtc_time *tmp)
 /* ------------------------------------------------------------------------- */
 
 /* set clock time from *tmp in DS1306 RTC */
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
        /* Assuming Vcc = 2.0V (lowest speed) */
        if (!slave) {
index 11fc14f3f65296dfc28ccdbccb224296ea171dbf..afc4b782daa9ef61f7cb42828ebe22f9ccea2d78 100644 (file)
@@ -128,7 +128,7 @@ int rtc_get (struct rtc_time *tmp)
 /*
  * Set the RTC
  */
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
        DEBUGR ("Set DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",
                tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,
@@ -144,6 +144,8 @@ void rtc_set (struct rtc_time *tmp)
        rtc_write (RTC_HR_REG_ADDR, bin2bcd (tmp->tm_hour));
        rtc_write (RTC_MIN_REG_ADDR, bin2bcd (tmp->tm_min));
        rtc_write (RTC_SEC_REG_ADDR, bin2bcd (tmp->tm_sec));
+
+       return 0;
 }
 
 
index df1132a1fcfdc6f0537485c6cefed3e17c758bb4..509f81ff7507661198c4710b2cd7a13a0d26c271 100644 (file)
@@ -132,7 +132,7 @@ int rtc_get (struct rtc_time *tmp)
 /*
  * Set the RTC
  */
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
        uchar century;
 
@@ -150,6 +150,8 @@ void rtc_set (struct rtc_time *tmp)
        rtc_write (RTC_HR_REG_ADDR, bin2bcd (tmp->tm_hour));
        rtc_write (RTC_MIN_REG_ADDR, bin2bcd (tmp->tm_min));
        rtc_write (RTC_SEC_REG_ADDR, bin2bcd (tmp->tm_sec));
+
+       return 0;
 }
 
 
index 130588ca1e75f17322b3bfddb4b1a06315a666fb..79a3d73060985845ee9c61db406a17827ca92010 100644 (file)
@@ -160,7 +160,7 @@ int rtc_get (struct rtc_time *tm){
 /*
  * Set the RTC
  */
-void rtc_set (struct rtc_time *tmp){
+int rtc_set (struct rtc_time *tmp){
 
        unsigned long time;
        unsigned i;
@@ -186,6 +186,8 @@ void rtc_set (struct rtc_time *tmp){
 
        /* Start clock */
        rtc_write(RTC_CTL_ADDR, RTC_CTL_BIT_EN_OSC, FALSE);
+
+       return 0;
 }
 
 /*
index f95f28ed49c090977c04ee1454a1b4c6f0e3dd8b..75746261734715b3b47fb8de8128e3119e9f5dda 100644 (file)
@@ -120,7 +120,7 @@ int rtc_get( struct rtc_time *tmp )
        return 0;
 }
 
-void rtc_set( struct rtc_time *tmp )
+int rtc_set( struct rtc_time *tmp )
 {
        uchar reg_a;
 #ifdef RTC_DEBUG
@@ -146,6 +146,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)
index c621a9eb83b02fd71951643832f7f59c2d5c0752..00494b38d1d25be0604d7d255c50b08e7cc512f8 100644 (file)
@@ -119,7 +119,7 @@ int rtc_get( struct rtc_time *tmp )
        return 0;
 }
 
-void rtc_set( struct rtc_time *tmp )
+int rtc_set( struct rtc_time *tmp )
 {
        uchar reg_a;
 
@@ -145,6 +145,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)
index 3f486b1b4d927582d3c69da1cdab41c31deded73..43e6ab763bd47f435319a8e47ad247a9927c76ca 100644 (file)
@@ -117,7 +117,7 @@ int rtc_get( struct rtc_time *tmp )
        return 0;
 }
 
-void rtc_set( struct rtc_time *tmp )
+int rtc_set( struct rtc_time *tmp )
 {
        uchar reg_a;
 #ifdef RTC_DEBUG
@@ -143,6 +143,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)
index d8cd47dac53d109e98ad47cca9bcc6a704f0d767..da8a3e63f0568bab5f03468b5d62b039091e8bf7 100644 (file)
@@ -134,7 +134,7 @@ int rtc_get (struct rtc_time *tmp)
 /*
  * Set the RTC
  */
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
        uchar century;
 
@@ -152,6 +152,8 @@ void rtc_set (struct rtc_time *tmp)
        rtc_write (RTC_HR_REG_ADDR, bin2bcd (tmp->tm_hour));
        rtc_write (RTC_MIN_REG_ADDR, bin2bcd (tmp->tm_min));
        rtc_write (RTC_SEC_REG_ADDR, bin2bcd (tmp->tm_sec));
+
+       return 0;
 }
 
 
index 3d46fd06532f5906f76b387c03f6b0d065a42be8..87f06cc1f7082c96c8febfdc1318b5c3f4f37b96 100644 (file)
@@ -118,7 +118,7 @@ int rtc_get (struct rtc_time *tmp)
 /*
  * Set the RTC
  */
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
        DEBUGR ("Set DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",
                tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,
@@ -139,6 +139,8 @@ void rtc_set (struct rtc_time *tmp)
        /* disable write */
        rtc_write(RTC_STAT_REG_ADDR,
                rtc_read(RTC_STAT_REG_ADDR) & ~RTC_STAT_BIT_WRTC);
+
+       return 0;
 }
 
 void rtc_reset (void)
index 372731005ba25ee93a9c4e4f37a9ef6a00c857d0..0a9b12ec2a4d0b2725ff39cdc999d431c85df4a7 100644 (file)
@@ -143,7 +143,7 @@ int rtc_get (struct rtc_time *tmp)
        return rel;
 }
 
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
        uchar data[RTC_REG_CNT];
 
@@ -176,6 +176,8 @@ void rtc_set (struct rtc_time *tmp)
        }
 #endif
        i2c_write(CFG_I2C_RTC_ADDR, RTC_SEC_ADDR, 1, data, RTC_REG_CNT);
+
+       return 0;
 }
 
 void rtc_reset (void)
index 402a8c829877f272fa4d1a599706a6a0be4d7108..71bfc326769d4a748c414fe5a6221a5db54ebd11 100644 (file)
@@ -193,12 +193,12 @@ int rtc_get(struct rtc_time *tmp)
        return 0;
 }
 
-void rtc_set(struct rtc_time *tmp)
+int rtc_set(struct rtc_time *tmp)
 {
        uchar *const data = rtc_validate();
 
        if (!data)
-               return;
+               return -1;
 
        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,
@@ -214,8 +214,10 @@ void rtc_set(struct rtc_time *tmp)
        data[RTC_DAY] = bin2bcd(tmp->tm_wday + 1) & 0x07;
        if (i2c_write(CFG_I2C_RTC_ADDR, 0, 1, data, RTC_REG_CNT)) {
                printf("I2C write failed in rtc_set()\n");
-               return;
+               return -1;
        }
+
+       return 0;
 }
 
 void rtc_reset(void)
index 89d4ccdb2c75112a6adb570e553b2971a26a0cec..9b7c84a084f621caddd10664e1a16abbd8fa5e6f 100644 (file)
@@ -96,7 +96,7 @@ int rtc_get(struct rtc_time *tm)
        return 0;
 }
 
-void rtc_set(struct rtc_time *tm)
+int rtc_set(struct rtc_time *tm)
 {
        u8 buf[M41T62_DATETIME_REG_SIZE];
 
@@ -123,8 +123,12 @@ void rtc_set(struct rtc_time *tm)
        /* assume 20YY not 19YY */
        buf[M41T62_REG_YEAR] = BIN2BCD(tm->tm_year % 100);
 
-       if (i2c_write(CFG_I2C_RTC_ADDR, 0, 1, buf, M41T62_DATETIME_REG_SIZE))
+       if (i2c_write(CFG_I2C_RTC_ADDR, 0, 1, buf, M41T62_DATETIME_REG_SIZE)) {
                printf("I2C write failed in %s()\n", __func__);
+               return -1;
+       }
+
+       return 0;
 }
 
 void rtc_reset(void)
index 353a30e1f28138e36ecd350a1ff386f6510c039b..e19b81b16b1995c47a61e9f396d09bcdc535d88f 100644 (file)
@@ -87,7 +87,7 @@ int rtc_get (struct rtc_time *tmp)
        return 0;
 }
 
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
        uchar ccr;                      /* Clock control register */
        uchar century;
@@ -116,6 +116,8 @@ void rtc_set (struct rtc_time *tmp)
        ccr = rtc_read(0);
        ccr = ccr & 0x7F;
        rtc_write(0, ccr);
+
+       return 0;
 }
 
 void rtc_reset (void)
index 4cfc5de3d15cfeb1348e5ac5f875f9293e7be5c9..758d7b79d94323fa135794ab8a5682c6cc6280fd 100644 (file)
@@ -107,7 +107,7 @@ int rtc_get (struct rtc_time *tmp)
        return 0;
 }
 
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
 
        debug ( "Set DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",
@@ -124,6 +124,8 @@ void rtc_set (struct rtc_time *tmp)
        rtc_write (0x84, bin2bcd(tmp->tm_hour));
        rtc_write (0x82, bin2bcd(tmp->tm_min ));
        rtc_write (0x80, bin2bcd(tmp->tm_sec ));
+
+       return 0;
 }
 
 void rtc_reset (void)
index b6e15014bb68e67f22c2e1b3340a7a23f5ed5ed6..6ea9137889709c0d2ddc931fa1072721babd32df 100644 (file)
@@ -77,7 +77,7 @@ int rtc_get(struct rtc_time *rtc)
        return 0;
 }
 
-void rtc_set(struct rtc_time *rtc)
+int rtc_set(struct rtc_time *rtc)
 {
        u32 time, day, reg;
 
@@ -86,7 +86,7 @@ void rtc_set(struct rtc_time *rtc)
                slave = spi_setup_slave(1, 0, 1000000,
                                SPI_MODE_2 | SPI_CS_HIGH);
                if (!slave)
-                       return;
+                       return -1;
        }
 
        time = mktime(rtc->tm_year, rtc->tm_mon, rtc->tm_mday,
@@ -95,7 +95,7 @@ void rtc_set(struct rtc_time *rtc)
        time %= 86400;
 
        if (spi_claim_bus(slave))
-               return;
+               return -1;
 
        reg = 0x2c000000 | day | 0x80000000;
        spi_xfer(slave, 32, (uchar *)&reg, (uchar *)&day,
@@ -106,6 +106,8 @@ void rtc_set(struct rtc_time *rtc)
                        SPI_XFER_BEGIN | SPI_XFER_END);
 
        spi_release_bus(slave);
+
+       return -1;
 }
 
 void rtc_reset(void)
index 460a0e6c5e04c48a56160b974997792ad5ac0d68..1225454fcc5c139c5011db43bfa1f1f6e5170180 100644 (file)
@@ -105,7 +105,7 @@ int rtc_get (struct rtc_time *tmp)
        return 0;
 }
 
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
 #ifdef RTC_DEBUG
        printf ( "Set DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",
@@ -127,6 +127,7 @@ void rtc_set (struct rtc_time *tmp)
        rtc_write (RTC_SECONDS, bin2bcd(tmp->tm_sec ));
        rtc_write(RTC_CONFIG_B,0x02); /* enables the RTC to update the regs */
 
+       return 0;
 }
 
 void rtc_reset (void)
index 30b2a8198d9c2fbc87b2d5f8ed50bc8ebca35578..c2af197987401f2733449fb799459443bae4c521 100644 (file)
@@ -68,7 +68,7 @@ int rtc_get(struct rtc_time *tmp)
        return 0;
 }
 
-void rtc_set(struct rtc_time *tmp)
+int rtc_set(struct rtc_time *tmp)
 {
        volatile rtc_t *rtc = (rtc_t *) (CFG_MCFRTC_BASE);
 
@@ -106,6 +106,8 @@ void rtc_set(struct rtc_time *tmp)
        rtc->days = days;
        rtc->hourmin = (tmp->tm_hour << 8) | tmp->tm_min;
        rtc->seconds = tmp->tm_sec;
+
+       return 0;
 }
 
 void rtc_reset(void)
index 918c291a0aede7409e0ceeb5327c51cac926133f..b6c234e69ffb73fb3761511177658f70456b14e7 100644 (file)
@@ -185,7 +185,7 @@ int rtc_get (struct rtc_time *tmp)
        return 0;
 }
 
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
        uchar save_ctrl_a;
 
@@ -210,6 +210,8 @@ void rtc_set (struct rtc_time *tmp)
 
        save_ctrl_a &= ~RTC_CA_WRITE;
        rtc_write(RTC_CONTROLA, save_ctrl_a); /* enables the RTC to update the regs */
+
+       return 0;
 }
 
 void rtc_reset (void)
@@ -225,7 +227,7 @@ void rtc_reset (void)
        rtc_write(RTC_CONTROLB, control_b);
 }
 
-void rtc_set_watchdog(short multi, short res)
+int rtc_set_watchdog(short multi, short res)
 {
        uchar wd_value;
 
index 14506499596bfe679870b367e7fdf0bced628a76..6231b9b6999890865172f81a3a6a5afab96ecfef 100644 (file)
@@ -88,7 +88,7 @@ int rtc_get (struct rtc_time *tmp)
 /*****************************************************************************
  * set time
  *****************************************************************************/
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
        RTC5200 *rtc = (RTC5200 *) (CFG_MBAR+0x800);
        ulong time, date, year;
@@ -129,6 +129,8 @@ void rtc_set (struct rtc_time *tmp)
        udelay (1000);
        rtc->tsr = time;
        udelay (1000);
+
+       return 0;
 }
 
 /*****************************************************************************
index 943506975da34806e055afaf05b8cf54dcdc98e4..2bbc5d3d2870adbb792fb8562616d3f65d4eb7eb 100644 (file)
@@ -51,7 +51,7 @@ int rtc_get (struct rtc_time *tmp)
        return 0;
 }
 
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
        volatile immap_t *immr = (immap_t *)CFG_IMMR;
        ulong tim;
@@ -65,6 +65,8 @@ void rtc_set (struct rtc_time *tmp)
 
        immr->im_sitk.sitk_rtck = KAPWR_KEY;
        immr->im_sit.sit_rtc = tim;
+
+       return 0;
 }
 
 void rtc_reset (void)
index 1274ffaf0b7c6707f658e8b94df70ca86746b15a..2fe1e37dc8533da8d57abfa00261eb054546df4f 100644 (file)
@@ -86,7 +86,7 @@ int rtc_get (struct rtc_time *tmp)
        return rel;
 }
 
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
        uchar century;
 
@@ -104,6 +104,8 @@ void rtc_set (struct rtc_time *tmp)
        rtc_write (0x04, bin2bcd(tmp->tm_hour));
        rtc_write (0x03, bin2bcd(tmp->tm_min ));
        rtc_write (0x02, bin2bcd(tmp->tm_sec ));
+
+       return 0;
 }
 
 void rtc_reset (void)
old mode 100755 (executable)
new mode 100644 (file)
index 276c184..6c1e9bd
@@ -75,7 +75,7 @@ void rtc_reset(void)
 /*
  * Set the RTC
 */
-void rtc_set(struct rtc_time *tmp)
+int rtc_set(struct rtc_time *tmp)
 {
        unsigned long tim;
 
@@ -84,7 +84,7 @@ void rtc_set(struct rtc_time *tmp)
 
        if (tmp == NULL) {
                puts("Error setting the date/time\n");
-               return;
+               return -1;
        }
 
        /* Calculate number of seconds this incoming time represents */
@@ -92,6 +92,8 @@ void rtc_set(struct rtc_time *tmp)
                        tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
 
        RTC_WRITE_REG(RTC_LR, tim);
+
+       return -1;
 }
 
 /*
index 38db19929f66726b60e001f4d448a82acaef5238..34514d037d6497e64a30e16b6670e7a2b9852b31 100644 (file)
@@ -205,7 +205,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);
@@ -249,11 +249,15 @@ rtc_set (struct rtc_time *tmp)
                buf[7] = bin2bcd(tmp->tm_year % 100);
 
                ret = i2c_write(CFG_I2C_RTC_ADDR, 0, 0, buf, 8);
-               if (ret != 0)
+               if (ret != 0) {
                        printf("rs5c372_set_datetime(), i2c_master_send() returned %d\n",ret);
+                       return -1;
+               }
+       } else {
+               return -1;
        }
 
-       return;
+       return 0;
 }
 
 /*
index fd6aec5feb0bb5d18c745919cc382f465891f032..9f4ce2f9adf2bb58591e934275d13f2ca797a4f7 100644 (file)
@@ -158,7 +158,7 @@ int rtc_get (struct rtc_time *tmp)
 /*
  * Set the RTC
  */
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
        DEBUGR ("Set DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",
                tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,
@@ -176,6 +176,8 @@ void rtc_set (struct rtc_time *tmp)
        rtc_write (RTC_SEC_REG_ADDR, bin2bcd (tmp->tm_sec));
 
        rtc_write (RTC_CTL1_REG_ADDR, RTC_CTL1_BIT_2412);
+
+       return 0;
 }
 
 /*
index 13d077b64979983bc2556c996517af649ba0e262..0d3372faca21dda427a2da7c3532a39bfff4ac16 100644 (file)
@@ -135,7 +135,7 @@ int rtc_get (struct rtc_time *tmp)
        return 0;
 }
 
-void rtc_set (struct rtc_time *tmp)
+int rtc_set (struct rtc_time *tmp)
 {
        S3C24X0_RTC * const rtc = S3C24X0_GetBase_RTC();
        uchar sec, min, hour, mday, wday, mon, year;
@@ -167,6 +167,8 @@ void rtc_set (struct rtc_time *tmp)
 
        /* disable access to RTC registers */
        SetRTC_Access(RTC_DISABLE);
+
+       return 0;
 }
 
 void rtc_reset (void)
index 7025cf4635b350368820e90e85d18b332ca175fc..7a3b514915100d22d407e5eba5738ae3d7d9ee51 100644 (file)
@@ -134,7 +134,7 @@ int rtc_get(struct rtc_time *tm)
        return 0;
 }
 
-void rtc_set(struct rtc_time *tm)
+int rtc_set(struct rtc_time *tm)
 {
        int i;
        u8 buf[8];
@@ -168,6 +168,8 @@ void rtc_set(struct rtc_time *tm)
                rtc_write(X1205_CCR_BASE + i, buf[i]);
 
        rtc_write(X1205_REG_SR, 0);
+
+       return 0;
 }
 
 void rtc_reset(void)
index df2d35fe497b8bf6157ee8d7f0d453b16cd2dd89..785fbe380797cb029e2d905e9730b44da8320dd4 100644 (file)
@@ -53,7 +53,7 @@ struct rtc_time {
 };
 
 int rtc_get (struct rtc_time *);
-void rtc_set (struct rtc_time *);
+int rtc_set (struct rtc_time *);
 void rtc_reset (void);
 
 void GregorianDay (struct rtc_time *);