I don't see a "dma" node in the mpc8377mds.dts (2.6.25). I found one in
mpc8610_hpcd.dts and
modeled it after that.
[EMAIL PROTECTED] {
#address-cells = <1>;
#size-cells = <1>;
compatible = "fsl,elo-dma";
cell-index = <0>;
reg = <0x82a8 0x4>; /* DMA general status register */
ranges = <0x0 0x8100 0x200>;
[EMAIL PROTECTED] {
compatible = "fsl,elo-dma-channel";
cell-index = <0>;
reg = <0x0 0x80>;
interrupt-parent = <&ipic>;
interrupts = <71 0x8>;
};
[EMAIL PROTECTED] {
compatible = "fsl,elo-dma-channel";
cell-index = <1>;
reg = <0x80 0x80>;
interrupt-parent = <&ipic>;
interrupts = <71 0x8>;
};
[EMAIL PROTECTED] {
compatible = "fsl,elo-dma-channel";
cell-index = <2>;
reg = <0x100 0x80>;
interrupt-parent = <&ipic>;
interrupts = <71 0x8>;
};
[EMAIL PROTECTED] {
compatible = "fsl,elo-dma-channel";
cell-index = <3>;
reg = <0x180 0x80>;
interrupt-parent = <&ipic>;
interrupts = <71 0x8>;
};
};
--- Scott Wood <[EMAIL PROTECTED]> wrote:
> Ron Madrid wrote:
> > Here's my code. There are a few other things that happen but they are
> > inconsequential to this
> > problem. I'm sure that the request_irq call is right, especially since it
> > works if the fsldma
> > drivers are builtin to the kernel. Also, the irq number 71 comes from the
> > reference manual
> for
> > them MPC8313. It is the internal interrupt for the DMA. I'll do some more
> > testing in a
> little
> > while to try to determine the cause of the error in request_irq.
>
> You cannot pass hardware IRQ numbers directly to request_irq() -- it has
> no idea which IRQ controller you're referring to (even if there happens
> to be only one on your board).
>
> You should get the IRQ from the device tree, using
> irq_of_parse_and_map() on the device node for the DMA channel (see the
> mpc8377mds device tree for an example DMA node).
>
> -Scott
>
_______________________________________________
Linuxppc-dev mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-dev