如何在不同驱动程序之间共享设备树节点中的信息

时间:2018-06-26 10:12:08

标签: linux linux-kernel linux-device-driver embedded-linux

我正在编写一个RTC驱动程序,它将从名为RTC的DT节点访问信息。 但是我也需要在同一驱动程序中访问SPI。 在多个驱动程序中使用了用于访问SPI的虚拟地址库。 如何在多个驱动程序之间共享来自SPI-DT节点的信息而没有任何冲突??

1 个答案:

答案 0 :(得分:0)

可以在父节点中转储信息,但是您可能不想这样做。

SPI控制器的寄存器仅应由SPI总线驱动器使用。该总线上的设备应仅依靠spi_read / spi_write或类似的设备(来自<linux/spi/spi.h>)。这意味着您可以在具有不同SPI控制器的另一块板上重复使用RTC驱动程序。

如果没有适用于您的控制器的驱动程序,请首先编写该驱动程序。看看一个简单的例子,例如drivers/spi/spi-altera.c注意:许多驱动程序重复使用Linux中SPI bitbang实现中的功能。这不是说这些控制器使用位撞击I / O,这只是Linux SPI子系统的命名特质。

使用SPI总线的设备将成为控制器设备节点的子级,它们的reg属性表示选择激活哪个芯片才能到达所需的设备。标准绑定记录在Documentation/devicetree/bindings/spi/spi-bus.txt中。