最近在学习基于2.6.18内核的SPI驱动,SPI外设驱动是直接使用内核自带的spidev.c这个驱动文件。ARM9上集成了一个SPI主机控制器。根据2.6内核的设备驱动模型,SPI主机控制器的设备注册是作为平台设备注册到内核中去的,SPI主机控制器的驱动注册过程中调用了自身驱动的probe函数,在这个probe函数里通过层层调用,最终在spi_new_device这个SPI核心层函数中使用device_register函数对扫描到的SPI外设进行设备注册,然而在SPI外设驱动注册的过程中,spidev.c里的probe函数对SPI外设又使用了device_register函数进行设备注册,请问这样先后注册两次怎么回事?按道理来说,注册一次就够了吧?注册两次不会出错吗?标准的做法应该是怎么样的?(从我的调试过程来看,如果没有spidev.c里的再次注册,LINUX启动后,在/DEV下是没有对应的设备节点的)