Initial commit: TXW82x FPV v2.7.0.7-42229 SDK + project sources

This commit is contained in:
2026-07-06 11:30:13 +08:00
commit e76462eeb7
3451 changed files with 1415300 additions and 0 deletions

80
sdk/include/hal/csc.h Normal file
View File

@@ -0,0 +1,80 @@
#ifndef HAL_CSC_H
#define HAL_CSC_H
#ifdef __cplusplus
extern "C" {
#endif
/* User interrupt handle */
typedef int32(*csc_irq_hdl)(uint32 irq_flags, uint32 irq_data, uint32 param);
enum csc_ioctl_cmd {
CSC_IOCTL_FORMAT_TRAN,
CSC_IOCTL_PHOTO_SIZE,
CSC_IOCTL_COEF_TYPE,
CSC_IOCTL_INPUT_ADDR,
CSC_IOCTL_OUTPUT_ADDR,
CSC_IOCTL_KICK_RUN,
};
enum csc_format {
CSC_BGR565,
CSC_RGB565,
CSC_BGR888,
CSC_RGB888,
CSC_RGB888P,
CSC_YUYV422,
CSC_YVYU422,
CSC_UYVY422,
CSC_VYUY422,
CSC_YUV422P,
CSC_YUV422SP,
CSC_YVU422SP,
CSC_YUV420P,
CSC_YUV444,
CSC_YVU444,
CSC_UVY444,
CSC_VUY444,
CSC_YUV444P,
CSC_YUV444SP,
CSC_YVU444SP,
} ;
struct csc_device {
struct dev_obj dev;
};
struct csc_hal_ops {
struct devobj_ops ops;
int32(*init)(struct csc_device *csc_dev);
int32(*suspend)(struct csc_device *csc_dev);
int32(*resume)(struct csc_device *csc_dev);
int32(*ioctl)(struct csc_device *csc_dev, enum csc_ioctl_cmd ioctl_cmd, uint32 param1, uint32 param2);
int32(*request_irq)(struct csc_device *csc_dev, uint32 irq_flag, csc_irq_hdl irq_hdl, uint32 irq_data);
int32(*release_irq)(struct csc_device *csc_dev, uint32 irq_flag);
};
int32 csc_suspend(struct csc_device *p_csc);
int32 csc_resume(struct csc_device *p_csc);
int32 csc_init(struct csc_device *p_csc);
int32 csc_request_irq(struct csc_device *p_csc, uint32 irq_flags, csc_irq_hdl irq_hdl, uint32 irq_data);
int32 csc_release_irq(struct csc_device *p_csc, uint32 irq_flags);
int32 csc_set_format(struct csc_device *p_csc, uint8_t input_format,uint8_t output_format);
int32 csc_set_photo_size(struct csc_device *p_csc, uint32_t w,uint32_t h);
int32 csc_set_type(struct csc_device *p_csc, uint8_t type);
int32 csc_set_input_addr(struct csc_device *p_csc, uint32_t in0,uint32_t in1,uint32_t in2);
int32 csc_set_output_addr(struct csc_device *p_csc, uint32_t out0,uint32_t out1,uint32_t out2);
int32 csc_start_run(struct csc_device *p_csc);
#ifdef __cplusplus
}
#endif
#endif