diff options
| author | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2006-10-04 10:02:09 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-04 13:25:06 -0400 |
| commit | acca9b83acfe89fbb7421d5412176dee2ad2959a (patch) | |
| tree | 662434e93a8b67e2074d292a9cf68995982daf9c /drivers | |
| parent | 75d35213777e2b278db57a420efbce2bdb61da93 (diff) | |
[PATCH] atmel_serial: Support AVR32
Make CONFIG_SERIAL_ATMEL selectable on AVR32 and #ifdef out some ARM-
specific code in the driver.
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Acked-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/serial/Kconfig | 24 | ||||
| -rw-r--r-- | drivers/serial/atmel_serial.c | 4 |
2 files changed, 16 insertions, 12 deletions
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index ba19ab571f98..b0d502622d94 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig | |||
| @@ -301,31 +301,31 @@ config SERIAL_AMBA_PL011_CONSOLE | |||
| 301 | 301 | ||
| 302 | config SERIAL_ATMEL | 302 | config SERIAL_ATMEL |
| 303 | bool "AT91 / AT32 on-chip serial port support" | 303 | bool "AT91 / AT32 on-chip serial port support" |
| 304 | depends on ARM && (ARCH_AT91RM9200 || ARCH_AT91SAM9261) | 304 | depends on (ARM && ARCH_AT91) || AVR32 |
| 305 | select SERIAL_CORE | 305 | select SERIAL_CORE |
| 306 | help | 306 | help |
| 307 | This enables the driver for the on-chip UARTs of the Atmel | 307 | This enables the driver for the on-chip UARTs of the Atmel |
| 308 | AT91RM9200 and AT91SAM926 processor. | 308 | AT91 and AT32 processors. |
| 309 | 309 | ||
| 310 | config SERIAL_ATMEL_CONSOLE | 310 | config SERIAL_ATMEL_CONSOLE |
| 311 | bool "Support for console on AT91 / AT32 serial port" | 311 | bool "Support for console on AT91 / AT32 serial port" |
| 312 | depends on SERIAL_ATMEL=y | 312 | depends on SERIAL_ATMEL=y |
| 313 | select SERIAL_CORE_CONSOLE | 313 | select SERIAL_CORE_CONSOLE |
| 314 | help | 314 | help |
| 315 | Say Y here if you wish to use a UART on the Atmel AT91RM9200 or | 315 | Say Y here if you wish to use an on-chip UART on a Atmel |
| 316 | AT91SAM9261 as the system console (the system console is the device | 316 | AT91 or AT32 processor as the system console (the system |
| 317 | which receives all kernel messages and warnings and which allows | 317 | console is the device which receives all kernel messages and |
| 318 | logins in single user mode). | 318 | warnings and which allows logins in single user mode). |
| 319 | 319 | ||
| 320 | config SERIAL_ATMEL_TTYAT | 320 | config SERIAL_ATMEL_TTYAT |
| 321 | bool "Install as device ttyAT0-4 instead of ttyS0-4" | 321 | bool "Install as device ttyATn instead of ttySn" |
| 322 | depends on SERIAL_ATMEL=y | 322 | depends on SERIAL_ATMEL=y |
| 323 | help | 323 | help |
| 324 | Say Y here if you wish to have the five internal AT91RM9200 UARTs | 324 | Say Y here if you wish to have the internal AT91 / AT32 UARTs |
| 325 | appear as /dev/ttyAT0-4 (major 204, minor 154-158) instead of the | 325 | appear as /dev/ttyATn (major 204, minor starting at 154) |
| 326 | normal /dev/ttyS0-4 (major 4, minor 64-68). This is necessary if | 326 | instead of the normal /dev/ttySn (major 4, minor starting at |
| 327 | you also want other UARTs, such as external 8250/16C550 compatible | 327 | 64). This is necessary if you also want other UARTs, such as |
| 328 | UARTs. | 328 | external 8250/16C550 compatible UARTs. |
| 329 | The ttySn nodes are legally reserved for the 8250 serial driver | 329 | The ttySn nodes are legally reserved for the 8250 serial driver |
| 330 | but are often misused by other serial drivers. | 330 | but are often misused by other serial drivers. |
| 331 | 331 | ||
diff --git a/drivers/serial/atmel_serial.c b/drivers/serial/atmel_serial.c index 34212df39800..61db2166fbb5 100644 --- a/drivers/serial/atmel_serial.c +++ b/drivers/serial/atmel_serial.c | |||
| @@ -39,8 +39,10 @@ | |||
| 39 | #include <asm/arch/at91rm9200_pdc.h> | 39 | #include <asm/arch/at91rm9200_pdc.h> |
| 40 | #include <asm/mach/serial_at91.h> | 40 | #include <asm/mach/serial_at91.h> |
| 41 | #include <asm/arch/board.h> | 41 | #include <asm/arch/board.h> |
| 42 | #ifdef CONFIG_ARM | ||
| 42 | #include <asm/arch/system.h> | 43 | #include <asm/arch/system.h> |
| 43 | #include <asm/arch/gpio.h> | 44 | #include <asm/arch/gpio.h> |
| 45 | #endif | ||
| 44 | 46 | ||
| 45 | #include "atmel_serial.h" | 47 | #include "atmel_serial.h" |
| 46 | 48 | ||
| @@ -135,6 +137,7 @@ static void atmel_set_mctrl(struct uart_port *port, u_int mctrl) | |||
| 135 | unsigned int control = 0; | 137 | unsigned int control = 0; |
| 136 | unsigned int mode; | 138 | unsigned int mode; |
| 137 | 139 | ||
| 140 | #ifdef CONFIG_ARM | ||
| 138 | if (arch_identify() == ARCH_ID_AT91RM9200) { | 141 | if (arch_identify() == ARCH_ID_AT91RM9200) { |
| 139 | /* | 142 | /* |
| 140 | * AT91RM9200 Errata #39: RTS0 is not internally connected to PA21. | 143 | * AT91RM9200 Errata #39: RTS0 is not internally connected to PA21. |
| @@ -147,6 +150,7 @@ static void atmel_set_mctrl(struct uart_port *port, u_int mctrl) | |||
| 147 | at91_set_gpio_value(AT91_PIN_PA21, 1); | 150 | at91_set_gpio_value(AT91_PIN_PA21, 1); |
| 148 | } | 151 | } |
| 149 | } | 152 | } |
| 153 | #endif | ||
| 150 | 154 | ||
| 151 | if (mctrl & TIOCM_RTS) | 155 | if (mctrl & TIOCM_RTS) |
| 152 | control |= ATMEL_US_RTSEN; | 156 | control |= ATMEL_US_RTSEN; |
