]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - common/cmd_date.c
ppc/85xx: Fix inclusion of 83xx immap in 85xx builds
[karo-tx-uboot.git] / common / cmd_date.c
index 751159847a487da0fd3c034d355417eed03ca646..9f50f8956e5fad880887f29fd3ed2f9dab15e20c 100644 (file)
@@ -35,7 +35,11 @@ const char *weekdays[] = {
        "Sun", "Mon", "Tues", "Wednes", "Thurs", "Fri", "Satur",
 };
 
+#ifdef CONFIG_RELOC_FIXUP_WORKS
+#define RELOC(a)       a
+#else
 #define RELOC(a)       ((typeof(a))((unsigned long)(a) + gd->reloc_off))
+#endif
 
 int mk_date (char *, struct rtc_time *);
 
@@ -47,7 +51,7 @@ int do_date (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
        /* switch to correct I2C bus */
        old_bus = I2C_GET_BUS();
-       I2C_SET_BUS(CFG_RTC_BUS_NUM);
+       I2C_SET_BUS(CONFIG_SYS_RTC_BUS_NUM);
 
        switch (argc) {
        case 2:                 /* set date & time */
@@ -56,18 +60,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,
@@ -77,7 +93,7 @@ int do_date (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
                break;
        default:
-               printf ("Usage:\n%s\n", cmdtp->usage);
+               cmd_usage(cmdtp);
                rcode = 1;
        }
 
@@ -202,9 +218,9 @@ int mk_date (char *datestr, struct rtc_time *tmp)
 
 U_BOOT_CMD(
        date,   2,      1,      do_date,
-       "date    - get/set/reset date & time\n",
+       "get/set/reset date & time",
        "[MMDDhhmm[[CC]YY][.ss]]\ndate reset\n"
        "  - without arguments: print date & time\n"
        "  - with numeric argument: set the system date & time\n"
-       "  - with 'reset' argument: reset the RTC\n"
+       "  - with 'reset' argument: reset the RTC"
 );