nt9856x/code/hdal/vendor/media/include/vendor_audioout.h
2023-03-28 15:07:53 +08:00

99 lines
2.9 KiB
C
Executable File

/**
@brief Header file of vendor audioout module.\n
This file contains the functions which is related to vendor audioout.
@file vendor_audioout.h
@ingroup mhdal
@note Nothing.
Copyright Novatek Microelectronics Corp. 2018. All rights reserved.
*/
#ifndef _VENDOR_AUDIOOUT_H_
#define _VENDOR_AUDIOOUT_H_
/********************************************************************
INCLUDE FILES
********************************************************************/
#include "hd_type.h"
/********************************************************************
MACRO CONSTANT DEFINITIONS
********************************************************************/
#define VENDOR_AUDIOOUT_NAME_LEN 32
/********************************************************************
MACRO FUNCTION DEFINITIONS
********************************************************************/
/********************************************************************
TYPE DEFINITION
********************************************************************/
typedef enum _VENDOR_AUDIOOUT_ITEM {
VENDOR_AUDIOOUT_ITEM_EXT,
VENDOR_AUDIOOUT_ITEM_AUDIO_FILTER_EN,
VENDOR_AUDIOOUT_ITEM_WAIT_PUSH,
VENDOR_AUDIOOUT_ITEM_PRELOAD_DONE,
VENDOR_AUDIOOUT_ITEM_DONE_SIZE,
VENDOR_AUDIOOUT_ITEM_NEEDED_BUF,
VENDOR_AUDIOOUT_ITEM_ALLOC_BUF,
VENDOR_AUDIOOUT_ITEM_CHN_STATE,
VENDOR_AUDIOOUT_ITEM_VOLUME,
VENDOR_AUDIOOUT_ITEM_PREPWR_ENABLE,
VENDOR_AUDIOOUT_ITEM_DMA_ABORT,
ENUM_DUMMY4WORD(VENDOR_AUDIOOUT_ITEM)
} VENDOR_AUDIOOUT_ITEM;
typedef struct _VENDOR_AUDIOOUT_PINMUX_CFG {
UINT32 audio_pinmux;
UINT32 cmd_if_pinmux;
} VENDOR_AUDIOOUT_PINMUX_CFG;
typedef struct _VENDOR_AUDIOOUT_INIT_PIN_CFG {
VENDOR_AUDIOOUT_PINMUX_CFG pinmux;
} VENDOR_AUDIOOUT_INIT_PIN_CFG;
typedef struct _VENDOR_AUDIOOUT_INIT_I2S_CFG {
UINT32 bit_width;
UINT32 bit_clk_ratio;
UINT32 op_mode;
UINT32 tdm_ch;
} VENDOR_AUDIOOUT_INIT_I2S_CFG;
typedef struct _VENDOR_AUDIOOUT_INIT_CFG_OBJ {
VENDOR_AUDIOOUT_INIT_PIN_CFG pin_cfg;
VENDOR_AUDIOOUT_INIT_I2S_CFG i2s_cfg;
} VENDOR_AUDIOOUT_INIT_CFG_OBJ;
typedef struct _VENDOR_AUDIOOUT_INIT_CFG {
CHAR driver_name[VENDOR_AUDIOOUT_NAME_LEN];
VENDOR_AUDIOOUT_INIT_CFG_OBJ aud_init_cfg;
} VENDOR_AUDIOOUT_INIT_CFG;
typedef struct _VENDOR_AUDIOOUT_MEM {
UINT32 pa;
UINT32 va;
UINT32 size;
} VENDOR_AUDIOOUT_MEM;
typedef struct _VENDOR_AUDIOOUT_CHN_STATE {
UINT32 total_num;
UINT32 free_num;
UINT32 busy_num;
} VENDOR_AUDIOOUT_CHN_STATE;
typedef struct _VENDOR_AUDIOOUT_VOLUME {
UINT32 volume; ///< audio input volume
} VENDOR_AUDIOOUT_VOLUME;
/********************************************************************
EXTERN VARIABLES & FUNCTION PROTOTYPES DECLARATIONS
********************************************************************/
HD_RESULT vendor_audioout_set(UINT32 id, VENDOR_AUDIOOUT_ITEM item, VOID *p_param);
HD_RESULT vendor_audioout_get(UINT32 id, VENDOR_AUDIOOUT_ITEM item, VOID *p_param);
#endif