Edit online

关键流程设计

26 Nov 2024
Read time: 1 minute(s)

初始化流程

WDT 驱动的初始化过程见 aic_wdt_probe() 函数,除了普通 platform 设备的处理过程(申请 regs 资源、clk、reset)外,需要调用 WDT 子系统的接口 devm_watchdog_register_device() 来注册 WDT 设备。
int devm_watchdog_register_device(struct device *dev, struct watchdog_device *);
其中参数 struct watchdog_device 中关键信息有:名称、属性、最大/最小/默认 timeout、ops 等,aic_wdt_ops 定义如下:
static const struct watchdog_ops aic_wdt_ops = {
    .owner      = THIS_MODULE,
    .start      = aic_wdt_start,
    .stop       = aic_wdt_stop,
    .ping       = aic_wdt_ping,
    .set_timeout    = aic_wdt_set_timeout,
    .set_pretimeout = aic_wdt_set_pretimeout,
    .restart    = aic_wdt_restart,
};