]> git.sur5r.net Git - u-boot/blobdiff - board/ti/am57xx/board.c
board: ti: x15: Add support for beagle_X15 revC
[u-boot] / board / ti / am57xx / board.c
index 6d9ee206c7e396e947663bea484ea8bea90c4d96..00a31a97fd6dce4ae98d704638c7f4df271b2ef4 100644 (file)
 
 #define board_is_x15()         board_ti_is("BBRDX15_")
 #define board_is_x15_revb1()   (board_ti_is("BBRDX15_") && \
-                                (strncmp("B.10", board_ti_get_rev(), 3) <= 0))
+                                !strncmp("B.10", board_ti_get_rev(), 3))
+#define board_is_x15_revc()    (board_ti_is("BBRDX15_") && \
+                                !strncmp("C.00", board_ti_get_rev(), 3))
 #define board_is_am572x_evm()  board_ti_is("AM572PM_")
 #define board_is_am572x_evm_reva3()    \
                                (board_ti_is("AM572PM_") && \
-                                (strncmp("A.30", board_ti_get_rev(), 3) <= 0))
+                                !strncmp("A.30", board_ti_get_rev(), 3))
 #define board_is_am572x_idk()  board_ti_is("AM572IDK")
 #define board_is_am571x_idk()  board_ti_is("AM571IDK")
 
@@ -474,6 +476,8 @@ static void setup_board_eeprom_env(void)
        if (board_is_x15()) {
                if (board_is_x15_revb1())
                        name = "beagle_x15_revb1";
+               else if (board_is_x15_revc())
+                       name = "beagle_x15_revc";
                else
                        name = "beagle_x15";
        } else if (board_is_am572x_evm()) {
@@ -623,6 +627,7 @@ int board_late_init(void)
                            val);
 
        omap_die_id_serial();
+       omap_set_fastboot_vars();
 
        am57x_idk_lcd_detect();
 
@@ -643,8 +648,8 @@ void set_muxconf_regs(void)
 void recalibrate_iodelay(void)
 {
        const struct pad_conf_entry *pconf;
-       const struct iodelay_cfg_entry *iod;
-       int pconf_sz, iod_sz;
+       const struct iodelay_cfg_entry *iod, *delta_iod;
+       int pconf_sz, iod_sz, delta_iod_sz = 0;
        int ret;
 
        if (board_is_am572x_idk()) {
@@ -682,7 +687,8 @@ void recalibrate_iodelay(void)
 
        /* Now do the weird minor deltas that should be safe */
        if (board_is_x15() || board_is_am572x_evm()) {
-               if (board_is_x15_revb1() || board_is_am572x_evm_reva3()) {
+               if (board_is_x15_revb1() || board_is_am572x_evm_reva3() ||
+                   board_is_x15_revc()) {
                        pconf = core_padconf_array_delta_x15_sr2_0;
                        pconf_sz = ARRAY_SIZE(core_padconf_array_delta_x15_sr2_0);
                } else {
@@ -696,6 +702,9 @@ void recalibrate_iodelay(void)
                if (am571x_idk_needs_lcd()) {
                        pconf = core_padconf_array_vout_am571x_idk;
                        pconf_sz = ARRAY_SIZE(core_padconf_array_vout_am571x_idk);
+                       delta_iod = iodelay_cfg_array_am571x_idk_4port;
+                       delta_iod_sz = ARRAY_SIZE(iodelay_cfg_array_am571x_idk_4port);
+
                } else {
                        pconf = core_padconf_array_icss1eth_am571x_idk;
                        pconf_sz = ARRAY_SIZE(core_padconf_array_icss1eth_am571x_idk);
@@ -705,6 +714,10 @@ void recalibrate_iodelay(void)
 
        /* Setup IOdelay configuration */
        ret = do_set_iodelay((*ctrl)->iodelay_config_base, iod, iod_sz);
+       if (delta_iod_sz)
+               ret = do_set_iodelay((*ctrl)->iodelay_config_base, delta_iod,
+                                    delta_iod_sz);
+
 err:
        /* Closeup.. remove isolation */
        __recalibrate_iodelay_end(ret);