0

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

4

1 回答 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 回答