blob: aacc8b75ed768be12ec8f86f6d68407a7289182a [file] [log] [blame]
/*
* Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved.
*
* SPDX-License-Identifier: MIT
*/
/*
* vad suspend header file
*/
#ifndef _VAD_SUSPEND_H_
#define _VAD_SUSPEND_H_
#ifdef __cplusplus
extern "C" {
#endif
#define VAD_TASK_PRI 5
#define DSP_VAD_WAKUP_ARM 0x5555AAAA
#define WAIT_SWITCH_TO_24MHZ 0x5A5A5A5A
#define WAIT_SWITCH_TO_RTC_PLL 0xA5A5A5A5
#define WAKEUP_FROM_OTHER_KEY 0xA8A8A8A8
/*use timerI to wakeup dsp FSM*/
static inline void wakeup_dsp(void)
{
uint32_t value;
//uint32_t time_out = 20;
/*set alarm timer*/
REG32(DSP_FSM_TRIGER_SRC) = 10;/*10us*/
value = REG32(DSP_FSM_TRIGER_CTRL);
value &= ~((1 << 7) | (0x3) | (1 << 6));
value |= ((1 << 7) | (0 << 6) | (0x3));
REG32(DSP_FSM_TRIGER_CTRL) = value;
vTaskDelay(1);
}
static inline void clear_dsp_wakeup_trigger(void)
{
REG32(DSP_FSM_TRIGER_SRC) = 0;
REG32(DSP_FSM_TRIGER_CTRL) = 0;
}
#ifdef __cplusplus
}
#endif
#endif