struct platform_driver {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
int (*probe)(struct platform_device *);
int (*remove)(struct platform_device *);
void (*shutdown)(struct platform_device *);
int (*suspend)(struct platform_device *, pm_message_t state);
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
int (*resume)(struct platform_device *);
struct device_driver driver;
};
这个结构体在platfoem_driver.h中定义。字面翻译为平台驱动,里面包含了探测,删除,关闭,挂起,重启回调函数,同时包含一个设备驱动结构体。
static int serial_imx_probe(struct platform_device *pdev)
{
struct imx_port *sport;
struct imxuart_platform_data *pdata;
void __iomem *base;
int ret = 0;
struct resource *res;
sport = kzalloc(sizeof(*sport), GFP_KERNEL);//申请内存,底层是calloc
if (!sport)
return -ENOMEM;
res = platform_get_resource(pdev, IORESO