#ifndef _SUN4I_CSI_H_
#define _SUN4I_CSI_H_
#include <media/media-device.h>
#include <media/v4l2-async.h>
#include <media/v4l2-dev.h>
#include <media/v4l2-device.h>
#include <media/v4l2-fwnode.h>
#include <media/videobuf2-core.h>
#define CSI_EN_REG …
#define CSI_CFG_REG …
#define CSI_CFG_INPUT_FMT(fmt) …
#define CSI_CFG_OUTPUT_FMT(fmt) …
#define CSI_CFG_YUV_DATA_SEQ(seq) …
#define CSI_CFG_VREF_POL(pol) …
#define CSI_CFG_HREF_POL(pol) …
#define CSI_CFG_PCLK_POL(pol) …
#define CSI_CPT_CTRL_REG …
#define CSI_CPT_CTRL_VIDEO_START …
#define CSI_CPT_CTRL_IMAGE_START …
#define CSI_BUF_ADDR_REG(fifo, buf) …
#define CSI_BUF_CTRL_REG …
#define CSI_BUF_CTRL_DBN …
#define CSI_BUF_CTRL_DBS …
#define CSI_BUF_CTRL_DBE …
#define CSI_INT_EN_REG …
#define CSI_INT_FRM_DONE …
#define CSI_INT_CPT_DONE …
#define CSI_INT_STA_REG …
#define CSI_WIN_CTRL_W_REG …
#define CSI_WIN_CTRL_W_ACTIVE(w) …
#define CSI_WIN_CTRL_H_REG …
#define CSI_WIN_CTRL_H_ACTIVE(h) …
#define CSI_BUF_LEN_REG …
#define CSI_MAX_BUFFER …
#define CSI_MAX_HEIGHT …
#define CSI_MAX_WIDTH …
enum csi_input { … };
enum csi_output_raw { … };
enum csi_output_yuv { … };
enum csi_yuv_data_seq { … };
enum csi_subdev_pads { … };
extern const struct v4l2_subdev_ops sun4i_csi_subdev_ops;
extern const struct v4l2_subdev_internal_ops sun4i_csi_subdev_internal_ops;
struct sun4i_csi_format { … };
const struct sun4i_csi_format *sun4i_csi_find_format(const u32 *fourcc,
const u32 *mbus);
struct sun4i_csi { … };
int sun4i_csi_dma_register(struct sun4i_csi *csi, int irq);
void sun4i_csi_dma_unregister(struct sun4i_csi *csi);
int sun4i_csi_v4l2_register(struct sun4i_csi *csi);
#endif