85xx: Add eSDHC support for 8536 DS
[oweals/u-boot.git] / board / korat / korat.c
index 5ad75f74d2a3229deb5186429a23db7c046bbbd1..8328ba326dbd3ca2a9ea7960627ba4f57e0b5836 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2007-2008
+ * (C) Copyright 2007-2009
  * Larry Johnson, lrj@acm.org
  *
  * (C) Copyright 2006-2007
@@ -351,6 +351,7 @@ int misc_init_r(void)
        unsigned long sdr0_pfc1;
        uint32_t const flash1_size = gd->bd->bi_flashsize - CONFIG_SYS_FLASH0_SIZE;
        char const *const act = getenv("usbact");
+       char const *const usbcf = getenv("korat_usbcf");
 
        /*
         * Re-do FLASH1 sizing and adjust flash start and offset.
@@ -405,6 +406,26 @@ int misc_init_r(void)
        /*
         * USB suff...
         */
+       /*
+        * Select the USB controller on the 440EPx ("ppc") or on the PCI bus
+        * ("pci") for the CompactFlash.
+        */
+       if (usbcf != NULL && (strcmp(usbcf, "ppc") == 0)) {
+               /*
+                * If environment variable "usbcf" is defined and set to "ppc",
+                * then connect the CompactFlash controller to the PowerPC USB
+                * port.
+                */
+               printf("Attaching CompactFalsh controller to PPC USB\n");
+               out_8((u8 *) CONFIG_SYS_CPLD_BASE + 0x02,
+                     in_8((u8 *) CONFIG_SYS_CPLD_BASE + 0x02) | 0x10);
+       } else {
+               if (usbcf != NULL && (strcmp(usbcf, "pci") != 0))
+                       printf("Warning: \"korat_usbcf\" is not set to a legal "
+                              "value (\"ppc\" or \"pci\")\n");
+
+               printf("Attaching CompactFalsh controller to PCI USB\n");
+       }
        if (act == NULL || strcmp(act, "hostdev") == 0) {
                /* SDR Setting */
                mfsdr(SDR0_PFC1, sdr0_pfc1);