--- a/drivers/ifx_sw.c
+++ b/drivers/ifx_sw.c
@@ -118,7 +118,7 @@ int danube_switch_initialize(bd_t * bis)
 {
 	struct eth_device *dev;
 	unsigned short chipid;
-
+	int i;
 #if 0
 	printf("Entered danube_switch_initialize()\n");
 #endif
@@ -130,6 +130,19 @@ int danube_switch_initialize(bd_t * bis)
 	}
 	memset(dev, 0, sizeof(*dev));
 
+#ifdef A800_SWITCH
+	printf ("bring up a800 switch and leds\n");
+	*EBU_CON_1 = 0x1e7ff;
+	*EBU_ADDR_SEL_1 = 0x14000001;
+
+	*((volatile u16*)0xb4000000) = 0x0;
+	for(i = 0; i < 1000; i++)
+		udelay(1000);
+	*((volatile u16*)0xb4000000) = (1 << 10);
+	*EBU_CON_1 = 0x8001e7ff;
+#define CLK_OUT2_25MHZ
+#endif
+
 	danube_dma_init();
 	danube_init_switch_chip(REV_MII_MODE);
 
