提问人:ozimki 提问时间:11/10/2023 最后编辑:ozimki 更新时间:11/11/2023 访问量:33
基于 PCI 的 i2c 总线
i2c bus over PCI
问:
我正在尝试为通过 PCI 连接的 FPGA 设备编写 arm 驱动程序。
FPGA 器件有一些 i2c 器件和 DMA,我想为它们编写 DMA 引擎驱动程序。 FPGA 设计不是我的,不同的 i2c 设备位于同一个 BAR 上。
我对如何做到这一点有点困惑。 在我看来,最好的方法是制作一个多功能 Linux 驱动程序 (MFD),它将加载驱动程序并为每个组件分配内存。 我打算添加 MFD 节点设备树(作为 pci 设备),以便我可以在其中指定当前的硬件组件以及 DMA 通道。
如果我将 pci 设备添加到设备树中,如何获取设备的 ?
以前使用 I get 指向函数中pci_dev的指针。pci_dev
pci_register_driver
.probe
如何从函数访问pci_dev?platform_driver
.probe
有没有办法自动获取它,或者需要使用 f.ex 通过供应商和设备找到它?pci_get_device
有没有人有更好的方法?
我已经在 pci 节点内创建了一个节点,但尽管存在兼容的驱动程序(作为模块),但它没有被加载:
pcie@33800000 { compatible = "fsl,imx8mm-pcie\0snps,dw-pcie"; ... pci@0,0 { compatible = "ccx-qdma"; device-type = "pci"; }; };
答: 暂无答案
评论