Example #1
0
int32_t ov5693_power_up(struct msm_sensor_ctrl_t *s_ctrl)
{
	int rc;
	struct msm_camera_sensor_info *sdata = NULL;
	pr_info("[CAM] %s\n", __func__);

	if (s_ctrl && s_ctrl->sensordata)
		sdata = s_ctrl->sensordata;
	else {
		pr_err("[CAM] %s: s_ctrl sensordata NULL\n", __func__);
		return -EINVAL;
	}

	if (sdata->camera_power_on == NULL) {
		pr_err("sensor platform_data didnt register\n");
		return -EIO;
	}

	if (!sdata->use_rawchip) {
		rc = msm_camio_clk_enable(CAMIO_CAM_MCLK_CLK);
		if (rc < 0) {
			pr_err("[CAM] %s: msm_camio_sensor_clk_on failed:%d\n",
			 __func__, rc);
			goto enable_mclk_failed;
		}
	}

	rc = sdata->camera_power_on();
	if (rc < 0) {
		pr_err("[CAM] %s failed to enable power\n", __func__);
		goto enable_power_on_failed;
	}

	rc = msm_sensor_set_power_up(s_ctrl);
	if (rc < 0) {
		pr_err("[CAM] %s msm_sensor_power_up failed\n", __func__);
		goto enable_sensor_power_up_failed;
	}

	ov5693_sensor_open_init(sdata);
	pr_info("[CAM] %s end\n", __func__);

	return rc;

enable_sensor_power_up_failed:
	if (sdata->camera_power_off == NULL)
		pr_err("sensor platform_data didnt register\n");
	else
		sdata->camera_power_off();
enable_power_on_failed:
	if (!sdata->use_rawchip)
	msm_camio_clk_disable(CAMIO_CAM_MCLK_CLK);
enable_mclk_failed:
	return rc;
}
Example #2
0
int32_t s5k6a2ya_power_up(struct msm_sensor_ctrl_t *s_ctrl)//(const struct msm_camera_sensor_info *sdata)
{
	int rc;
	struct msm_camera_sensor_info *sdata = NULL;
	pr_info("%s\n", __func__);

	if (s_ctrl && s_ctrl->sensordata)
		sdata = s_ctrl->sensordata;
	else {
		pr_err("%s: s_ctrl sensordata NULL\n", __func__);
		return (-1);
	}

	if (sdata->camera_power_on == NULL) {
		pr_err("sensor platform_data didnt register\n");
		return -EIO;
	}
	rc = sdata->camera_power_on();
	if (rc < 0) {
		pr_err("%s failed to enable power\n", __func__);
		goto enable_power_on_failed;
	}

#ifndef CONFIG_DISABLE_MCLK_RAWCHIP_TO_MAINCAM
	if (!sdata->use_rawchip && (sdata->htc_image != HTC_CAMERA_IMAGE_YUSHANII_BOARD)) {
		rc = msm_camio_clk_enable(sdata,CAMIO_CAM_MCLK_CLK);
		if (rc < 0) {
			pr_err("%s: msm_camio_clk_enable failed:%d\n",
			 __func__, rc);
			goto enable_mclk_failed;
		}
	}

	rc = msm_sensor_set_power_up(s_ctrl);//(sdata);

	if (rc < 0) {
		pr_err("%s msm_sensor_power_up failed\n", __func__);
		goto set_sensor_power_up_failed;
	}
#else
	rc = msm_camio_clk_enable(sdata,CAMIO_CAM_MCLK_CLK);
	if (rc < 0) {
		pr_err("%s msm_camio_clk_enable failed\n", __func__);
		goto enable_mclk_failed;
	}
#endif

#ifdef CONFIG_RAWCHIPII
	Ilp0100_enableIlp0100SensorClock(SENSOR_1);
	mdelay(35); //temp timing setting
#endif

	s5k6a2ya_sensor_open_init(sdata);
	pr_info("%s end\n", __func__);

	return rc;

#ifndef CONFIG_DISABLE_MCLK_RAWCHIP_TO_MAINCAM
set_sensor_power_up_failed:
	msm_camio_clk_disable(sdata,CAMIO_CAM_MCLK_CLK);
#endif
enable_mclk_failed:
	if (sdata->camera_power_off == NULL)
		pr_err("sensor platform_data didnt register\n");
	else
		sdata->camera_power_off();
enable_power_on_failed:
	return rc;
}