Hello,

I am developing a driver for the LTC1760 dual battery charger.

 I have an interrupt occur and I get notification of that.
however I cannot seem to clear the interrupt from inside the ISR and thus I am ruined.

I have learned from the research and looking around I have done, that I cannot call just any code in an ISR.
the code I want to call will read the AlertResponse register of my LTC1760 chip and that will clear the interrupt.

but I get angry kernel response when I do, below is a brief dump of what I get:

BUG: scheduling while atomic: swapper/0x00010002/0
bad: scheduling from the idle thread!
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 17 [#1]
Modules linked in: i2c_battery swcamera(PF) clcdc(PF) pvr(PF) gecko_devices
CPU: 0
PC is at dequeue_task+0xc/0xa8
LR is at deactivate_task+0x38/0x44
pc : [<c009b070>]    lr : [<c009b218>]    Tainted: PF
sp : c0331c6c  ip : c0331c80  fp : c0331c7c
r10: 00000000  r9 : 00989642  r8 : b0e7aa00
r7 : c0335f98  r6 : c0331cd8  r5 : 00000001  r4 : c0335f98
r3 : 00000080  r2 : 00000000  r1 : 00000000  r0 : c0335f98
Flags: Nzcv  IRQs off  FIQs on  Mode SVC_32  Segment kernel
Control: C5387F
Table: 868E8000  DAC: 00000017
Process swapper (pid: 0, stack limit = 0xc0330250)

All the example code I can find regarding ISR, have access to register offsets and can simply clear the interrupt that way.
I am new to this and am having a hard time finding direction with regards to how to handle linux interrupts.

I need to send a request command out i2c to this device to clear this interrupt.
I am not 100% sure about this, but it is what the data sheet has led me to believe.

I would appreciate any help on this, and perhaps even a reference to what material I should look at to find this answer.

Thanks ahead of time.

       -Christian Hunt


Sign in today. When you sign in to Windows Live Messenger you could win $1000 a day until May 12th. Learn more at SignInAndWIN.ca