linux/drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.h

/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * Copyright (C) 2016 NextThing Co
 * Copyright (C) 2016-2019 Bootlin
 *
 * Author: Maxime Ripard <[email protected]>
 */

#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 /* _SUN4I_CSI_H_ */