uboot 设备驱动之设备描述

来源:互联网 发布:实景地图制作软件 编辑:程序博客网 时间:2024/05/17 02:21
 
include/dm/device.h
/** * struct udevice - An instance of a driver * * This holds information about a device, which is a driver bound to a * particular port or peripheral (essentially a driver instance). * * A device will come into existence through a 'bind' call, either due to * a U_BOOT_DEVICE() macro (in which case platdata is non-NULL) or a node * in the device tree (in which case of_offset is >= 0). In the latter case * we translate the device tree information into platdata in a function * implemented by the driver ofdata_to_platdata method (called just before the * probe method if the device has a device tree node. * * All three of platdata, priv and uclass_priv can be allocated by the * driver, or you can use the auto_alloc_size members of struct driver and * struct uclass_driver to have driver model do this automatically. * * @driver: The driver used by this device * @name: Name of device, typically the FDT node name * @platdata: Configuration data for this device * @parent_platdata: The parent bus's configuration data for this device * @uclass_platdata: The uclass's configuration data for this device * @of_offset: Device tree node offset for this device (- for none) * @driver_data: Driver data word for the entry that matched this device with *  its driver * @parent: Parent of this device, or NULL for the top level device * @priv: Private data for this device * @uclass: Pointer to uclass for this device * @uclass_priv: The uclass's private data for this device * @parent_priv: The parent's private data for this device * @uclass_node: Used by uclass to link its devices * @child_head: List of children of this device * @sibling_node: Next device in list of all devices * @flags: Flags for this device DM_FLAG_... * @req_seq: Requested sequence number for this device (-1 = any) * @seq: Allocated sequence number for this device (-1 = none). This is set up * when the device is probed and will be unique within the device's uclass. * @devres_head: List of memory allocations associated with this device. *  When CONFIG_DEVRES is enabled, devm_kmalloc() and friends will *  add to this list. Memory so-allocated will be freed *  automatically when the device is removed / unbound */struct udevice { const struct driver *driver; const char *name; void *platdata; void *parent_platdata; void *uclass_platdata; int of_offset; ulong driver_data; struct udevice *parent; void *priv; struct uclass *uclass; void *uclass_priv; void *parent_priv; struct list_head uclass_node; struct list_head child_head; struct list_head sibling_node; uint32_t flags; int req_seq; int seq;#ifdef CONFIG_DEVRES struct list_head devres_head;#endif};
 
 
0 0
原创粉丝点击