0

必须对 Linux 内核驱动程序进行哪些修改以支持(等于)SoC 上的多个设备(myipcore)(在设备树中定义)而不是只支持一个?

在我的应用程序中:只有一个进程会打开相应的/dev/myipcoreX文件!

设备树:

 amba: amba {
    compatible = "simple-bus";
    #address-cells = <2>;
    #size-cells = <2>;
    ranges;

    axi_myipcore1: myipcore@A0001000 {
        compatible = "xy,my-ip-core-1.00";
        status = "disabled";
        interrupt-parent = <&gic>;
        interrupts = <0 89 1>;
        reg = <0x0 0xA0001000 0x0 0x14>;
    };

    axi_myipcore2: myipcore@A0002000 {
        compatible = "xy,my-ip-core-1.00";
        status = "disabled";
        interrupt-parent = <&gic>;
        interrupts = <0 90 1>;
        reg = <0x0 0xA0002000 0x0 0x14>;
    };
    ....
 }

对于每个设备树条目,_probe()都会调用驱动程序的功能。如何动态获取下一个次要编号alloc_chrdev_region()以及如何class_create()仅执行一次?

还是我必须修改设备树?

你看,我正在寻找中心主题......

4

0 回答 0