From: NIIBE Y. <gn...@ch...> - 2000-06-17 03:07:56
|
Stuart Menefy wrote: > Index: drivers/char/sh-sci.c > =================================================================== > RCS file: /cvsroot/linuxsh/kernel/drivers/char/sh-sci.c,v > retrieving revision 1.9 > diff -c -r1.9 sh-sci.c > *** drivers/char/sh-sci.c 2000/06/14 09:38:30 1.9 > --- drivers/char/sh-sci.c 2000/06/15 15:43:23 > *************** > *** 96,101 **** > --- 100,162 ---- > NULL > }; > > + #if defined(SCI_ONLY) || defined(SCI_AND_SCIF) > + static void sci_init_pins_sci(struct sci_port* port, unsigned int cflag) > + { > + } > + #endif > + > + #if defined(SCIF_ONLY) || defined(SCI_AND_SCIF) > + #if defined(__sh3__) > + /* For SH7709, SH7709A, SH7729 */ > + static void sci_init_pins_scif(struct sci_port* port, unsigned int cflag) > + { > + unsigned int fcr_val = 0; > + > + { > + unsigned short data; > + > + /* We need to set SCPCR to enable RTS/CTS */ > + data = ctrl_inw(SCPCR); > + /* Clear out SCP7MD1,0, SCP6MD1,0, SCP4MD1,0*/ > + ctrl_outw(data&0x0fcf, SCPCR); > + } > + if (cflag & CRTSCTS) > + fcr_val |= SCFCR_MCE; > + else { > + unsigned short data; > + > + /* We need to set SCPCR to enable RTS/CTS */ > + data = ctrl_inw(SCPCR); > + /* Clear out SCP7MD1,0, SCP4MD1,0, > + Set SCP6MD1,0 = {01} (output) */ > + ctrl_outw((data&0x0fcf)|0x1000, SCPCR); > + > + data = ctrl_inb(SCPDR); > + /* Set /RTS2 (bit6) = 0 */ > + ctrl_outb(SCPDR, data&0xbf); This should be: ctrl_outb(data&0xbf, SCPDR); > + } > + sci_out(port, SCFCR, fcr_val); > + } It works fine on SH7709A (SolutionEngine). Please check in. Then, let's assign new device number for it. I think that we need CONFIG_SCI_SERIAL again. The rationale for new device number is: some boards has same serial chip as PC and he may want to use standard serial driver. -- |