diff options
author | Sonic Zhang <sonic.zhang@analog.com> | 2009-09-09 06:46:19 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2010-03-09 00:30:45 -0500 |
commit | 6bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5 (patch) | |
tree | 87019fd6c4fb46bc64d6f0ddaaac32179a6af7e6 /arch/blackfin/mach-bf527/boards/ezbrd.c | |
parent | 57d54889cd00db2752994b389ba714138652e60c (diff) |
Blackfin: move on-chip UART resources to boards files
Rather than keeping the pins in the actual driver and worrying about a
mess of Kconfig options, declare all the desired pin resources in the
boards file. This lets people easily select the specific pins/ports for
the normal UART as well as GPIOs for CTS/RTS.
Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/mach-bf527/boards/ezbrd.c')
-rw-r--r-- | arch/blackfin/mach-bf527/boards/ezbrd.c | 98 |
1 files changed, 89 insertions, 9 deletions
diff --git a/arch/blackfin/mach-bf527/boards/ezbrd.c b/arch/blackfin/mach-bf527/boards/ezbrd.c index cad23b15d83c..3a981e855668 100644 --- a/arch/blackfin/mach-bf527/boards/ezbrd.c +++ b/arch/blackfin/mach-bf527/boards/ezbrd.c | |||
@@ -439,30 +439,105 @@ static struct platform_device bfin_spi0_device = { | |||
439 | #endif /* spi master and devices */ | 439 | #endif /* spi master and devices */ |
440 | 440 | ||
441 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | 441 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) |
442 | static struct resource bfin_uart_resources[] = { | ||
443 | #ifdef CONFIG_SERIAL_BFIN_UART0 | 442 | #ifdef CONFIG_SERIAL_BFIN_UART0 |
443 | static struct resource bfin_uart0_resources[] = { | ||
444 | { | 444 | { |
445 | .start = 0xFFC00400, | 445 | .start = UART0_THR, |
446 | .end = 0xFFC004FF, | 446 | .end = UART0_GCTL+2, |
447 | .flags = IORESOURCE_MEM, | 447 | .flags = IORESOURCE_MEM, |
448 | }, | 448 | }, |
449 | { | ||
450 | .start = IRQ_UART0_RX, | ||
451 | .end = IRQ_UART0_RX+1, | ||
452 | .flags = IORESOURCE_IRQ, | ||
453 | }, | ||
454 | { | ||
455 | .start = IRQ_UART0_ERROR, | ||
456 | .end = IRQ_UART0_ERROR, | ||
457 | .flags = IORESOURCE_IRQ, | ||
458 | }, | ||
459 | { | ||
460 | .start = CH_UART0_TX, | ||
461 | .end = CH_UART0_TX, | ||
462 | .flags = IORESOURCE_DMA, | ||
463 | }, | ||
464 | { | ||
465 | .start = CH_UART0_RX, | ||
466 | .end = CH_UART0_RX, | ||
467 | .flags = IORESOURCE_DMA, | ||
468 | }, | ||
469 | }; | ||
470 | |||
471 | unsigned short bfin_uart0_peripherals[] = { | ||
472 | P_UART0_TX, P_UART0_RX, 0 | ||
473 | }; | ||
474 | |||
475 | static struct platform_device bfin_uart0_device = { | ||
476 | .name = "bfin-uart", | ||
477 | .id = 0, | ||
478 | .num_resources = ARRAY_SIZE(bfin_uart0_resources), | ||
479 | .resource = bfin_uart0_resources, | ||
480 | .dev = { | ||
481 | .platform_data = &bfin_uart0_peripherals, /* Passed to driver */ | ||
482 | }, | ||
483 | }; | ||
449 | #endif | 484 | #endif |
450 | #ifdef CONFIG_SERIAL_BFIN_UART1 | 485 | #ifdef CONFIG_SERIAL_BFIN_UART1 |
486 | static struct resource bfin_uart1_resources[] = { | ||
451 | { | 487 | { |
452 | .start = 0xFFC02000, | 488 | .start = UART1_THR, |
453 | .end = 0xFFC020FF, | 489 | .end = UART1_GCTL+2, |
454 | .flags = IORESOURCE_MEM, | 490 | .flags = IORESOURCE_MEM, |
455 | }, | 491 | }, |
492 | { | ||
493 | .start = IRQ_UART1_RX, | ||
494 | .end = IRQ_UART1_RX+1, | ||
495 | .flags = IORESOURCE_IRQ, | ||
496 | }, | ||
497 | { | ||
498 | .start = IRQ_UART1_ERROR, | ||
499 | .end = IRQ_UART1_ERROR, | ||
500 | .flags = IORESOURCE_IRQ, | ||
501 | }, | ||
502 | { | ||
503 | .start = CH_UART1_TX, | ||
504 | .end = CH_UART1_TX, | ||
505 | .flags = IORESOURCE_DMA, | ||
506 | }, | ||
507 | { | ||
508 | .start = CH_UART1_RX, | ||
509 | .end = CH_UART1_RX, | ||
510 | .flags = IORESOURCE_DMA, | ||
511 | }, | ||
512 | #ifdef CONFIG_BFIN_UART1_CTSRTS | ||
513 | { /* CTS pin */ | ||
514 | .start = GPIO_PG0, | ||
515 | .end = GPIO_PG0, | ||
516 | .flags = IORESOURCE_IO, | ||
517 | }, | ||
518 | { /* RTS pin */ | ||
519 | .start = GPIO_PF10, | ||
520 | .end = GPIO_PF10, | ||
521 | .flags = IORESOURCE_IO, | ||
522 | }, | ||
456 | #endif | 523 | #endif |
457 | }; | 524 | }; |
458 | 525 | ||
459 | static struct platform_device bfin_uart_device = { | 526 | unsigned short bfin_uart1_peripherals[] = { |
527 | P_UART1_TX, P_UART1_RX, 0 | ||
528 | }; | ||
529 | |||
530 | static struct platform_device bfin_uart1_device = { | ||
460 | .name = "bfin-uart", | 531 | .name = "bfin-uart", |
461 | .id = 1, | 532 | .id = 1, |
462 | .num_resources = ARRAY_SIZE(bfin_uart_resources), | 533 | .num_resources = ARRAY_SIZE(bfin_uart1_resources), |
463 | .resource = bfin_uart_resources, | 534 | .resource = bfin_uart1_resources, |
535 | .dev = { | ||
536 | .platform_data = &bfin_uart1_peripherals, /* Passed to driver */ | ||
537 | }, | ||
464 | }; | 538 | }; |
465 | #endif | 539 | #endif |
540 | #endif | ||
466 | 541 | ||
467 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | 542 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) |
468 | #ifdef CONFIG_BFIN_SIR0 | 543 | #ifdef CONFIG_BFIN_SIR0 |
@@ -665,7 +740,12 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
665 | #endif | 740 | #endif |
666 | 741 | ||
667 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | 742 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) |
668 | &bfin_uart_device, | 743 | #ifdef CONFIG_SERIAL_BFIN_UART0 |
744 | &bfin_uart0_device, | ||
745 | #endif | ||
746 | #ifdef CONFIG_SERIAL_BFIN_UART1 | ||
747 | &bfin_uart1_device, | ||
748 | #endif | ||
669 | #endif | 749 | #endif |
670 | 750 | ||
671 | #if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE) | 751 | #if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE) |