WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
lpm_dev_ops.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2021-2021. All rights reserved.
3 * Description: Low-power management operations for peripheral devices.
4 *
5 * Create: 2021-4-28
6 */
7
8#ifndef LPM_DEV_OPS_H
9#define LPM_DEV_OPS_H
10#include <stdbool.h>
11
12#ifdef __cplusplus
13#if __cplusplus
14extern "C" {
15#endif /* __cplusplus */
16#endif /* __cplusplus */
17
27typedef struct {
28 int (*power_on)(bool);
29 int (*power_sts)(void);
30 int (*set_voltage)(int);
31 int (*get_voltage)(void);
32 int (*clock_en)(bool);
33 int (*clock_sts)(void);
34 int (*set_freq)(int);
35 int (*get_freq)(void);
36 int (*set_div_num)(int);
37 int (*get_div_num)(void);
38 int (*sub_clken)(int, bool);
39 int (*resume)(void);
40 int (*suspend)(void);
42
65
78
79typedef void (*lpm_clock_init_callback)(void);
80
85bool lpm_dev_ops_init(void);
86
91bool lpm_dev_ops_deinit(void);
92
100
107
115
122int lpm_dev_power_on(lpm_dev_id_t id, bool on);
123
130
137int lpm_dev_set_voltage(lpm_dev_id_t id, int vset);
138
145
152int lpm_dev_clock_en(lpm_dev_id_t id, bool on);
153
160
167int lpm_dev_set_freq(lpm_dev_id_t id, int freq);
168
175
182int lpm_dev_set_div_num(lpm_dev_id_t id, int clk_div);
183
190
198int lpm_dev_sub_bus_clken(lpm_dev_id_t id, int bus, bool on);
199
205
209void lpm_display_clocks_init(void);
210
214#ifdef __cplusplus
215#if __cplusplus
216}
217#endif /* __cplusplus */
218#endif /* __cplusplus */
219#endif
bool lpm_dev_ops_register(lpm_dev_id_t id, lpm_dev_ops_t *ops)
Register low-power operation interface of the peripheral device.
Definition lpm_dev_ops.c:51
int lpm_dev_sub_bus_clken(lpm_dev_id_t id, int bus, bool on)
Enables or disables the clock of a subdevice.
Definition lpm_dev_ops.c:228
int lpm_dev_power_on(lpm_dev_id_t id, bool on)
Power on or power off the peripheral device.
Definition lpm_dev_ops.c:108
bool lpm_dev_ops_deinit(void)
The peripheral device operations deinit.
Definition lpm_dev_ops.c:38
int lpm_dev_set_freq(lpm_dev_id_t id, int freq)
Set the clock frequency of the peripheral device.
Definition lpm_dev_ops.c:180
int lpm_dev_set_div_num(lpm_dev_id_t id, int clk_div)
Set the divider number of the peripheral device clock.
Definition lpm_dev_ops.c:204
int lpm_dev_get_voltage(lpm_dev_id_t id)
Get the voltage of peripheral device.
Definition lpm_dev_ops.c:144
void lpm_display_clocks_init(void)
Clock initialization configuration of the display module.
Definition lpm_dev_ops.c:247
void(* lpm_clock_init_callback)(void)
Definition lpm_dev_ops.h:79
int lpm_dev_clock_en(lpm_dev_id_t id, bool on)
Enable or disable the device clock switch.
Definition lpm_dev_ops.c:156
int lpm_dev_ops_update(lpm_dev_id_t id, lpm_dev_ops_t *ops)
Update the operation function of the device.
Definition lpm_dev_ops.c:81
int lpm_dev_get_clock_sts(lpm_dev_id_t id)
Get the device clock switch status.
Definition lpm_dev_ops.c:168
bool lpm_dev_ops_init(void)
The peripheral device operations init.
Definition lpm_dev_ops.c:18
lpm_dev_id_t
Peripheral device ID.
Definition lpm_dev_ops.h:46
void lpm_display_clocks_init_register_callback(lpm_clock_init_callback callback)
Registering the callback function for clock initialization configuration of the display module.
Definition lpm_dev_ops.c:240
int lpm_dev_get_power_sts(lpm_dev_id_t id)
Get the power status of peripheral Devices.
Definition lpm_dev_ops.c:120
bool lpm_dev_ops_unregister(lpm_dev_id_t id)
Deregister low-power operation interface of the peripheral device.
Definition lpm_dev_ops.c:66
int lpm_dev_get_freq(lpm_dev_id_t id)
Get the clock frequency of the peripheral device.
Definition lpm_dev_ops.c:192
int lpm_dev_get_div_num(lpm_dev_id_t id)
Get the divider number of the peripheral device clock.
Definition lpm_dev_ops.c:216
lpm_ret_t
Function return value.
Definition lpm_dev_ops.h:69
int lpm_dev_set_voltage(lpm_dev_id_t id, int vset)
Config the peripheral device voltage.
Definition lpm_dev_ops.c:132
@ DEV_PSRAM
Definition lpm_dev_ops.h:55
@ DEV_IR
Definition lpm_dev_ops.h:56
@ DEV_I2C
Definition lpm_dev_ops.h:48
@ DEV_MAX
Definition lpm_dev_ops.h:63
@ DEV_GPU
Definition lpm_dev_ops.h:60
@ DEV_SDIO
Definition lpm_dev_ops.h:58
@ DEV_CAP
Definition lpm_dev_ops.h:53
@ DEV_UART
Definition lpm_dev_ops.h:52
@ DEV_ADC
Definition lpm_dev_ops.h:47
@ DEV_DSS
Definition lpm_dev_ops.h:59
@ DEV_EMMC
Definition lpm_dev_ops.h:57
@ DEV_OPI
Definition lpm_dev_ops.h:54
@ DEV_SPI
Definition lpm_dev_ops.h:50
@ DEV_PCIE
Definition lpm_dev_ops.h:61
@ DEV_PWM
Definition lpm_dev_ops.h:62
@ DEV_DMA
Definition lpm_dev_ops.h:49
@ DEV_QSPI
Definition lpm_dev_ops.h:51
@ LPM_RET_OFF
Definition lpm_dev_ops.h:73
@ LPM_RET_MAX
Definition lpm_dev_ops.h:76
@ LPM_RET_UNINIT
Definition lpm_dev_ops.h:75
@ LPM_RET_OK
Definition lpm_dev_ops.h:70
@ LPM_RET_NOREG
Definition lpm_dev_ops.h:71
@ LPM_RET_ON
Definition lpm_dev_ops.h:72
@ LPM_RET_ERR
Definition lpm_dev_ops.h:74
The peripheral device operation functions.
Definition lpm_dev_ops.h:27