diff options
author | Arnd Bergmann <arnd@arndb.de> | 2013-06-27 08:26:33 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2013-06-27 08:26:33 -0400 |
commit | 0ad578ef25be566aa80b28115c9d696e511bc6be (patch) | |
tree | b9906c7536a92972c20950b08ced3c31c516546c /include | |
parent | 4022acdb5b2b65ad2fe078be39bda9c5377c4e04 (diff) | |
parent | d4759ded3bdf3eb004d583011707fdc21aeda94e (diff) |
Merge tag 'renesas-sh-sci-for-v3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/late
Renesas sh-sci updates for v3.11
HSCIF support by Ulrich Hecht.
* tag 'renesas-sh-sci-for-v3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
serial: sh-sci: Initialise variables before access in sci_set_termios()
ARM: shmobile: r8a7790: don't use external clock for SCIFs
ARM: shmobile: r8a7790: HSCIF support
serial: sh-sci: HSCIF support
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/serial_sci.h | 12 | ||||
-rw-r--r-- | include/uapi/linux/serial_core.h | 3 |
2 files changed, 12 insertions, 3 deletions
diff --git a/include/linux/serial_sci.h b/include/linux/serial_sci.h index eb763adf9815..d34049712a4d 100644 --- a/include/linux/serial_sci.h +++ b/include/linux/serial_sci.h | |||
@@ -5,7 +5,7 @@ | |||
5 | #include <linux/sh_dma.h> | 5 | #include <linux/sh_dma.h> |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts) | 8 | * Generic header for SuperH (H)SCI(F) (used by sh/sh64/h8300 and related parts) |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #define SCIx_NOT_SUPPORTED (-1) | 11 | #define SCIx_NOT_SUPPORTED (-1) |
@@ -16,6 +16,7 @@ enum { | |||
16 | SCBRR_ALGO_3, /* (((clk * 2) + 16 * bps) / (16 * bps) - 1) */ | 16 | SCBRR_ALGO_3, /* (((clk * 2) + 16 * bps) / (16 * bps) - 1) */ |
17 | SCBRR_ALGO_4, /* (((clk * 2) + 16 * bps) / (32 * bps) - 1) */ | 17 | SCBRR_ALGO_4, /* (((clk * 2) + 16 * bps) / (32 * bps) - 1) */ |
18 | SCBRR_ALGO_5, /* (((clk * 1000 / 32) / bps) - 1) */ | 18 | SCBRR_ALGO_5, /* (((clk * 1000 / 32) / bps) - 1) */ |
19 | SCBRR_ALGO_6, /* HSCIF variable sample rate algorithm */ | ||
19 | }; | 20 | }; |
20 | 21 | ||
21 | #define SCSCR_TIE (1 << 7) | 22 | #define SCSCR_TIE (1 << 7) |
@@ -37,7 +38,7 @@ enum { | |||
37 | 38 | ||
38 | #define SCI_DEFAULT_ERROR_MASK (SCI_PER | SCI_FER) | 39 | #define SCI_DEFAULT_ERROR_MASK (SCI_PER | SCI_FER) |
39 | 40 | ||
40 | /* SCxSR SCIF */ | 41 | /* SCxSR SCIF, HSCIF */ |
41 | #define SCIF_ER 0x0080 | 42 | #define SCIF_ER 0x0080 |
42 | #define SCIF_TEND 0x0040 | 43 | #define SCIF_TEND 0x0040 |
43 | #define SCIF_TDFE 0x0020 | 44 | #define SCIF_TDFE 0x0020 |
@@ -55,6 +56,9 @@ enum { | |||
55 | #define SCSPTR_SPB2IO (1 << 1) | 56 | #define SCSPTR_SPB2IO (1 << 1) |
56 | #define SCSPTR_SPB2DT (1 << 0) | 57 | #define SCSPTR_SPB2DT (1 << 0) |
57 | 58 | ||
59 | /* HSSRR HSCIF */ | ||
60 | #define HSCIF_SRE 0x8000 | ||
61 | |||
58 | /* Offsets into the sci_port->irqs array */ | 62 | /* Offsets into the sci_port->irqs array */ |
59 | enum { | 63 | enum { |
60 | SCIx_ERI_IRQ, | 64 | SCIx_ERI_IRQ, |
@@ -90,6 +94,7 @@ enum { | |||
90 | SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE, | 94 | SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE, |
91 | SCIx_SH4_SCIF_FIFODATA_REGTYPE, | 95 | SCIx_SH4_SCIF_FIFODATA_REGTYPE, |
92 | SCIx_SH7705_SCIF_REGTYPE, | 96 | SCIx_SH7705_SCIF_REGTYPE, |
97 | SCIx_HSCIF_REGTYPE, | ||
93 | 98 | ||
94 | SCIx_NR_REGTYPES, | 99 | SCIx_NR_REGTYPES, |
95 | }; | 100 | }; |
@@ -115,6 +120,7 @@ enum { | |||
115 | SCSMR, SCBRR, SCSCR, SCxSR, | 120 | SCSMR, SCBRR, SCSCR, SCxSR, |
116 | SCFCR, SCFDR, SCxTDR, SCxRDR, | 121 | SCFCR, SCFDR, SCxTDR, SCxRDR, |
117 | SCLSR, SCTFDR, SCRFDR, SCSPTR, | 122 | SCLSR, SCTFDR, SCRFDR, SCSPTR, |
123 | HSSRR, | ||
118 | 124 | ||
119 | SCIx_NR_REGS, | 125 | SCIx_NR_REGS, |
120 | }; | 126 | }; |
@@ -137,7 +143,7 @@ struct plat_sci_port { | |||
137 | unsigned long mapbase; /* resource base */ | 143 | unsigned long mapbase; /* resource base */ |
138 | unsigned int irqs[SCIx_NR_IRQS]; /* ERI, RXI, TXI, BRI */ | 144 | unsigned int irqs[SCIx_NR_IRQS]; /* ERI, RXI, TXI, BRI */ |
139 | unsigned int gpios[SCIx_NR_FNS]; /* SCK, RXD, TXD, CTS, RTS */ | 145 | unsigned int gpios[SCIx_NR_FNS]; /* SCK, RXD, TXD, CTS, RTS */ |
140 | unsigned int type; /* SCI / SCIF / IRDA */ | 146 | unsigned int type; /* SCI / SCIF / IRDA / HSCIF */ |
141 | upf_t flags; /* UPF_* flags */ | 147 | upf_t flags; /* UPF_* flags */ |
142 | unsigned long capabilities; /* Port features/capabilities */ | 148 | unsigned long capabilities; /* Port features/capabilities */ |
143 | 149 | ||
diff --git a/include/uapi/linux/serial_core.h b/include/uapi/linux/serial_core.h index 74c2bf7211f8..26eee07eeb24 100644 --- a/include/uapi/linux/serial_core.h +++ b/include/uapi/linux/serial_core.h | |||
@@ -226,4 +226,7 @@ | |||
226 | /* Rocketport EXPRESS/INFINITY */ | 226 | /* Rocketport EXPRESS/INFINITY */ |
227 | #define PORT_RP2 102 | 227 | #define PORT_RP2 102 |
228 | 228 | ||
229 | /* SH-SCI */ | ||
230 | #define PORT_HSCIF 103 | ||
231 | |||
229 | #endif /* _UAPILINUX_SERIAL_CORE_H */ | 232 | #endif /* _UAPILINUX_SERIAL_CORE_H */ |