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