关于platform_device和platform_driver的匹配

本文探讨了Linux 2.6内核中platform_device和platform_driver的匹配过程,批评了新的驱动模型过于复杂。在系统启动时,通过注册平台设备和资源,然后使用platform_driver_register声明对应的驱动。匹配方式通常基于设备名,或者通过id_table进行更复杂的匹配。在平台设备和驱动匹配后,通过driver_data在probe阶段识别具体平台。
摘要由CSDN通过智能技术生成

说句老实话,我不太喜欢现在Linux 2.6这套bus, platform, device,device driver 的模式。我觉得这种模式破坏了Linux的“简单就是美”的哲学,原来那套驱动已经可以包容所有驱动,也可以直接注册驱动文件和管理,而且以前的驱动在现在的结构上也还可以使用,把它在注册到bus这棵树上又有什么用呢?虽然可以看到一点对于移植性和平台管理方面的优点,但是我认为现在这种驱动编程的风格越来越像Windows的风格,很不直观和简约,让人理解起来相当的困惑。

牢骚发完了,bus结构还得继续,说说platform_device和platform_driver的匹配吧!一般来说系统上来在init_init_machine的对应函数ap_init中注册一些这个平台的设备,如下:

static struct resource cbp_sdmmc_resource[]=
{
   [0]={
         .start=HWD_MMC_BASE,
         .end=HWD_MMC_BASE+0xff0,
         .flags=IORESOURCE_MEM
       },
   [1]={
         .start=IRQ_SDMMC,
         .end=IRQ_SDMMC,
         .flags=IORESOURCE_IRQ
       },
   [2]={
         .start=IRQ_SDMMC_CD,
         .end=IRQ_SDMMC_CD,
         .flags=IORESOURCE_IRQ
       }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值