spi_add_device spi_new_device spi_setup SPI驱动注册 spi_register_driver 消息队列初始化 spi_master_initialize_queue spi_init_queue spi_start_queue 数据准备 spi_message_init spi_message_add_tail spi_message_init_with_transfers 数据传输 异步方式 spi_async __spi_async spi_queued_transfer __spi_...
00000364 status = spi_add_device(proxy); 00000365 if (status < 0) { 00000366 spi_dev_put(proxy); 00000367 return NULL; 00000368 } 00000369 00000370 return proxy; 00000371 } 349至351行,spi_alloc_device函数的定义: 00000229 struct spi_device *spi_alloc_device(struct spi_master *master) 00000...
29 status =spi_add_device(proxy);//添加spi_device 30 if (status < 0) { 31spi_dev_put(proxy);//增加引用计数 32 returnNULL; 33} 34 35 returnproxy; 36 } 1.2 首先调用函数spi_alloc_device,分配一个spi_device,并通过device_initialize初始化。 1 struct spi_device *spi_alloc_device(struct ...
//SPI驱动,和platform_driver,i2c_driver类似structspi_driver{conststructspi_device_id*id_table;int(*probe)(structspi_device *spi);int(*remove)(structspi_device *spi);void(*shutdown)(structspi_device *spi);int(*suspend)(structspi_device *spi,pm_message_tmesg);int(*resume)(structspi_device...
spi_bus_add_device(HSPI_HOST, &dev_config, &handle); // 创建SPI事务 spi_transaction_t trans_desc; trans_desc.addr = 0; // 地址阶段的值,0表示没有地址阶段 trans_desc.cmd = 0; // 命令阶段的值,0表示没有命令阶段 trans_desc.flags = 0; // 事务的标志,0表示没有特殊标志 ...
在spi_add_device函数中调用。 transfer函数是实现SPI总线读写方法的函数。实现数据的双向传输,可能会睡眠 cleanup 注销的时候调用 3.2 SPI设备驱动层 SPI设备驱动层为用户接口层,其为用户提供了通过SPI总线访问具体设备的接口。 SPI设备驱动层可以用两个模块来描述,struct spi_driver和struct spi_device。 相关的...
ESP_ERROR_CHECK(spi_bus_add_device(spi->id, &devcfg, &spi_h)); return 0; }Log output:D/luat.main luavm 65528 7544 7760D/luat.main sys 0 0 0I/user.spi open SPI esp_get_free_heap_size : 160888 esp_get_free_heap_size : 160888 ...
CHANGE_ADD:master=of_find_spi_master_by_node(rd->dn->parent);if(master==NULL)returnNOTIFY_OK;/* not for us */if(of_node_test_and_set_flag(rd->dn,OF_POPULATED)){put_device(&master->dev);returnNOTIFY_OK;}spi=of_register_spi_device(master,rd->dn);// 设备树匹配操作put_device(&...
printf( "rnLCD HX8357 - *** spi_bus_add_device addr = %p ***rn", &device_handle);asse...
/*SPI多字节发送*/staticintspi_send(structspi_device*spi,u8*buf,intlen){intret;structspi_messagem;structspi_transfert={.tx_buf=buf, .len=len, }; spi_message_init(&m);/*初始化spi_message*/spi_message_add_tail(t,&m);/*将spi_transfer添加到spi_message队列*/ret=spi_sync(spi,&m);/...