diff options
Diffstat (limited to 'arch/blackfin/mach-bf548/boards/ezkit.c')
-rw-r--r-- | arch/blackfin/mach-bf548/boards/ezkit.c | 206 |
1 files changed, 192 insertions, 14 deletions
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c index 60193f72777c..1ed026157737 100644 --- a/arch/blackfin/mach-bf548/boards/ezkit.c +++ b/arch/blackfin/mach-bf548/boards/ezkit.c | |||
@@ -232,44 +232,211 @@ static struct platform_device rtc_device = { | |||
232 | #endif | 232 | #endif |
233 | 233 | ||
234 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | 234 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) |
235 | static struct resource bfin_uart_resources[] = { | ||
236 | #ifdef CONFIG_SERIAL_BFIN_UART0 | 235 | #ifdef CONFIG_SERIAL_BFIN_UART0 |
236 | static struct resource bfin_uart0_resources[] = { | ||
237 | { | 237 | { |
238 | .start = 0xFFC00400, | 238 | .start = UART0_DLL, |
239 | .end = 0xFFC004FF, | 239 | .end = UART0_RBR+2, |
240 | .flags = IORESOURCE_MEM, | 240 | .flags = IORESOURCE_MEM, |
241 | }, | 241 | }, |
242 | { | ||
243 | .start = IRQ_UART0_RX, | ||
244 | .end = IRQ_UART0_RX+1, | ||
245 | .flags = IORESOURCE_IRQ, | ||
246 | }, | ||
247 | { | ||
248 | .start = IRQ_UART0_ERROR, | ||
249 | .end = IRQ_UART0_ERROR, | ||
250 | .flags = IORESOURCE_IRQ, | ||
251 | }, | ||
252 | { | ||
253 | .start = CH_UART0_TX, | ||
254 | .end = CH_UART0_TX, | ||
255 | .flags = IORESOURCE_DMA, | ||
256 | }, | ||
257 | { | ||
258 | .start = CH_UART0_RX, | ||
259 | .end = CH_UART0_RX, | ||
260 | .flags = IORESOURCE_DMA, | ||
261 | }, | ||
262 | }; | ||
263 | |||
264 | unsigned short bfin_uart0_peripherals[] = { | ||
265 | P_UART0_TX, P_UART0_RX, 0 | ||
266 | }; | ||
267 | |||
268 | static struct platform_device bfin_uart0_device = { | ||
269 | .name = "bfin-uart", | ||
270 | .id = 0, | ||
271 | .num_resources = ARRAY_SIZE(bfin_uart0_resources), | ||
272 | .resource = bfin_uart0_resources, | ||
273 | .dev = { | ||
274 | .platform_data = &bfin_uart0_peripherals, /* Passed to driver */ | ||
275 | }, | ||
276 | }; | ||
242 | #endif | 277 | #endif |
243 | #ifdef CONFIG_SERIAL_BFIN_UART1 | 278 | #ifdef CONFIG_SERIAL_BFIN_UART1 |
279 | static struct resource bfin_uart1_resources[] = { | ||
244 | { | 280 | { |
245 | .start = 0xFFC02000, | 281 | .start = UART1_DLL, |
246 | .end = 0xFFC020FF, | 282 | .end = UART1_RBR+2, |
247 | .flags = IORESOURCE_MEM, | 283 | .flags = IORESOURCE_MEM, |
248 | }, | 284 | }, |
285 | { | ||
286 | .start = IRQ_UART1_RX, | ||
287 | .end = IRQ_UART1_RX+1, | ||
288 | .flags = IORESOURCE_IRQ, | ||
289 | }, | ||
290 | { | ||
291 | .start = IRQ_UART1_ERROR, | ||
292 | .end = IRQ_UART1_ERROR, | ||
293 | .flags = IORESOURCE_IRQ, | ||
294 | }, | ||
295 | { | ||
296 | .start = CH_UART1_TX, | ||
297 | .end = CH_UART1_TX, | ||
298 | .flags = IORESOURCE_DMA, | ||
299 | }, | ||
300 | { | ||
301 | .start = CH_UART1_RX, | ||
302 | .end = CH_UART1_RX, | ||
303 | .flags = IORESOURCE_DMA, | ||
304 | }, | ||
305 | #ifdef CONFIG_BFIN_UART1_CTSRTS | ||
306 | { /* CTS pin -- 0 means not supported */ | ||
307 | .start = GPIO_PE10, | ||
308 | .end = GPIO_PE10, | ||
309 | .flags = IORESOURCE_IO, | ||
310 | }, | ||
311 | { /* RTS pin -- 0 means not supported */ | ||
312 | .start = GPIO_PE9, | ||
313 | .end = GPIO_PE9, | ||
314 | .flags = IORESOURCE_IO, | ||
315 | }, | ||
316 | #endif | ||
317 | }; | ||
318 | |||
319 | unsigned short bfin_uart1_peripherals[] = { | ||
320 | P_UART1_TX, P_UART1_RX, | ||
321 | #ifdef CONFIG_BFIN_UART1_CTSRTS | ||
322 | P_UART1_RTS, P_UART1_CTS, | ||
323 | #endif | ||
324 | 0 | ||
325 | }; | ||
326 | |||
327 | static struct platform_device bfin_uart1_device = { | ||
328 | .name = "bfin-uart", | ||
329 | .id = 1, | ||
330 | .num_resources = ARRAY_SIZE(bfin_uart1_resources), | ||
331 | .resource = bfin_uart1_resources, | ||
332 | .dev = { | ||
333 | .platform_data = &bfin_uart1_peripherals, /* Passed to driver */ | ||
334 | }, | ||
335 | }; | ||
249 | #endif | 336 | #endif |
250 | #ifdef CONFIG_SERIAL_BFIN_UART2 | 337 | #ifdef CONFIG_SERIAL_BFIN_UART2 |
338 | static struct resource bfin_uart2_resources[] = { | ||
251 | { | 339 | { |
252 | .start = 0xFFC02100, | 340 | .start = UART2_DLL, |
253 | .end = 0xFFC021FF, | 341 | .end = UART2_RBR+2, |
254 | .flags = IORESOURCE_MEM, | 342 | .flags = IORESOURCE_MEM, |
255 | }, | 343 | }, |
344 | { | ||
345 | .start = IRQ_UART2_RX, | ||
346 | .end = IRQ_UART2_RX+1, | ||
347 | .flags = IORESOURCE_IRQ, | ||
348 | }, | ||
349 | { | ||
350 | .start = IRQ_UART2_ERROR, | ||
351 | .end = IRQ_UART2_ERROR, | ||
352 | .flags = IORESOURCE_IRQ, | ||
353 | }, | ||
354 | { | ||
355 | .start = CH_UART2_TX, | ||
356 | .end = CH_UART2_TX, | ||
357 | .flags = IORESOURCE_DMA, | ||
358 | }, | ||
359 | { | ||
360 | .start = CH_UART2_RX, | ||
361 | .end = CH_UART2_RX, | ||
362 | .flags = IORESOURCE_DMA, | ||
363 | }, | ||
364 | }; | ||
365 | |||
366 | unsigned short bfin_uart2_peripherals[] = { | ||
367 | P_UART2_TX, P_UART2_RX, 0 | ||
368 | }; | ||
369 | |||
370 | static struct platform_device bfin_uart2_device = { | ||
371 | .name = "bfin-uart", | ||
372 | .id = 2, | ||
373 | .num_resources = ARRAY_SIZE(bfin_uart2_resources), | ||
374 | .resource = bfin_uart2_resources, | ||
375 | .dev = { | ||
376 | .platform_data = &bfin_uart2_peripherals, /* Passed to driver */ | ||
377 | }, | ||
378 | }; | ||
256 | #endif | 379 | #endif |
257 | #ifdef CONFIG_SERIAL_BFIN_UART3 | 380 | #ifdef CONFIG_SERIAL_BFIN_UART3 |
381 | static struct resource bfin_uart3_resources[] = { | ||
258 | { | 382 | { |
259 | .start = 0xFFC03100, | 383 | .start = UART3_DLL, |
260 | .end = 0xFFC031FF, | 384 | .end = UART3_RBR+2, |
261 | .flags = IORESOURCE_MEM, | 385 | .flags = IORESOURCE_MEM, |
262 | }, | 386 | }, |
387 | { | ||
388 | .start = IRQ_UART3_RX, | ||
389 | .end = IRQ_UART3_RX+1, | ||
390 | .flags = IORESOURCE_IRQ, | ||
391 | }, | ||
392 | { | ||
393 | .start = IRQ_UART3_ERROR, | ||
394 | .end = IRQ_UART3_ERROR, | ||
395 | .flags = IORESOURCE_IRQ, | ||
396 | }, | ||
397 | { | ||
398 | .start = CH_UART3_TX, | ||
399 | .end = CH_UART3_TX, | ||
400 | .flags = IORESOURCE_DMA, | ||
401 | }, | ||
402 | { | ||
403 | .start = CH_UART3_RX, | ||
404 | .end = CH_UART3_RX, | ||
405 | .flags = IORESOURCE_DMA, | ||
406 | }, | ||
407 | #ifdef CONFIG_BFIN_UART3_CTSRTS | ||
408 | { /* CTS pin -- 0 means not supported */ | ||
409 | .start = GPIO_PB3, | ||
410 | .end = GPIO_PB3, | ||
411 | .flags = IORESOURCE_IO, | ||
412 | }, | ||
413 | { /* RTS pin -- 0 means not supported */ | ||
414 | .start = GPIO_PB2, | ||
415 | .end = GPIO_PB2, | ||
416 | .flags = IORESOURCE_IO, | ||
417 | }, | ||
263 | #endif | 418 | #endif |
264 | }; | 419 | }; |
265 | 420 | ||
266 | static struct platform_device bfin_uart_device = { | 421 | unsigned short bfin_uart3_peripherals[] = { |
422 | P_UART3_TX, P_UART3_RX, | ||
423 | #ifdef CONFIG_BFIN_UART3_CTSRTS | ||
424 | P_UART3_RTS, P_UART3_CTS, | ||
425 | #endif | ||
426 | 0 | ||
427 | }; | ||
428 | |||
429 | static struct platform_device bfin_uart3_device = { | ||
267 | .name = "bfin-uart", | 430 | .name = "bfin-uart", |
268 | .id = 1, | 431 | .id = 3, |
269 | .num_resources = ARRAY_SIZE(bfin_uart_resources), | 432 | .num_resources = ARRAY_SIZE(bfin_uart3_resources), |
270 | .resource = bfin_uart_resources, | 433 | .resource = bfin_uart3_resources, |
434 | .dev = { | ||
435 | .platform_data = &bfin_uart3_peripherals, /* Passed to driver */ | ||
436 | }, | ||
271 | }; | 437 | }; |
272 | #endif | 438 | #endif |
439 | #endif | ||
273 | 440 | ||
274 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | 441 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) |
275 | #ifdef CONFIG_BFIN_SIR0 | 442 | #ifdef CONFIG_BFIN_SIR0 |
@@ -960,7 +1127,18 @@ static struct platform_device *ezkit_devices[] __initdata = { | |||
960 | #endif | 1127 | #endif |
961 | 1128 | ||
962 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | 1129 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) |
963 | &bfin_uart_device, | 1130 | #ifdef CONFIG_SERIAL_BFIN_UART0 |
1131 | &bfin_uart0_device, | ||
1132 | #endif | ||
1133 | #ifdef CONFIG_SERIAL_BFIN_UART1 | ||
1134 | &bfin_uart1_device, | ||
1135 | #endif | ||
1136 | #ifdef CONFIG_SERIAL_BFIN_UART2 | ||
1137 | &bfin_uart2_device, | ||
1138 | #endif | ||
1139 | #ifdef CONFIG_SERIAL_BFIN_UART3 | ||
1140 | &bfin_uart3_device, | ||
1141 | #endif | ||
964 | #endif | 1142 | #endif |
965 | 1143 | ||
966 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | 1144 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) |