Edit online

接口设计

3 Mar 2025
Read time: 4 minute(s)

Clock API

CMU 驱动提供了 Clock API 接口函数,不同类型时钟支持的 API 接口函数如下表:
1. Clock API 接口函数

API 函数

功能描述

fixed
rate
clock

fixed
parent
clock

multi
parent
clock

disp
clock

pll
clock

hal_clk_enable()

使能时钟

-

-

hal_clk_disable()

关闭时钟

-

-

hal_clk_enable_deassertrst()

使能时钟的同时放开复位

-

-

-

-

hal_clk_disable_assertrst()

关闭时钟的同时使能复位

-

-

-

-

hal_clk_enable_iter()

迭代的使能时钟及其父时钟

-

-

hal_clk_enable_deassertrst_iter()

迭代的使能时钟及其父时钟
同时放开复位

-

-

-

-

hal_clk_get_freq()

获取时钟频率

hal_clk_set_freq()

设置时钟频率

-

hal_clk_get_parent()

获取父时钟 id

-

-

hal_clk_set_parent()

设置父时钟 id

-

-

-

-

2. hal_clk_enable

函数原型

int hal_clk_enable(uint32_t clk_id)

功能说明

使能时钟

参数定义

clk_id:时钟 ID (CLK_xxxx 格式定义的宏)

返回值

操作是否成功 (0=OK, other=Error)

注意事项

-

3. hal_clk_disable

函数原型

int hal_clk_disable(uint32_t clk_id)

功能说明

关闭时钟

参数定义

clk_id:时钟 ID (CLK_xxxx 格式定义的宏)

返回值

操作是否成功 (0=OK, other=Error)

注意事项

-

4. hal_clk_enable_deassertrst

函数原型

int hal_clk_enable_deassertrst(uint32_t clk_id)

功能说明

使能时钟的同时放开复位

参数定义

clk_id:时钟 ID (CLK_xxxx 格式定义的宏)

返回值

操作是否成功 (0=OK, other=Error)

注意事项

-

5. hal_clk_disable_assertrst

函数原型

int hal_clk_disable_assertrst(uint32_t clk_id)

功能说明

关闭时钟的同时使能复位

参数定义

clk_id:时钟 ID (CLK_xxxx 格式定义的宏)

返回值

操作是否成功 (0=OK, other=Error)

注意事项

-

6. hal_clk_enable_iter

函数原型

int hal_clk_enable_iter(uint32_t clk_id)

功能说明

迭代的使能时钟及其父时钟

参数定义

clk_id:时钟 ID (CLK_xxxx 格式定义的宏)

返回值

操作是否成功 (0=OK, other=Error)

注意事项

-

7. hal_clk_enable_deassertrst_iter

函数原型

int hal_clk_enable_deassertrst_iter(uint32_t clk_id)

功能说明

迭代的使能时钟及其父时钟,同时放开复位

参数定义

clk_id:时钟 ID (CLK_xxxx 格式定义的宏)

返回值

操作是否成功 (0=OK, other=Error)

注意事项

-

8. hal_clk_get_freq

函数原型

unsigned long hal_clk_get_freq(uint32_t clk_id)

功能说明

获取时钟频率

参数定义

clk_id:时钟 ID (CLK_xxxx 格式定义的宏)

返回值

时钟频率,单位为 Hz

注意事项

-

9. hal_clk_set_freq

函数原型

int hal_clk_set_freq(uint32_t clk_id, unsigned long freq)

功能说明

设置时钟频率

参数定义

clk_id:时钟 ID (CLK_xxxx 格式定义的宏)
freq:时钟频率,单位为 Hz

返回值

操作是否成功 (0=OK, other=Error)

注意事项

-

10. hal_clk_get_parent

函数原型

unsigned int hal_clk_get_parent(uint32_t clk_id)

功能说明

获取父时钟 ID

参数定义

clk_id:时钟 ID (CLK_xxxx 格式定义的宏)

返回值

父时钟 ID

注意事项

-

11. hal_clk_set_parent

函数原型

int hal_clk_set_parent(uint32_t clk_id, unsigned int parent_clk_id)

功能说明

设置父时钟 ID

参数定义

clk_id:时钟 ID (CLK_xxxx 格式定义的宏)
parent_clk_id:父时钟 ID

返回值

操作是否成功 (0=OK, other=Error)

注意事项

-

Reset API

CMU 驱动提供了 Reset API 接口函数:

API 函数

功能描述

hal_reset_assert()

使能复位

hal_reset_deassert()

放开复位

hal_reset_status()

获取复位状态

12. hal_reset_assert

函数原型

int hal_reset_assert(uint32_t rst_id)

功能说明

使能复位

参数定义

rst_id:Reset ID (RESET_xxxx 格式定义的宏)

返回值

操作是否成功 (0=OK, other=Error)

注意事项

-

13. hal_reset_deassert

函数原型

int hal_reset_deassert(uint32_t rst_id)

功能说明

放开复位

参数定义

rst_id:Reset ID (RESET_xxxx 格式定义的宏)

返回值

操作是否成功 (0=OK, other=Error)

注意事项

-

14. hal_reset_status

函数原型

int hal_reset_status(uint32_t rst_id)

功能说明

查看复位状态

参数定义

rst_id:Reset ID (RESET_xxxx 格式定义的宏)

返回值

操作是否成功 (0=复位有效, 1=复位无效)

注意事项

-