I have a MPC5200 based board which has an FPGA for external
I/O, etc.  This FPGA also funnels interrupts from the various
external devices through to the CPU.

I've defined this structure in my DTS:

        [EMAIL PROTECTED] {
                device_type = "board-control";
                #address-cells = <1>;
                #size-cells = <1>;
                // Note: includes sub-devices like CAN, A/D, etc
                reg = <0xf8000000 0x100000>;

                fpga_ic: [EMAIL PROTECTED] {
                        device_type = "fpga-int-ctlr";
                        interrupt-controller;
                        #address-cells = <0>;
                        #interrupt-cells = <2>;
                        interrupts = <2 26 3>; // IRQ2
                        interrupt-parent = <&mpc5200_pic>;
                };
                [EMAIL PROTECTED] {
                        compatible = "am,can";
                        device_type = "can";
                        interrupts = <0 0>;
                        interrupt_parent = <&fpga_ic>;
                        reg = <0xf8010000 0x200>;
                };
        };

Of course, there will be more devices and interrupts later on,
this is just the first of many.

Now the questions:
 * How do I choose the VIRQ range supported by my FPGA?
   I'm interested in this in particular for the MPC5200, but
   also for other chips (I have many such board configurations).
 * How do I pass this information along to my drivers?  I would
   think that the interrupts value for the can interface above
   would use a [logical] IRQ (an offset from the base VIRQ),
   so how does the driver get the actual number (VIRQ+offset)
   when probing the tree?
 * I know how to define the interrupt controller using irq_alloc_host()
   (once I have the VIRQ range) but it's not clear to me where to stick
   this initialization when bringing up my platform.

Thanks for any pointers/ideas

n.b. I've read all the arguments about not using "device_type"
and this will be resolved.  At the moment, I'm basing my
code on a slightly older kernel codebase (2.6.26), so those
entries remain.

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to