using IRQ1 in mpc5121ads
sylvain louchez
sylvain.louchez at gmail.com
Tue Mar 31 01:33:11 EST 2009
Hello, I'm a newbie looking for where the documentation and implementation
model can be found.
My custom driver is looking for an interrupt notification from the kernel -
and it registers in the /proc/interrupts file as expected when installed,
i.e.
$insmod custom_driver.ko gps_irq=<n>
**Note - this part's OK, I see the instance in /proc/interrupts after I load
it**
On the hardware side the actual signal is a 1 Hz pulse (from GPS) routed to
IRQ1 through the board's CPLD. This is the only interrupt on IRQ_1 so we can
keep the logic simple i.e. on IRQ1 we can just jump to the service routine
in a custom driver.
I understand 2 things have to be done:
1. create an entry in the dts file; I think we've got this understood
through advice already received - for example the new interrupt entry can be
created in the dts file - something like:
gps at 0 { // there is no address so just make it 0
compatible = "gps_interrupt";
interrupts = <17 0x8>; // 17 is irq1, 8 is level low, see
include/linux/irq.h for others
interrupt-parent = < &ipic >;
};
2. but now we need to relate the actual interrupt to the virtual interrupt
called in the driver... by invoking the function irq_of_parse_and_map - but
we don't know how to do it - nor have we found how to do it in browsing
through the open source documentation
A secondary question: where to properly add this function call in the file
system?
Are we on the right track here? Is there sample/ tutorial code you could
point us to?
Thanks in advance for any pointers - documentation on these mechanisms,
sample code.
Sylvain Louchez
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20090330/bef88ed5/attachment.htm>
More information about the Linuxppc-dev
mailing list