aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap1/io.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap1/io.c')
-rw-r--r--arch/arm/mach-omap1/io.c56
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 */
91void __init omap1_map_common_io(void) 90static 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()) { 96void __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()) { 104void __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)
112void __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 */
130void __init omap1_init_common_hw(void) 122void 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/*