diff options
author | Matt Reimer <mreimer@vpop.net> | 2005-10-28 11:25:02 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2005-10-28 11:25:02 -0400 |
commit | d9e29649875df82828167dd45c802d942db863ba (patch) | |
tree | 8ce0d5d46bde4a92e212aabe18a3a86f508c8fd4 /drivers/serial/pxa.c | |
parent | 80a18573cea2e6d8e95abe4d42bfc5f97761999a (diff) |
[ARM] 3029/1: Add HWUART support for PXA 255/26x
Patch from Matt Reimer
Adds support for HWUART on PXA 255 / 26x. This patch originally came from
http://svn.rungie.com/svn/gumstix-buildroot/trunk/sources/kernel-patches/000-gumstix-hwuart.patch
and has been tweaked by me.
Signed-off-by: Matt Reimer <mreimer@vpop.net>
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/serial/pxa.c')
-rw-r--r-- | drivers/serial/pxa.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/drivers/serial/pxa.c b/drivers/serial/pxa.c index 90c2a86c421b..005f027e081a 100644 --- a/drivers/serial/pxa.c +++ b/drivers/serial/pxa.c | |||
@@ -358,6 +358,9 @@ static int serial_pxa_startup(struct uart_port *port) | |||
358 | unsigned long flags; | 358 | unsigned long flags; |
359 | int retval; | 359 | int retval; |
360 | 360 | ||
361 | if (port->line == 3) /* HWUART */ | ||
362 | up->mcr |= UART_MCR_AFE; | ||
363 | else | ||
361 | up->mcr = 0; | 364 | up->mcr = 0; |
362 | 365 | ||
363 | /* | 366 | /* |
@@ -481,8 +484,10 @@ serial_pxa_set_termios(struct uart_port *port, struct termios *termios, | |||
481 | 484 | ||
482 | if ((up->port.uartclk / quot) < (2400 * 16)) | 485 | if ((up->port.uartclk / quot) < (2400 * 16)) |
483 | fcr = UART_FCR_ENABLE_FIFO | UART_FCR_PXAR1; | 486 | fcr = UART_FCR_ENABLE_FIFO | UART_FCR_PXAR1; |
484 | else | 487 | else if ((up->port.uartclk / quot) < (230400 * 16)) |
485 | fcr = UART_FCR_ENABLE_FIFO | UART_FCR_PXAR8; | 488 | fcr = UART_FCR_ENABLE_FIFO | UART_FCR_PXAR8; |
489 | else | ||
490 | fcr = UART_FCR_ENABLE_FIFO | UART_FCR_PXAR32; | ||
486 | 491 | ||
487 | /* | 492 | /* |
488 | * Ok, we're now changing the port state. Do it with | 493 | * Ok, we're now changing the port state. Do it with |
@@ -772,6 +777,20 @@ static struct uart_pxa_port serial_pxa_ports[] = { | |||
772 | .ops = &serial_pxa_pops, | 777 | .ops = &serial_pxa_pops, |
773 | .line = 2, | 778 | .line = 2, |
774 | }, | 779 | }, |
780 | }, { /* HWUART */ | ||
781 | .name = "HWUART", | ||
782 | .cken = CKEN4_HWUART, | ||
783 | .port = { | ||
784 | .type = PORT_PXA, | ||
785 | .iotype = UPIO_MEM, | ||
786 | .membase = (void *)&HWUART, | ||
787 | .mapbase = __PREG(HWUART), | ||
788 | .irq = IRQ_HWUART, | ||
789 | .uartclk = 921600 * 16, | ||
790 | .fifosize = 64, | ||
791 | .ops = &serial_pxa_pops, | ||
792 | .line = 3, | ||
793 | }, | ||
775 | } | 794 | } |
776 | }; | 795 | }; |
777 | 796 | ||