Merge with /home/hs/MAN/u-boot-dev
[oweals/u-boot.git] / board / prodrive / alpr / alpr.c
index 2389561271a24ccb3ffde38e411a296659c24de3..5abc87dde64b7c3e50ae01b876b15b6e403474df 100644 (file)
@@ -77,8 +77,12 @@ int board_early_init_f (void)
        mtdcr (uicb0tr, 0x00000000); /* */
        mtdcr (uicb0vr, 0x00000001); /* */
 
+       /* Setup shutdown/SSD empty interrupt as inputs */
+       out32(GPIO0_TCR, in32(GPIO0_TCR) & ~(CFG_GPIO_SHUTDOWN | CFG_GPIO_SSD_EMPTY));
+       out32(GPIO0_ODR, in32(GPIO0_ODR) & ~(CFG_GPIO_SHUTDOWN | CFG_GPIO_SSD_EMPTY));
+
        /* Setup GPIO/IRQ multiplexing */
-       mtsdr(sdr_pfc0, 0x01a03e00);
+       mtsdr(sdr_pfc0, 0x01a33e00);
 
        return 0;
 }
@@ -105,26 +109,11 @@ int last_stage_init(void)
 
 static int board_rev(void)
 {
-       int rev;
-       u32 pfc0;
-
-       /* Setup GPIO14 & 15 as GPIO */
-       mfsdr(sdr_pfc0, pfc0);
-       pfc0 |= CFG_GPIO_REV0 | CFG_GPIO_REV1;
-       mtsdr(sdr_pfc0, pfc0);
-
        /* Setup as input */
-       out32(GPIO0_TCR, in32(GPIO0_TCR) & ~(CFG_GPIO_REV0 | CFG_GPIO_REV0));
-       out32(GPIO0_ODR, in32(GPIO0_ODR) & ~(CFG_GPIO_REV0 | CFG_GPIO_REV0));
-
-       rev = (in32(GPIO0_IR) >> 16) & 0x3;
-
-       /* Setup GPIO14 & 15 as non GPIO again */
-       mfsdr(sdr_pfc0, pfc0);
-       pfc0 &= ~(CFG_GPIO_REV0 | CFG_GPIO_REV1);
-       mtsdr(sdr_pfc0, pfc0);
+       out32(GPIO0_TCR, in32(GPIO0_TCR) & ~(CFG_GPIO_REV0 | CFG_GPIO_REV1));
+       out32(GPIO0_ODR, in32(GPIO0_ODR) & ~(CFG_GPIO_REV0 | CFG_GPIO_REV1));
 
-       return rev;
+       return (in32(GPIO0_IR) >> 16) & 0x3;
 }
 
 int checkboard (void)