[AVR32] fix serial port setup on ATSTK1000
authorDavid Brownell <david-b@pacbell.net>
Wed, 24 Jan 2007 04:14:02 +0000 (20:14 -0800)
committerHaavard Skinnemoen <hskinnemoen@atmel.com>
Fri, 9 Feb 2007 14:01:57 +0000 (15:01 +0100)
Fixes to USART setup on the stk-1000 ... don't configure USART 2, since
its TXD/RXD are used for INT-A and INT-B buttons; and configure USART 0
(for IRDA, and with corrected IRQ) iff SW2 has a non-default setting.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
arch/avr32/boards/atstk1000/atstk1002.c
arch/avr32/mach-at32ap/at32ap7000.c

index 32b361f..3787d6b 100644 (file)
@@ -20,6 +20,9 @@
 #include <asm/arch/board.h>
 #include <asm/arch/init.h>
 
+
+#define        SW2_DEFAULT             /* MMCI and UART_A available */
+
 struct eth_addr {
        u8 addr[6];
 };
@@ -86,9 +89,13 @@ static void __init set_hw_addr(struct platform_device *pdev)
 
 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);
 }
@@ -97,8 +104,11 @@ static int __init atstk1002_init(void)
 {
        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, &eth_data[0]));
index 48f4ef3..175853a 100644 (file)
@@ -521,7 +521,7 @@ static struct atmel_uart_data atmel_usart0_data = {
 };
 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);
@@ -583,7 +583,7 @@ static inline void configure_usart3_pins(void)
        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)
 {