Dts- status

static struct platform_device *of_platform_device_create_pdata

                   struct device_node *np, 

                   const char *bus_id, 

                   void *platform_data, 

                   struct device *parent) 

    struct platform_device *dev;

    if (!of_device_is_available(np))---------check status属性,确保是enable或者OK的。 

        return NULL;

    of_device_alloc除了分配structplatform_device的内存,还分配了该platform device需要的resource的内存(参考struct platform_device 中的resource成员)。当然,这就需要解析该devicenode的interrupt资源以及memory address资源。

    dev = of_device_alloc(np, bus_id,parent); 

    if (!dev) 

        return NULL;

设定platform_device中的其他成员 

    dev->dev.coherent_dma_mask =DMA_BIT_MASK(32); 

    if (!dev->dev.dma_mask) 

        dev->dev.dma_mask= &dev->dev.coherent_dma_mask; 

    dev->dev.bus =&platform_bus_type; 

    dev->dev.platform_data = platform_data;

    if (of_device_add(dev) != 0){------------------把这个platform device加入统一设备模型系统中 

       platform_device_put(dev); 

        return NULL; 

    }

    return dev; 

}

 

源文档 <http://www.wowotech.net/linux_kenrel/dt-code-analysis.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值