* mpc5200 arch=powerpc kernel=2.6.24: how do I request external IRQ0-3?
@ 2008-04-25 16:14 Mike Timmons
2008-04-27 1:58 ` mtwallet
0 siblings, 1 reply; 3+ messages in thread
From: Mike Timmons @ 2008-04-25 16:14 UTC (permalink / raw)
To: linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 1117 bytes --]
I am confused on a very simple subject: requesting an external IRQ from
a custom driver I'm writing for a lite5200b-based board running kernel
2.6.24, arch=powerpc.
With the old arch=ppc I saw reference to MPC52xx_IRQ3 and such. I don't
see reference to specific IRQs under the powerpc arch. I am starting to
better understand the dts scheme for peripheral interrupts, but I am
hung-up on the seemingly simple task of requesting an external IRQ and
registering a callback from my driver:
request_irq( virtual_irq_number_for_IRQ3_that_I_don't_know_right_now,
&my_callback, flags, name, dev)
For this to work do I need to create a child node in the dts that
specifies interrupts = <1 3 2> for IRQ3? Must the IRQ I'm requesting be
associated with the dev argument to request_irq via the dts?
I just think I'm missing something very obvious as regards using
IRQ[0-3] on the mpc52xx. The DTS makes sens to me for peripheral
interrupts getting associated with their respective peripherals, but
when I want any old driver to use IRQ0-3 How do I request it?
Thanks.
[-- Attachment #2: Type: text/html, Size: 3511 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: mpc5200 arch=powerpc kernel=2.6.24: how do I request external IRQ0-3?
2008-04-25 16:14 mpc5200 arch=powerpc kernel=2.6.24: how do I request external IRQ0-3? Mike Timmons
@ 2008-04-27 1:58 ` mtwallet
2008-04-27 5:01 ` Grant Likely
0 siblings, 1 reply; 3+ messages in thread
From: mtwallet @ 2008-04-27 1:58 UTC (permalink / raw)
To: linuxppc-embedded
I got something working. I created a "device" child in the DTS file and used
th platform driver subsystem to register my module and get the virtual IRQ
as derived from the interrupt triplet-style spec in the dts file.
I'm still not real content as my child is nested with the SOC peripherals,
but this is more of a style/readability hang-up for me, for now. At least
now I can get the virtual irq by registering a platform driver, requesting
the irq number, and successfully requesting the irq.
I welcome any advice if I have used the dts file in an unintended fashion,
but it feels like the right place to specify a "device", even if all the
device embodies is an IRQ. Newbie conceptual difficulty overcome.
mtwallet wrote:
>
> I am confused on a very simple subject: requesting an external IRQ from
> a custom driver I'm writing for a lite5200b-based board running kernel
> 2.6.24, arch=powerpc.
>
>
>
> With the old arch=ppc I saw reference to MPC52xx_IRQ3 and such. I don't
> see reference to specific IRQs under the powerpc arch. I am starting to
> better understand the dts scheme for peripheral interrupts, but I am
> hung-up on the seemingly simple task of requesting an external IRQ and
> registering a callback from my driver:
>
>
>
> request_irq( virtual_irq_number_for_IRQ3_that_I_don't_know_right_now,
> &my_callback, flags, name, dev)
>
>
>
> For this to work do I need to create a child node in the dts that
> specifies interrupts = <1 3 2> for IRQ3? Must the IRQ I'm requesting be
> associated with the dev argument to request_irq via the dts?
>
>
>
> I just think I'm missing something very obvious as regards using
> IRQ[0-3] on the mpc52xx. The DTS makes sens to me for peripheral
> interrupts getting associated with their respective peripherals, but
> when I want any old driver to use IRQ0-3 How do I request it?
>
>
>
> Thanks.
>
>
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
--
View this message in context: http://www.nabble.com/mpc5200-arch%3Dpowerpc-kernel%3D2.6.24%3A-how-do-I-request-external-IRQ0-3--tp16900805p16918127.html
Sent from the linuxppc-embedded mailing list archive at Nabble.com.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: mpc5200 arch=powerpc kernel=2.6.24: how do I request external IRQ0-3?
2008-04-27 1:58 ` mtwallet
@ 2008-04-27 5:01 ` Grant Likely
0 siblings, 0 replies; 3+ messages in thread
From: Grant Likely @ 2008-04-27 5:01 UTC (permalink / raw)
To: mtwallet; +Cc: linuxppc-embedded
On Sat, Apr 26, 2008 at 7:58 PM, mtwallet <mike_timmons@trimble.com> wrote:
>
> I got something working. I created a "device" child in the DTS file and used
> th platform driver subsystem to register my module and get the virtual IRQ
> as derived from the interrupt triplet-style spec in the dts file.
Sorry I didn't get back to you right away. Yes, the best/right thing
to do is put a node in your device tree to capture the interrupt and
other interfaces to your custom device.
You should consider using the of_platform infrastructure for
registering your device. Your driver code can extract its register
locations and interrupts directly from a device tree node. For an
example, look at the ulite_of_probe and ulite_of_driver in
driver/serial/uartlite.c.
> I'm still not real content as my child is nested with the SOC peripherals,
> but this is more of a style/readability hang-up for me, for now. At least
> now I can get the virtual irq by registering a platform driver, requesting
> the irq number, and successfully requesting the irq.
>
> I welcome any advice if I have used the dts file in an unintended fashion,
> but it feels like the right place to specify a "device", even if all the
> device embodies is an IRQ. Newbie conceptual difficulty overcome.
Your part of the way there. Your node should be a child of the device
that it is connected to. Is it attached to the local bus? or i2c?
It should have a "compatible" property so that your device driver can
find it (in the form 'compatible = "<manufacturer>,<device>";'). It
should have both an 'interrupt-parent' and an 'interrupts' property
for specifying the interrupt. If the device is addressable, it should
have a 'reg' property.
You're right that it shouldn't be mixed in with the SoC nodes because
that doesn't accurately describe your platform. But, it is perfectly
fine for it to be a child of one of the SoC nodes (for example if it
is attached to one of the i2c busses).
Cheers,
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-04-27 5:01 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-25 16:14 mpc5200 arch=powerpc kernel=2.6.24: how do I request external IRQ0-3? Mike Timmons
2008-04-27 1:58 ` mtwallet
2008-04-27 5:01 ` Grant Likely
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).