]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
improve decoding of reset cause
authorLothar Waßmann <LW@KARO-electronics.de>
Fri, 17 Aug 2012 13:40:33 +0000 (15:40 +0200)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 17 Aug 2012 13:40:33 +0000 (15:40 +0200)
board/karo/tx51/tx51.c

index 15dc9997b523614700b80bb87780a75c43975841..d6c3c55ac63541d52c69b46d97084dd14dd015e1 100644 (file)
@@ -99,9 +99,15 @@ static void tx51_module_init(void)
 /*
  * Functions
  */
+static u32 srsr;
+static u32 wrsr;
+
+#define WRSR_POR       (1 << 4)
+#define WRSR_TOUT      (1 << 1)
+#define WRSR_SFTW      (1 << 0)
+
 static void print_reset_cause(void)
 {
-       u32 srsr;
        struct src *src_regs = (struct src *)SRC_BASE_ADDR;
        void __iomem *wdt_base = (void __iomem *)WDOG1_BASE_ADDR;
        char *dlm = "";
@@ -109,7 +115,9 @@ static void print_reset_cause(void)
        printf("Reset cause: ");
 
        srsr = readl(&src_regs->srsr);
-       if (srsr & 0x00001) {
+       wrsr = readw(wdt_base + 4);
+
+       if (wrsr & WRSR_POR) {
                printf("%sPOR", dlm);
                dlm = " | ";
        }
@@ -122,12 +130,11 @@ static void print_reset_cause(void)
                dlm = " | ";
        }
        if (srsr & 0x00010) {
-               u32 wrsr = readw(wdt_base + 4);
-               if (wrsr & (1 << 0)) {
+               if (wrsr & WRSR_SFTW) {
                        printf("%sSOFT", dlm);
                        dlm = " | ";
                }
-               if (wrsr & (1 << 1)) {
+               if (wrsr & WRSR_TOUT) {
                        printf("%sWDOG", dlm);
                        dlm = " | ";
                }