diff options
author | David Brownell <david-b@pacbell.net> | 2007-01-23 23:14:02 -0500 |
---|---|---|
committer | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2007-02-09 09:01:57 -0500 |
commit | a3d912c8fa709c4078ceaabf4d71001190e19325 (patch) | |
tree | 58a492ce454a6412bb63710decc56f741981ede7 | |
parent | 914ab06279f15d3f368f4fae74db58fdcf03a2ed (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.c | 16 | ||||
-rw-r--r-- | arch/avr32/mach-at32ap/at32ap7000.c | 4 |
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 | |||
23 | struct eth_addr { | 26 | struct 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 | ||
87 | void __init setup_board(void) | 90 | void __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, ð_data[0])); | 114 | set_hw_addr(at32_add_device_eth(0, ð_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 | }; |
522 | static struct resource atmel_usart0_resource[] = { | 522 | static struct resource atmel_usart0_resource[] = { |
523 | PBMEM(0xffe00c00), | 523 | PBMEM(0xffe00c00), |
524 | IRQ(7), | 524 | IRQ(6), |
525 | }; | 525 | }; |
526 | DEFINE_DEV_DATA(atmel_usart, 0); | 526 | DEFINE_DEV_DATA(atmel_usart, 0); |
527 | DEV_CLK(usart, atmel_usart0, pba, 4); | 527 | DEV_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 | ||
586 | static struct platform_device *at32_usarts[4]; | 586 | static struct platform_device *__initdata at32_usarts[4]; |
587 | 587 | ||
588 | void __init at32_map_usart(unsigned int hw_id, unsigned int line) | 588 | void __init at32_map_usart(unsigned int hw_id, unsigned int line) |
589 | { | 589 | { |