我们正在编写一个 spi 驱动程序。如何为 linux ds3234 驱动程序设置“芯片选择引脚”?可以提供帮助的函数或头文件的名称将不胜感激。
问问题
792 次
1 回答
1
芯片选择引脚设置在探测驱动程序的板文件中,而不是驱动程序代码本身。例如,如果您正在为 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));
当你调用这个注册函数时,驱动的probe函数就会被调用。查看 /Documentation/spi 中的文档。如果你只想编写一个用户空间实现,你可以使用 spidev 接口。这也记录在 /Documentation/spi 中。
于 2013-01-03T16:09:19.953 回答