Hi,<br>I'm writing a linux driver that uses an external interrupt (ppc 405ex). I'm using GPIO pin 30 (external IRQ 1) connected to UIC1. I'm aware of the virtual interrupt stuff, so I added a new node to my device tree in order to get proper virtual IRQ number. This node describes an external event and its connection to UIC via the mentioned ext. int. Here is a sample of the divce-tree:<br>
..<br><br>UIC1: interrupt-controller1 {<br> compatible = "ibm,uic-405ex","ibm,uic";<br> interrupt-controller;<br> cell-index = <1>;<br> dcr-reg = <0x0d0 0x009>;<br>
#address-cells = <0>;<br> #size-cells = <0>;<br> #interrupt-cells = <2>;<br> interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */<br> interrupt-parent = <&UIC0>;<br>
};<br><br>EXTEVENT: external_event {<br> device_type = "external";<br> #address-cells = <0>;<br> #size-cells = <0>;<br> #interrupt-cells = <2>;<br> interrupts = <0x1e 0x1>;<br>
interrupt-parent = <&UIC1>;<br>};<br>...<br><br>Then I use function "irq_of_parse_and_map()" which returns the virtual IRQ number 22. So, "request_irq()" seems to be satisfied with this number. I can see this interrupt in the /proc/interrupts. But! When I connect a signal source to the pin 30, nothing happens - the interrupt service routine isn't called. <br>
<br>Am I suppose to configure anything else? (e. g. pin multiplexing, further device-tree tuning...) Thank you!<br><br>Best regards,<br>Ladi<br>