Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何为ds3234设置芯片选择_Linux_Driver - Fatal编程技术网

Linux 如何为ds3234设置芯片选择

Linux 如何为ds3234设置芯片选择,linux,driver,Linux,Driver,我们正在编写一个spi驱动程序。如何设置linux ds3234驱动程序的“芯片选择引脚”?如果功能名称或头文件有帮助,我们将不胜感激。芯片选择引脚设置在探测驱动程序的板文件中,而不是驱动程序代码本身。例如,如果您正在为Beagleboard编写此SPI驱动程序,您将编辑board-omap3beagle.c文件,该文件位于/arch/arm/mach-omap2中。编辑应包括一个新结构,其中包含驱动程序的modalias、总线号和芯片选择号。例如: static struct spi_boar

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

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

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中

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