• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Rockchip CIF Driver
4  *
5  * Copyright (C) 2020 Rockchip Electronics Co., Ltd.
6  */
7 
8 #ifndef _RKCIF_SDITF_H
9 #define _RKCIF_SDITF_H
10 
11 #include <linux/mutex.h>
12 #include <media/media-device.h>
13 #include <media/media-entity.h>
14 #include <media/v4l2-ctrls.h>
15 #include <media/v4l2-device.h>
16 #include <media/videobuf2-v4l2.h>
17 #include <media/v4l2-mc.h>
18 #include <linux/rk-camera-module.h>
19 #include "hw.h"
20 #include "../isp/isp_external.h"
21 
22 #define RKISP0_DEVNAME "rkisp0"
23 #define RKISP1_DEVNAME "rkisp1"
24 #define RKISP_UNITE_DEVNAME "rkisp-unite"
25 
26 #define RKCIF_TOISP_CH0	0
27 #define RKCIF_TOISP_CH1	1
28 #define RKCIF_TOISP_CH2	2
29 #define TOISP_CH_MAX 3
30 
31 struct capture_info {
32 	unsigned int offset_x;
33 	unsigned int offset_y;
34 	unsigned int width;
35 	unsigned int height;
36 };
37 
38 enum toisp_link_mode {
39 	TOISP_NONE,
40 	TOISP0,
41 	TOISP1,
42 	TOISP_UNITE,
43 };
44 
45 struct toisp_ch_info {
46 	bool is_valid;
47 	int id;
48 };
49 
50 struct toisp_info {
51 	struct toisp_ch_info ch_info[TOISP_CH_MAX];
52 	enum toisp_link_mode link_mode;
53 };
54 
55 struct sditf_priv {
56 	struct device *dev;
57 	struct v4l2_subdev sd;
58 	struct media_pad pads;
59 	struct rkcif_device *cif_dev;
60 	struct rkmodule_hdr_cfg	hdr_cfg;
61 	struct capture_info cap_info;
62 	struct rkisp_vicap_mode mode;
63 	struct toisp_info toisp_inf;
64 	int buf_num;
65 };
66 
67 extern struct platform_driver rkcif_subdev_driver;
68 
69 #endif
70