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