/* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
/*
 * Copyright (c) 2021 MediaTek Inc.
 */

#ifndef _VOC_HAL_PAGANINI_H
#define _VOC_HAL_PAGANINI_H
//------------------------------------------------------------------------------
//  Include Files
//------------------------------------------------------------------------------
#include "voc_common.h"
#include "voc_common_reg.h"
//------------------------------------------------------------------------------
// Global Function
//------------------------------------------------------------------------------
uint32_t voc_hal_paganini_get_sample_rate(void);
uint8_t voc_hal_paganini_get_channel(void);
uint8_t voc_hal_paganini_get_bit_width(void);
uint32_t voc_hal_paganini_dma_wr_level_cnt(void);
uint32_t voc_hal_paganini_read_dma_data(uint8_t *dst_buf, uint32_t buf_size);
int voc_hal_paganini_open(uint32_t sample_rate, uint32_t bit_width, uint32_t channels);
void voc_hal_paganini_dma_reset(void);
void voc_hal_paganini_set_dma_buf_addr(uint32_t u32addr, uint32_t size);
void voc_hal_paganini_set_virtual_buf_addr(void *pAddr, uint32_t size);
int voc_hal_paganini_dma_start_channel(void);
int voc_hal_paganini_dma_stop_channel(void);
int voc_hal_paganini_dma_get_reset_status(void);
int voc_hal_paganini_dma_config_owl(void);
int voc_hal_paganini_slt_test(int run_time);
int voc_hal_paganini_enable_vq(bool en);
int voc_hal_paganini_config_vq(uint8_t mode);
int voc_hal_paganini_update_snd_model(dma_addr_t snd_model_paddr, uint32_t size);
int voc_hal_paganini_get_hotword_ver(void);
int voc_hal_paganini_get_hotword_identifier(void);
int voc_hal_paganini_enable_seamless(bool en);
int voc_hal_paganini_get_seamless_mode(void);
int voc_hal_paganini_get_keyword_status(void);
int voc_hal_paganini_notify_status(int32_t status);
int voc_hal_paganini_init(void);
#endif /* _VOC_HAL_PAGANINI_H */
