]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - board/gdsys/405ex/405ex.c
Update from 2013.01 to 2013.07
[karo-tx-uboot.git] / board / gdsys / 405ex / 405ex.c
index 32e24c08cb9ce8340f589ab21d1772ef61bea087..c1a583ffbe09fcbb80e0af44401b4e9931814e80 100644 (file)
 #define REFLECTION_TESTPATTERN 0xdede
 #define REFLECTION_TESTPATTERN_INV (~REFLECTION_TESTPATTERN & 0xffff)
 
+#ifdef CONFIG_SYS_FPGA_NO_RFL_HI
+#define REFLECTION_TESTREG reflection_low
+#else
+#define REFLECTION_TESTREG reflection_high
+#endif
+
 DECLARE_GLOBAL_DATA_PTR;
 
 int get_fpga_state(unsigned dev)
@@ -220,23 +226,17 @@ int board_early_init_r(void)
        gd405ex_set_fpga_reset(0);
 
        for (k = 0; k < CONFIG_SYS_FPGA_COUNT; ++k) {
-               struct ihs_fpga *fpga =
-                       (struct ihs_fpga *)CONFIG_SYS_FPGA_BASE(k);
-#ifdef CONFIG_SYS_FPGA_NO_RFL_HI
-               u16 *reflection_target = &fpga->reflection_low;
-#else
-               u16 *reflection_target = &fpga->reflection_high;
-#endif
                /*
                 * wait for fpga out of reset
                 */
                ctr = 0;
                while (1) {
-                       out_le16(&fpga->reflection_low,
-                               REFLECTION_TESTPATTERN);
+                       u16 val;
+
+                       FPGA_SET_REG(k, reflection_low, REFLECTION_TESTPATTERN);
 
-                       if (in_le16(reflection_target) ==
-                               REFLECTION_TESTPATTERN_INV)
+                       FPGA_GET_REG(k, REFLECTION_TESTREG, &val);
+                       if (val == REFLECTION_TESTPATTERN_INV)
                                break;
 
                        udelay(100000);