blob: 79829d1e1e46b465261773e3f03df3ed5bd02386 [file] [log] [blame]
Kelvin Zhangc4c3dd12021-12-24 20:59:18 +08001/*
Jianyi Shifd8850a2023-10-23 17:46:48 +08002 * Copyright (c) 2021-2023 Amlogic, Inc. All rights reserved.
Kelvin Zhangc4c3dd12021-12-24 20:59:18 +08003 *
yang.li24770372022-01-11 15:21:49 +08004 * SPDX-License-Identifier: MIT
Kelvin Zhangc4c3dd12021-12-24 20:59:18 +08005 */
6
Jianyi Shifd8850a2023-10-23 17:46:48 +08007#ifndef __SUSPEND_H__
8#define __SUSPEND_H__
Kelvin Zhangc4c3dd12021-12-24 20:59:18 +08009/* wake up reason*/
xiaohu.huang2beac512022-05-07 15:10:04 +080010#define UDEFINED_WAKEUP 0
11#define CHARGING_WAKEUP 1
12#define REMOTE_WAKEUP 2
13#define RTC_WAKEUP 3
14#define BT_WAKEUP 4
15#define WIFI_WAKEUP 5
16#define POWER_KEY_WAKEUP 6
17#define AUTO_WAKEUP 7
18#define CEC_WAKEUP 8
19#define REMOTE_CUS_WAKEUP 9
20#define ETH_PMT_WAKEUP 10
21#define CECB_WAKEUP 11
22#define ETH_PHY_GPIO 12
23#define VAD_WAKEUP 13
24#define HDMI_RX_WAKEUP 14
Yu Tue700c712023-04-10 15:28:09 +080025#define UART_RX_WAKEUP 15
Kelvin Zhangc4c3dd12021-12-24 20:59:18 +080026
xiaohu.huang2beac512022-05-07 15:10:04 +080027#define STR_QUEUE_LENGTH 32
Kelvin Zhangc4c3dd12021-12-24 20:59:18 +080028#define STR_QUEUE_ITEM_SIZE 4
Yao Jie5d17b5c2022-11-24 11:00:17 +080029#define EXIT_REASON_EXTENSION_FLAG (1 << 7)
Kelvin Zhangc4c3dd12021-12-24 20:59:18 +080030
changpeng.jiang80a0aca2024-01-19 10:51:35 +080031#define DELAY_TIME_MS 20 //20ms
32#define POWERON_VDDCPU_DELAY (pdMS_TO_TICKS(DELAY_TIME_MS) + 1)
changpeng.jiange9968282024-02-06 17:26:04 +080033#define POWERON_VDDIO_DELAY (pdMS_TO_TICKS(DELAY_TIME_MS) + 1)
changpeng.jiang80a0aca2024-01-19 10:51:35 +080034
xiaohu.huang2beac512022-05-07 15:10:04 +080035struct WakeUp_Reason {
36 char *name;
37};
Kelvin Zhangc4c3dd12021-12-24 20:59:18 +080038
Xiaohu.Huang60950452022-03-12 22:51:01 +080039void vDDR_suspend(uint32_t st_f);
40void vDDR_resume(uint32_t st_f);
41uint32_t parse_suspend_msg(void *msg);
42void vCLK_suspend(uint32_t st_f);
43void vCLK_resume(uint32_t st_f);
Kelvin Zhangc4c3dd12021-12-24 20:59:18 +080044extern void create_str_task(void);
45extern void STR_Start_Sem_Give_FromISR(void);
46extern void STR_Start_Sem_Give(void);
47extern void STR_Wakeup_src_Queue_Send_FromISR(uint32_t *src);
48extern void STR_Wakeup_src_Queue_Send(uint32_t *src);
49extern void *xMboxSuspend_Sem(void *msg);
Jianyi Shifd8850a2023-10-23 17:46:48 +080050#endif /* __SUSPEND_H__ */
51