diff options
Diffstat (limited to 'arch/arm/mach-shmobile/setup-sh7372.c')
-rw-r--r-- | arch/arm/mach-shmobile/setup-sh7372.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/setup-sh7372.c b/arch/arm/mach-shmobile/setup-sh7372.c index 6fcf304d3cdf..4e818b7de781 100644 --- a/arch/arm/mach-shmobile/setup-sh7372.c +++ b/arch/arm/mach-shmobile/setup-sh7372.c | |||
@@ -31,10 +31,37 @@ | |||
31 | #include <linux/sh_intc.h> | 31 | #include <linux/sh_intc.h> |
32 | #include <linux/sh_timer.h> | 32 | #include <linux/sh_timer.h> |
33 | #include <linux/pm_domain.h> | 33 | #include <linux/pm_domain.h> |
34 | #include <linux/dma-mapping.h> | ||
34 | #include <mach/hardware.h> | 35 | #include <mach/hardware.h> |
35 | #include <mach/sh7372.h> | 36 | #include <mach/sh7372.h> |
37 | #include <mach/common.h> | ||
38 | #include <asm/mach/map.h> | ||
36 | #include <asm/mach-types.h> | 39 | #include <asm/mach-types.h> |
37 | #include <asm/mach/arch.h> | 40 | #include <asm/mach/arch.h> |
41 | #include <asm/mach/time.h> | ||
42 | |||
43 | static struct map_desc sh7372_io_desc[] __initdata = { | ||
44 | /* create a 1:1 entity map for 0xe6xxxxxx | ||
45 | * used by CPGA, INTC and PFC. | ||
46 | */ | ||
47 | { | ||
48 | .virtual = 0xe6000000, | ||
49 | .pfn = __phys_to_pfn(0xe6000000), | ||
50 | .length = 256 << 20, | ||
51 | .type = MT_DEVICE_NONSHARED | ||
52 | }, | ||
53 | }; | ||
54 | |||
55 | void __init sh7372_map_io(void) | ||
56 | { | ||
57 | iotable_init(sh7372_io_desc, ARRAY_SIZE(sh7372_io_desc)); | ||
58 | |||
59 | /* | ||
60 | * DMA memory at 0xff200000 - 0xffdfffff. The default 2MB size isn't | ||
61 | * enough to allocate the frame buffer memory. | ||
62 | */ | ||
63 | init_consistent_dma_size(12 << 20); | ||
64 | } | ||
38 | 65 | ||
39 | /* SCIFA0 */ | 66 | /* SCIFA0 */ |
40 | static struct plat_sci_port scif0_platform_data = { | 67 | static struct plat_sci_port scif0_platform_data = { |
@@ -662,6 +689,7 @@ static struct sh_dmae_pdata usb_dma0_platform_data = { | |||
662 | .dmaor_is_32bit = 1, | 689 | .dmaor_is_32bit = 1, |
663 | .needs_tend_set = 1, | 690 | .needs_tend_set = 1, |
664 | .no_dmars = 1, | 691 | .no_dmars = 1, |
692 | .slave_only = 1, | ||
665 | }; | 693 | }; |
666 | 694 | ||
667 | static struct resource sh7372_usb_dmae0_resources[] = { | 695 | static struct resource sh7372_usb_dmae0_resources[] = { |
@@ -723,6 +751,7 @@ static struct sh_dmae_pdata usb_dma1_platform_data = { | |||
723 | .dmaor_is_32bit = 1, | 751 | .dmaor_is_32bit = 1, |
724 | .needs_tend_set = 1, | 752 | .needs_tend_set = 1, |
725 | .no_dmars = 1, | 753 | .no_dmars = 1, |
754 | .slave_only = 1, | ||
726 | }; | 755 | }; |
727 | 756 | ||
728 | static struct resource sh7372_usb_dmae1_resources[] = { | 757 | static struct resource sh7372_usb_dmae1_resources[] = { |
@@ -1041,10 +1070,24 @@ void __init sh7372_add_standard_devices(void) | |||
1041 | sh7372_add_device_to_domain(&sh7372_a4r, &veu2_device); | 1070 | sh7372_add_device_to_domain(&sh7372_a4r, &veu2_device); |
1042 | sh7372_add_device_to_domain(&sh7372_a4r, &veu3_device); | 1071 | sh7372_add_device_to_domain(&sh7372_a4r, &veu3_device); |
1043 | sh7372_add_device_to_domain(&sh7372_a4r, &jpu_device); | 1072 | sh7372_add_device_to_domain(&sh7372_a4r, &jpu_device); |
1073 | sh7372_add_device_to_domain(&sh7372_a4r, &tmu00_device); | ||
1074 | sh7372_add_device_to_domain(&sh7372_a4r, &tmu01_device); | ||
1075 | } | ||
1076 | |||
1077 | static void __init sh7372_earlytimer_init(void) | ||
1078 | { | ||
1079 | sh7372_clock_init(); | ||
1080 | shmobile_earlytimer_init(); | ||
1044 | } | 1081 | } |
1045 | 1082 | ||
1046 | void __init sh7372_add_early_devices(void) | 1083 | void __init sh7372_add_early_devices(void) |
1047 | { | 1084 | { |
1048 | early_platform_add_devices(sh7372_early_devices, | 1085 | early_platform_add_devices(sh7372_early_devices, |
1049 | ARRAY_SIZE(sh7372_early_devices)); | 1086 | ARRAY_SIZE(sh7372_early_devices)); |
1087 | |||
1088 | /* setup early console here as well */ | ||
1089 | shmobile_setup_console(); | ||
1090 | |||
1091 | /* override timer setup with soc-specific code */ | ||
1092 | shmobile_timer.init = sh7372_earlytimer_init; | ||
1050 | } | 1093 | } |