2013-01-03 51 views
-1

我们正在写一个spi驱动程序。如何设置linux ds3234驱动程序的“芯片选择引脚”?可以帮助的功能或头文件的名称,将不胜感激。如何设置芯片选择ds3234

+0

可能通过使用相关IO端口号或物理内存地址对该芯片进行寻址。主板将适当地设置芯片选择引脚。 –

回答

0

芯片选择引脚被设置在探测驱动程序的电路板文件中,而不是驱动程序代码本身。例如,如果您正在为Beagleboard编写SPI驱动程序,则可以编辑位于/ arch/arm/mach-omap2中的board-omap3beagle.c文件。编辑应该包含一个新的结构,其中包含驱动程序的模态,总线编号和芯片选择编号。例如:

static struct spi_board_info mcspi_board_info[] = { 
    // spi 3.0 
    { 
     .modalias = "driver1", 
     .max_speed_hz = 5000000, // 5 Mbps 
     .bus_num = 3, 
     .chip_select = 0,  
     .mode = SPI_MODE_0, 
    }, 

    // spi 3.1 
    { 
     .modalias = "driver2", 
     .max_speed_hz = 5000000, // Mbps 
     .bus_num = 3, 
     .chip_select = 1,  
     .mode = SPI_MODE_3, 
    }, 
}; 

然后在__init函数注册驱动程序如下:

spi_register_board_info(mcspi_board_info,ARRAY_SIZE(mcspi_board_info)); 

当你调用这个寄存器功能,驱动器的探测函数被调用。查看/ Documentation/spi中的文档。如果你只想写一个用户空间实现,你可以使用spidev接口。这也记录在/ Documentation/spi中。