aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial/sh-sci.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/serial/sh-sci.c')
-rw-r--r--drivers/serial/sh-sci.c22
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)
363static void sci_init_pins_scif(struct uart_port *port, unsigned int cflag) 363static 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}