void*platform_data;/* Platform specific data, device core doesn't touch it */ ... }; 1. 2. 3. 4. 5. 6. 7. struct device_private中的成员: struct device_private - structure to hold the private to the driver core portions of the device structure.这个结构用来保存struct device中的私有...
struct device_private - structure to hold the private to the driver core portions of the device structure.这个结构用来保存struct device中的私有的设备驱动程序的核心部分。 struct device_private { ... void *driver_data; struct device *device; }; 如果有定义struct platform_device *pdev;那设备相关的...
内核提供了这个方法,使用函数platform_set_drvdata()可以将ndev保存成平台总线设备的私有数据。以后再要使用它时只需调用platform_get_drvdata()就可以了。 staticint__devinitdm9000_probe(struct platform_device*pdev) { struct dm9000_plat_data*pdata=pdev->dev.platform_data; struct board_info*db;/*Poin...
static inline void platform_set_drvdata(struct platform_device *pdev, void *data) { dev_set_drvdata(&pdev->dev, data); } static inline void dev_set_drvdata (struct device *dev, void *data) { dev->driver_data = data; } 就是吧data赋值给dev->driver_data,pdev是平台总线设备,对于整个...
设备名称intid;// 设备号boolid_auto;structdevicedev;u32num_resources;structresource*resource;conststructplatform_device_id*id_entry;char*driver_override;/* Driver name to force a match *//* MFD cell pointer */structmfd_cell*mfd_cell;/* arch specific additions */structpdev_archdataarchdata;...
platform_driver_register、platform_driver_unregister,platform driver的注册、注销接口。 platform_driver_probe,主动执行probe动作。 platform_set_drvdata、platform_get_drvdata,设置或者获取driver保存在device变量中的私有数据。 3.4 懒人API 又是注册platform device,又是注册platform driver,看着挺啰嗦的。不过内核想到...
1 一、设备树基础概念1、基本数据格式device tree是一个简单的节点和属性树,属性是键值对,节点可以包含属性和子节点。下面是一个.dts格式的简单设备树。/ {node1 {a-string-property = "A string";a-string-list-property = "first string", "second string";a-byte-data-property = [0x01 0x23 0x34 ...
arch_setup_pdev_archdata(pdev); return platform_device_add(pdev); } 2) 注册设备platform_driver_register #define platform_driver_register(drv) \ __platform_driver_register(drv, THIS_MODULE) 三、举例 1. 开发步骤 platform 总线下驱动的开发步骤是: 设备 需要实现的结构体是:platform_device 。 1...
device */ void *driver_data; /* data private to the driver */ void *platform_data; /* Platform specific data, device core doesn't touch it */ struct dev_pm_info power; #ifdef CONFIG_NUMA int numa_node; /* NUMA node this device is close to */ ...
设备用platform_device表示,驱动用platform_driver进行注册。 与传统的bus/device/driver机制相比,platform由内核进行统一管理,在驱动中使用资源,提高了代码的安全性和可移植性。 二、platform1. platform总线两个最重要的结构体 platform维护的所有的驱动都必须要用该结构体定义: ...