diff options
| author | David S. Miller <davem@davemloft.net> | 2009-02-03 03:15:35 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2009-02-03 03:15:35 -0500 |
| commit | b3ff29d2ccfe3af065a9b393699a8fbf2abd1b15 (patch) | |
| tree | 99e5b423473097756353d038f922b2623f3edd2a /drivers/serial/mcf.c | |
| parent | 1bded710a574f20d41bc9e7fb531301db282d623 (diff) | |
| parent | fb53fde9762432d091dac209bdf4f3f850117c55 (diff) | |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/Kconfig
Diffstat (limited to 'drivers/serial/mcf.c')
| -rw-r--r-- | drivers/serial/mcf.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/serial/mcf.c b/drivers/serial/mcf.c index b2001c5b145c..56841fe5f483 100644 --- a/drivers/serial/mcf.c +++ b/drivers/serial/mcf.c | |||
| @@ -212,10 +212,18 @@ static void mcf_set_termios(struct uart_port *port, struct ktermios *termios, | |||
| 212 | { | 212 | { |
| 213 | unsigned long flags; | 213 | unsigned long flags; |
| 214 | unsigned int baud, baudclk; | 214 | unsigned int baud, baudclk; |
| 215 | #if defined(CONFIG_M5272) | ||
| 216 | unsigned int baudfr; | ||
| 217 | #endif | ||
| 215 | unsigned char mr1, mr2; | 218 | unsigned char mr1, mr2; |
| 216 | 219 | ||
| 217 | baud = uart_get_baud_rate(port, termios, old, 0, 230400); | 220 | baud = uart_get_baud_rate(port, termios, old, 0, 230400); |
| 221 | #if defined(CONFIG_M5272) | ||
| 222 | baudclk = (MCF_BUSCLK / baud) / 32; | ||
| 223 | baudfr = (((MCF_BUSCLK / baud) + 1) / 2) % 16; | ||
| 224 | #else | ||
| 218 | baudclk = ((MCF_BUSCLK / baud) + 16) / 32; | 225 | baudclk = ((MCF_BUSCLK / baud) + 16) / 32; |
| 226 | #endif | ||
| 219 | 227 | ||
| 220 | mr1 = MCFUART_MR1_RXIRQRDY | MCFUART_MR1_RXERRCHAR; | 228 | mr1 = MCFUART_MR1_RXIRQRDY | MCFUART_MR1_RXERRCHAR; |
| 221 | mr2 = 0; | 229 | mr2 = 0; |
| @@ -262,6 +270,9 @@ static void mcf_set_termios(struct uart_port *port, struct ktermios *termios, | |||
| 262 | writeb(mr2, port->membase + MCFUART_UMR); | 270 | writeb(mr2, port->membase + MCFUART_UMR); |
| 263 | writeb((baudclk & 0xff00) >> 8, port->membase + MCFUART_UBG1); | 271 | writeb((baudclk & 0xff00) >> 8, port->membase + MCFUART_UBG1); |
| 264 | writeb((baudclk & 0xff), port->membase + MCFUART_UBG2); | 272 | writeb((baudclk & 0xff), port->membase + MCFUART_UBG2); |
| 273 | #if defined(CONFIG_M5272) | ||
| 274 | writeb((baudfr & 0x0f), port->membase + MCFUART_UFPD); | ||
| 275 | #endif | ||
| 265 | writeb(MCFUART_UCSR_RXCLKTIMER | MCFUART_UCSR_TXCLKTIMER, | 276 | writeb(MCFUART_UCSR_RXCLKTIMER | MCFUART_UCSR_TXCLKTIMER, |
| 266 | port->membase + MCFUART_UCSR); | 277 | port->membase + MCFUART_UCSR); |
| 267 | writeb(MCFUART_UCR_RXENABLE | MCFUART_UCR_TXENABLE, | 278 | writeb(MCFUART_UCR_RXENABLE | MCFUART_UCR_TXENABLE, |
