首先,函数接收一个spi_master指针和一个spi_board_info结构体指针作为参数,分别表示要连接的SPI控制器和描述SPI设备的信息。 函数通过调用spi_alloc_device为新的SPI设备分配内存空间,并返回一个指向该设备的指针。如果内存分配失败,则返回NULL。 函数将SPI设备的属性从spi_board_info结构体中复制
1描述spi设备的结构体2structspi_board_info spi_infos[] ={3{4.modalias ="mcp2515", //设备名5.platform_data = NULL, //根据spi驱动决定是否用了平台数据。dev.platform_data6.controller_data = &sunxi_data,//需查控制器的驱动代码,可得知需要提供struct sunxi_spi_config类型数据. 注意不同的同台,需...
这个代码会把spi_board_info注册到链表board_list上。 spi_device封装了一个spi_master结构体,事实上spi_master的注册会在spi_register_board_info之后,spi_master注册的过程中会调用scan_boardinfo扫描board_list,找到挂接在它上面的spi设备,然后创建并注册spi_device。 至此spi_device就构建并注册完成了! 5 spi_dr...
int __devinitspi_register_board_info(struct spi_board_info const *info, unsigned n) 该函数一般在板级初始化代码里调用。比如:exynos4412开发板的SPI板级信息设置在mach-tiny4412.c文件的底层初始化函数里调用。struct spi_board_info结构体里保存了与SPI驱动端匹配的名称。 该函数里最终将传入的struc...
spi_device封装了一个spi_master结构体,事实上spi_master的注册会在spi_register_board_info之后,spi_master注册的过程中会调用scan_boardinfo扫描board_list,找到挂接在它上面的spi设备,然后创建并注册spi_device。 至此spi_device就构建并注册完成了! 5 spi_driver的构建与注册 driver有几个重要的结构体:spi_driver...
重要数据结构: spi_device spi_driver spi_board_info spi_controller/spi_master spi_transfer spi_message 重要API spi_message_init spi_message_add_tail spi_sync spi_async spi_write spi_read 接下来详细解析结构体和API,只讲解重点部分,完整解析请参考官方文档 ...
2.1 板级设备结构体 1 structspi_board_info { 2 /* the device name and module name are coupled, like platform_bus; 3 * "modalias" is normally the driver name. 4 * 5 * platform_data goes to spi_device.dev.platform_data, 6 * controller_data goes to spi_device.controller_data, ...
6.spi_board_infospi_d 42、evice的板信息用spi_board_info结构体描述,该结构体记录着spi外设使用的主机控制器序号、片选序号、数据比特率、spi传输模式(即cpol、cpha)等。arm linux3.x之后的内核在改为设备树之后,不再需要在arch/arm/mach-xxx中编码spi的板级信息了,而倾向于在spi控制器节点下填写子节点。
笔者在这与I2C子系统类比,列出数据结构名。 I2C SPI 主机适配器(控制器) struct i2c_adapter struct spi_master 机控制器的操作方法 struct i2c_algorithm struct spi_bitbang 从机设备 struct i2c_client struct spi_device 从机设备板卡信息 struct i2c_board_info struct spi_board_info 从机设备驱动 ...
这个代码会把spi_board_info注册要链表board_list上。 事实上上文提到的spi_master的注册会在spi_register_board_info之后,spi_master注册的过程中会调用scan_boardinfo扫描board_list,找到挂接在它上面的spi设备,然后创建并注册spi_device。 点击(此处)折叠或打开 static voidscan_boardinfo(structspi_master *master...