/* * 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 RADAR_GPIO_WAKEUP 16 #define ETH_WAKEUP 17 #define SED_WAKEUP 18 #define STR_QUEUE_LENGTH 32 #define STR_QUEUE_ITEM_SIZE 4 #define EXIT_REASON_EXTENSION_FLAG (1 << 7) #define DELAY_TIME_MS 40 //DCDC 8mS * 5 #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; }; uint8_t get_suspend_flag(void); 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); void check_poweroff_status(void); void vDSP_suspend(uint32_t st_f); void vDSP_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); uint32_t get_reason_flag(void); #if defined(CONFIG_WATCHDOG) void vSetWdtFlag(void); void vClrWdtFlag(void); #define AO_WDT_FLAG 0x1000 #endif #endif /* __SUSPEND_H__ */