cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Newbie
Newbie
297 Views
Registered: ‎08-10-2019

zc706:request_irq error for custom IP's interrupt

BOARD: ZC706


My custom IP:PL dts as follows:
/ {
        amba_pl: amba_pl {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "simple-bus";
                ranges ;
                reader_zhongrf_0: reader_zhongrf@43c00000 {
                        compatible = "xlnx,reader-zhongrf-1.0";
                        interrupt-names = "reader_int";
                        interrupt-parent = <&intc>;
                        interrupts = <0 29 4>;
                        reg = <0x43c00000 0x10000>;
                        xlnx,s00-axi-addr-width = <0x8>;
                        xlnx,s00-axi-data-width = <0x20>;
                };
        };
};


Then, I use request_irq to request interrupt resources, the UART print:dev request irq failed!

My probe function for linux driver:
// probe
static int reader_probe(struct platform_device *pdev)
{         
    int ret;
    struct resource *res;         printk("match ok!");
         res = platform_get_resource(pdev, IORESOURCE_MEM, 0);//
        reader_base = ioremap(res->start, res->end - res->start + 1);//获取到AXI-GPIO的地址空间,实现内存映射
        printk("reader_probe, found reader\n");
         major = register_chrdev(0, "myreader", &reader_fops);//注册设备
        cls = class_create(THIS_MODULE, "myreader");
         gpio_device = device_create(cls,NULL,MKDEV(major, 0),NULL,"reader");//mknod /dev/hello         
        if(IS_ERR(gpio_device)){
        
                class_destroy(cls);
                unregister_chrdev(major,"myreader");
                return -EBUSY;         
                
        }
    ret = request_irq(61, reader_irq_handler, IRQF_TRIGGER_HIGH|IRQF_SHARED, "reader_int", gpio_device);//注册一个外部中断
    if(ret)
    {
        printk("dev request irq failed!\n");
        return -1;
    }
    else
    {
            printk("dev request irq success!\n");
    }

         return 0; 
} 

 

How can I resolve the problem?

0 Kudos
0 Replies