PM Clock
PM Clock 管理 WS63 的时钟系统,提供两个核心功能:时钟门控(Clock Gating)和时钟源/分频配置。
时钟门控可独立开关各外设模块的时钟,实现精细化的功耗管理;CRG 配置可设置时钟源选择(PLL/XTAL/RC)和分频系数。时钟树结构为:时钟源 → CRG(源选择+分频)→ 门控(开关)→ 外设模块。
头文件清单
接口清单
接口名称 功能简述 uapi_clock_crg_config 配置公共CRG时钟 uapi_clock_crg_get_freq 获取公共CRG时钟模块频率 uapi_clock_clken_config 配置时钟门控 uapi_clock_clksel_config 配置时钟选择器 uapi_clock_clkdiv_config 配置时钟分频系数 uapi_clock_get_clkdiv 获取时钟分频系数 uapi_clock_control 时钟控制
Functions
uapi_clock_crg_config
头文件清单
功能说明
- 配置公共CRG(Clock and Reset Generator)时钟模块的时钟源和分频系数
- 通过指定时钟模块ID、时钟源和分频系数,完成对应外设时钟的配置
- 需启用 CONFIG_PM_SUPPORT_CLOCK_CRG_API 宏后该接口才可用
前置条件
- 系统已启动,时钟框架已初始化
- CONFIG_PM_SUPPORT_CLOCK_CRG_API 宏已开启(值为1)
入参
名称 参数类型 详细说明 约束取值范围 id clock_crg_id_t 公共CRG时钟模块ID 由 pm_clock_porting.h 定义的有效时钟模块ID clk_src clock_clk_src_t 时钟源选择 由 pm_clock_porting.h 定义的有效时钟源枚举值 clk_div uint8_t 时钟分频系数 由芯片规格定义的有效分频值
返回值
- 返回类型:errcode_t
返回值 文字含义 触发场景 ERRCODE_SUCC(0x0) 执行成功 时钟配置成功 Other 其他错误码,参考errcode_t 执行失败
Kconfig配置
配置项 宏类型 说明 默认值 CONFIG_PM_SUPPORT_CLOCK_CRG_API 功能宏 支持CRG时钟配置接口功能 y
uapi_clock_crg_get_freq
头文件清单
功能说明
- 获取指定公共CRG时钟模块的当前频率
- 通过时钟模块ID查询对应外设时钟的工作频率
- 需启用 CONFIG_PM_SUPPORT_CLOCK_CRG_API 宏后该接口才可用
前置条件
- 系统已启动,时钟框架已初始化
- CONFIG_PM_SUPPORT_CLOCK_CRG_API 宏已开启(值为1)
入参
名称 参数类型 详细说明 约束取值范围 id clock_crg_id_t 公共CRG时钟模块ID 由 pm_clock_porting.h 定义的有效时钟模块ID
返回值
- 返回类型:uint32_t
返回值 文字含义 触发场景 非零值 时钟频率(单位:Hz) 查询成功 0 无效或未配置 时钟模块ID无效或时钟未配置
Kconfig配置
配置项 宏类型 说明 默认值 CONFIG_PM_SUPPORT_CLOCK_CRG_API 功能宏 支持CRG时钟配置接口功能 y
uapi_clock_clken_config
头文件清单
功能说明
- 配置时钟门控(Clock Gating),开启或关闭指定时钟
- 通过时钟门控ID和使能标志控制对应外设时钟的开关状态
- clk_en 为 true 时开启时钟,为 false 时关闭时钟
前置条件
- 系统已启动,时钟框架已初始化
入参
名称 参数类型 详细说明 约束取值范围 id clock_clken_id_t 时钟门控ID 由 pm_clock_porting.h 定义的有效时钟门控ID clk_en bool 时钟使能标志 true:开启时钟;false:关闭时钟
uapi_clock_clksel_config
头文件清单
功能说明
- 配置时钟选择器(Clock Selector),选择指定时钟的来源
- 通过时钟选择器ID和配置值选择对应外设时钟的时钟源
- 配置值与芯片时钟源映射关系由 pm_clock_porting.h 定义
前置条件
- 系统已启动,时钟框架已初始化
入参
名称 参数类型 详细说明 约束取值范围 id clock_clksel_id_t 时钟选择器ID 由 pm_clock_porting.h 定义的有效时钟选择器ID clk_sel uint8_t 时钟选择器配置值 由 pm_clock_porting.h 定义的有效时钟源选择值
uapi_clock_clkdiv_config
头文件清单
功能说明
- 配置时钟分频器(Clock Divider),设置指定时钟的分频系数
- 通过时钟分频器ID和分频系数完成对应外设时钟的分频配置
- 分频系数与实际输出频率的对应关系由芯片规格定义
前置条件
- 系统已启动,时钟框架已初始化
入参
名称 参数类型 详细说明 约束取值范围 id clock_clkdiv_id_t 时钟分频器ID 由 pm_clock_porting.h 定义的有效时钟分频器ID clk_div uint8_t 时钟频率分频系数 由芯片规格定义的有效分频值
uapi_clock_get_clkdiv
头文件清单
功能说明
- 获取指定时钟分频器的当前分频系数
- 通过时钟分频器ID查询对应分频器的配置值
- 返回值为当前分频系数,与 uapi_clock_clkdiv_config 设置的分频系数对应
前置条件
- 系统已启动,时钟框架已初始化
入参
名称 参数类型 详细说明 约束取值范围 id clock_clkdiv_id_t 时钟分频器ID 由 pm_clock_porting.h 定义的有效时钟分频器ID
返回值
- 返回类型:uint8_t
返回值 文字含义 触发场景 非零值 当前分频系数 查询成功 0 无效或未配置 分频器ID无效或分频器未配置
uapi_clock_control
头文件清单
功能说明
- 时钟控制通用接口,根据控制类型和参数执行对应的时钟控制操作
- 通过控制类型和参数的组合,支持多种时钟控制场景
- 控制类型与参数的对应关系由 pm_clock_porting.h 定义
前置条件
- 系统已启动,时钟框架已初始化
入参
名称 参数类型 详细说明 约束取值范围 type clock_control_type_t 时钟控制类型 由 pm_clock_porting.h 定义的有效控制类型枚举值 param uint8_t 时钟控制参数 由控制类型定义的有效参数值
返回值
- 返回类型:errcode_t
返回值 文字含义 触发场景 ERRCODE_SUCC(0x0) 执行成功 时钟控制操作成功 Other 其他错误码,参考errcode_t 执行失败