blob: 79829d1e1e46b465261773e3f03df3ed5bd02386 [file] [log] [blame] [edit]
/*
* Copyright (c) 2021-2023 Amlogic, Inc. All rights reserved.
*
* SPDX-License-Identifier: MIT
*/
#ifndef __SUSPEND_H__
#define __SUSPEND_H__
/* wake up reason*/
#define UDEFINED_WAKEUP 0
#define CHARGING_WAKEUP 1
#define REMOTE_WAKEUP 2
#define RTC_WAKEUP 3
#define BT_WAKEUP 4
#define WIFI_WAKEUP 5
#define POWER_KEY_WAKEUP 6
#define AUTO_WAKEUP 7
#define CEC_WAKEUP 8
#define REMOTE_CUS_WAKEUP 9
#define ETH_PMT_WAKEUP 10
#define CECB_WAKEUP 11
#define ETH_PHY_GPIO 12
#define VAD_WAKEUP 13
#define HDMI_RX_WAKEUP 14
#define UART_RX_WAKEUP 15
#define STR_QUEUE_LENGTH 32
#define STR_QUEUE_ITEM_SIZE 4
#define EXIT_REASON_EXTENSION_FLAG (1 << 7)
#define DELAY_TIME_MS 20 //20ms
#define POWERON_VDDCPU_DELAY (pdMS_TO_TICKS(DELAY_TIME_MS) + 1)
#define POWERON_VDDIO_DELAY (pdMS_TO_TICKS(DELAY_TIME_MS) + 1)
struct WakeUp_Reason {
char *name;
};
void vDDR_suspend(uint32_t st_f);
void vDDR_resume(uint32_t st_f);
uint32_t parse_suspend_msg(void *msg);
void vCLK_suspend(uint32_t st_f);
void vCLK_resume(uint32_t st_f);
extern void create_str_task(void);
extern void STR_Start_Sem_Give_FromISR(void);
extern void STR_Start_Sem_Give(void);
extern void STR_Wakeup_src_Queue_Send_FromISR(uint32_t *src);
extern void STR_Wakeup_src_Queue_Send(uint32_t *src);
extern void *xMboxSuspend_Sem(void *msg);
#endif /* __SUSPEND_H__ */