diff options
27 files changed, 122 insertions, 58 deletions
diff --git a/arch/sh/kernel/cpu/sh2/setup-sh7619.c b/arch/sh/kernel/cpu/sh2/setup-sh7619.c index ace016b17036..86acede777b9 100644 --- a/arch/sh/kernel/cpu/sh2/setup-sh7619.c +++ b/arch/sh/kernel/cpu/sh2/setup-sh7619.c | |||
@@ -64,18 +64,21 @@ static struct plat_sci_port sci_platform_data[] = { | |||
64 | .mapbase = 0xf8400000, | 64 | .mapbase = 0xf8400000, |
65 | .flags = UPF_BOOT_AUTOCONF, | 65 | .flags = UPF_BOOT_AUTOCONF, |
66 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 66 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
67 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
67 | .type = PORT_SCIF, | 68 | .type = PORT_SCIF, |
68 | .irqs = { 88, 88, 88, 88 }, | 69 | .irqs = { 88, 88, 88, 88 }, |
69 | }, { | 70 | }, { |
70 | .mapbase = 0xf8410000, | 71 | .mapbase = 0xf8410000, |
71 | .flags = UPF_BOOT_AUTOCONF, | 72 | .flags = UPF_BOOT_AUTOCONF, |
72 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 73 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
74 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
73 | .type = PORT_SCIF, | 75 | .type = PORT_SCIF, |
74 | .irqs = { 92, 92, 92, 92 }, | 76 | .irqs = { 92, 92, 92, 92 }, |
75 | }, { | 77 | }, { |
76 | .mapbase = 0xf8420000, | 78 | .mapbase = 0xf8420000, |
77 | .flags = UPF_BOOT_AUTOCONF, | 79 | .flags = UPF_BOOT_AUTOCONF, |
78 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 80 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
81 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
79 | .type = PORT_SCIF, | 82 | .type = PORT_SCIF, |
80 | .irqs = { 96, 96, 96, 96 }, | 83 | .irqs = { 96, 96, 96, 96 }, |
81 | }, { | 84 | }, { |
diff --git a/arch/sh/kernel/cpu/sh2a/setup-mxg.c b/arch/sh/kernel/cpu/sh2a/setup-mxg.c index 7ec658ce14f8..b2c3bcc01190 100644 --- a/arch/sh/kernel/cpu/sh2a/setup-mxg.c +++ b/arch/sh/kernel/cpu/sh2a/setup-mxg.c | |||
@@ -212,6 +212,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
212 | .mapbase = 0xff804000, | 212 | .mapbase = 0xff804000, |
213 | .flags = UPF_BOOT_AUTOCONF, | 213 | .flags = UPF_BOOT_AUTOCONF, |
214 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 214 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
215 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
215 | .type = PORT_SCIF, | 216 | .type = PORT_SCIF, |
216 | .irqs = { 220, 220, 220, 220 }, | 217 | .irqs = { 220, 220, 220, 220 }, |
217 | }, { | 218 | }, { |
diff --git a/arch/sh/kernel/cpu/sh2a/setup-sh7201.c b/arch/sh/kernel/cpu/sh2a/setup-sh7201.c index 2a2ac222f9c7..8d44917ce50b 100644 --- a/arch/sh/kernel/cpu/sh2a/setup-sh7201.c +++ b/arch/sh/kernel/cpu/sh2a/setup-sh7201.c | |||
@@ -182,48 +182,56 @@ static struct plat_sci_port sci_platform_data[] = { | |||
182 | .mapbase = 0xfffe8000, | 182 | .mapbase = 0xfffe8000, |
183 | .flags = UPF_BOOT_AUTOCONF, | 183 | .flags = UPF_BOOT_AUTOCONF, |
184 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 184 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
185 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
185 | .type = PORT_SCIF, | 186 | .type = PORT_SCIF, |
186 | .irqs = { 180, 180, 180, 180 } | 187 | .irqs = { 180, 180, 180, 180 } |
187 | }, { | 188 | }, { |
188 | .mapbase = 0xfffe8800, | 189 | .mapbase = 0xfffe8800, |
189 | .flags = UPF_BOOT_AUTOCONF, | 190 | .flags = UPF_BOOT_AUTOCONF, |
190 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 191 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
192 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
191 | .type = PORT_SCIF, | 193 | .type = PORT_SCIF, |
192 | .irqs = { 184, 184, 184, 184 } | 194 | .irqs = { 184, 184, 184, 184 } |
193 | }, { | 195 | }, { |
194 | .mapbase = 0xfffe9000, | 196 | .mapbase = 0xfffe9000, |
195 | .flags = UPF_BOOT_AUTOCONF, | 197 | .flags = UPF_BOOT_AUTOCONF, |
196 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 198 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
199 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
197 | .type = PORT_SCIF, | 200 | .type = PORT_SCIF, |
198 | .irqs = { 188, 188, 188, 188 } | 201 | .irqs = { 188, 188, 188, 188 } |
199 | }, { | 202 | }, { |
200 | .mapbase = 0xfffe9800, | 203 | .mapbase = 0xfffe9800, |
201 | .flags = UPF_BOOT_AUTOCONF, | 204 | .flags = UPF_BOOT_AUTOCONF, |
202 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 205 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
206 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
203 | .type = PORT_SCIF, | 207 | .type = PORT_SCIF, |
204 | .irqs = { 192, 192, 192, 192 } | 208 | .irqs = { 192, 192, 192, 192 } |
205 | }, { | 209 | }, { |
206 | .mapbase = 0xfffea000, | 210 | .mapbase = 0xfffea000, |
207 | .flags = UPF_BOOT_AUTOCONF, | 211 | .flags = UPF_BOOT_AUTOCONF, |
208 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 212 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
213 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
209 | .type = PORT_SCIF, | 214 | .type = PORT_SCIF, |
210 | .irqs = { 196, 196, 196, 196 } | 215 | .irqs = { 196, 196, 196, 196 } |
211 | }, { | 216 | }, { |
212 | .mapbase = 0xfffea800, | 217 | .mapbase = 0xfffea800, |
213 | .flags = UPF_BOOT_AUTOCONF, | 218 | .flags = UPF_BOOT_AUTOCONF, |
214 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 219 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
220 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
215 | .type = PORT_SCIF, | 221 | .type = PORT_SCIF, |
216 | .irqs = { 200, 200, 200, 200 } | 222 | .irqs = { 200, 200, 200, 200 } |
217 | }, { | 223 | }, { |
218 | .mapbase = 0xfffeb000, | 224 | .mapbase = 0xfffeb000, |
219 | .flags = UPF_BOOT_AUTOCONF, | 225 | .flags = UPF_BOOT_AUTOCONF, |
220 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 226 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
227 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
221 | .type = PORT_SCIF, | 228 | .type = PORT_SCIF, |
222 | .irqs = { 204, 204, 204, 204 } | 229 | .irqs = { 204, 204, 204, 204 } |
223 | }, { | 230 | }, { |
224 | .mapbase = 0xfffeb800, | 231 | .mapbase = 0xfffeb800, |
225 | .flags = UPF_BOOT_AUTOCONF, | 232 | .flags = UPF_BOOT_AUTOCONF, |
226 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 233 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
234 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
227 | .type = PORT_SCIF, | 235 | .type = PORT_SCIF, |
228 | .irqs = { 208, 208, 208, 208 } | 236 | .irqs = { 208, 208, 208, 208 } |
229 | }, { | 237 | }, { |
diff --git a/arch/sh/kernel/cpu/sh2a/setup-sh7203.c b/arch/sh/kernel/cpu/sh2a/setup-sh7203.c index 2c9f3ababfd7..a78d2a219f3b 100644 --- a/arch/sh/kernel/cpu/sh2a/setup-sh7203.c +++ b/arch/sh/kernel/cpu/sh2a/setup-sh7203.c | |||
@@ -178,24 +178,28 @@ static struct plat_sci_port sci_platform_data[] = { | |||
178 | .mapbase = 0xfffe8000, | 178 | .mapbase = 0xfffe8000, |
179 | .flags = UPF_BOOT_AUTOCONF, | 179 | .flags = UPF_BOOT_AUTOCONF, |
180 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 180 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
181 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
181 | .type = PORT_SCIF, | 182 | .type = PORT_SCIF, |
182 | .irqs = { 192, 192, 192, 192 }, | 183 | .irqs = { 192, 192, 192, 192 }, |
183 | }, { | 184 | }, { |
184 | .mapbase = 0xfffe8800, | 185 | .mapbase = 0xfffe8800, |
185 | .flags = UPF_BOOT_AUTOCONF, | 186 | .flags = UPF_BOOT_AUTOCONF, |
186 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 187 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
188 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
187 | .type = PORT_SCIF, | 189 | .type = PORT_SCIF, |
188 | .irqs = { 196, 196, 196, 196 }, | 190 | .irqs = { 196, 196, 196, 196 }, |
189 | }, { | 191 | }, { |
190 | .mapbase = 0xfffe9000, | 192 | .mapbase = 0xfffe9000, |
191 | .flags = UPF_BOOT_AUTOCONF, | 193 | .flags = UPF_BOOT_AUTOCONF, |
192 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 194 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
195 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
193 | .type = PORT_SCIF, | 196 | .type = PORT_SCIF, |
194 | .irqs = { 200, 200, 200, 200 }, | 197 | .irqs = { 200, 200, 200, 200 }, |
195 | }, { | 198 | }, { |
196 | .mapbase = 0xfffe9800, | 199 | .mapbase = 0xfffe9800, |
197 | .flags = UPF_BOOT_AUTOCONF, | 200 | .flags = UPF_BOOT_AUTOCONF, |
198 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 201 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
202 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
199 | .type = PORT_SCIF, | 203 | .type = PORT_SCIF, |
200 | .irqs = { 204, 204, 204, 204 }, | 204 | .irqs = { 204, 204, 204, 204 }, |
201 | }, { | 205 | }, { |
diff --git a/arch/sh/kernel/cpu/sh2a/setup-sh7206.c b/arch/sh/kernel/cpu/sh2a/setup-sh7206.c index 5a47987f3902..68b93ed44cc2 100644 --- a/arch/sh/kernel/cpu/sh2a/setup-sh7206.c +++ b/arch/sh/kernel/cpu/sh2a/setup-sh7206.c | |||
@@ -138,24 +138,28 @@ static struct plat_sci_port sci_platform_data[] = { | |||
138 | .mapbase = 0xfffe8000, | 138 | .mapbase = 0xfffe8000, |
139 | .flags = UPF_BOOT_AUTOCONF, | 139 | .flags = UPF_BOOT_AUTOCONF, |
140 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 140 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
141 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
141 | .type = PORT_SCIF, | 142 | .type = PORT_SCIF, |
142 | .irqs = { 240, 240, 240, 240 }, | 143 | .irqs = { 240, 240, 240, 240 }, |
143 | }, { | 144 | }, { |
144 | .mapbase = 0xfffe8800, | 145 | .mapbase = 0xfffe8800, |
145 | .flags = UPF_BOOT_AUTOCONF, | 146 | .flags = UPF_BOOT_AUTOCONF, |
146 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 147 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
148 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
147 | .type = PORT_SCIF, | 149 | .type = PORT_SCIF, |
148 | .irqs = { 244, 244, 244, 244 }, | 150 | .irqs = { 244, 244, 244, 244 }, |
149 | }, { | 151 | }, { |
150 | .mapbase = 0xfffe9000, | 152 | .mapbase = 0xfffe9000, |
151 | .flags = UPF_BOOT_AUTOCONF, | 153 | .flags = UPF_BOOT_AUTOCONF, |
152 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 154 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
155 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
153 | .type = PORT_SCIF, | 156 | .type = PORT_SCIF, |
154 | .irqs = { 248, 248, 248, 248 }, | 157 | .irqs = { 248, 248, 248, 248 }, |
155 | }, { | 158 | }, { |
156 | .mapbase = 0xfffe9800, | 159 | .mapbase = 0xfffe9800, |
157 | .flags = UPF_BOOT_AUTOCONF, | 160 | .flags = UPF_BOOT_AUTOCONF, |
158 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 161 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
162 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
159 | .type = PORT_SCIF, | 163 | .type = PORT_SCIF, |
160 | .irqs = { 252, 252, 252, 252 }, | 164 | .irqs = { 252, 252, 252, 252 }, |
161 | }, { | 165 | }, { |
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7705.c b/arch/sh/kernel/cpu/sh3/setup-sh7705.c index 28de53b281f3..27d03d836056 100644 --- a/arch/sh/kernel/cpu/sh3/setup-sh7705.c +++ b/arch/sh/kernel/cpu/sh3/setup-sh7705.c | |||
@@ -73,12 +73,14 @@ static struct plat_sci_port sci_platform_data[] = { | |||
73 | .flags = UPF_BOOT_AUTOCONF, | 73 | .flags = UPF_BOOT_AUTOCONF, |
74 | .scscr = SCSCR_TIE | SCSCR_RIE | SCSCR_TE | | 74 | .scscr = SCSCR_TIE | SCSCR_RIE | SCSCR_TE | |
75 | SCSCR_RE | SCSCR_CKE1 | SCSCR_CKE0, | 75 | SCSCR_RE | SCSCR_CKE1 | SCSCR_CKE0, |
76 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
76 | .type = PORT_SCIF, | 77 | .type = PORT_SCIF, |
77 | .irqs = { 56, 56, 56 }, | 78 | .irqs = { 56, 56, 56 }, |
78 | }, { | 79 | }, { |
79 | .mapbase = 0xa4400000, | 80 | .mapbase = 0xa4400000, |
80 | .flags = UPF_BOOT_AUTOCONF, | 81 | .flags = UPF_BOOT_AUTOCONF, |
81 | .scscr = SCSCR_TIE | SCSCR_RIE | SCSCR_TE | SCSCR_RE, | 82 | .scscr = SCSCR_TIE | SCSCR_RIE | SCSCR_TE | SCSCR_RE, |
83 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
82 | .type = PORT_SCIF, | 84 | .type = PORT_SCIF, |
83 | .irqs = { 52, 52, 52 }, | 85 | .irqs = { 52, 52, 52 }, |
84 | }, { | 86 | }, { |
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh770x.c b/arch/sh/kernel/cpu/sh3/setup-sh770x.c index 50ac42836dc7..83c9a5a39685 100644 --- a/arch/sh/kernel/cpu/sh3/setup-sh770x.c +++ b/arch/sh/kernel/cpu/sh3/setup-sh770x.c | |||
@@ -111,6 +111,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
111 | .mapbase = 0xfffffe80, | 111 | .mapbase = 0xfffffe80, |
112 | .flags = UPF_BOOT_AUTOCONF, | 112 | .flags = UPF_BOOT_AUTOCONF, |
113 | .scscr = SCSCR_TE | SCSCR_RE, | 113 | .scscr = SCSCR_TE | SCSCR_RE, |
114 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
114 | .type = PORT_SCI, | 115 | .type = PORT_SCI, |
115 | .irqs = { 23, 23, 23, 0 }, | 116 | .irqs = { 23, 23, 23, 0 }, |
116 | }, | 117 | }, |
@@ -121,6 +122,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
121 | .mapbase = 0xa4000150, | 122 | .mapbase = 0xa4000150, |
122 | .flags = UPF_BOOT_AUTOCONF, | 123 | .flags = UPF_BOOT_AUTOCONF, |
123 | .scscr = SCSCR_TE | SCSCR_RE, | 124 | .scscr = SCSCR_TE | SCSCR_RE, |
125 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
124 | .type = PORT_SCIF, | 126 | .type = PORT_SCIF, |
125 | .irqs = { 56, 56, 56, 56 }, | 127 | .irqs = { 56, 56, 56, 56 }, |
126 | }, | 128 | }, |
@@ -131,6 +133,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
131 | .mapbase = 0xa4000140, | 133 | .mapbase = 0xa4000140, |
132 | .flags = UPF_BOOT_AUTOCONF, | 134 | .flags = UPF_BOOT_AUTOCONF, |
133 | .scscr = SCSCR_TE | SCSCR_RE, | 135 | .scscr = SCSCR_TE | SCSCR_RE, |
136 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
134 | .type = PORT_IRDA, | 137 | .type = PORT_IRDA, |
135 | .irqs = { 52, 52, 52, 52 }, | 138 | .irqs = { 52, 52, 52, 52 }, |
136 | }, | 139 | }, |
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7710.c b/arch/sh/kernel/cpu/sh3/setup-sh7710.c index 007627ecb7c8..9a60ffd34a9f 100644 --- a/arch/sh/kernel/cpu/sh3/setup-sh7710.c +++ b/arch/sh/kernel/cpu/sh3/setup-sh7710.c | |||
@@ -102,6 +102,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
102 | .flags = UPF_BOOT_AUTOCONF, | 102 | .flags = UPF_BOOT_AUTOCONF, |
103 | .scscr = SCSCR_TE | SCSCR_RE | SCSCR_REIE | | 103 | .scscr = SCSCR_TE | SCSCR_RE | SCSCR_REIE | |
104 | SCSCR_CKE1 | SCSCR_CKE0, | 104 | SCSCR_CKE1 | SCSCR_CKE0, |
105 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
105 | .type = PORT_SCIF, | 106 | .type = PORT_SCIF, |
106 | .irqs = { 52, 52, 52, 52 }, | 107 | .irqs = { 52, 52, 52, 52 }, |
107 | }, { | 108 | }, { |
@@ -109,6 +110,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
109 | .flags = UPF_BOOT_AUTOCONF, | 110 | .flags = UPF_BOOT_AUTOCONF, |
110 | .scscr = SCSCR_TE | SCSCR_RE | SCSCR_REIE | | 111 | .scscr = SCSCR_TE | SCSCR_RE | SCSCR_REIE | |
111 | SCSCR_CKE1 | SCSCR_CKE0, | 112 | SCSCR_CKE1 | SCSCR_CKE0, |
113 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
112 | .type = PORT_SCIF, | 114 | .type = PORT_SCIF, |
113 | .irqs = { 56, 56, 56, 56 }, | 115 | .irqs = { 56, 56, 56, 56 }, |
114 | }, { | 116 | }, { |
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7720.c b/arch/sh/kernel/cpu/sh3/setup-sh7720.c index 1fc3d9089199..48d50a65db32 100644 --- a/arch/sh/kernel/cpu/sh3/setup-sh7720.c +++ b/arch/sh/kernel/cpu/sh3/setup-sh7720.c | |||
@@ -53,12 +53,14 @@ static struct plat_sci_port sci_platform_data[] = { | |||
53 | .mapbase = 0xa4430000, | 53 | .mapbase = 0xa4430000, |
54 | .flags = UPF_BOOT_AUTOCONF, | 54 | .flags = UPF_BOOT_AUTOCONF, |
55 | .scscr = SCSCR_RE | SCSCR_TE, | 55 | .scscr = SCSCR_RE | SCSCR_TE, |
56 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
56 | .type = PORT_SCIF, | 57 | .type = PORT_SCIF, |
57 | .irqs = { 80, 80, 80, 80 }, | 58 | .irqs = { 80, 80, 80, 80 }, |
58 | }, { | 59 | }, { |
59 | .mapbase = 0xa4438000, | 60 | .mapbase = 0xa4438000, |
60 | .flags = UPF_BOOT_AUTOCONF, | 61 | .flags = UPF_BOOT_AUTOCONF, |
61 | .scscr = SCSCR_RE | SCSCR_TE, | 62 | .scscr = SCSCR_RE | SCSCR_TE, |
63 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
62 | .type = PORT_SCIF, | 64 | .type = PORT_SCIF, |
63 | .irqs = { 81, 81, 81, 81 }, | 65 | .irqs = { 81, 81, 81, 81 }, |
64 | }, { | 66 | }, { |
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh4-202.c b/arch/sh/kernel/cpu/sh4/setup-sh4-202.c index 9aa6fa3ca4e6..ec2104b49ef7 100644 --- a/arch/sh/kernel/cpu/sh4/setup-sh4-202.c +++ b/arch/sh/kernel/cpu/sh4/setup-sh4-202.c | |||
@@ -20,6 +20,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
20 | .mapbase = 0xffe80000, | 20 | .mapbase = 0xffe80000, |
21 | .flags = UPF_BOOT_AUTOCONF, | 21 | .flags = UPF_BOOT_AUTOCONF, |
22 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 22 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
23 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
23 | .type = PORT_SCIF, | 24 | .type = PORT_SCIF, |
24 | .irqs = { 40, 41, 43, 42 }, | 25 | .irqs = { 40, 41, 43, 42 }, |
25 | }, { | 26 | }, { |
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh7750.c b/arch/sh/kernel/cpu/sh4/setup-sh7750.c index 2159c439dce9..51a945e0d72c 100644 --- a/arch/sh/kernel/cpu/sh4/setup-sh7750.c +++ b/arch/sh/kernel/cpu/sh4/setup-sh7750.c | |||
@@ -41,6 +41,7 @@ static struct plat_sci_port sci_platform_data = { | |||
41 | .flags = UPF_BOOT_AUTOCONF, | 41 | .flags = UPF_BOOT_AUTOCONF, |
42 | .type = PORT_SCI, | 42 | .type = PORT_SCI, |
43 | .scscr = SCSCR_TE | SCSCR_RE, | 43 | .scscr = SCSCR_TE | SCSCR_RE, |
44 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
44 | .irqs = { 23, 23, 23, 0 }, | 45 | .irqs = { 23, 23, 23, 0 }, |
45 | }; | 46 | }; |
46 | 47 | ||
@@ -55,6 +56,7 @@ static struct plat_sci_port scif_platform_data = { | |||
55 | .mapbase = 0xffe80000, | 56 | .mapbase = 0xffe80000, |
56 | .flags = UPF_BOOT_AUTOCONF, | 57 | .flags = UPF_BOOT_AUTOCONF, |
57 | .scscr = SCSCR_TE | SCSCR_RE | SCSCR_REIE, | 58 | .scscr = SCSCR_TE | SCSCR_RE | SCSCR_REIE, |
59 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
58 | .type = PORT_SCIF, | 60 | .type = PORT_SCIF, |
59 | .irqs = { 40, 40, 40, 40 }, | 61 | .irqs = { 40, 40, 40, 40 }, |
60 | }; | 62 | }; |
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh7760.c b/arch/sh/kernel/cpu/sh4/setup-sh7760.c index 74b5e994724d..cee660fe1d90 100644 --- a/arch/sh/kernel/cpu/sh4/setup-sh7760.c +++ b/arch/sh/kernel/cpu/sh4/setup-sh7760.c | |||
@@ -131,24 +131,28 @@ static struct plat_sci_port sci_platform_data[] = { | |||
131 | .mapbase = 0xfe600000, | 131 | .mapbase = 0xfe600000, |
132 | .flags = UPF_BOOT_AUTOCONF, | 132 | .flags = UPF_BOOT_AUTOCONF, |
133 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 133 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
134 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
134 | .type = PORT_SCIF, | 135 | .type = PORT_SCIF, |
135 | .irqs = { 52, 53, 55, 54 }, | 136 | .irqs = { 52, 53, 55, 54 }, |
136 | }, { | 137 | }, { |
137 | .mapbase = 0xfe610000, | 138 | .mapbase = 0xfe610000, |
138 | .flags = UPF_BOOT_AUTOCONF, | 139 | .flags = UPF_BOOT_AUTOCONF, |
139 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 140 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
141 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
140 | .type = PORT_SCIF, | 142 | .type = PORT_SCIF, |
141 | .irqs = { 72, 73, 75, 74 }, | 143 | .irqs = { 72, 73, 75, 74 }, |
142 | }, { | 144 | }, { |
143 | .mapbase = 0xfe620000, | 145 | .mapbase = 0xfe620000, |
144 | .flags = UPF_BOOT_AUTOCONF, | 146 | .flags = UPF_BOOT_AUTOCONF, |
145 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 147 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
148 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
146 | .type = PORT_SCIF, | 149 | .type = PORT_SCIF, |
147 | .irqs = { 76, 77, 79, 78 }, | 150 | .irqs = { 76, 77, 79, 78 }, |
148 | }, { | 151 | }, { |
149 | .mapbase = 0xfe480000, | 152 | .mapbase = 0xfe480000, |
150 | .flags = UPF_BOOT_AUTOCONF, | 153 | .flags = UPF_BOOT_AUTOCONF, |
151 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 154 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
155 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
152 | .type = PORT_SCI, | 156 | .type = PORT_SCI, |
153 | .irqs = { 80, 81, 82, 0 }, | 157 | .irqs = { 80, 81, 82, 0 }, |
154 | }, { | 158 | }, { |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7343.c b/arch/sh/kernel/cpu/sh4a/setup-sh7343.c index 09fb5814d925..fbae06b1c98d 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7343.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7343.c | |||
@@ -270,6 +270,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
270 | .mapbase = 0xffe00000, | 270 | .mapbase = 0xffe00000, |
271 | .flags = UPF_BOOT_AUTOCONF, | 271 | .flags = UPF_BOOT_AUTOCONF, |
272 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, | 272 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, |
273 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
273 | .type = PORT_SCIF, | 274 | .type = PORT_SCIF, |
274 | .irqs = { 80, 80, 80, 80 }, | 275 | .irqs = { 80, 80, 80, 80 }, |
275 | .clk = "scif0", | 276 | .clk = "scif0", |
@@ -277,6 +278,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
277 | .mapbase = 0xffe10000, | 278 | .mapbase = 0xffe10000, |
278 | .flags = UPF_BOOT_AUTOCONF, | 279 | .flags = UPF_BOOT_AUTOCONF, |
279 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, | 280 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, |
281 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
280 | .type = PORT_SCIF, | 282 | .type = PORT_SCIF, |
281 | .irqs = { 81, 81, 81, 81 }, | 283 | .irqs = { 81, 81, 81, 81 }, |
282 | .clk = "scif1", | 284 | .clk = "scif1", |
@@ -284,6 +286,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
284 | .mapbase = 0xffe20000, | 286 | .mapbase = 0xffe20000, |
285 | .flags = UPF_BOOT_AUTOCONF, | 287 | .flags = UPF_BOOT_AUTOCONF, |
286 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, | 288 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, |
289 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
287 | .type = PORT_SCIF, | 290 | .type = PORT_SCIF, |
288 | .irqs = { 82, 82, 82, 82 }, | 291 | .irqs = { 82, 82, 82, 82 }, |
289 | .clk = "scif2", | 292 | .clk = "scif2", |
@@ -291,6 +294,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
291 | .mapbase = 0xffe30000, | 294 | .mapbase = 0xffe30000, |
292 | .flags = UPF_BOOT_AUTOCONF, | 295 | .flags = UPF_BOOT_AUTOCONF, |
293 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, | 296 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, |
297 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
294 | .type = PORT_SCIF, | 298 | .type = PORT_SCIF, |
295 | .irqs = { 83, 83, 83, 83 }, | 299 | .irqs = { 83, 83, 83, 83 }, |
296 | .clk = "scif3", | 300 | .clk = "scif3", |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7366.c b/arch/sh/kernel/cpu/sh4a/setup-sh7366.c index 307777cf04cc..d4ee429032b1 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7366.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7366.c | |||
@@ -281,6 +281,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
281 | .mapbase = 0xffe00000, | 281 | .mapbase = 0xffe00000, |
282 | .flags = UPF_BOOT_AUTOCONF, | 282 | .flags = UPF_BOOT_AUTOCONF, |
283 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 283 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
284 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
284 | .type = PORT_SCIF, | 285 | .type = PORT_SCIF, |
285 | .irqs = { 80, 80, 80, 80 }, | 286 | .irqs = { 80, 80, 80, 80 }, |
286 | .clk = "scif0", | 287 | .clk = "scif0", |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c index ffc69bc95932..f7b0551bf104 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c | |||
@@ -306,6 +306,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
306 | .mapbase = 0xffe00000, | 306 | .mapbase = 0xffe00000, |
307 | .flags = UPF_BOOT_AUTOCONF, | 307 | .flags = UPF_BOOT_AUTOCONF, |
308 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 308 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
309 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
309 | .type = PORT_SCIF, | 310 | .type = PORT_SCIF, |
310 | .irqs = { 80, 80, 80, 80 }, | 311 | .irqs = { 80, 80, 80, 80 }, |
311 | .clk = "scif0", | 312 | .clk = "scif0", |
@@ -313,6 +314,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
313 | .mapbase = 0xffe10000, | 314 | .mapbase = 0xffe10000, |
314 | .flags = UPF_BOOT_AUTOCONF, | 315 | .flags = UPF_BOOT_AUTOCONF, |
315 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 316 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
317 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
316 | .type = PORT_SCIF, | 318 | .type = PORT_SCIF, |
317 | .irqs = { 81, 81, 81, 81 }, | 319 | .irqs = { 81, 81, 81, 81 }, |
318 | .clk = "scif1", | 320 | .clk = "scif1", |
@@ -320,6 +322,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
320 | .mapbase = 0xffe20000, | 322 | .mapbase = 0xffe20000, |
321 | .flags = UPF_BOOT_AUTOCONF, | 323 | .flags = UPF_BOOT_AUTOCONF, |
322 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 324 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
325 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
323 | .type = PORT_SCIF, | 326 | .type = PORT_SCIF, |
324 | .irqs = { 82, 82, 82, 82 }, | 327 | .irqs = { 82, 82, 82, 82 }, |
325 | .clk = "scif2", | 328 | .clk = "scif2", |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c index 6ce331a8f1bd..bb4837b9dcf4 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c | |||
@@ -322,6 +322,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
322 | .mapbase = 0xffe00000, | 322 | .mapbase = 0xffe00000, |
323 | .flags = UPF_BOOT_AUTOCONF, | 323 | .flags = UPF_BOOT_AUTOCONF, |
324 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 324 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
325 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
325 | .type = PORT_SCIF, | 326 | .type = PORT_SCIF, |
326 | .irqs = { 80, 80, 80, 80 }, | 327 | .irqs = { 80, 80, 80, 80 }, |
327 | .clk = "scif0", | 328 | .clk = "scif0", |
@@ -329,6 +330,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
329 | .mapbase = 0xffe10000, | 330 | .mapbase = 0xffe10000, |
330 | .flags = UPF_BOOT_AUTOCONF, | 331 | .flags = UPF_BOOT_AUTOCONF, |
331 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 332 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
333 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
332 | .type = PORT_SCIF, | 334 | .type = PORT_SCIF, |
333 | .irqs = { 81, 81, 81, 81 }, | 335 | .irqs = { 81, 81, 81, 81 }, |
334 | .clk = "scif1", | 336 | .clk = "scif1", |
@@ -336,6 +338,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
336 | .mapbase = 0xffe20000, | 338 | .mapbase = 0xffe20000, |
337 | .flags = UPF_BOOT_AUTOCONF, | 339 | .flags = UPF_BOOT_AUTOCONF, |
338 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 340 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
341 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
339 | .type = PORT_SCIF, | 342 | .type = PORT_SCIF, |
340 | .irqs = { 82, 82, 82, 82 }, | 343 | .irqs = { 82, 82, 82, 82 }, |
341 | .clk = "scif2", | 344 | .clk = "scif2", |
@@ -343,6 +346,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
343 | .mapbase = 0xa4e30000, | 346 | .mapbase = 0xa4e30000, |
344 | .flags = UPF_BOOT_AUTOCONF, | 347 | .flags = UPF_BOOT_AUTOCONF, |
345 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 348 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
349 | .scbrr_algo_id = SCBRR_ALGO_3, | ||
346 | .type = PORT_SCIFA, | 350 | .type = PORT_SCIFA, |
347 | .irqs = { 56, 56, 56, 56 }, | 351 | .irqs = { 56, 56, 56, 56 }, |
348 | .clk = "scif3", | 352 | .clk = "scif3", |
@@ -350,6 +354,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
350 | .mapbase = 0xa4e40000, | 354 | .mapbase = 0xa4e40000, |
351 | .flags = UPF_BOOT_AUTOCONF, | 355 | .flags = UPF_BOOT_AUTOCONF, |
352 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 356 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
357 | .scbrr_algo_id = SCBRR_ALGO_3, | ||
353 | .type = PORT_SCIFA, | 358 | .type = PORT_SCIFA, |
354 | .irqs = { 88, 88, 88, 88 }, | 359 | .irqs = { 88, 88, 88, 88 }, |
355 | .clk = "scif4", | 360 | .clk = "scif4", |
@@ -357,6 +362,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
357 | .mapbase = 0xa4e50000, | 362 | .mapbase = 0xa4e50000, |
358 | .flags = UPF_BOOT_AUTOCONF, | 363 | .flags = UPF_BOOT_AUTOCONF, |
359 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 364 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
365 | .scbrr_algo_id = SCBRR_ALGO_3, | ||
360 | .type = PORT_SCIFA, | 366 | .type = PORT_SCIFA, |
361 | .irqs = { 109, 109, 109, 109 }, | 367 | .irqs = { 109, 109, 109, 109 }, |
362 | .clk = "scif5", | 368 | .clk = "scif5", |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7724.c b/arch/sh/kernel/cpu/sh4a/setup-sh7724.c index 4bf03c1ec8d6..c934b78e5658 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7724.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7724.c | |||
@@ -29,6 +29,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
29 | .mapbase = 0xffe00000, | 29 | .mapbase = 0xffe00000, |
30 | .flags = UPF_BOOT_AUTOCONF, | 30 | .flags = UPF_BOOT_AUTOCONF, |
31 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 31 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
32 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
32 | .type = PORT_SCIF, | 33 | .type = PORT_SCIF, |
33 | .irqs = { 80, 80, 80, 80 }, | 34 | .irqs = { 80, 80, 80, 80 }, |
34 | .clk = "scif0", | 35 | .clk = "scif0", |
@@ -36,6 +37,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
36 | .mapbase = 0xffe10000, | 37 | .mapbase = 0xffe10000, |
37 | .flags = UPF_BOOT_AUTOCONF, | 38 | .flags = UPF_BOOT_AUTOCONF, |
38 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 39 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
40 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
39 | .type = PORT_SCIF, | 41 | .type = PORT_SCIF, |
40 | .irqs = { 81, 81, 81, 81 }, | 42 | .irqs = { 81, 81, 81, 81 }, |
41 | .clk = "scif1", | 43 | .clk = "scif1", |
@@ -43,6 +45,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
43 | .mapbase = 0xffe20000, | 45 | .mapbase = 0xffe20000, |
44 | .flags = UPF_BOOT_AUTOCONF, | 46 | .flags = UPF_BOOT_AUTOCONF, |
45 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 47 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
48 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
46 | .type = PORT_SCIF, | 49 | .type = PORT_SCIF, |
47 | .irqs = { 82, 82, 82, 82 }, | 50 | .irqs = { 82, 82, 82, 82 }, |
48 | .clk = "scif2", | 51 | .clk = "scif2", |
@@ -50,6 +53,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
50 | .mapbase = 0xa4e30000, | 53 | .mapbase = 0xa4e30000, |
51 | .flags = UPF_BOOT_AUTOCONF, | 54 | .flags = UPF_BOOT_AUTOCONF, |
52 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 55 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
56 | .scbrr_algo_id = SCBRR_ALGO_3, | ||
53 | .type = PORT_SCIFA, | 57 | .type = PORT_SCIFA, |
54 | .irqs = { 56, 56, 56, 56 }, | 58 | .irqs = { 56, 56, 56, 56 }, |
55 | .clk = "scif3", | 59 | .clk = "scif3", |
@@ -57,6 +61,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
57 | .mapbase = 0xa4e40000, | 61 | .mapbase = 0xa4e40000, |
58 | .flags = UPF_BOOT_AUTOCONF, | 62 | .flags = UPF_BOOT_AUTOCONF, |
59 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 63 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
64 | .scbrr_algo_id = SCBRR_ALGO_3, | ||
60 | .type = PORT_SCIFA, | 65 | .type = PORT_SCIFA, |
61 | .irqs = { 88, 88, 88, 88 }, | 66 | .irqs = { 88, 88, 88, 88 }, |
62 | .clk = "scif4", | 67 | .clk = "scif4", |
@@ -64,6 +69,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
64 | .mapbase = 0xa4e50000, | 69 | .mapbase = 0xa4e50000, |
65 | .flags = UPF_BOOT_AUTOCONF, | 70 | .flags = UPF_BOOT_AUTOCONF, |
66 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 71 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
72 | .scbrr_algo_id = SCBRR_ALGO_3, | ||
67 | .type = PORT_SCIFA, | 73 | .type = PORT_SCIFA, |
68 | .irqs = { 109, 109, 109, 109 }, | 74 | .irqs = { 109, 109, 109, 109 }, |
69 | .clk = "scif5", | 75 | .clk = "scif5", |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7763.c b/arch/sh/kernel/cpu/sh4a/setup-sh7763.c index 76339c6da01e..ab02771ee888 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7763.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7763.c | |||
@@ -41,18 +41,21 @@ static struct plat_sci_port sci_platform_data[] = { | |||
41 | .mapbase = 0xffe00000, | 41 | .mapbase = 0xffe00000, |
42 | .flags = UPF_BOOT_AUTOCONF, | 42 | .flags = UPF_BOOT_AUTOCONF, |
43 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 43 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
44 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
44 | .type = PORT_SCIF, | 45 | .type = PORT_SCIF, |
45 | .irqs = { 40, 40, 40, 40 }, | 46 | .irqs = { 40, 40, 40, 40 }, |
46 | }, { | 47 | }, { |
47 | .mapbase = 0xffe08000, | 48 | .mapbase = 0xffe08000, |
48 | .flags = UPF_BOOT_AUTOCONF, | 49 | .flags = UPF_BOOT_AUTOCONF, |
49 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 50 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
51 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
50 | .type = PORT_SCIF, | 52 | .type = PORT_SCIF, |
51 | .irqs = { 76, 76, 76, 76 }, | 53 | .irqs = { 76, 76, 76, 76 }, |
52 | }, { | 54 | }, { |
53 | .mapbase = 0xffe10000, | 55 | .mapbase = 0xffe10000, |
54 | .flags = UPF_BOOT_AUTOCONF, | 56 | .flags = UPF_BOOT_AUTOCONF, |
55 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 57 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
58 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
56 | .type = PORT_SCIF, | 59 | .type = PORT_SCIF, |
57 | .irqs = { 104, 104, 104, 104 }, | 60 | .irqs = { 104, 104, 104, 104 }, |
58 | }, { | 61 | }, { |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7770.c b/arch/sh/kernel/cpu/sh4a/setup-sh7770.c index 07a41ff20504..746f4fb9ccf0 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7770.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7770.c | |||
@@ -19,60 +19,70 @@ static struct plat_sci_port sci_platform_data[] = { | |||
19 | .mapbase = 0xff923000, | 19 | .mapbase = 0xff923000, |
20 | .flags = UPF_BOOT_AUTOCONF, | 20 | .flags = UPF_BOOT_AUTOCONF, |
21 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, | 21 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, |
22 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
22 | .type = PORT_SCIF, | 23 | .type = PORT_SCIF, |
23 | .irqs = { 61, 61, 61, 61 }, | 24 | .irqs = { 61, 61, 61, 61 }, |
24 | }, { | 25 | }, { |
25 | .mapbase = 0xff924000, | 26 | .mapbase = 0xff924000, |
26 | .flags = UPF_BOOT_AUTOCONF, | 27 | .flags = UPF_BOOT_AUTOCONF, |
27 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, | 28 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, |
29 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
28 | .type = PORT_SCIF, | 30 | .type = PORT_SCIF, |
29 | .irqs = { 62, 62, 62, 62 }, | 31 | .irqs = { 62, 62, 62, 62 }, |
30 | }, { | 32 | }, { |
31 | .mapbase = 0xff925000, | 33 | .mapbase = 0xff925000, |
32 | .flags = UPF_BOOT_AUTOCONF, | 34 | .flags = UPF_BOOT_AUTOCONF, |
33 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, | 35 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, |
36 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
34 | .type = PORT_SCIF, | 37 | .type = PORT_SCIF, |
35 | .irqs = { 63, 63, 63, 63 }, | 38 | .irqs = { 63, 63, 63, 63 }, |
36 | }, { | 39 | }, { |
37 | .mapbase = 0xff926000, | 40 | .mapbase = 0xff926000, |
38 | .flags = UPF_BOOT_AUTOCONF, | 41 | .flags = UPF_BOOT_AUTOCONF, |
39 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, | 42 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, |
43 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
40 | .type = PORT_SCIF, | 44 | .type = PORT_SCIF, |
41 | .irqs = { 64, 64, 64, 64 }, | 45 | .irqs = { 64, 64, 64, 64 }, |
42 | }, { | 46 | }, { |
43 | .mapbase = 0xff927000, | 47 | .mapbase = 0xff927000, |
44 | .flags = UPF_BOOT_AUTOCONF, | 48 | .flags = UPF_BOOT_AUTOCONF, |
45 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, | 49 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, |
50 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
46 | .type = PORT_SCIF, | 51 | .type = PORT_SCIF, |
47 | .irqs = { 65, 65, 65, 65 }, | 52 | .irqs = { 65, 65, 65, 65 }, |
48 | }, { | 53 | }, { |
49 | .mapbase = 0xff928000, | 54 | .mapbase = 0xff928000, |
50 | .flags = UPF_BOOT_AUTOCONF, | 55 | .flags = UPF_BOOT_AUTOCONF, |
51 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, | 56 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, |
57 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
52 | .type = PORT_SCIF, | 58 | .type = PORT_SCIF, |
53 | .irqs = { 66, 66, 66, 66 }, | 59 | .irqs = { 66, 66, 66, 66 }, |
54 | }, { | 60 | }, { |
55 | .mapbase = 0xff929000, | 61 | .mapbase = 0xff929000, |
56 | .flags = UPF_BOOT_AUTOCONF, | 62 | .flags = UPF_BOOT_AUTOCONF, |
57 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, | 63 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, |
64 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
58 | .type = PORT_SCIF, | 65 | .type = PORT_SCIF, |
59 | .irqs = { 67, 67, 67, 67 }, | 66 | .irqs = { 67, 67, 67, 67 }, |
60 | }, { | 67 | }, { |
61 | .mapbase = 0xff92a000, | 68 | .mapbase = 0xff92a000, |
62 | .flags = UPF_BOOT_AUTOCONF, | 69 | .flags = UPF_BOOT_AUTOCONF, |
63 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, | 70 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, |
71 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
64 | .type = PORT_SCIF, | 72 | .type = PORT_SCIF, |
65 | .irqs = { 68, 68, 68, 68 }, | 73 | .irqs = { 68, 68, 68, 68 }, |
66 | }, { | 74 | }, { |
67 | .mapbase = 0xff92b000, | 75 | .mapbase = 0xff92b000, |
68 | .flags = UPF_BOOT_AUTOCONF, | 76 | .flags = UPF_BOOT_AUTOCONF, |
69 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, | 77 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, |
78 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
70 | .type = PORT_SCIF, | 79 | .type = PORT_SCIF, |
71 | .irqs = { 69, 69, 69, 69 }, | 80 | .irqs = { 69, 69, 69, 69 }, |
72 | }, { | 81 | }, { |
73 | .mapbase = 0xff92c000, | 82 | .mapbase = 0xff92c000, |
74 | .flags = UPF_BOOT_AUTOCONF, | 83 | .flags = UPF_BOOT_AUTOCONF, |
75 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, | 84 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, |
85 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
76 | .type = PORT_SCIF, | 86 | .type = PORT_SCIF, |
77 | .irqs = { 70, 70, 70, 70 }, | 87 | .irqs = { 70, 70, 70, 70 }, |
78 | }, { | 88 | }, { |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7780.c b/arch/sh/kernel/cpu/sh4a/setup-sh7780.c index 2b355b67a33d..bcd411eb9cb0 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7780.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7780.c | |||
@@ -221,12 +221,14 @@ static struct plat_sci_port sci_platform_data[] = { | |||
221 | .mapbase = 0xffe00000, | 221 | .mapbase = 0xffe00000, |
222 | .flags = UPF_BOOT_AUTOCONF, | 222 | .flags = UPF_BOOT_AUTOCONF, |
223 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, | 223 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, |
224 | .scbrr_algo_id = SCBRR_ALGO_1, | ||
224 | .type = PORT_SCIF, | 225 | .type = PORT_SCIF, |
225 | .irqs = { 40, 40, 40, 40 }, | 226 | .irqs = { 40, 40, 40, 40 }, |
226 | }, { | 227 | }, { |
227 | .mapbase = 0xffe10000, | 228 | .mapbase = 0xffe10000, |
228 | .flags = UPF_BOOT_AUTOCONF, | 229 | .flags = UPF_BOOT_AUTOCONF, |
229 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, | 230 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, |
231 | .scbrr_algo_id = SCBRR_ALGO_1, | ||
230 | .type = PORT_SCIF, | 232 | .type = PORT_SCIF, |
231 | .irqs = { 76, 76, 76, 76 }, | 233 | .irqs = { 76, 76, 76, 76 }, |
232 | }, { | 234 | }, { |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c index acd4b1d1b813..3ae2e2071009 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c | |||
@@ -203,6 +203,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
203 | .mapbase = 0xffea0000, | 203 | .mapbase = 0xffea0000, |
204 | .flags = UPF_BOOT_AUTOCONF, | 204 | .flags = UPF_BOOT_AUTOCONF, |
205 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, | 205 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, |
206 | .scbrr_algo_id = SCBRR_ALGO_1, | ||
206 | .type = PORT_SCIF, | 207 | .type = PORT_SCIF, |
207 | .irqs = { 40, 40, 40, 40 }, | 208 | .irqs = { 40, 40, 40, 40 }, |
208 | .clk = "scif_fck", | 209 | .clk = "scif_fck", |
@@ -210,6 +211,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
210 | .mapbase = 0xffeb0000, | 211 | .mapbase = 0xffeb0000, |
211 | .flags = UPF_BOOT_AUTOCONF, | 212 | .flags = UPF_BOOT_AUTOCONF, |
212 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, | 213 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, |
214 | .scbrr_algo_id = SCBRR_ALGO_1, | ||
213 | .type = PORT_SCIF, | 215 | .type = PORT_SCIF, |
214 | .irqs = { 44, 44, 44, 44 }, | 216 | .irqs = { 44, 44, 44, 44 }, |
215 | .clk = "scif_fck", | 217 | .clk = "scif_fck", |
@@ -217,6 +219,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
217 | .mapbase = 0xffec0000, | 219 | .mapbase = 0xffec0000, |
218 | .flags = UPF_BOOT_AUTOCONF, | 220 | .flags = UPF_BOOT_AUTOCONF, |
219 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, | 221 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, |
222 | .scbrr_algo_id = SCBRR_ALGO_1, | ||
220 | .type = PORT_SCIF, | 223 | .type = PORT_SCIF, |
221 | .irqs = { 60, 60, 60, 60 }, | 224 | .irqs = { 60, 60, 60, 60 }, |
222 | .clk = "scif_fck", | 225 | .clk = "scif_fck", |
@@ -224,6 +227,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
224 | .mapbase = 0xffed0000, | 227 | .mapbase = 0xffed0000, |
225 | .flags = UPF_BOOT_AUTOCONF, | 228 | .flags = UPF_BOOT_AUTOCONF, |
226 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, | 229 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, |
230 | .scbrr_algo_id = SCBRR_ALGO_1, | ||
227 | .type = PORT_SCIF, | 231 | .type = PORT_SCIF, |
228 | .irqs = { 61, 61, 61, 61 }, | 232 | .irqs = { 61, 61, 61, 61 }, |
229 | .clk = "scif_fck", | 233 | .clk = "scif_fck", |
@@ -231,6 +235,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
231 | .mapbase = 0xffee0000, | 235 | .mapbase = 0xffee0000, |
232 | .flags = UPF_BOOT_AUTOCONF, | 236 | .flags = UPF_BOOT_AUTOCONF, |
233 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, | 237 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, |
238 | .scbrr_algo_id = SCBRR_ALGO_1, | ||
234 | .type = PORT_SCIF, | 239 | .type = PORT_SCIF, |
235 | .irqs = { 62, 62, 62, 62 }, | 240 | .irqs = { 62, 62, 62, 62 }, |
236 | .clk = "scif_fck", | 241 | .clk = "scif_fck", |
@@ -238,6 +243,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
238 | .mapbase = 0xffef0000, | 243 | .mapbase = 0xffef0000, |
239 | .flags = UPF_BOOT_AUTOCONF, | 244 | .flags = UPF_BOOT_AUTOCONF, |
240 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, | 245 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, |
246 | .scbrr_algo_id = SCBRR_ALGO_1, | ||
241 | .type = PORT_SCIF, | 247 | .type = PORT_SCIF, |
242 | .irqs = { 63, 63, 63, 63 }, | 248 | .irqs = { 63, 63, 63, 63 }, |
243 | .clk = "scif_fck", | 249 | .clk = "scif_fck", |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7786.c b/arch/sh/kernel/cpu/sh4a/setup-sh7786.c index 347ce88de570..8b7ea4bd965d 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7786.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7786.c | |||
@@ -28,6 +28,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
28 | .mapbase = 0xffea0000, | 28 | .mapbase = 0xffea0000, |
29 | .flags = UPF_BOOT_AUTOCONF, | 29 | .flags = UPF_BOOT_AUTOCONF, |
30 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, | 30 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, |
31 | .scbrr_algo_id = SCBRR_ALGO_1, | ||
31 | .type = PORT_SCIF, | 32 | .type = PORT_SCIF, |
32 | .irqs = { 40, 41, 43, 42 }, | 33 | .irqs = { 40, 41, 43, 42 }, |
33 | }, | 34 | }, |
@@ -38,30 +39,35 @@ static struct plat_sci_port sci_platform_data[] = { | |||
38 | .mapbase = 0xffeb0000, | 39 | .mapbase = 0xffeb0000, |
39 | .flags = UPF_BOOT_AUTOCONF, | 40 | .flags = UPF_BOOT_AUTOCONF, |
40 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, | 41 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, |
42 | .scbrr_algo_id = SCBRR_ALGO_1, | ||
41 | .type = PORT_SCIF, | 43 | .type = PORT_SCIF, |
42 | .irqs = { 44, 44, 44, 44 }, | 44 | .irqs = { 44, 44, 44, 44 }, |
43 | }, { | 45 | }, { |
44 | .mapbase = 0xffec0000, | 46 | .mapbase = 0xffec0000, |
45 | .flags = UPF_BOOT_AUTOCONF, | 47 | .flags = UPF_BOOT_AUTOCONF, |
46 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, | 48 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, |
49 | .scbrr_algo_id = SCBRR_ALGO_1, | ||
47 | .type = PORT_SCIF, | 50 | .type = PORT_SCIF, |
48 | .irqs = { 50, 50, 50, 50 }, | 51 | .irqs = { 50, 50, 50, 50 }, |
49 | }, { | 52 | }, { |
50 | .mapbase = 0xffed0000, | 53 | .mapbase = 0xffed0000, |
51 | .flags = UPF_BOOT_AUTOCONF, | 54 | .flags = UPF_BOOT_AUTOCONF, |
52 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, | 55 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, |
56 | .scbrr_algo_id = SCBRR_ALGO_1, | ||
53 | .type = PORT_SCIF, | 57 | .type = PORT_SCIF, |
54 | .irqs = { 51, 51, 51, 51 }, | 58 | .irqs = { 51, 51, 51, 51 }, |
55 | }, { | 59 | }, { |
56 | .mapbase = 0xffee0000, | 60 | .mapbase = 0xffee0000, |
57 | .flags = UPF_BOOT_AUTOCONF, | 61 | .flags = UPF_BOOT_AUTOCONF, |
58 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, | 62 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, |
63 | .scbrr_algo_id = SCBRR_ALGO_1, | ||
59 | .type = PORT_SCIF, | 64 | .type = PORT_SCIF, |
60 | .irqs = { 52, 52, 52, 52 }, | 65 | .irqs = { 52, 52, 52, 52 }, |
61 | }, { | 66 | }, { |
62 | .mapbase = 0xffef0000, | 67 | .mapbase = 0xffef0000, |
63 | .flags = UPF_BOOT_AUTOCONF, | 68 | .flags = UPF_BOOT_AUTOCONF, |
64 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, | 69 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, |
70 | .scbrr_algo_id = SCBRR_ALGO_1, | ||
65 | .type = PORT_SCIF, | 71 | .type = PORT_SCIF, |
66 | .irqs = { 53, 53, 53, 53 }, | 72 | .irqs = { 53, 53, 53, 53 }, |
67 | }, { | 73 | }, { |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-shx3.c b/arch/sh/kernel/cpu/sh4a/setup-shx3.c index eef94934f542..4a26cc304139 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-shx3.c +++ b/arch/sh/kernel/cpu/sh4a/setup-shx3.c | |||
@@ -20,24 +20,28 @@ static struct plat_sci_port sci_platform_data[] = { | |||
20 | .mapbase = 0xffc30000, | 20 | .mapbase = 0xffc30000, |
21 | .flags = UPF_BOOT_AUTOCONF, | 21 | .flags = UPF_BOOT_AUTOCONF, |
22 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 22 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
23 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
23 | .type = PORT_SCIF, | 24 | .type = PORT_SCIF, |
24 | .irqs = { 40, 41, 43, 42 }, | 25 | .irqs = { 40, 41, 43, 42 }, |
25 | }, { | 26 | }, { |
26 | .mapbase = 0xffc40000, | 27 | .mapbase = 0xffc40000, |
27 | .flags = UPF_BOOT_AUTOCONF, | 28 | .flags = UPF_BOOT_AUTOCONF, |
28 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 29 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
30 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
29 | .type = PORT_SCIF, | 31 | .type = PORT_SCIF, |
30 | .irqs = { 44, 45, 47, 46 }, | 32 | .irqs = { 44, 45, 47, 46 }, |
31 | }, { | 33 | }, { |
32 | .mapbase = 0xffc50000, | 34 | .mapbase = 0xffc50000, |
33 | .flags = UPF_BOOT_AUTOCONF, | 35 | .flags = UPF_BOOT_AUTOCONF, |
34 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 36 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
37 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
35 | .type = PORT_SCIF, | 38 | .type = PORT_SCIF, |
36 | .irqs = { 48, 49, 51, 50 }, | 39 | .irqs = { 48, 49, 51, 50 }, |
37 | }, { | 40 | }, { |
38 | .mapbase = 0xffc60000, | 41 | .mapbase = 0xffc60000, |
39 | .flags = UPF_BOOT_AUTOCONF, | 42 | .flags = UPF_BOOT_AUTOCONF, |
40 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 43 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
44 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
41 | .type = PORT_SCIF, | 45 | .type = PORT_SCIF, |
42 | .irqs = { 52, 53, 55, 54 }, | 46 | .irqs = { 52, 53, 55, 54 }, |
43 | }, { | 47 | }, { |
diff --git a/arch/sh/kernel/cpu/sh5/setup-sh5.c b/arch/sh/kernel/cpu/sh5/setup-sh5.c index 26fa10c560de..72aa86ec7446 100644 --- a/arch/sh/kernel/cpu/sh5/setup-sh5.c +++ b/arch/sh/kernel/cpu/sh5/setup-sh5.c | |||
@@ -21,6 +21,7 @@ static struct plat_sci_port sci_platform_data[] = { | |||
21 | .mapbase = PHYS_PERIPHERAL_BLOCK + 0x01030000, | 21 | .mapbase = PHYS_PERIPHERAL_BLOCK + 0x01030000, |
22 | .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP, | 22 | .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP, |
23 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, | 23 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, |
24 | .scbrr_algo_id = SCBRR_ALGO_2, | ||
24 | .type = PORT_SCIF, | 25 | .type = PORT_SCIF, |
25 | .irqs = { 39, 40, 42, 0 }, | 26 | .irqs = { 39, 40, 42, 0 }, |
26 | }, { | 27 | }, { |
diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c index 3a13e58e9c5d..386fb878680c 100644 --- a/drivers/serial/sh-sci.c +++ b/drivers/serial/sh-sci.c | |||
@@ -82,6 +82,9 @@ struct sci_port { | |||
82 | /* SCSCR initialization */ | 82 | /* SCSCR initialization */ |
83 | unsigned int scscr; | 83 | unsigned int scscr; |
84 | 84 | ||
85 | /* SCBRR calculation algo */ | ||
86 | unsigned int scbrr_algo_id; | ||
87 | |||
85 | #ifdef CONFIG_HAVE_CLK | 88 | #ifdef CONFIG_HAVE_CLK |
86 | /* Interface clock */ | 89 | /* Interface clock */ |
87 | struct clk *iclk; | 90 | struct clk *iclk; |
@@ -928,6 +931,27 @@ static void sci_shutdown(struct uart_port *port) | |||
928 | s->disable(port); | 931 | s->disable(port); |
929 | } | 932 | } |
930 | 933 | ||
934 | static unsigned int sci_scbrr_calc(unsigned int algo_id, unsigned int bps, | ||
935 | unsigned long freq) | ||
936 | { | ||
937 | switch (algo_id) { | ||
938 | case SCBRR_ALGO_1: | ||
939 | return ((freq + 16 * bps) / (16 * bps) - 1); | ||
940 | case SCBRR_ALGO_2: | ||
941 | return ((freq + 16 * bps) / (32 * bps) - 1); | ||
942 | case SCBRR_ALGO_3: | ||
943 | return (((freq * 2) + 16 * bps) / (16 * bps) - 1); | ||
944 | case SCBRR_ALGO_4: | ||
945 | return (((freq * 2) + 16 * bps) / (32 * bps) - 1); | ||
946 | case SCBRR_ALGO_5: | ||
947 | return (((freq * 1000 / 32) / bps) - 1); | ||
948 | } | ||
949 | |||
950 | /* Warn, but use a safe default */ | ||
951 | WARN_ON(1); | ||
952 | return ((freq + 16 * bps) / (32 * bps) - 1); | ||
953 | } | ||
954 | |||
931 | static void sci_set_termios(struct uart_port *port, struct ktermios *termios, | 955 | static void sci_set_termios(struct uart_port *port, struct ktermios *termios, |
932 | struct ktermios *old) | 956 | struct ktermios *old) |
933 | { | 957 | { |
@@ -937,7 +961,7 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios, | |||
937 | 961 | ||
938 | baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); | 962 | baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); |
939 | if (likely(baud)) | 963 | if (likely(baud)) |
940 | t = SCBRR_VALUE(baud, port->uartclk); | 964 | t = sci_scbrr_calc(s->scbrr_algo_id, baud, port->uartclk); |
941 | 965 | ||
942 | do { | 966 | do { |
943 | status = sci_in(port, SCxSR); | 967 | status = sci_in(port, SCxSR); |
@@ -1108,7 +1132,6 @@ static void __devinit sci_init_single(struct platform_device *dev, | |||
1108 | sci_port->type = sci_port->port.type = p->type; | 1132 | sci_port->type = sci_port->port.type = p->type; |
1109 | 1133 | ||
1110 | memcpy(&sci_port->irqs, &p->irqs, sizeof(p->irqs)); | 1134 | memcpy(&sci_port->irqs, &p->irqs, sizeof(p->irqs)); |
1111 | |||
1112 | } | 1135 | } |
1113 | 1136 | ||
1114 | #ifdef CONFIG_SERIAL_SH_SCI_CONSOLE | 1137 | #ifdef CONFIG_SERIAL_SH_SCI_CONSOLE |
diff --git a/drivers/serial/sh-sci.h b/drivers/serial/sh-sci.h index 4aa0ac8e67dd..81104777a0a6 100644 --- a/drivers/serial/sh-sci.h +++ b/drivers/serial/sh-sci.h | |||
@@ -713,59 +713,3 @@ static inline int sci_rxd_in(struct uart_port *port) | |||
713 | return 1; | 713 | return 1; |
714 | } | 714 | } |
715 | #endif | 715 | #endif |
716 | |||
717 | /* | ||
718 | * Values for the BitRate Register (SCBRR) | ||
719 | * | ||
720 | * The values are actually divisors for a frequency which can | ||
721 | * be internal to the SH3 (14.7456MHz) or derived from an external | ||
722 | * clock source. This driver assumes the internal clock is used; | ||
723 | * to support using an external clock source, config options or | ||
724 | * possibly command-line options would need to be added. | ||
725 | * | ||
726 | * Also, to support speeds below 2400 (why?) the lower 2 bits of | ||
727 | * the SCSMR register would also need to be set to non-zero values. | ||
728 | * | ||
729 | * -- Greg Banks 27Feb2000 | ||
730 | * | ||
731 | * Answer: The SCBRR register is only eight bits, and the value in | ||
732 | * it gets larger with lower baud rates. At around 2400 (depending on | ||
733 | * the peripherial module clock) you run out of bits. However the | ||
734 | * lower two bits of SCSMR allow the module clock to be divided down, | ||
735 | * scaling the value which is needed in SCBRR. | ||
736 | * | ||
737 | * -- Stuart Menefy - 23 May 2000 | ||
738 | * | ||
739 | * I meant, why would anyone bother with bitrates below 2400. | ||
740 | * | ||
741 | * -- Greg Banks - 7Jul2000 | ||
742 | * | ||
743 | * You "speedist"! How will I use my 110bps ASR-33 teletype with paper | ||
744 | * tape reader as a console! | ||
745 | * | ||
746 | * -- Mitch Davis - 15 Jul 2000 | ||
747 | */ | ||
748 | |||
749 | #if defined(CONFIG_CPU_SUBTYPE_SH7780) || \ | ||
750 | defined(CONFIG_CPU_SUBTYPE_SH7785) || \ | ||
751 | defined(CONFIG_CPU_SUBTYPE_SH7786) | ||
752 | #define SCBRR_VALUE(bps, clk) ((clk+16*bps)/(16*bps)-1) | ||
753 | #elif defined(CONFIG_CPU_SUBTYPE_SH7705) || \ | ||
754 | defined(CONFIG_CPU_SUBTYPE_SH7720) || \ | ||
755 | defined(CONFIG_CPU_SUBTYPE_SH7721) | ||
756 | #define SCBRR_VALUE(bps, clk) (((clk*2)+16*bps)/(32*bps)-1) | ||
757 | #elif defined(CONFIG_CPU_SUBTYPE_SH7723) ||\ | ||
758 | defined(CONFIG_CPU_SUBTYPE_SH7724) | ||
759 | static inline int scbrr_calc(struct uart_port *port, int bps, int clk) | ||
760 | { | ||
761 | if (port->type == PORT_SCIF) | ||
762 | return (clk+16*bps)/(32*bps)-1; | ||
763 | else | ||
764 | return ((clk*2)+16*bps)/(16*bps)-1; | ||
765 | } | ||
766 | #define SCBRR_VALUE(bps, clk) scbrr_calc(port, bps, clk) | ||
767 | #elif defined(__H8300H__) || defined(__H8300S__) | ||
768 | #define SCBRR_VALUE(bps, clk) (((clk*1000/32)/bps)-1) | ||
769 | #else /* Generic SH */ | ||
770 | #define SCBRR_VALUE(bps, clk) ((clk+16*bps)/(32*bps)-1) | ||
771 | #endif | ||
diff --git a/include/linux/serial_sci.h b/include/linux/serial_sci.h index f722a2275add..ff856b5bd276 100644 --- a/include/linux/serial_sci.h +++ b/include/linux/serial_sci.h | |||
@@ -7,6 +7,14 @@ | |||
7 | * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts) | 7 | * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts) |
8 | */ | 8 | */ |
9 | 9 | ||
10 | enum { | ||
11 | SCBRR_ALGO_1, /* ((clk + 16 * bps) / (16 * bps) - 1) */ | ||
12 | SCBRR_ALGO_2, /* ((clk + 16 * bps) / (32 * bps) - 1) */ | ||
13 | SCBRR_ALGO_3, /* (((clk * 2) + 16 * bps) / (16 * bps) - 1) */ | ||
14 | SCBRR_ALGO_4, /* (((clk * 2) + 16 * bps) / (32 * bps) - 1) */ | ||
15 | SCBRR_ALGO_5, /* (((clk * 1000 / 32) / bps) - 1) */ | ||
16 | }; | ||
17 | |||
10 | #define SCSCR_TIE (1 << 7) | 18 | #define SCSCR_TIE (1 << 7) |
11 | #define SCSCR_RIE (1 << 6) | 19 | #define SCSCR_RIE (1 << 6) |
12 | #define SCSCR_TE (1 << 5) | 20 | #define SCSCR_TE (1 << 5) |
@@ -36,6 +44,7 @@ struct plat_sci_port { | |||
36 | upf_t flags; /* UPF_* flags */ | 44 | upf_t flags; /* UPF_* flags */ |
37 | char *clk; /* clock string */ | 45 | char *clk; /* clock string */ |
38 | 46 | ||
47 | unsigned int scbrr_algo_id; /* SCBRR calculation algo */ | ||
39 | unsigned int scscr; /* SCSCR initialization */ | 48 | unsigned int scscr; /* SCSCR initialization */ |
40 | }; | 49 | }; |
41 | 50 | ||