54 lines
1.5 KiB
C
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
|