1 2struct lm_device { 3 struct device dev; 4 struct resource resource; 5 unsigned int irq; 6 unsigned int id; 7}; 8 9struct lm_driver { 10 struct device_driver drv; 11 int (*probe)(struct lm_device *); 12 void (*remove)(struct lm_device *); 13 int (*suspend)(struct lm_device *, pm_message_t); 14 int (*resume)(struct lm_device *); 15}; 16 17int lm_driver_register(struct lm_driver *drv); 18void lm_driver_unregister(struct lm_driver *drv); 19 20int lm_device_register(struct lm_device *dev); 21 22#define lm_get_drvdata(lm) dev_get_drvdata(&(lm)->dev) 23#define lm_set_drvdata(lm,d) dev_set_drvdata(&(lm)->dev, d) 24