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