/*
 **************************************************************************
 * FunctionName: hi843s_ofilm_init_reg;
 * Description : download initial seq for sensor init;
 * Input       : NA;
 * Output      : NA;
 * ReturnValue : NA;
 * Other       : NA;
 **************************************************************************
*/
static int hi843s_ofilm_init_reg(void)
{
	int size = 0;

	print_info("Enter Function:%s  , initsize=%d", __func__, sizeof(hi843s_ofilm_init_regs));

	if (0 != k3_ispio_init_csi(hi843s_ofilm_sensor.mipi_index,
		 hi843s_ofilm_sensor.mipi_lane_count, hi843s_ofilm_sensor.lane_clk)) {
		return -EFAULT;
	}

	mdelay(3);

	hi843s_ofilm_sensor.i2c_config.val_bits = I2C_16BIT;

	size = ARRAY_SIZE(hi843s_ofilm_init_regs);
	if (0 != hi843s_ofilm_write_seq(hi843s_ofilm_init_regs, size, 0x00)) {
		print_error("fail to init hi843s sensor");
			hi843s_ofilm_sensor.i2c_config.val_bits = I2C_8BIT;
		return -EFAULT;
	}
	hi843s_ofilm_sensor.i2c_config.val_bits = I2C_8BIT;

	return 0;
}
/*
 **************************************************************************
 * FunctionName: ov13850_init_reg;
 * Description : download initial seq for sensor init;
 * Input       : NA;
 * Output      : NA;
 * ReturnValue : NA;
 * Other       : NA;
 **************************************************************************
*/
static int ov13850_init_reg(void)
{
	int size = 0;

	print_debug("Enter Function:%s  , initsize=%d",
		    __func__, sizeof(ov13850_init_regs));

	if (0 != k3_ispio_init_csi(ov13850_lit171.mipi_index,
			ov13850_lit171.mipi_lane_count, ov13850_lit171.lane_clk)) {
		return -EFAULT;
	}

	ov13850_write_reg(0x0103, 0x01, 0x00);
	mdelay(5);

	size = ARRAY_SIZE(ov13850_init_regs);
	if (0 != ov13850_write_seq(ov13850_init_regs, size, 0x00)) {
		print_error("line %d, fail to init ov13850 sensor",__LINE__);
		return -EFAULT;
	}

#ifdef OV13850_LIT171_OTP
	if((ov13850_otp_flag & OV13850_OTP_FAIL_FLAG) != OV13850_OTP_FAIL_FLAG){
	    ov13850_otp_set_lsc();
	    ov13850_otp_set_awb();
	}
#endif
	return 0;
}
Beispiel #3
0
/*download initial seq for sensor init*/
static int sonyimx214_init_reg(void)
{
	print_debug("Enter %s.\n", __func__);
	if (0 != k3_ispio_init_csi(sonyimx214_sensor.mipi_index, sonyimx214_sensor.mipi_lane_count, sonyimx214_sensor.lane_clk)) {
		return -EFAULT;
	}
	if (0 != sonyimx214_write_seq(sonyimx214_init_regs, ARRAY_SIZE(sonyimx214_init_regs), 0x00)) {
		print_error("%s fail to init sonyimx214 sensor.\n", __func__);
		return -EFAULT;
	}
	return 0;
}
/*
 **************************************************************************
 * FunctionName: s5k3h2yx_samsungem_init_reg;
 * Description : download initial seq for sensor init;
 * Input       : NA;
 * Output      : NA;
 * ReturnValue : NA;
 * Other       : NA;
 **************************************************************************
*/
static int s5k3h2yx_samsungem_init_reg(void)
{
	int size = 0;
	print_debug("Enter Function:%s  , initsize=%d",
		    __func__, sizeof(s5k3h2yx_samsungem_init_regs));

	size = ARRAY_SIZE(isp_init_regs_s5k3h2yx_samsungem);
	s5k3h2yx_samsungem_write_isp_seq(isp_init_regs_s5k3h2yx_samsungem, size);

	//s5k3h2yx_samsungem_write_reg(0x100, 0x00);
	/* msleep(1); */
#if 1
	if (0 != k3_ispio_init_csi(s5k3h2yx_samsungem_sensor.mipi_index,
				 s5k3h2yx_samsungem_sensor.mipi_lane_count, s5k3h2yx_samsungem_sensor.lane_clk)) {
		return -EFAULT;
	}

	size = ARRAY_SIZE(s5k3h2yx_samsungem_init_regs);
	if (0 != s5k3h2yx_samsungem_write_seq(s5k3h2yx_samsungem_init_regs, size, 0x00)) {
		print_error("fail to init s5k3h2yx_samsungem sensor");
		return -EFAULT;
	}
	//s5k3h2yx_samsungem_write_reg(0x0100, 0x00);
	//s5k3h2yx_samsungem_write_reg(0x3311, 0x00);
	//s5k3h2yx_samsungem_write_reg(0x0100, 0x01);
#else
	if (0 != k3_ispio_init_csi(s5k3h2yx_samsungem_sensor.mipi_index,
				 s5k3h2yx_samsungem_sensor.mipi_lane_count)) {
		return -EFAULT;
	}

	size = ARRAY_SIZE(s5k3h2yx_samsungem_init_regs);
	if (0 != s5k3h2yx_samsungem_write_seq(s5k3h2yx_samsungem_init_regs, size)) {
		print_error("fail to init s5k3h2yx_samsungem sensor");
		return -EFAULT;
	}
#endif

	return 0;
}
/*
 **************************************************************************
 * FunctionName: imx219_liteon_init_reg;
 * Description : download initial seq for sensor init;
 * Input       : NA;
 * Output      : NA;
 * ReturnValue : NA;
 * Other       : NA;
 **************************************************************************
*/
static int imx219_liteon_init_reg(void)
{
	int size = 0;

	print_info("Enter Function:%s  , initsize=%d", __func__, sizeof(imx219_liteon_init_regs));

	if (0 != k3_ispio_init_csi(imx219_liteon_sensor.mipi_index,
		 imx219_liteon_sensor.mipi_lane_count, imx219_liteon_sensor.lane_clk)) {
		return -EFAULT;
	}


	size = ARRAY_SIZE(imx219_liteon_init_regs);
	if (0 != imx219_liteon_write_seq(imx219_liteon_init_regs, size, 0x00)) {
		print_error("fail to init imx219 sensor");
		return -EFAULT;
	}

	return 0;
}
/*
 **************************************************************************
 * FunctionName: sonyimx105_init_reg;
 * Description : download initial seq for sensor init;
 * Input       : NA;
 * Output      : NA;
 * ReturnValue : NA;
 * Other       : NA;
 **************************************************************************
*/
static int sonyimx105_init_reg(void)
{
	int size = 0;

	print_debug("Enter Function:%s  , initsize=%d",
		    __func__, sizeof(sonyimx105_init_regs));

	size = ARRAY_SIZE(isp_init_regs_sonyimx105);
	sonyimx105_write_isp_seq(isp_init_regs_sonyimx105, size);

	if (0 != k3_ispio_init_csi(sonyimx105_sensor.mipi_index,
			sonyimx105_sensor.mipi_lane_count, sonyimx105_sensor.lane_clk)) {
		return -EFAULT;
	}

	size = ARRAY_SIZE(sonyimx105_init_regs);
	if (0 != sonyimx105_write_seq(sonyimx105_init_regs, size, 0x00)) {
		print_error("line %d, fail to init sonyimx105 sensor",__LINE__);
		return -EFAULT;
	}

	return 0;
}