hello everyone
we have customized board, use DM385 CPU
I try to use GP3[17] interrupt connect to TI touch panel controller IC TSC2007.
when interrupt occur, I want clean the irq flag but get oops.
--------------------------------------------------------------------------------------------------------------------------------------------------------
[ 44.430000] Unable to handle kernel paging request at virtual address 881af030
[ 44.430000] pgd = c0004000
[ 44.430000] [881af030] *pgd=00000000
[ 44.430000] Internal error: Oops: 805 [#1]
[ 44.430000] last sysfs file: /sys/devices/virtual/gpio/gpio118/value
[ 44.430000] Modules linked in: tsc2007(+) ti81xxfb vpss osa_kermod syslink cmemk g_ether
[ 44.430000] CPU: 0 Not tainted (2.6.37 #49)
[ 44.430000] PC is at clear_ts_penirq+0x8/0x10
[ 44.430000] LR is at tsc2007_irq+0x28/0x2c [tsc2007]
[ 44.430000] pc : [<c029cd4c>] lr : [<bf919029>] psr: 000001b3
[ 44.430000] sp : c0583f00 ip : 00000008 fp : fa1ae02c
[ 44.430000] r10: 0000003e r9 : 00000100 r8 : 00000011
[ 44.430000] r7 : 00000111 r6 : 00000000 r5 : 00000000 r4 : c2af0800
[ 44.430000] r3 : 881af030 r2 : 00000001 r1 : c2af0834 r0 : 00000001
[ 44.430000] Flags: nzcv IRQs off FIQs on Mode SVC_32 ISA Thumb Segment kernel
[ 44.430000] Control: 50c5387d Table: 82ad0019 DAC: 00000017
[ 44.430000] Process swapper (pid: 0, stack limit = 0xc05822e8)
[ 44.430000] Stack: (0xc0583f00 to 0xc0584000)
[ 44.430000] 3f00: c2975200 c02c327b 00020101 c05a369c 00000111 c05e0118 c2975200 c02c44b1
[ 44.430000] 3f20: c02c4415 c3c1c5b0 00000001 00000001 c059f160 c029dd61 0000003e 00000111
[ 44.430000] 3f40: 00000054 0000003e 00000000 c05bbe48 c0586024 80000000 413fc082 0000001f
[ 44.430000] 3f60: 00000000 c028b03f 00000033 ffffffff fa200000 c028e971 fe500000 fe600000
[ 44.430000] 3f80: 00969c40 c05bc170 00000814 c058602c c05bbe48 c0586024 80000000 413fc082
[ 44.430000] 3fa0: 0000001f 00000000 00000000 c0583fc0 c0299311 c0299318 00000033 ffffffff
[ 44.430000] 3fc0: c0582000 c028ff05 c05e0174 c0287920 c0692500 c000888f c00084e9 00000f3e
[ 44.430000] 3fe0: 80000100 c0287920 50c53c7d c05bbf34 c028791c 8000804f 00000000 00000000
[ 44.430000] [<c029cd4c>] (clear_ts_penirq+0x8/0x10) from [<bf919029>] (tsc2007_irq+0x28/0x2c [tsc2007])
[ 44.430000] [<bf919029>] (tsc2007_irq+0x28/0x2c [tsc2007]) from [<c02c327b>] (handle_IRQ_event+0x13/0x80)
[ 44.430000] [<c02c327b>] (handle_IRQ_event+0x13/0x80) from [<c02c44b1>] (handle_edge_irq+0x9d/0xc8)
[ 44.430000] [<c02c44b1>] (handle_edge_irq+0x9d/0xc8) from [<c029dd61>] (gpio_irq_handler+0xc9/0xe4)
[ 44.430000] [<c029dd61>] (gpio_irq_handler+0xc9/0xe4) from [<c028b03f>] (asm_do_IRQ+0x3f/0x5c)
[ 44.430000] [<c028b03f>] (asm_do_IRQ+0x3f/0x5c) from [<c028e971>] (__irq_svc+0x31/0xa0)
[ 44.430000] Exception stack(0xc0583f78 to 0xc0583fc0) [ 44.430000] 3f60: fe500000 fe600000
[ 44.430000] 3f80: 00969c40 c05bc170 00000814 c058602c c05bbe48 c0586024 80000000 413fc082
[ 44.430000] 3fa0: 0000001f 00000000 00000000 c0583fc0 c0299311 c0299318 00000033 ffffffff
[ 44.430000] [<c028e971>] (__irq_svc+0x31/0xa0) from [<c0299318>] (ti81xx_idle+0x44/0x58)
[ 44.430000] [<c0299318>] (ti81xx_idle+0x44/0x58) from [<c028ff05>] (cpu_idle+0x29/0x58)
[ 44.430000] [<c028ff05>] (cpu_idle+0x29/0x58) from [<c000888f>] (start_kernel+0x1af/0x1fc)
[ 44.430000] [<c000888f>] (start_kernel+0x1af/0x1fc) from [<8000804f>] (0x8000804f)
[ 44.430000] Code: 4b02 2201 f1a3 4340 (601a) [ 44.730000] ---[ end trace e8d405d0978e22e7 ]---
[ 44.730000] Kernel panic - not syncing: Fatal exception in interrupt
[ 44.740000] [<c0292d5d>] (unwind_backtrace+0x1/0x8c) from [<c045ca45>] (panic+0x35/0xfc)
[ 44.750000] [<c045ca45>] (panic+0x35/0xfc) from [<c0291b59>] (die+0x1c5/0x20c)
[ 44.760000] [<c0291b59>] (die+0x1c5/0x20c) from [<c045c943>] (__do_kernel_fault.part.4+0x37/0x54)
[ 44.770000] [<c045c943>] (__do_kernel_fault.part.4+0x37/0x54) from [<c0293a97>] (do_page_fault+0x12b/0x13c)
[ 44.780000] [<c0293a97>] (do_page_fault+0x12b/0x13c) from [<c028b131>] (do_DataAbort+0x25/0x60)
[ 44.790000] [<c028b131>] (do_DataAbort+0x25/0x60) from [<c028e90b>] (__dabt_svc+0x4b/0x80)
[ 44.790000] Exception stack(0xc0583eb8 to 0xc0583f00)
[ 44.800000] 3ea0: 00000001 c2af0834
[ 44.810000] 3ec0: 00000001 881af030 c2af0800 00000000 00000000 00000111 00000011 00000100
[ 44.820000] 3ee0: 0000003e fa1ae02c 00000008 c0583f00 bf919029 c029cd4c 000001b3 ffffffff
[ 44.830000] [<c028e90b>] (__dabt_svc+0x4b/0x80) from [<c029cd4c>] (clear_ts_penirq+0x8/0x10)
[ 44.830000] [<c029cd4c>] (clear_ts_penirq+0x8/0x10) from [<bf919029>] (tsc2007_irq+0x28/0x2c [tsc2007])
[ 44.840000] [<bf919029>] (tsc2007_irq+0x28/0x2c [tsc2007]) from [<c02c327b>] (handle_IRQ_event+0x13/0x80)
[ 44.850000] [<c02c327b>] (handle_IRQ_event+0x13/0x80) from [<c02c44b1>] (handle_edge_irq+0x9d/0xc8)
[ 44.860000] [<c02c44b1>] (handle_edge_irq+0x9d/0xc8) from [<c029dd61>] (gpio_irq_handler+0xc9/0xe4)
[ 44.870000] [<c029dd61>] (gpio_irq_handler+0xc9/0xe4) from [<c028b03f>] (asm_do_IRQ+0x3f/0x5c)
[ 44.880000] [<c028b03f>] (asm_do_IRQ+0x3f/0x5c) from [<c028e971>] (__irq_svc+0x31/0xa0)
[ 44.890000] Exception stack(0xc0583f78 to 0xc0583fc0)
[ 44.900000] 3f60: fe500000 fe600000
[ 44.900000] 3f80: 00969c40 c05bc170 00000814 c058602c c05bbe48 c0586024 80000000 413fc082
[ 44.910000] 3fa0: 0000001f 00000000 00000000 c0583fc0 c0299311 c0299318 00000033 ffffffff
[ 44.920000] [<c028e971>] (__irq_svc+0x31/0xa0) from [<c0299318>] (ti81xx_idle+0x44/0x58)
[ 44.930000] [<c0299318>] (ti81xx_idle+0x44/0x58) from [<c028ff05>] (cpu_idle+0x29/0x58)
[ 44.940000] [<c028ff05>] (cpu_idle+0x29/0x58) from [<c000888f>] (start_kernel+0x1af/0x1fc)
[ 44.950000] [<c000888f>] (start_kernel+0x1af/0x1fc) from [<8000804f>] (0x8000804f)
------------------------------------------------------------------------------------------------------------------------------------------------------
access address:
GPIO3_REGISTER_BASE (0x481AE000) + INTERCONNECT_OFSET (0x1000) + IRQSTATUS_0_OFSET (0x2c)
__raw_writel(1, phys_to_virt(0x481AF02C)); // Write a 1 to clear to 0
1. I not sure set which one register: GPIO_IRQSTATUS_0_OFSET (0x2c) or GPIO_IRQSTATUS_1_OFSET (0x30)
2. the GP3[17] address 0x481AF0xx is correct ?
please expert help.