唤醒控制器(WUC)
概述
唤醒控制器(WUC)API 提供了一个通用接口,用于启用和管理可使系统退出低功耗状态的唤醒源。WUC 设备通常在 Devicetree 中描述,并由客户端通过 wuc_dt_spec 引用。
Devicetree 配置
客户端节点通过 wakeup-ctrls 属性引用唤醒控制器。该属性包含指向 WUC 设备的 phandle 和唤醒源标识符。
Devicetree 片段示例:
wuc0: wakeup-controller@40000000 {
compatible = "nxp,mcx-wuc";
reg = <0x40000000 0x1000>;
#wakeup-ctrl-cells = <1>;
};
button0: button@0 {
wakeup-ctrls = <&wuc0 10>;
};
基本操作
应用通常使用 WUC_DT_SPEC_GET 获取 wuc_dt_spec ,然后根据需要启用或禁用唤醒源。
#define BUTTON0_NODE DT_NODELABEL(button0)
static const struct wuc_dt_spec button_wuc =
WUC_DT_SPEC_GET(BUTTON0_NODE);
if (!device_is_ready(button_wuc.dev)) {
return -ENODEV;
}
return wuc_enable_wakeup_source_dt(&button_wuc);
如果驱动支持,应用可以检查和清除唤醒源的触发状态。如果未实现此功能,相关 API 将返回 -ENOSYS 。