关键流程设计
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,
};