Commit 741e3a89 authored by Tony Lindgren's avatar Tony Lindgren

omap: Use separate init_irq functions to avoid cpu_is_omap tests early

This allows us to remove cpu_is_omap calls from init_irq functions.
There should not be any need for cpu_is_omap calls as at this point.
During the timer init we only care about SoC generation, and not about
subrevisions.

The main reason for the patch is that we want to initialize only
minimal omap specific code from the init_early call.
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
Reviewed-by: default avatarKevin Hilman <khilman@ti.com>
parent 2c53b436
...@@ -138,7 +138,7 @@ void ams_delta_latch2_write(u16 mask, u16 value) ...@@ -138,7 +138,7 @@ void ams_delta_latch2_write(u16 mask, u16 value)
static void __init ams_delta_init_irq(void) static void __init ams_delta_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap1_init_irq();
} }
static struct map_desc ams_delta_io_desc[] __initdata = { static struct map_desc ams_delta_io_desc[] __initdata = {
......
...@@ -329,7 +329,7 @@ static void __init omap_fsample_init(void) ...@@ -329,7 +329,7 @@ static void __init omap_fsample_init(void)
static void __init omap_fsample_init_irq(void) static void __init omap_fsample_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap1_init_irq();
} }
/* Only FPGA needs to be mapped here. All others are done with ioremap */ /* Only FPGA needs to be mapped here. All others are done with ioremap */
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
static void __init omap_generic_init_irq(void) static void __init omap_generic_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap1_init_irq();
} }
/* assume no Mini-AB port */ /* assume no Mini-AB port */
......
...@@ -376,7 +376,7 @@ static struct i2c_board_info __initdata h2_i2c_board_info[] = { ...@@ -376,7 +376,7 @@ static struct i2c_board_info __initdata h2_i2c_board_info[] = {
static void __init h2_init_irq(void) static void __init h2_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap1_init_irq();
} }
static struct omap_usb_config h2_usb_config __initdata = { static struct omap_usb_config h2_usb_config __initdata = {
......
...@@ -439,7 +439,7 @@ static void __init h3_init(void) ...@@ -439,7 +439,7 @@ static void __init h3_init(void)
static void __init h3_init_irq(void) static void __init h3_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap1_init_irq();
} }
static void __init h3_map_io(void) static void __init h3_map_io(void)
......
...@@ -605,7 +605,7 @@ static void __init htcherald_init_irq(void) ...@@ -605,7 +605,7 @@ static void __init htcherald_init_irq(void)
{ {
printk(KERN_INFO "htcherald_init_irq.\n"); printk(KERN_INFO "htcherald_init_irq.\n");
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap1_init_irq();
} }
MACHINE_START(HERALD, "HTC Herald") MACHINE_START(HERALD, "HTC Herald")
......
...@@ -292,7 +292,7 @@ static void __init innovator_init_smc91x(void) ...@@ -292,7 +292,7 @@ static void __init innovator_init_smc91x(void)
static void __init innovator_init_irq(void) static void __init innovator_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap1_init_irq();
} }
#ifdef CONFIG_ARCH_OMAP15XX #ifdef CONFIG_ARCH_OMAP15XX
......
...@@ -51,7 +51,7 @@ static void __init omap_nokia770_init_irq(void) ...@@ -51,7 +51,7 @@ static void __init omap_nokia770_init_irq(void)
omap_writew((omap_readw(0xfffb5004) & ~2), 0xfffb5004); omap_writew((omap_readw(0xfffb5004) & ~2), 0xfffb5004);
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap1_init_irq();
} }
static const unsigned int nokia770_keymap[] = { static const unsigned int nokia770_keymap[] = {
......
...@@ -282,7 +282,7 @@ static void __init osk_init_cf(void) ...@@ -282,7 +282,7 @@ static void __init osk_init_cf(void)
static void __init osk_init_irq(void) static void __init osk_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap1_init_irq();
} }
static struct omap_usb_config osk_usb_config __initdata = { static struct omap_usb_config osk_usb_config __initdata = {
......
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
static void __init omap_palmte_init_irq(void) static void __init omap_palmte_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap1_init_irq();
} }
static const unsigned int palmte_keymap[] = { static const unsigned int palmte_keymap[] = {
......
...@@ -266,7 +266,7 @@ static struct spi_board_info __initdata palmtt_boardinfo[] = { ...@@ -266,7 +266,7 @@ static struct spi_board_info __initdata palmtt_boardinfo[] = {
static void __init omap_palmtt_init_irq(void) static void __init omap_palmtt_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap1_init_irq();
} }
static struct omap_usb_config palmtt_usb_config __initdata = { static struct omap_usb_config palmtt_usb_config __initdata = {
......
...@@ -61,7 +61,7 @@ static void __init ...@@ -61,7 +61,7 @@ static void __init
omap_palmz71_init_irq(void) omap_palmz71_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap1_init_irq();
} }
static const unsigned int palmz71_keymap[] = { static const unsigned int palmz71_keymap[] = {
......
...@@ -297,7 +297,7 @@ static void __init omap_perseus2_init(void) ...@@ -297,7 +297,7 @@ static void __init omap_perseus2_init(void)
static void __init omap_perseus2_init_irq(void) static void __init omap_perseus2_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap1_init_irq();
} }
/* Only FPGA needs to be mapped here. All others are done with ioremap */ /* Only FPGA needs to be mapped here. All others are done with ioremap */
static struct map_desc omap_perseus2_io_desc[] __initdata = { static struct map_desc omap_perseus2_io_desc[] __initdata = {
......
...@@ -411,7 +411,7 @@ static void __init omap_sx1_init(void) ...@@ -411,7 +411,7 @@ static void __init omap_sx1_init(void)
static void __init omap_sx1_init_irq(void) static void __init omap_sx1_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap1_init_irq();
} }
/*----------------------------------------*/ /*----------------------------------------*/
......
...@@ -162,7 +162,7 @@ static struct omap_board_config_kernel voiceblue_config[] = { ...@@ -162,7 +162,7 @@ static struct omap_board_config_kernel voiceblue_config[] = {
static void __init voiceblue_init_irq(void) static void __init voiceblue_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap1_init_irq();
} }
static void __init voiceblue_map_io(void) static void __init voiceblue_map_io(void)
......
...@@ -175,7 +175,7 @@ static struct irq_chip omap_irq_chip = { ...@@ -175,7 +175,7 @@ static struct irq_chip omap_irq_chip = {
.irq_set_wake = omap_wake_irq, .irq_set_wake = omap_wake_irq,
}; };
void __init omap_init_irq(void) void __init omap1_init_irq(void)
{ {
int i, j; int i, j;
......
...@@ -260,7 +260,7 @@ MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board") ...@@ -260,7 +260,7 @@ MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = omap_2430sdp_map_io, .map_io = omap_2430sdp_map_io,
.init_early = omap_2430sdp_init_early, .init_early = omap_2430sdp_init_early,
.init_irq = omap_init_irq, .init_irq = omap2_init_irq,
.init_machine = omap_2430sdp_init, .init_machine = omap_2430sdp_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -804,7 +804,7 @@ MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board") ...@@ -804,7 +804,7 @@ MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = omap3_map_io, .map_io = omap3_map_io,
.init_early = omap_3430sdp_init_early, .init_early = omap_3430sdp_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = omap_3430sdp_init, .init_machine = omap_3430sdp_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -219,7 +219,7 @@ MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP board") ...@@ -219,7 +219,7 @@ MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP board")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = omap3_map_io, .map_io = omap3_map_io,
.init_early = omap_sdp_init_early, .init_early = omap_sdp_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = omap_sdp_init, .init_machine = omap_sdp_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -104,7 +104,7 @@ MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD") ...@@ -104,7 +104,7 @@ MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = omap3_map_io, .map_io = omap3_map_io,
.init_early = am3517_crane_init_early, .init_early = am3517_crane_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = am3517_crane_init, .init_machine = am3517_crane_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -494,7 +494,7 @@ MACHINE_START(OMAP3517EVM, "OMAP3517/AM3517 EVM") ...@@ -494,7 +494,7 @@ MACHINE_START(OMAP3517EVM, "OMAP3517/AM3517 EVM")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = omap3_map_io, .map_io = omap3_map_io,
.init_early = am3517_evm_init_early, .init_early = am3517_evm_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = am3517_evm_init, .init_machine = am3517_evm_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -354,7 +354,7 @@ MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon") ...@@ -354,7 +354,7 @@ MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = omap_apollon_map_io, .map_io = omap_apollon_map_io,
.init_early = omap_apollon_init_early, .init_early = omap_apollon_init_early,
.init_irq = omap_init_irq, .init_irq = omap2_init_irq,
.init_machine = omap_apollon_init, .init_machine = omap_apollon_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -646,7 +646,7 @@ MACHINE_START(CM_T35, "Compulab CM-T35") ...@@ -646,7 +646,7 @@ MACHINE_START(CM_T35, "Compulab CM-T35")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = omap3_map_io, .map_io = omap3_map_io,
.init_early = cm_t35_init_early, .init_early = cm_t35_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = cm_t35_init, .init_machine = cm_t35_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -304,7 +304,7 @@ MACHINE_START(CM_T3517, "Compulab CM-T3517") ...@@ -304,7 +304,7 @@ MACHINE_START(CM_T3517, "Compulab CM-T3517")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = omap3_map_io, .map_io = omap3_map_io,
.init_early = cm_t3517_init_early, .init_early = cm_t3517_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = cm_t3517_init, .init_machine = cm_t3517_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -438,7 +438,7 @@ static void __init devkit8000_init_early(void) ...@@ -438,7 +438,7 @@ static void __init devkit8000_init_early(void)
static void __init devkit8000_init_irq(void) static void __init devkit8000_init_irq(void)
{ {
omap_init_irq(); omap3_init_irq();
#ifdef CONFIG_OMAP_32K_TIMER #ifdef CONFIG_OMAP_32K_TIMER
omap2_gp_clockevent_set_gptimer(12); omap2_gp_clockevent_set_gptimer(12);
#endif #endif
......
...@@ -70,7 +70,7 @@ MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx") ...@@ -70,7 +70,7 @@ MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = omap_generic_map_io, .map_io = omap_generic_map_io,
.init_early = omap_generic_init_early, .init_early = omap_generic_init_early,
.init_irq = omap_init_irq, .init_irq = omap2_init_irq,
.init_machine = omap_generic_init, .init_machine = omap_generic_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -298,7 +298,7 @@ static void __init omap_h4_init_early(void) ...@@ -298,7 +298,7 @@ static void __init omap_h4_init_early(void)
static void __init omap_h4_init_irq(void) static void __init omap_h4_init_irq(void)
{ {
omap_init_irq(); omap2_init_irq();
} }
static struct at24_platform_data m24c01 = { static struct at24_platform_data m24c01 = {
......
...@@ -703,7 +703,7 @@ MACHINE_START(IGEP0020, "IGEP v2 board") ...@@ -703,7 +703,7 @@ MACHINE_START(IGEP0020, "IGEP v2 board")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = omap3_map_io, .map_io = omap3_map_io,
.init_early = igep_init_early, .init_early = igep_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = igep_init, .init_machine = igep_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -713,7 +713,7 @@ MACHINE_START(IGEP0030, "IGEP OMAP3 module") ...@@ -713,7 +713,7 @@ MACHINE_START(IGEP0030, "IGEP OMAP3 module")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = omap3_map_io, .map_io = omap3_map_io,
.init_early = igep_init_early, .init_early = igep_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = igep_init, .init_machine = igep_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -350,7 +350,7 @@ MACHINE_START(OMAP_LDP, "OMAP LDP board") ...@@ -350,7 +350,7 @@ MACHINE_START(OMAP_LDP, "OMAP LDP board")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = omap3_map_io, .map_io = omap3_map_io,
.init_early = omap_ldp_init_early, .init_early = omap_ldp_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = omap_ldp_init, .init_machine = omap_ldp_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -699,7 +699,7 @@ MACHINE_START(NOKIA_N800, "Nokia N800") ...@@ -699,7 +699,7 @@ MACHINE_START(NOKIA_N800, "Nokia N800")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = n8x0_map_io, .map_io = n8x0_map_io,
.init_early = n8x0_init_early, .init_early = n8x0_init_early,
.init_irq = omap_init_irq, .init_irq = omap2_init_irq,
.init_machine = n8x0_init_machine, .init_machine = n8x0_init_machine,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -709,7 +709,7 @@ MACHINE_START(NOKIA_N810, "Nokia N810") ...@@ -709,7 +709,7 @@ MACHINE_START(NOKIA_N810, "Nokia N810")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = n8x0_map_io, .map_io = n8x0_map_io,
.init_early = n8x0_init_early, .init_early = n8x0_init_early,
.init_irq = omap_init_irq, .init_irq = omap2_init_irq,
.init_machine = n8x0_init_machine, .init_machine = n8x0_init_machine,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -719,7 +719,7 @@ MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX") ...@@ -719,7 +719,7 @@ MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = n8x0_map_io, .map_io = n8x0_map_io,
.init_early = n8x0_init_early, .init_early = n8x0_init_early,
.init_irq = omap_init_irq, .init_irq = omap2_init_irq,
.init_machine = n8x0_init_machine, .init_machine = n8x0_init_machine,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -486,7 +486,7 @@ static void __init omap3_beagle_init_early(void) ...@@ -486,7 +486,7 @@ static void __init omap3_beagle_init_early(void)
static void __init omap3_beagle_init_irq(void) static void __init omap3_beagle_init_irq(void)
{ {
omap_init_irq(); omap3_init_irq();
#ifdef CONFIG_OMAP_32K_TIMER #ifdef CONFIG_OMAP_32K_TIMER
omap2_gp_clockevent_set_gptimer(12); omap2_gp_clockevent_set_gptimer(12);
#endif #endif
......
...@@ -740,7 +740,7 @@ MACHINE_START(OMAP3EVM, "OMAP3 EVM") ...@@ -740,7 +740,7 @@ MACHINE_START(OMAP3EVM, "OMAP3 EVM")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = omap3_map_io, .map_io = omap3_map_io,
.init_early = omap3_evm_init_early, .init_early = omap3_evm_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = omap3_evm_init, .init_machine = omap3_evm_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -215,7 +215,7 @@ MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3 Torpedo board") ...@@ -215,7 +215,7 @@ MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3 Torpedo board")
.boot_params = 0x80000100, .boot_params = 0x80000100,
.map_io = omap3_map_io, .map_io = omap3_map_io,
.init_early = omap3logic_init_early, .init_early = omap3logic_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = omap3logic_init, .init_machine = omap3logic_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -224,7 +224,7 @@ MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board") ...@@ -224,7 +224,7 @@ MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board")
.boot_params = 0x80000100, .boot_params = 0x80000100,
.map_io = omap3_map_io, .map_io = omap3_map_io,
.init_early = omap3logic_init_early, .init_early = omap3logic_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = omap3logic_init, .init_machine = omap3logic_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -642,7 +642,7 @@ MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console") ...@@ -642,7 +642,7 @@ MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = omap3_map_io, .map_io = omap3_map_io,
.init_early = omap3pandora_init_early, .init_early = omap3pandora_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = omap3pandora_init, .init_machine = omap3pandora_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -494,7 +494,7 @@ static void __init omap3_stalker_init_early(void) ...@@ -494,7 +494,7 @@ static void __init omap3_stalker_init_early(void)
static void __init omap3_stalker_init_irq(void) static void __init omap3_stalker_init_irq(void)
{ {
omap_init_irq(); omap3_init_irq();
#ifdef CONFIG_OMAP_32K_TIMER #ifdef CONFIG_OMAP_32K_TIMER
omap2_gp_clockevent_set_gptimer(12); omap2_gp_clockevent_set_gptimer(12);
#endif #endif
......
...@@ -371,7 +371,7 @@ static void __init omap3_touchbook_init_early(void) ...@@ -371,7 +371,7 @@ static void __init omap3_touchbook_init_early(void)
static void __init omap3_touchbook_init_irq(void) static void __init omap3_touchbook_init_irq(void)
{ {
omap_init_irq(); omap3_init_irq();
#ifdef CONFIG_OMAP_32K_TIMER #ifdef CONFIG_OMAP_32K_TIMER
omap2_gp_clockevent_set_gptimer(12); omap2_gp_clockevent_set_gptimer(12);
#endif #endif
......
...@@ -615,7 +615,7 @@ MACHINE_START(OVERO, "Gumstix Overo") ...@@ -615,7 +615,7 @@ MACHINE_START(OVERO, "Gumstix Overo")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = omap3_map_io, .map_io = omap3_map_io,
.init_early = overo_init_early, .init_early = overo_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = overo_init, .init_machine = overo_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -163,7 +163,7 @@ MACHINE_START(NOKIA_RM680, "Nokia RM-680 board") ...@@ -163,7 +163,7 @@ MACHINE_START(NOKIA_RM680, "Nokia RM-680 board")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = rm680_map_io, .map_io = rm680_map_io,
.init_early = rm680_init_early, .init_early = rm680_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = rm680_init, .init_machine = rm680_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -160,7 +160,7 @@ MACHINE_START(NOKIA_RX51, "Nokia RX-51 board") ...@@ -160,7 +160,7 @@ MACHINE_START(NOKIA_RX51, "Nokia RX-51 board")
.reserve = rx51_reserve, .reserve = rx51_reserve,
.map_io = rx51_map_io, .map_io = rx51_map_io,
.init_early = rx51_init_early, .init_early = rx51_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = rx51_init, .init_machine = rx51_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -33,11 +33,6 @@ static void __init ti8168_init_early(void) ...@@ -33,11 +33,6 @@ static void __init ti8168_init_early(void)
omap2_init_common_devices(NULL, NULL); omap2_init_common_devices(NULL, NULL);
} }
static void __init ti8168_evm_init_irq(void)
{
omap_init_irq();
}
static void __init ti8168_evm_init(void) static void __init ti8168_evm_init(void)
{ {
omap_serial_init(); omap_serial_init();
...@@ -56,7 +51,7 @@ MACHINE_START(TI8168EVM, "ti8168evm") ...@@ -56,7 +51,7 @@ MACHINE_START(TI8168EVM, "ti8168evm")
.boot_params = 0x80000100, .boot_params = 0x80000100,
.map_io = ti8168_evm_map_io, .map_io = ti8168_evm_map_io,
.init_early = ti8168_init_early, .init_early = ti8168_init_early,
.init_irq = ti8168_evm_init_irq, .init_irq = ti816x_init_irq,
.timer = &omap_timer, .timer = &omap_timer,
.init_machine = ti8168_evm_init, .init_machine = ti8168_evm_init,
MACHINE_END MACHINE_END
...@@ -137,7 +137,7 @@ MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board") ...@@ -137,7 +137,7 @@ MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = omap3_map_io, .map_io = omap3_map_io,
.init_early = omap_zoom_init_early, .init_early = omap_zoom_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = omap_zoom_init, .init_machine = omap_zoom_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -147,7 +147,7 @@ MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 board") ...@@ -147,7 +147,7 @@ MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 board")
.reserve = omap_reserve, .reserve = omap_reserve,
.map_io = omap3_map_io, .map_io = omap3_map_io,
.init_early = omap_zoom_init_early, .init_early = omap_zoom_init_early,
.init_irq = omap_init_irq, .init_irq = omap3_init_irq,
.init_machine = omap_zoom_init, .init_machine = omap_zoom_init,
.timer = &omap_timer, .timer = &omap_timer,
MACHINE_END MACHINE_END
...@@ -333,23 +333,9 @@ static int _set_hwmod_postsetup_state(struct omap_hwmod *oh, void *data) ...@@ -333,23 +333,9 @@ static int _set_hwmod_postsetup_state(struct omap_hwmod *oh, void *data)
return omap_hwmod_set_postsetup_state(oh, *(u8 *)data); return omap_hwmod_set_postsetup_state(oh, *(u8 *)data);
} }
/* See irq.c, omap4-common.c and entry-macro.S */
void __iomem *omap_irq_base; void __iomem *omap_irq_base;
/*
* Initialize asm_irq_base for entry-macro.S
*/
static inline void omap_irq_base_init(void)
{
if (cpu_is_omap24xx())
omap_irq_base = OMAP2_L4_IO_ADDRESS(OMAP24XX_IC_BASE);
else if (cpu_is_omap34xx())
omap_irq_base = OMAP2_L4_IO_ADDRESS(OMAP34XX_IC_BASE);
else if (cpu_is_omap44xx())
omap_irq_base = OMAP2_L4_IO_ADDRESS(OMAP44XX_GIC_CPU_BASE);
else
pr_err("Could not initialize omap_irq_base\n");
}
void __init omap2_init_common_infrastructure(void) void __init omap2_init_common_infrastructure(void)
{ {
u8 postsetup_state; u8 postsetup_state;
...@@ -422,7 +408,6 @@ void __init omap2_init_common_devices(struct omap_sdrc_params *sdrc_cs0, ...@@ -422,7 +408,6 @@ void __init omap2_init_common_devices(struct omap_sdrc_params *sdrc_cs0,
_omap2_init_reprogram_sdrc(); _omap2_init_reprogram_sdrc();
} }
omap_irq_base_init();
} }
/* /*
......
...@@ -141,25 +141,20 @@ omap_alloc_gc(void __iomem *base, unsigned int irq_start, unsigned int num) ...@@ -141,25 +141,20 @@ omap_alloc_gc(void __iomem *base, unsigned int irq_start, unsigned int num)
IRQ_NOREQUEST | IRQ_NOPROBE, 0); IRQ_NOREQUEST | IRQ_NOPROBE, 0);
} }
void __init omap_init_irq(void) static void __init omap_init_irq(u32 base, int nr_irqs)
{ {
unsigned long nr_of_irqs = 0; unsigned long nr_of_irqs = 0;
unsigned int nr_banks = 0; unsigned int nr_banks = 0;
int i, j; int i, j;
omap_irq_base = ioremap(base, SZ_4K);
if (WARN_ON(!omap_irq_base))
return;
for (i = 0; i < ARRAY_SIZE(irq_banks); i++) { for (i = 0; i < ARRAY_SIZE(irq_banks); i++) {
unsigned long base = 0;
struct omap_irq_bank *bank = irq_banks + i; struct omap_irq_bank *bank = irq_banks + i;
if (cpu_is_omap24xx()) bank->nr_irqs = nr_irqs;
base = OMAP24XX_IC_BASE;
else if (cpu_is_omap34xx())
base = OMAP34XX_IC_BASE;
BUG_ON(!base);
if (cpu_is_ti816x())
bank->nr_irqs = 128;
/* Static mapping, never released */ /* Static mapping, never released */
bank->base_reg = ioremap(base, SZ_4K); bank->base_reg = ioremap(base, SZ_4K);
...@@ -181,6 +176,21 @@ void __init omap_init_irq(void) ...@@ -181,6 +176,21 @@ void __init omap_init_irq(void)
nr_of_irqs, nr_banks, nr_banks > 1 ? "s" : ""); nr_of_irqs, nr_banks, nr_banks > 1 ? "s" : "");
} }
void __init omap2_init_irq(void)
{
omap_init_irq(OMAP24XX_IC_BASE, 96);
}
void __init omap3_init_irq(void)
{
omap_init_irq(OMAP34XX_IC_BASE, 96);
}
void __init ti816x_init_irq(void)
{
omap_init_irq(OMAP34XX_IC_BASE, 128);
}
#ifdef CONFIG_ARCH_OMAP3 #ifdef CONFIG_ARCH_OMAP3
static struct omap3_intc_regs intc_context[ARRAY_SIZE(irq_banks)]; static struct omap3_intc_regs intc_context[ARRAY_SIZE(irq_banks)];
......
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
#include <asm/hardware/gic.h> #include <asm/hardware/gic.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
#include <plat/irqs.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/omap4-common.h> #include <mach/omap4-common.h>
...@@ -31,17 +33,15 @@ void __iomem *gic_dist_base_addr; ...@@ -31,17 +33,15 @@ void __iomem *gic_dist_base_addr;
void __init gic_init_irq(void) void __init gic_init_irq(void)
{ {
void __iomem *gic_cpu_base;
/* Static mapping, never released */ /* Static mapping, never released */
gic_dist_base_addr = ioremap(OMAP44XX_GIC_DIST_BASE, SZ_4K); gic_dist_base_addr = ioremap(OMAP44XX_GIC_DIST_BASE, SZ_4K);
BUG_ON(!gic_dist_base_addr); BUG_ON(!gic_dist_base_addr);
/* Static mapping, never released */ /* Static mapping, never released */
gic_cpu_base = ioremap(OMAP44XX_GIC_CPU_BASE, SZ_512); omap_irq_base = ioremap(OMAP44XX_GIC_CPU_BASE, SZ_512);
BUG_ON(!gic_cpu_base); BUG_ON(!omap_irq_base);
gic_init(0, 29, gic_dist_base_addr, gic_cpu_base); gic_init(0, 29, gic_dist_base_addr, omap_irq_base);
} }
#ifdef CONFIG_CACHE_L2X0 #ifdef CONFIG_CACHE_L2X0
......
...@@ -428,7 +428,11 @@ ...@@ -428,7 +428,11 @@
#define INTCPS_NR_IRQS 96 #define INTCPS_NR_IRQS 96
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
extern void omap_init_irq(void); extern void __iomem *omap_irq_base;
void omap1_init_irq(void);
void omap2_init_irq(void);
void omap3_init_irq(void);
void ti816x_init_irq(void);
extern int omap_irq_pending(void); extern int omap_irq_pending(void);
void omap_intc_save_context(void); void omap_intc_save_context(void);
void omap_intc_restore_context(void); void omap_intc_restore_context(void);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment