必须对 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()
仅执行一次?
还是我必须修改设备树?
你看,我正在寻找中心主题......