diff options
Diffstat (limited to 'drivers/serial/sh-sci.h')
-rw-r--r-- | drivers/serial/sh-sci.h | 40 |
1 files changed, 29 insertions, 11 deletions
diff --git a/drivers/serial/sh-sci.h b/drivers/serial/sh-sci.h index eb84833233fd..8a0749e34ca3 100644 --- a/drivers/serial/sh-sci.h +++ b/drivers/serial/sh-sci.h | |||
@@ -123,8 +123,9 @@ | |||
123 | #elif defined(CONFIG_CPU_SUBTYPE_SH7763) | 123 | #elif defined(CONFIG_CPU_SUBTYPE_SH7763) |
124 | # define SCSPTR0 0xffe00024 /* 16 bit SCIF */ | 124 | # define SCSPTR0 0xffe00024 /* 16 bit SCIF */ |
125 | # define SCSPTR1 0xffe08024 /* 16 bit SCIF */ | 125 | # define SCSPTR1 0xffe08024 /* 16 bit SCIF */ |
126 | # define SCSPTR2 0xffe10020 /* 16 bit SCIF/IRDA */ | ||
126 | # define SCIF_ORER 0x0001 /* overrun error bit */ | 127 | # define SCIF_ORER 0x0001 /* overrun error bit */ |
127 | # define SCSCR_INIT(port) 0x3a /* TIE=0,RIE=0,TE=1,RE=1,REIE=1 */ | 128 | # define SCSCR_INIT(port) 0x38 /* TIE=0,RIE=0,TE=1,RE=1,REIE=1 */ |
128 | # define SCIF_ONLY | 129 | # define SCIF_ONLY |
129 | #elif defined(CONFIG_CPU_SUBTYPE_SH7770) | 130 | #elif defined(CONFIG_CPU_SUBTYPE_SH7770) |
130 | # define SCSPTR0 0xff923020 /* 16 bit SCIF */ | 131 | # define SCSPTR0 0xff923020 /* 16 bit SCIF */ |
@@ -188,6 +189,7 @@ | |||
188 | defined(CONFIG_CPU_SUBTYPE_SH7750S) || \ | 189 | defined(CONFIG_CPU_SUBTYPE_SH7750S) || \ |
189 | defined(CONFIG_CPU_SUBTYPE_SH7751) || \ | 190 | defined(CONFIG_CPU_SUBTYPE_SH7751) || \ |
190 | defined(CONFIG_CPU_SUBTYPE_SH7751R) || \ | 191 | defined(CONFIG_CPU_SUBTYPE_SH7751R) || \ |
192 | defined(CONFIG_CPU_SUBTYPE_SH7763) || \ | ||
191 | defined(CONFIG_CPU_SUBTYPE_SH7780) || \ | 193 | defined(CONFIG_CPU_SUBTYPE_SH7780) || \ |
192 | defined(CONFIG_CPU_SUBTYPE_SH7785) || \ | 194 | defined(CONFIG_CPU_SUBTYPE_SH7785) || \ |
193 | defined(CONFIG_CPU_SUBTYPE_SHX3) | 195 | defined(CONFIG_CPU_SUBTYPE_SHX3) |
@@ -225,14 +227,21 @@ | |||
225 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) || \ | 227 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) || \ |
226 | defined(CONFIG_CPU_SUBTYPE_SH7720) || \ | 228 | defined(CONFIG_CPU_SUBTYPE_SH7720) || \ |
227 | defined(CONFIG_CPU_SUBTYPE_SH7721) | 229 | defined(CONFIG_CPU_SUBTYPE_SH7721) |
228 | #define SCIF_ORER 0x0200 | 230 | # define SCIF_ORER 0x0200 |
229 | #define SCIF_ERRORS ( SCIF_PER | SCIF_FER | SCIF_ER | SCIF_BRK | SCIF_ORER) | 231 | # define SCIF_ERRORS ( SCIF_PER | SCIF_FER | SCIF_ER | SCIF_BRK | SCIF_ORER) |
230 | #define SCIF_RFDC_MASK 0x007f | 232 | # define SCIF_RFDC_MASK 0x007f |
231 | #define SCIF_TXROOM_MAX 64 | 233 | # define SCIF_TXROOM_MAX 64 |
234 | #elif defined(CONFIG_CPU_SUBTYPE_SH7763) | ||
235 | # define SCIF_ERRORS ( SCIF_PER | SCIF_FER | SCIF_ER | SCIF_BRK ) | ||
236 | # define SCIF_RFDC_MASK 0x007f | ||
237 | # define SCIF_TXROOM_MAX 64 | ||
238 | /* SH7763 SCIF2 support */ | ||
239 | # define SCIF2_RFDC_MASK 0x001f | ||
240 | # define SCIF2_TXROOM_MAX 16 | ||
232 | #else | 241 | #else |
233 | #define SCIF_ERRORS ( SCIF_PER | SCIF_FER | SCIF_ER | SCIF_BRK) | 242 | # define SCIF_ERRORS ( SCIF_PER | SCIF_FER | SCIF_ER | SCIF_BRK) |
234 | #define SCIF_RFDC_MASK 0x001f | 243 | # define SCIF_RFDC_MASK 0x001f |
235 | #define SCIF_TXROOM_MAX 16 | 244 | # define SCIF_TXROOM_MAX 16 |
236 | #endif | 245 | #endif |
237 | 246 | ||
238 | #if defined(SCI_ONLY) | 247 | #if defined(SCI_ONLY) |
@@ -442,7 +451,6 @@ SCIx_FNS(SCxSR, 0x08, 8, 0x10, 8, 0x08, 16, 0x10, 16, 0x04, 8) | |||
442 | SCIx_FNS(SCxRDR, 0x0a, 8, 0x14, 8, 0x0A, 8, 0x14, 8, 0x05, 8) | 451 | SCIx_FNS(SCxRDR, 0x0a, 8, 0x14, 8, 0x0A, 8, 0x14, 8, 0x05, 8) |
443 | SCIF_FNS(SCFCR, 0x0c, 8, 0x18, 16) | 452 | SCIF_FNS(SCFCR, 0x0c, 8, 0x18, 16) |
444 | #if defined(CONFIG_CPU_SUBTYPE_SH7760) || \ | 453 | #if defined(CONFIG_CPU_SUBTYPE_SH7760) || \ |
445 | defined(CONFIG_CPU_SUBTYPE_SH7763) || \ | ||
446 | defined(CONFIG_CPU_SUBTYPE_SH7780) || \ | 454 | defined(CONFIG_CPU_SUBTYPE_SH7780) || \ |
447 | defined(CONFIG_CPU_SUBTYPE_SH7785) | 455 | defined(CONFIG_CPU_SUBTYPE_SH7785) |
448 | SCIF_FNS(SCFDR, 0x0e, 16, 0x1C, 16) | 456 | SCIF_FNS(SCFDR, 0x0e, 16, 0x1C, 16) |
@@ -450,6 +458,14 @@ SCIF_FNS(SCTFDR, 0x0e, 16, 0x1C, 16) | |||
450 | SCIF_FNS(SCRFDR, 0x0e, 16, 0x20, 16) | 458 | SCIF_FNS(SCRFDR, 0x0e, 16, 0x20, 16) |
451 | SCIF_FNS(SCSPTR, 0, 0, 0x24, 16) | 459 | SCIF_FNS(SCSPTR, 0, 0, 0x24, 16) |
452 | SCIF_FNS(SCLSR, 0, 0, 0x28, 16) | 460 | SCIF_FNS(SCLSR, 0, 0, 0x28, 16) |
461 | #elif defined(CONFIG_CPU_SUBTYPE_SH7763) | ||
462 | SCIF_FNS(SCFDR, 0, 0, 0x1C, 16) | ||
463 | SCIF_FNS(SCSPTR2, 0, 0, 0x20, 16) | ||
464 | SCIF_FNS(SCLSR2, 0, 0, 0x24, 16) | ||
465 | SCIF_FNS(SCTFDR, 0x0e, 16, 0x1C, 16) | ||
466 | SCIF_FNS(SCRFDR, 0x0e, 16, 0x20, 16) | ||
467 | SCIF_FNS(SCSPTR, 0, 0, 0x24, 16) | ||
468 | SCIF_FNS(SCLSR, 0, 0, 0x28, 16) | ||
453 | #else | 469 | #else |
454 | SCIF_FNS(SCFDR, 0x0e, 16, 0x1C, 16) | 470 | SCIF_FNS(SCFDR, 0x0e, 16, 0x1C, 16) |
455 | #if defined(CONFIG_CPU_SUBTYPE_SH7722) | 471 | #if defined(CONFIG_CPU_SUBTYPE_SH7722) |
@@ -652,6 +668,9 @@ static inline int sci_rxd_in(struct uart_port *port) | |||
652 | return ctrl_inw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */ | 668 | return ctrl_inw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */ |
653 | if (port->mapbase == 0xffe08000) | 669 | if (port->mapbase == 0xffe08000) |
654 | return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */ | 670 | return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */ |
671 | if (port->mapbase == 0xffe10000) | ||
672 | return ctrl_inw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF/IRDA */ | ||
673 | |||
655 | return 1; | 674 | return 1; |
656 | } | 675 | } |
657 | #elif defined(CONFIG_CPU_SUBTYPE_SH7770) | 676 | #elif defined(CONFIG_CPU_SUBTYPE_SH7770) |
@@ -764,8 +783,7 @@ static inline int sci_rxd_in(struct uart_port *port) | |||
764 | * -- Mitch Davis - 15 Jul 2000 | 783 | * -- Mitch Davis - 15 Jul 2000 |
765 | */ | 784 | */ |
766 | 785 | ||
767 | #if defined(CONFIG_CPU_SUBTYPE_SH7763) || \ | 786 | #if defined(CONFIG_CPU_SUBTYPE_SH7780) || \ |
768 | defined(CONFIG_CPU_SUBTYPE_SH7780) || \ | ||
769 | defined(CONFIG_CPU_SUBTYPE_SH7785) | 787 | defined(CONFIG_CPU_SUBTYPE_SH7785) |
770 | #define SCBRR_VALUE(bps, clk) ((clk+16*bps)/(16*bps)-1) | 788 | #define SCBRR_VALUE(bps, clk) ((clk+16*bps)/(16*bps)-1) |
771 | #elif defined(CONFIG_CPU_SUBTYPE_SH7705) || \ | 789 | #elif defined(CONFIG_CPU_SUBTYPE_SH7705) || \ |