Merge branch 'master' of git://git.denx.de/u-boot-fsl-qoriq
[oweals/u-boot.git] / board / freescale / ls1043ardb / cpld.c
index f29383dc30149fb4c255025b24caa48664639d6d..78c28246a823d1ce4935e8e7757c78fb6f426c56 100644 (file)
@@ -61,6 +61,21 @@ void cpld_set_nand(void)
        CPLD_WRITE(system_rst, 1);
 }
 
+void cpld_set_sd(void)
+{
+       u16 reg = CPLD_CFG_RCW_SRC_SD;
+       u8 reg5 = (u8)(reg >> 1);
+       u8 reg6 = (u8)(reg & 1);
+
+       cpld_rev_bit(&reg5);
+
+       CPLD_WRITE(soft_mux_on, 1);
+
+       CPLD_WRITE(cfg_rcw_src1, reg5);
+       CPLD_WRITE(cfg_rcw_src2, reg6);
+
+       CPLD_WRITE(system_rst, 1);
+}
 #ifdef DEBUG
 static void cpld_dump_regs(void)
 {
@@ -109,6 +124,8 @@ int do_cpld(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                        cpld_set_altbank();
                else if (strcmp(argv[2], "nand") == 0)
                        cpld_set_nand();
+               else if (strcmp(argv[2], "sd") == 0)
+                       cpld_set_sd();
                else
                        cpld_set_defbank();
 #ifdef DEBUG
@@ -128,6 +145,7 @@ U_BOOT_CMD(
        "reset: reset to default bank\n"
        "cpld reset altbank: reset to alternate bank\n"
        "cpld reset nand: reset to boot from NAND flash\n"
+       "cpld reset sd: reset to boot from SD card\n"
 #ifdef DEBUG
        "cpld dump - display the CPLD registers\n"
 #endif