aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Brownell <david-b@pacbell.net>2007-01-23 23:14:02 -0500
committerHaavard Skinnemoen <hskinnemoen@atmel.com>2007-02-09 09:01:57 -0500
commita3d912c8fa709c4078ceaabf4d71001190e19325 (patch)
tree58a492ce454a6412bb63710decc56f741981ede7
parent914ab06279f15d3f368f4fae74db58fdcf03a2ed (diff)
[AVR32] fix serial port setup on ATSTK1000
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>
-rw-r--r--arch/avr32/boards/atstk1000/atstk1002.c16
-rw-r--r--arch/avr32/mach-at32ap/at32ap7000.c4
2 files changed, 15 insertions, 5 deletions
diff --git a/arch/avr32/boards/atstk1000/atstk1002.c b/arch/avr32/boards/atstk1000/atstk1002.c
index 32b361f31c2c..3787d6bfe0d7 100644
--- a/arch/avr32/boards/atstk1000/atstk1002.c
+++ b/arch/avr32/boards/atstk1000/atstk1002.c
@@ -20,6 +20,9 @@
20#include <asm/arch/board.h> 20#include <asm/arch/board.h>
21#include <asm/arch/init.h> 21#include <asm/arch/init.h>
22 22
23
24#define SW2_DEFAULT /* MMCI and UART_A available */
25
23struct eth_addr { 26struct eth_addr {
24 u8 addr[6]; 27 u8 addr[6];
25}; 28};
@@ -86,9 +89,13 @@ static void __init set_hw_addr(struct platform_device *pdev)
86 89
87void __init setup_board(void) 90void __init setup_board(void)
88{ 91{
89 at32_map_usart(1, 0); /* /dev/ttyS0 */ 92#ifdef SW2_DEFAULT
90 at32_map_usart(2, 1); /* /dev/ttyS1 */ 93 at32_map_usart(1, 0); /* USART 1/A: /dev/ttyS0, DB9 */
91 at32_map_usart(3, 2); /* /dev/ttyS2 */ 94#else
95 at32_map_usart(0, 1); /* USART 0/B: /dev/ttyS1, IRDA */
96#endif
97 /* USART 2/unused: expansion connector */
98 at32_map_usart(3, 2); /* USART 3/C: /dev/ttyS2, DB9 */
92 99
93 at32_setup_serial_console(0); 100 at32_setup_serial_console(0);
94} 101}
@@ -97,8 +104,11 @@ static int __init atstk1002_init(void)
97{ 104{
98 at32_add_system_devices(); 105 at32_add_system_devices();
99 106
107#ifdef SW2_DEFAULT
100 at32_add_device_usart(0); 108 at32_add_device_usart(0);
109#else
101 at32_add_device_usart(1); 110 at32_add_device_usart(1);
111#endif
102 at32_add_device_usart(2); 112 at32_add_device_usart(2);
103 113
104 set_hw_addr(at32_add_device_eth(0, &eth_data[0])); 114 set_hw_addr(at32_add_device_eth(0, &eth_data[0]));
diff --git a/arch/avr32/mach-at32ap/at32ap7000.c b/arch/avr32/mach-at32ap/at32ap7000.c
index 48f4ef38c70e..175853a3c32b 100644
--- a/arch/avr32/mach-at32ap/at32ap7000.c
+++ b/arch/avr32/mach-at32ap/at32ap7000.c
@@ -521,7 +521,7 @@ static struct atmel_uart_data atmel_usart0_data = {
521}; 521};
522static struct resource atmel_usart0_resource[] = { 522static struct resource atmel_usart0_resource[] = {
523 PBMEM(0xffe00c00), 523 PBMEM(0xffe00c00),
524 IRQ(7), 524 IRQ(6),
525}; 525};
526DEFINE_DEV_DATA(atmel_usart, 0); 526DEFINE_DEV_DATA(atmel_usart, 0);
527DEV_CLK(usart, atmel_usart0, pba, 4); 527DEV_CLK(usart, atmel_usart0, pba, 4);
@@ -583,7 +583,7 @@ static inline void configure_usart3_pins(void)
583 select_peripheral(PB(17), PERIPH_B, 0); /* TXD */ 583 select_peripheral(PB(17), PERIPH_B, 0); /* TXD */
584} 584}
585 585
586static struct platform_device *at32_usarts[4]; 586static struct platform_device *__initdata at32_usarts[4];
587 587
588void __init at32_map_usart(unsigned int hw_id, unsigned int line) 588void __init at32_map_usart(unsigned int hw_id, unsigned int line)
589{ 589{