全志Linux 摄像头驱动移植

1.dts中进行配置

要点: 使用的时 哪一路iic, iic地址
开关脚 和复位脚对应的gpio

	sensor0:sensor@0 {
				device_type = "sensor0";
				sensor0_mname = "rn6854m_mipi";
				sensor0_twi_cci_id = <0>;
				sensor0_twi_addr = <0x58>;
				sensor0_mclk_id = <0>;
				sensor0_pos = "rear";
				sensor0_isp_used = <0>;
				sensor0_fmt = <0>;
				sensor0_stby_mode = <0>;
				sensor0_vflip = <0>;
				sensor0_hflip = <0>;
				sensor0_iovdd-supply = <&reg_bldo3>;
				sensor0_iovdd_vol = <3300000>;
				sensor0_avdd-supply = <&reg_bldo4>;
				sensor0_avdd_vol = <1200000>;
				sensor0_dvdd-supply = <&reg_bldo5>;
				sensor0_dvdd_vol = <1200000>;
				sensor0_power_en = <>;
				sensor0_reset = <&pio PI 13 1 0 1 0>;
				sensor0_pwdn = <&pio PI 14 1 0 1 0>;
				sensor0_sm_vs = <&pio PE 22 1 0 1 0>;
				status	= "okay";
			};
			sensor1:sensor@1 {
				device_type = "sensor1";
				sensor1_mname = "nvp6158";
				sensor1_twi_cci_id = <1>;
				sensor1_twi_addr = <0x64>;
				sensor1_mclk_id = <1>;
				sensor1_pos = "front";
				sensor1_isp_used = <0>;
				sensor1_fmt = <0>;
				sensor1_stby_mode = <0>;
				sensor1_vflip = <0>;
				sensor1_hflip = <0>;
				sensor1_cameravdd-supply = <&reg_aldo5>;
				sensor1_cameravdd_vol = <3300000>;
				sensor1_reservevdd-supply = <&reg_dcdc6>;
				sensor1_reservevdd_vol = <1200000>;
				sensor1_iovdd-supply = <&reg_bldo3>;
				sensor1_iovdd_vol = <3300000>;
				sensor1_avdd-supply = <&reg_bldo4>;
				sensor1_avdd_vol = <1200000>;
				sensor1_dvdd-supply = <&reg_bldo5>;
				sensor1_dvdd_vol = <1200000>;
				sensor1_power_en = <>;
				sensor1_reset = <&pio PI 12 1 0 1 0>;
				sensor1_pwdn = <&pio PI 14 1 0 1 0>;
				sensor1_sm_vs = <>;
				status	= "okay";
			};
  1. drivers\media\platform\sunxi-vin\modules\sensor中 代码 rn6854m_mipi.c
static int sensor_probe(struct i2c_client *client,
			const struct i2c_device_id *id)
{
	struct v4l2_subdev *sd;
	struct sensor_info *info;
	info = kzalloc(sizeof(struct sensor_info), GFP_KERNEL);
	if (info == NULL)
		return -ENOMEM;
	sd = &info->sd;
	cci_dev_probe_helper(sd, client, &sensor_ops, &cci_drv);
	sensor_init_controls(sd, &sensor_ctrl_ops);
	mutex_init(&info->lock);
	restart = 0;

	info->fmt = &sensor_formats[0];
	info->fmt_pt = &sensor_formats[0];
	info->win_pt = &sensor_win_sizes[0];
	info->fmt_num = N_FMTS;
	info->win_size_num = N_WIN_SIZES;
	info->sensor_field = V4L2_FIELD_NONE;

	/* info->combo_mode = CMB_TERMINAL_RES | CMB_PHYA_OFFSET1 | MIPI_NORMAL_MODE; */
	info->combo_mode = CMB_PHYA_OFFSET3 | MIPI_NORMAL_MODE;
	info->stream_seq = MIPI_BEFORE_SENSOR;
	info->af_first_flag = 1;
	info->exp = 0;
	info->gain = 0;


	rn6854m_sd = sd;

	return 0;
}

static const struct v4l2_subdev_ops sensor_ops = {
.core = &sensor_core_ops,
.video = &sensor_video_ops,
.pad = &sensor_pad_ops,
};

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值