diff options
Diffstat (limited to 'drivers/serial/sh-sci.c')
-rw-r--r-- | drivers/serial/sh-sci.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c index 0a051bca01c7..8fdafc27fce8 100644 --- a/drivers/serial/sh-sci.c +++ b/drivers/serial/sh-sci.c | |||
@@ -363,21 +363,19 @@ static void sci_init_pins_scif(struct uart_port *port, unsigned int cflag) | |||
363 | static void sci_init_pins_scif(struct uart_port *port, unsigned int cflag) | 363 | static void sci_init_pins_scif(struct uart_port *port, unsigned int cflag) |
364 | { | 364 | { |
365 | unsigned int fcr_val = 0; | 365 | unsigned int fcr_val = 0; |
366 | unsigned short data; | ||
366 | 367 | ||
367 | if (cflag & CRTSCTS) { | 368 | if (port->mapbase == 0xffe00000) { |
368 | fcr_val |= SCFCR_MCE; | 369 | data = ctrl_inw(PSCR); |
369 | 370 | data &= ~0x03cf; | |
370 | ctrl_outw(0x0000, PORT_PSCR); | 371 | if (cflag & CRTSCTS) |
371 | } else { | 372 | fcr_val |= SCFCR_MCE; |
372 | unsigned short data; | 373 | else |
373 | 374 | data |= 0x0340; | |
374 | data = ctrl_inw(PORT_PSCR); | ||
375 | data &= 0x033f; | ||
376 | data |= 0x0400; | ||
377 | ctrl_outw(data, PORT_PSCR); | ||
378 | 375 | ||
379 | ctrl_outw(ctrl_inw(SCSPTR0) & 0x17, SCSPTR0); | 376 | ctrl_outw(data, PSCR); |
380 | } | 377 | } |
378 | /* SCIF1 and SCIF2 should be setup by board code */ | ||
381 | 379 | ||
382 | sci_out(port, SCFCR, fcr_val); | 380 | sci_out(port, SCFCR, fcr_val); |
383 | } | 381 | } |