<br><br><div class="gmail_quote">2012/7/10 Javier Martinez Canillas <span dir="ltr"><<a href="mailto:javier@dowhile0.org" target="_blank">javier@dowhile0.org</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
According to the IGEPv2 Rev.C data-sheet the LAN9221i pin 14 (IRQ) is<br>
connected to the OMAP3730 mcspi1_cs2 pin. Since this omap mux pin acts<br>
as an IRQ line, it has to be configured as an input GPIO.<br>
<br>
IGEPv2 platform code sets the smsc911x_cfg->gpio_irq to GPIO 176 but<br>
since the mux pin default mode is MODE7 (safe_mode) the driver fails<br>
when trying to register the IRQ with the following error message:<br>
<br>
[    1.994598] smsc911x: Driver version 2008-10-21<br>
[    3.704162] irq 272: nobody cared (try booting with the "irqpoll" option)<br>
[    3.711364] [<c001a114>] (unwind_backtrace+0x0/0xf0) from [<c009a0d4>] (__report_bad_irq+0x20/0xbc)<br>
[    3.720916] [<c009a0d4>] (__report_bad_irq+0x20/0xbc) from [<c009a41c>] (note_interrupt+0x1d8/0x238)<br>
[    3.730560] [<c009a41c>] (note_interrupt+0x1d8/0x238) from [<c0098234>] (handle_irq_event_percpu+0xc0/0x260)<br>
[    3.740936] [<c0098234>] (handle_irq_event_percpu+0xc0/0x260) from [<c0098410>] (handle_irq_event+0x3c/0x5c)<br>
[    3.751312] [<c0098410>] (handle_irq_event+0x3c/0x5c) from [<c009abe0>] (handle_level_irq+0xac/0x10c)<br>
[    3.761047] [<c009abe0>] (handle_level_irq+0xac/0x10c) from [<c0097a34>] (generic_handle_irq+0x30/0x48)<br>
[    3.770935] [<c0097a34>] (generic_handle_irq+0x30/0x48) from [<c02a6b74>] (gpio_irq_handler+0x180/0x1d4)<br>
[    3.780944] [<c02a6b74>] (gpio_irq_handler+0x180/0x1d4) from [<c0097a34>] (generic_handle_irq+0x30/0x48)<br>
[    3.790954] [<c0097a34>] (generic_handle_irq+0x30/0x48) from [<c0013e18>] (handle_IRQ+0x4c/0xac)<br>
[    3.800231] [<c0013e18>] (handle_IRQ+0x4c/0xac) from [<c000858c>] (omap3_intc_handle_irq+0x60/0x74)<br>
[    3.809783] [<c000858c>] (omap3_intc_handle_irq+0x60/0x74) from [<c04979e4>] (__irq_svc+0x44/0x60)<br>
[    3.819213] Exception stack(0xee42fde0 to 0xee42fe28)<br>
[    3.824554] fde0: 00000001 00000001 00000000 00000000 60000013 c06cce14 c06cce14 00000110<br>
[    3.833190] fe00: 00000000 c06ccdf4 60000013 ee41d000 fb058064 ee42fe28 c0089e08 c04976b4<br>
[    3.841796] fe20: 20000013 ffffffff<br>
[    3.845489] [<c04979e4>] (__irq_svc+0x44/0x60) from [<c04976b4>] (_raw_spin_unlock_irqrestore+0x34/0x44)<br>
[    3.855499] [<c04976b4>] (_raw_spin_unlock_irqrestore+0x34/0x44) from [<c0099744>] (__setup_irq+0x1b8/0x3f0)<br>
[    3.865875] [<c0099744>] (__setup_irq+0x1b8/0x3f0) from [<c0099a34>] (request_threaded_irq+0xb8/0x140)<br>
[    3.875701] [<c0099a34>] (request_threaded_irq+0xb8/0x140) from [<c0487950>] (smsc911x_drv_probe+0x75c/0x11a4)<br>
[    3.886260] [<c0487950>] (smsc911x_drv_probe+0x75c/0x11a4) from [<c02e9bcc>] (platform_drv_probe+0x18/0x1c)<br>
[    3.906707] [<c02e89b8>] (driver_probe_device+0x90/0x210) from [<c02e8bcc>] (__driver_attach+0x94/0x98)<br>
[    3.916625] [<c02e8bcc>] (__driver_attach+0x94/0x98) from [<c02e7298>] (bus_for_each_dev+0x50/0x7c)<br>
[    3.926177] [<c02e7298>] (bus_for_each_dev+0x50/0x7c) from [<c02e81d4>] (bus_add_driver+0x184/0x248)<br>
[    3.935821] [<c02e81d4>] (bus_add_driver+0x184/0x248) from [<c02e909c>] (driver_register+0x78/0x12c)<br>
[    3.945465] [<c02e909c>] (driver_register+0x78/0x12c) from [<c0008648>] (do_one_initcall+0x34/0x178)<br>
[    3.955108] [<c0008648>] (do_one_initcall+0x34/0x178) from [<c066e8f4>] (kernel_init+0xfc/0x1c0)<br>
[    3.964385] [<c066e8f4>] (kernel_init+0xfc/0x1c0) from [<c00140b0>] (kernel_thread_exit+0x0/0x8)<br>
[    3.973632] handlers:<br>
[    3.976043] [<c034e2cc>] smsc911x_irqhandler<br>
[    3.980560] Disabling IRQ #272<br>
<br>
Signed-off-by: Javier Martinez Canillas <<a href="mailto:javier@dowhile0.org">javier@dowhile0.org</a>><br>
---<br>
 arch/arm/mach-omap2/board-igep0020.c |    2 ++<br>
 1 files changed, 2 insertions(+), 0 deletions(-)<br>
<br>
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c<br>
index 7491529..2821448 100644<br>
--- a/arch/arm/mach-omap2/board-igep0020.c<br>
+++ b/arch/arm/mach-omap2/board-igep0020.c<br>
@@ -554,6 +554,8 @@ static const struct usbhs_omap_board_data igep3_usbhs_bdata __initconst = {<br>
<br>
 #ifdef CONFIG_OMAP_MUX<br>
 static struct omap_board_mux board_mux[] __initdata = {<br>
+       /* SMSC9221 LAN Controller ETH IRQ (GPIO_176) */<br>
+       OMAP3_MUX(MCSPI1_CS2, OMAP_MUX_MODE4 | OMAP_PIN_INPUT),<br>
        { .reg_offset = OMAP_MUX_TERMINATOR },<br>
 };<br>
 #endif<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.7.7.6<br>
<br></font></span></blockquote><div> </div></div>Acked-by: Enric Balletbo i Serra <<a href="mailto:eballetbo@gmail.com">eballetbo@gmail.com</a>><br>Tested-by: Enric Balletbo i Serra <<a href="mailto:eballetbo@gmail.com">eballetbo@gmail.com</a>><br>
<br>Thanks Javier,<br>