diff options
Diffstat (limited to 'arch/arm/mach-omap1/io.c')
-rw-r--r-- | arch/arm/mach-omap1/io.c | 56 |
1 files changed, 25 insertions, 31 deletions
diff --git a/arch/arm/mach-omap1/io.c b/arch/arm/mach-omap1/io.c index 870886a29594..a16aab71922c 100644 --- a/arch/arm/mach-omap1/io.c +++ b/arch/arm/mach-omap1/io.c | |||
@@ -85,50 +85,44 @@ static struct map_desc omap16xx_io_desc[] __initdata = { | |||
85 | #endif | 85 | #endif |
86 | 86 | ||
87 | /* | 87 | /* |
88 | * Maps common IO regions for omap1. This should only get called from | 88 | * Maps common IO regions for omap1 |
89 | * board specific init. | ||
90 | */ | 89 | */ |
91 | void __init omap1_map_common_io(void) | 90 | static void __init omap1_map_common_io(void) |
92 | { | 91 | { |
93 | iotable_init(omap_io_desc, ARRAY_SIZE(omap_io_desc)); | 92 | iotable_init(omap_io_desc, ARRAY_SIZE(omap_io_desc)); |
94 | 93 | } | |
95 | /* Normally devicemaps_init() would flush caches and tlb after | ||
96 | * mdesc->map_io(), but we must also do it here because of the CPU | ||
97 | * revision check below. | ||
98 | */ | ||
99 | local_flush_tlb_all(); | ||
100 | flush_cache_all(); | ||
101 | |||
102 | /* We want to check CPU revision early for cpu_is_omapxxxx() macros. | ||
103 | * IO space mapping must be initialized before we can do that. | ||
104 | */ | ||
105 | omap_check_revision(); | ||
106 | 94 | ||
107 | #if defined (CONFIG_ARCH_OMAP730) || defined (CONFIG_ARCH_OMAP850) | 95 | #if defined (CONFIG_ARCH_OMAP730) || defined (CONFIG_ARCH_OMAP850) |
108 | if (cpu_is_omap7xx()) { | 96 | void __init omap7xx_map_io(void) |
109 | iotable_init(omap7xx_io_desc, ARRAY_SIZE(omap7xx_io_desc)); | 97 | { |
110 | } | 98 | omap1_map_common_io(); |
99 | iotable_init(omap7xx_io_desc, ARRAY_SIZE(omap7xx_io_desc)); | ||
100 | } | ||
111 | #endif | 101 | #endif |
102 | |||
112 | #ifdef CONFIG_ARCH_OMAP15XX | 103 | #ifdef CONFIG_ARCH_OMAP15XX |
113 | if (cpu_is_omap15xx()) { | 104 | void __init omap15xx_map_io(void) |
114 | iotable_init(omap1510_io_desc, ARRAY_SIZE(omap1510_io_desc)); | 105 | { |
115 | } | 106 | omap1_map_common_io(); |
116 | #endif | 107 | iotable_init(omap1510_io_desc, ARRAY_SIZE(omap1510_io_desc)); |
117 | #if defined(CONFIG_ARCH_OMAP16XX) | 108 | } |
118 | if (cpu_is_omap16xx()) { | ||
119 | iotable_init(omap16xx_io_desc, ARRAY_SIZE(omap16xx_io_desc)); | ||
120 | } | ||
121 | #endif | 109 | #endif |
122 | 110 | ||
123 | omap_sram_init(); | 111 | #if defined(CONFIG_ARCH_OMAP16XX) |
112 | void __init omap16xx_map_io(void) | ||
113 | { | ||
114 | omap1_map_common_io(); | ||
115 | iotable_init(omap16xx_io_desc, ARRAY_SIZE(omap16xx_io_desc)); | ||
124 | } | 116 | } |
117 | #endif | ||
125 | 118 | ||
126 | /* | 119 | /* |
127 | * Common low-level hardware init for omap1. This should only get called from | 120 | * Common low-level hardware init for omap1. |
128 | * board specific init. | ||
129 | */ | 121 | */ |
130 | void __init omap1_init_common_hw(void) | 122 | void omap1_init_early(void) |
131 | { | 123 | { |
124 | omap_check_revision(); | ||
125 | |||
132 | /* REVISIT: Refer to OMAP5910 Errata, Advisory SYS_1: "Timeout Abort | 126 | /* REVISIT: Refer to OMAP5910 Errata, Advisory SYS_1: "Timeout Abort |
133 | * on a Posted Write in the TIPB Bridge". | 127 | * on a Posted Write in the TIPB Bridge". |
134 | */ | 128 | */ |
@@ -138,8 +132,8 @@ void __init omap1_init_common_hw(void) | |||
138 | /* Must init clocks early to assure that timer interrupt works | 132 | /* Must init clocks early to assure that timer interrupt works |
139 | */ | 133 | */ |
140 | omap1_clk_init(); | 134 | omap1_clk_init(); |
141 | |||
142 | omap1_mux_init(); | 135 | omap1_mux_init(); |
136 | omap_sram_init(); | ||
143 | } | 137 | } |
144 | 138 | ||
145 | /* | 139 | /* |