Linux kernel 在linux内核中将设备驱动程序附加到多个外围驱动程序

Linux kernel 在linux内核中将设备驱动程序附加到多个外围驱动程序,linux-kernel,linux-device-driver,embedded-linux,Linux Kernel,Linux Device Driver,Embedded Linux,我们正在为ADC编写一个设备驱动程序。ADC使用2条通信总线:SPI用于控制,McASP用于数据。因此,我们需要将ADC驱动程序连接到这些总线驱动程序。 在设备树中,ADC是SPI控制器的子节点。是否也可以引用McASP控制器下的ADC节点,即执行以下操作: spi1: spi@xx{ .. adc: adc@x { ... } } mcasp: mcasp@yy{ ... &adc } 或者内核中是否有一些attach()函数?

我们正在为ADC编写一个设备驱动程序。ADC使用2条通信总线:SPI用于控制,McASP用于数据。因此,我们需要将ADC驱动程序连接到这些总线驱动程序。 在设备树中,ADC是SPI控制器的子节点。是否也可以引用McASP控制器下的ADC节点,即执行以下操作:

spi1: spi@xx{
    ..
    adc: adc@x {
        ...
    }
}
mcasp: mcasp@yy{
    ...
    &adc
}
或者内核中是否有一些
attach()
函数? 解决这个问题的正确方法是什么


谢谢。

事实上,我可以使用\u parse\u phandle()的
函数和\u find\u device\u by\u node()的
函数的组合。

还有一系列的
查找*函数可供使用

事实上,我可以通过\u node()使用\u parse\u phandle()的
函数和\u find\u device的
函数的组合

还有一系列的
查找*
函数可供使用

就我所理解的设备树的概念而言,您需要为辅助总线提供一个幻影。假设您有一个SPI设备(通过控制),主总线是SPI。因此,在SPI设备描述中,您需要向数据总线添加一个幻影。谢谢,我了解了幻影的概念。但是,如何将数据总线的幻象转换为设备结构(structdev)仍在苦苦挣扎?反之亦然,如何从数据总线驱动程序引用SPI设备?据我所知,设备树的概念,您需要提供一个辅助总线的幻影。假设您有一个SPI设备(通过控制),主总线是SPI。因此,在SPI设备描述中,您需要向数据总线添加一个幻影。谢谢,我了解了幻影的概念。但是,如何将数据总线的幻象转换为设备结构(structdev)仍在苦苦挣扎?反之亦然,如何从数据总线驱动程序引用SPI设备?