Hi i have a FPGA called mcmc which is connected to the powerpc mpc8572 on the local bus. It provides 2 interrupts which are connected to the external interupts IRQ1 and IRQ3 of the mpc8572. the fpga is memory mapped on the local bus at address 0xc0000000 I am able to register the interrupt and obtain virq , but no interrupts. is the modifications made in the dts file enought/right for getting an external interrupt??
*The modified dts file for enrm8572* local...@e0005000 { #address-cells = <2>; #size-cells = <1>; compatible = "fsl,mpc8572-elbc", "fsl,elbc", "simple-bus"; reg = <0xe0005000 0x1000>; interrupts = <19 2>; interrupt-parent = <&mpic>; ranges = <0x0 0x0 0xfc000000 0x04000000 0x1 0x0 0xc0000000 0x00080000 0x2 0x0 0x90100000 0x00008000 0x3 0x0 0x90000000 0x00040000 0x4 0x0 0x91000000 0x00008000>; n...@3,0 { #address-cells = <1>; #size-cells = <1>; compatible = "fsl,mpc8572-fcm-nand", "fsl,elbc-fcm-nand"; reg = <0x3 0x0 0x40000>; u-b...@0 { reg = <0x0 0x02000000>; read-only; }; jf...@2000000 { reg = <0x02000000 0x10000000>; }; ramd...@12000000 { reg = <0x12000000 0x08000000>; read-only; }; ker...@1a000000 { reg = <0x1a000000 0x04000000>; }; d...@1e000000 { reg = <0x1e000000 0x01000000>; read-only; }; em...@1f000000 { reg = <0x1f000000 0x21000000>; }; }; *m...@1,0 {* * * *compatible = "fsl,fpga-pixis";* * * *reg = <1 0 32>;* * * *interrupts = <1 1 3 1>;* * * *interrupt-parent = <&mpic>;* }; }; *code for registering the interrupt :* np = of_find_compatible_node(NULL, NULL, "fsl,fpga-pixis"); mcmc_irq = irq; virq = irq_of_parse_and_map(np, mcmc_irq); if(virq == NO_IRQ){ printk(KERN_ERR "mcmc: failed to map interrupt"); } printk(KERN_INFO "mcmc: interrupt mapped to virq %d\n", virq); ret = request_irq(virq, mcmc_interrupt, IRQF_DISABLED,"mcmc", NULL); if(ret){ printk(KERN_INFO "mcmc : cant get assigned irq %i\n errno : <%d>\n",mcmc_irq,ret); } else{ printk(KERN_ALERT "Interrupt requested OK\n"); } d : *when i register the driver the following output is obtaine* *for irq=1* irq_of_parse_and_map irq : irq_create_mapping(0xc0fffb40,0x1) irq : using host @ c0fffb40 irq : obtained virq 18 irq : virq=12 <6>mcmc : interrupt mapped to irq 18 Interrupt requested OK! *for irq=0* irq_of_parse_and_map irq : irq_create_mapping(0xc0fffb40,0x3) irq : using host @ c0fffb40 irq : obtained virq 20 irq : virq=14 <6>mcmc : interrupt mapped to irq 20 Interrupt requested OK! -- Cheeers Deebul !!!!!!
_______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev