#include <asm/arch/board.h>
 #include <asm/arch/init.h>
 
+
+#define        SW2_DEFAULT             /* MMCI and UART_A available */
+
 struct eth_addr {
        u8 addr[6];
 };
 
 void __init setup_board(void)
 {
-       at32_map_usart(1, 0);   /* /dev/ttyS0 */
-       at32_map_usart(2, 1);   /* /dev/ttyS1 */
-       at32_map_usart(3, 2);   /* /dev/ttyS2 */
+#ifdef SW2_DEFAULT
+       at32_map_usart(1, 0);   /* USART 1/A: /dev/ttyS0, DB9 */
+#else
+       at32_map_usart(0, 1);   /* USART 0/B: /dev/ttyS1, IRDA */
+#endif
+       /* USART 2/unused: expansion connector */
+       at32_map_usart(3, 2);   /* USART 3/C: /dev/ttyS2, DB9 */
 
        at32_setup_serial_console(0);
 }
 {
        at32_add_system_devices();
 
+#ifdef SW2_DEFAULT
        at32_add_device_usart(0);
+#else
        at32_add_device_usart(1);
+#endif
        at32_add_device_usart(2);
 
        set_hw_addr(at32_add_device_eth(0, ð_data[0]));
 
 };
 static struct resource atmel_usart0_resource[] = {
        PBMEM(0xffe00c00),
-       IRQ(7),
+       IRQ(6),
 };
 DEFINE_DEV_DATA(atmel_usart, 0);
 DEV_CLK(usart, atmel_usart0, pba, 4);
        select_peripheral(PB(17), PERIPH_B, 0); /* TXD  */
 }
 
-static struct platform_device *at32_usarts[4];
+static struct platform_device *__initdata at32_usarts[4];
 
 void __init at32_map_usart(unsigned int hw_id, unsigned int line)
 {