81 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| 
 | |
| #ifndef __RK1608_DPHY_H__
 | |
| #define __RK1608_DPHY_H__
 | |
| 
 | |
| #define RK1608_MAX_FMTINF	4
 | |
| 
 | |
| struct rk1608_chinf {
 | |
| 	u32 width;
 | |
| 	u32 height;
 | |
| 	u32 data_id;
 | |
| 	u32 decode_format;
 | |
| 	u32 flag;
 | |
| };
 | |
| 
 | |
| struct rk1608_fmt_inf {
 | |
| 	u32 data_type;
 | |
| 	u32 mipi_lane;
 | |
| 	u32 mipi_lane_out;
 | |
| 	u32 hactive;
 | |
| 	u32 vactive;
 | |
| 	u32 htotal;
 | |
| 	u32 vtotal;
 | |
| 	struct v4l2_mbus_framefmt mf;
 | |
| 	struct rk1608_chinf in_ch[4];
 | |
| 	struct rk1608_chinf out_ch[4];
 | |
| 	u32 hcrop;
 | |
| 	u32 vcrop;
 | |
| };
 | |
| 
 | |
| struct rk1608_sub_sensor_cfg {
 | |
| 	u32 id;
 | |
| 	u32 in_mipi;
 | |
| 	u32 out_mipi;
 | |
| 	u32 reserved;
 | |
| };
 | |
| 
 | |
| struct rk1608_dphy {
 | |
| 	struct v4l2_subdev sd;
 | |
| 	struct v4l2_subdev *rk1608_sd;
 | |
| 	struct platform_device *pdev;
 | |
| 	struct device *dev;
 | |
| 	struct media_pad pad;
 | |
| 	struct v4l2_ctrl *link_freq;
 | |
| 	struct v4l2_ctrl *pixel_rate;
 | |
| 	struct v4l2_ctrl *hblank;
 | |
| 	struct v4l2_ctrl *vblank;
 | |
| 	struct v4l2_ctrl *exposure;
 | |
| 	struct v4l2_ctrl *gain;
 | |
| 	struct v4l2_ctrl *h_flip;
 | |
| 	struct v4l2_ctrl *v_flip;
 | |
| 	struct v4l2_ctrl_handler ctrl_handler;
 | |
| 
 | |
| 	u32 cam_nums;
 | |
| 	u32 in_mipi;
 | |
| 	u32 out_mipi;
 | |
| 	s64 link_freqs;
 | |
| 
 | |
| 	u32 i2c_bus;
 | |
| 	u32 i2c_addr;
 | |
| 	const char *sensor_name;
 | |
| 
 | |
| 	u32 module_index;
 | |
| 	const char *module_facing;
 | |
| 	const char *module_name;
 | |
| 	const char *len_name;
 | |
| 
 | |
| 	u32 fmt_inf_num;
 | |
| 	u32 fmt_inf_idx;
 | |
| 	struct rk1608_fmt_inf fmt_inf[RK1608_MAX_FMTINF];
 | |
| 
 | |
| 	bool first_stream;
 | |
| 
 | |
| 	/* for virtual sub sensor */
 | |
| 	u32 sub_sensor_num;
 | |
| 	struct rk1608_sub_sensor_cfg sub_sensor[4];
 | |
| 	struct i2c_client *link_sensor_client;
 | |
| };
 | |
| 
 | |
| #endif
 |