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
|