platform_driver, platform_device


struct platform_driver {
int (*probe)(struct platform_device *);
int (*remove)(struct platform_device *);
void (*shutdown)(struct platform_device *);
int (*suspend)(struct platform_device *, pm_message_t state);
int (*resume)(struct platform_device *);
struct device_driver driver;
const struct platform_device_id *id_table;
};


struct device_driver {
const char *name; // 此处驱动的命名应和相应设备命名一致
struct bus_type *bus;


struct module *owner;
const char *mod_name; /* used for built-in modules */


bool suppress_bind_attrs; /* disables bind/unbind via sysfs */


const struct of_device_id *of_match_table;


int (*probe) (struct device *dev);
int (*remove) (struct device *dev);
void (*shutdown) (struct device *dev);
int (*suspend) (struct device *dev, pm_message_t state);
int (*resume) (struct device *dev);
const struct attribute_group **groups;


const struct dev_pm_ops *pm;


struct driver_private *p;
};



int platform_driver_register(struct platform_driver *drv);

说明:向内核注册platform_driver。


struct platform_device {
const char * name;  // 此处设备的命名应和相应驱动命名一致
int id;
struct device dev;
u32 num_resources;
struct resource * resource;


const struct platform_device_id *id_entry;


/* MFD cell pointer */
struct mfd_cell *mfd_cell;


/* arch specific additions */
struct pdev_archdata archdata;
};


int platform_device_register(struct platform_device *pdev);

说明:向内核注册platform_device。


struct platform_device *platform_device_alloc(const char *name, int id);

说明:create a platform device。



你可能感兴趣的:(struct,Module,table)