个中有个重要的成员是resource,是设备的资本信息,如IO地址,中断号等。
有的设备可能有多个资本,平日应用platform_get_resource函数来获取资本
- /**
- * platform_get_resource - get a resource for a device
- * @dev: platform device
- * @type: resource type
- * @num: resource index
- */
- struct resource *platform_get_resource(struct platform_device *dev,
- unsigned int type, unsigned int num)
- {
- int i;
- for (i = 0; i < dev->num_resources; i++) {
- struct resource *r = &dev->resource[i];
- if (type == resource_type(r) && num-- == 0)
- return r;
- }
- return NULL;
- }
平台设备的注册,应用platform_device_register函数
- int platform_device_register(struct platform_device *pdev)
- {
- device_initialize(&pdev->dev);
- return platform_device_add(pdev);
- }
platform_device_register函数先经由过程device_initialize函数初始化platform_device的device成员,然后调用platform_device_add向内核添加一个平台设备。
platform_device_add最终调用device_add来完成平台设备的注册。
相反地,如不雅要刊出平台设备则应用platform_device_unregister函数
- void platform_device_unregister(struct platform_device *pdev)
- {
- platform_device_del(pdev);
- platform_device_put(pdev);
- }
platform_device_unregister函数调用platform_device_del函数来刊出平台设备
- void platform_device_del(struct platform_device *pdev)
- {
- int i;
- if (pdev) {
- device_del(&pdev->dev);
- for (i = 0; i < pdev->num_resources; i++) {
推荐阅读
Linux Lite第一个支持Linux 4.14及如何安装
Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 Linux Lite保护者Jerry Bezencon再次初次在Twitter上宣布他的基于Ubuntu的发行版的软件库中最新的Linux内>>>详细阅读
本文标题:Linux平台总线驱动设备模型
地址:http://www.17bianji.com/lsqh/38937.html
1/2 1