Files
TAIXIN/sdk/include/dev/capture/hgcapture_v0.h

54 lines
1.5 KiB
C

#ifndef _HGCAPTURE_V0_H
#define _HGCAPTURE_V0_H
#include "hal/capture.h"
#ifdef __cplusplus
extern "C" {
#endif
#define HGCAPTURE_MAX_CAPTURE_CHANNEL 4
enum hgcapture_v0_func_cmd {
HGCAPTURE_V0_FUNC_CMD_MASK = BIT(7),
HGCAPTURE_V0_FUNC_CMD_INIT = HGCAPTURE_V0_FUNC_CMD_MASK | 1,
HGCAPTURE_V0_FUNC_CMD_DEINIT = HGCAPTURE_V0_FUNC_CMD_MASK | 2,
HGCAPTURE_V0_FUNC_CMD_START = HGCAPTURE_V0_FUNC_CMD_MASK | 3,
HGCAPTURE_V0_FUNC_CMD_STOP = HGCAPTURE_V0_FUNC_CMD_MASK | 4,
/* IOCTL CMD */
/* IRQ_FLAG */
HGCAPTURE_V0_FUNC_CMD_REQUEST_IRQ_CAPTURE = HGCAPTURE_V0_FUNC_CMD_MASK | 5,
HGCAPTURE_V0_FUNC_CMD_REQUEST_IRQ_OVERFLOW = HGCAPTURE_V0_FUNC_CMD_MASK | 6,
HGCAPTURE_V0_FUNC_CMD_RELEASE_IRQ = HGCAPTURE_V0_FUNC_CMD_MASK | 7,
HGCAPTURE_V0_FUNC_CMD_SUSPEND = HGCAPTURE_V0_FUNC_CMD_MASK | 8,
HGCAPTURE_V0_FUNC_CMD_RESUME = HGCAPTURE_V0_FUNC_CMD_MASK | 9,
};
struct hgcapture_v0_config {
uint32 irq_data;
capture_irq_hdl irq_hdl;
uint16 func_cmd;
/* Only for config REG in lower layer code */
uint16 cap_sel:1,
cap_pol:1;
};
struct hgcapture_v0 {
struct capture_device dev;
void *channel[HGCAPTURE_MAX_CAPTURE_CHANNEL];
uint8 opened[HGCAPTURE_MAX_CAPTURE_CHANNEL];
};
int32 hgcapture_v0_attach(uint32 dev_id, struct hgcapture_v0 *capture);
#ifdef __cplusplus
}
#endif
#endif