diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-at91rm9200/devices.c | 1 | ||||
-rw-r--r-- | arch/avr32/mach-at32ap/at32ap7000.c | 33 |
2 files changed, 28 insertions, 6 deletions
diff --git a/arch/arm/mach-at91rm9200/devices.c b/arch/arm/mach-at91rm9200/devices.c index 5a3919f09d4d..059824376629 100644 --- a/arch/arm/mach-at91rm9200/devices.c +++ b/arch/arm/mach-at91rm9200/devices.c | |||
@@ -561,6 +561,7 @@ static struct resource dbgu_resources[] = { | |||
561 | static struct atmel_uart_data dbgu_data = { | 561 | static struct atmel_uart_data dbgu_data = { |
562 | .use_dma_tx = 0, | 562 | .use_dma_tx = 0, |
563 | .use_dma_rx = 0, /* DBGU not capable of receive DMA */ | 563 | .use_dma_rx = 0, /* DBGU not capable of receive DMA */ |
564 | .regs = (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU), | ||
564 | }; | 565 | }; |
565 | 566 | ||
566 | static struct platform_device at91rm9200_dbgu_device = { | 567 | static struct platform_device at91rm9200_dbgu_device = { |
diff --git a/arch/avr32/mach-at32ap/at32ap7000.c b/arch/avr32/mach-at32ap/at32ap7000.c index 05d1296bd7b2..3dd305875087 100644 --- a/arch/avr32/mach-at32ap/at32ap7000.c +++ b/arch/avr32/mach-at32ap/at32ap7000.c | |||
@@ -523,32 +523,48 @@ void __init at32_add_system_devices(void) | |||
523 | * USART | 523 | * USART |
524 | * -------------------------------------------------------------------- */ | 524 | * -------------------------------------------------------------------- */ |
525 | 525 | ||
526 | static struct atmel_uart_data atmel_usart0_data = { | ||
527 | .use_dma_tx = 1, | ||
528 | .use_dma_rx = 1, | ||
529 | }; | ||
526 | static struct resource atmel_usart0_resource[] = { | 530 | static struct resource atmel_usart0_resource[] = { |
527 | PBMEM(0xffe00c00), | 531 | PBMEM(0xffe00c00), |
528 | IRQ(7), | 532 | IRQ(7), |
529 | }; | 533 | }; |
530 | DEFINE_DEV(atmel_usart, 0); | 534 | DEFINE_DEV_DATA(atmel_usart, 0); |
531 | DEV_CLK(usart, atmel_usart0, pba, 4); | 535 | DEV_CLK(usart, atmel_usart0, pba, 4); |
532 | 536 | ||
537 | static struct atmel_uart_data atmel_usart1_data = { | ||
538 | .use_dma_tx = 1, | ||
539 | .use_dma_rx = 1, | ||
540 | }; | ||
533 | static struct resource atmel_usart1_resource[] = { | 541 | static struct resource atmel_usart1_resource[] = { |
534 | PBMEM(0xffe01000), | 542 | PBMEM(0xffe01000), |
535 | IRQ(7), | 543 | IRQ(7), |
536 | }; | 544 | }; |
537 | DEFINE_DEV(atmel_usart, 1); | 545 | DEFINE_DEV_DATA(atmel_usart, 1); |
538 | DEV_CLK(usart, atmel_usart1, pba, 4); | 546 | DEV_CLK(usart, atmel_usart1, pba, 4); |
539 | 547 | ||
548 | static struct atmel_uart_data atmel_usart2_data = { | ||
549 | .use_dma_tx = 1, | ||
550 | .use_dma_rx = 1, | ||
551 | }; | ||
540 | static struct resource atmel_usart2_resource[] = { | 552 | static struct resource atmel_usart2_resource[] = { |
541 | PBMEM(0xffe01400), | 553 | PBMEM(0xffe01400), |
542 | IRQ(8), | 554 | IRQ(8), |
543 | }; | 555 | }; |
544 | DEFINE_DEV(atmel_usart, 2); | 556 | DEFINE_DEV_DATA(atmel_usart, 2); |
545 | DEV_CLK(usart, atmel_usart2, pba, 5); | 557 | DEV_CLK(usart, atmel_usart2, pba, 5); |
546 | 558 | ||
559 | static struct atmel_uart_data atmel_usart3_data = { | ||
560 | .use_dma_tx = 1, | ||
561 | .use_dma_rx = 1, | ||
562 | }; | ||
547 | static struct resource atmel_usart3_resource[] = { | 563 | static struct resource atmel_usart3_resource[] = { |
548 | PBMEM(0xffe01800), | 564 | PBMEM(0xffe01800), |
549 | IRQ(9), | 565 | IRQ(9), |
550 | }; | 566 | }; |
551 | DEFINE_DEV(atmel_usart, 3); | 567 | DEFINE_DEV_DATA(atmel_usart, 3); |
552 | DEV_CLK(usart, atmel_usart3, pba, 6); | 568 | DEV_CLK(usart, atmel_usart3, pba, 6); |
553 | 569 | ||
554 | static inline void configure_usart0_pins(void) | 570 | static inline void configure_usart0_pins(void) |
@@ -597,8 +613,13 @@ static struct platform_device *setup_usart(unsigned int id) | |||
597 | configure_usart3_pins(); | 613 | configure_usart3_pins(); |
598 | break; | 614 | break; |
599 | default: | 615 | default: |
600 | pdev = NULL; | 616 | return NULL; |
601 | break; | 617 | } |
618 | |||
619 | if (PXSEG(pdev->resource[0].start) == P4SEG) { | ||
620 | /* Addresses in the P4 segment are permanently mapped 1:1 */ | ||
621 | struct atmel_uart_data *data = pdev->dev.platform_data; | ||
622 | data->regs = (void __iomem *)pdev->resource[0].start; | ||
602 | } | 623 | } |
603 | 624 | ||
604 | return pdev; | 625 | return pdev; |