nt9856x/code/lib/include/uvcp.h
2023-03-28 15:07:53 +08:00

38 lines
1.5 KiB
C
Executable File

#ifndef _UVCP_H
#define _UVCP_H
#include "kwrap/type.h"
typedef enum {
UVCP_CONFIG_ID_HEADER_LENGTH, ///< Valid setting is 2 or 12.
UVCP_CONFIG_ID_DATALEN_PER_UF, ///< USB Data Length per micro-frame.
///< Valid length 512/1024/2048/3072/(3K*N) ... / 48*1024
UVCP_CONFIG_ID_FID, ///< Confifure Next FID value. The FID value would be auto toggled after EOF is set.
UVCP_CONFIG_ID_PTS, ///< Presentation Time Stamp(PTS) 32bits value.
UVCP_CONFIG_ID_REFERENCE_CLK, ///< UVC reference clock value in Mhz. Such as 12 or 30 Mhz.
UVCP_CONFIG_ID_SOF_START_VAL, ///< UFRAME START VALUE. 11bits SOF value
UVCP_CONFIG_ID_COUNTER_START_VAL, ///< Time Counter START VALUE. 32 bits value in reference clock cycle.
UVCP_CONFIG_ID_BREAK_SIZE, ///< When output size exceed this break size. The interrupt would be issued.
UVCP_CONFIG_ID_GETOUT_SIZE,
UVCP_CONFIG_ID_GET_COUNTER_END,
UVCP_CONFIG_ID_GET_SOF_END,
UVCP_CONFIG_ID_GET_CNTSTEP,
ENUM_DUMMY4WORD(UVCP_CONFIG_ID)
} UVCP_CONFIG_ID;
extern ER uvcp_open(void);
extern ER uvcp_close(void);
extern BOOL uvcp_is_opened(void);
extern ER uvcp_trigger(BOOL eof, BOOL wait_break);
extern ER uvcp_wait_complete(void);
extern ER uvcp_wait_break(void);
extern ER uvcp_set_config(UVCP_CONFIG_ID configID, UINT32 configContext);
extern UINT32 uvcp_get_config(UVCP_CONFIG_ID configID);
extern void uvcp_config_dma(UINT32 input_address, UINT32 input_size, UINT32 output_address, UINT32 *output_size);
#endif