Device Drivers/Platform Driver Interface

From Linux Drivers
Jump to: navigation, search

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);
        ......
}
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox