Device Drivers/Platform Driver Interface
From Linux Drivers
Source
For the platform driver
include/linux/platform_device.h
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; }; extern int platform_driver_register(struct platform_driver *); extern void platform_driver_unregister(struct platform_driver *);
drivers/base/platform.c
For the platform device
include/linux/platform_device.h
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; }; extern int platform_device_register(struct platform_device *); extern void platform_device_unregister(struct platform_device *); extern int platform_add_devices(struct platform_device **, int);
drivers/base/platform.c
int platform_device_add(struct platform_device *pdev) { ...... ret = device_add(&pdev->dev); ...... }