c语言标准spi驱动软件,那位看过标准的spi驱动,spidev.c中有些问题系想不明白。急急急...

spidev.c中的spidev_init(),在完成register_chrdev(),class_register()后调用。

注册spidev_spi时,调用spi_register_driver();

spidev的注册过程大致为:spi_register_driver()-> driver_register() -> bus_add_driver() -> bus_add_driver() ->

driver_attach() -> bus_for_each_dev()

在bus_for_each_dev()中查找spi总线上的设备,既遍历bus->klist_devices上的设备,如果有设备则调用drv的probe函数。这里是spidev.c中的spidev_probe()探测函数。

但在我的系统上运行,发现有这么个问题:spi总线上的bus->klist_devices是空的,没有任何设备,所以spidev_probe()没有被调用,这样spidev的注册失败。

问题:bus->klist_devices上的设备时如何注册上的,在什么时间注册。由谁注册。

|

在开发板的/sys/bus/spi下的drivers和devices下看看没有设备驱动和相应的设备。开发板的模块应该有好几个我用的devkit8000有四个,只有spi1.0是可用于用户扩展的借口,如果注册设备需要修改文件目录在/arch/arm/match-你的板子的具体型号(你的板子的设置文件)添加类似代码

struct spi_board_info omap3devkit9100_spi_board_info[] = {

[0] = {

.modalias= "spidev",

.bus_num= 1,

.chip_select= 0,

.max_speed_hz= 1500000,

.controller_data= &****_config,

.irq= OMAP_GPIO_IRQ(OMAP3_BEAGLE_TS_GPIO),

估计是这个问题 ,我是新手 希望多交流

不知道对你有用不 也不知道是否是你面对的问题 如果不管用 就当帮顶了

|

帮 你 顶...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值