On Thu, May 28, 2009 at 12:05:52PM -0700, Nancy Isaac wrote: > My device tree has the following entry for my fpga: > > cpucp...@f0000000{ > compatible = "MPC8544DS"; > device_type = "CpuCpld"; > reg = <f0000000 00000040>; > interrupts = <41 2 42 2 43 2>; > interrupt-parent = <&mpic>; > };
Where did you get those interrupt numbers from? External interrupt numbers start at zero on MPIC. Is the level/sense information correct? > My driver does the mapping to the virq: > > np = of_find_node_by_type(NULL, "CpuCpld"); > if (!np) { > ret = -ENODEV; > } > cpldCpuDrv->MateIntIrq = irq_of_parse_and_map(np, 0); > cpldCpuDrv->FtaIrq = irq_of_parse_and_map(np, 1); > cpldCpuDrv->ExtractIrq = irq_of_parse_and_map(np, 2); > cpldCpuDrv->XauiIrq = irq_of_parse_and_map(np, 0); > > of_node_put(np); Looks good (other than that you should be using compatible (with a more specific name) rather than device_type). > Does anyone know what the virq should be for these external interrupts? They're dynamically assigned. > I've tried specifying the actual irq numbers 1,2 and 3 and that doesn't work > either. Specifying them where? In the device tree or as virq numbers? Never hard-code virq numbers. > Is there some PCI configuration that's getting in the way? I've tried > disabling the FSL_PCIE and I get the same behavior. Barring an unusual bug, PCI should have nothing to do with the interrupt routing of things that aren't on the PCI bus. -Scott _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev