int YushanII_power_up(const struct msm_camera_rawchip_info *pdata) { int rc = 0; CDBG("[CAM] %s\n", __func__); if (pdata->camera_rawchip_power_on == NULL) { pr_err("YushanII power on platform_data didn't register\n"); return -EIO; } rc = pdata->camera_rawchip_power_on(); if (rc < 0) { pr_err("YushanII power on failed\n"); goto enable_power_on_failed; } #ifdef CONFIG_RAWCHIP_MCLK rc = msm_camio_clk_enable(CAMIO_CAM_RAWCHIP_MCLK_CLK); #else rc = msm_camio_clk_enable(CAMIO_CAM_MCLK_CLK); #endif if (rc < 0) { pr_err("enable MCLK failed\n"); goto enable_mclk_failed; } mdelay(1); rc = gpio_request(pdata->rawchip_reset, "YushanII"); if (rc < 0) { pr_err("GPIO(%d) request failed\n", pdata->rawchip_reset); goto enable_reset_failed; } gpio_direction_output(pdata->rawchip_reset, 1); gpio_free(pdata->rawchip_reset); mdelay(1); Ilp0100_enableIlp0100SensorClock(SENSOR_0); mdelay(1); return rc; enable_reset_failed: #ifdef CONFIG_RAWCHIP_MCLK rc = msm_camio_clk_disable(CAMIO_CAM_RAWCHIP_MCLK_CLK); #else rc = msm_camio_clk_disable(CAMIO_CAM_MCLK_CLK); #endif enable_mclk_failed: if (pdata->camera_rawchip_power_off == NULL) pr_err("YushanII power off platform_data didn't register\n"); else pdata->camera_rawchip_power_off(); enable_power_on_failed: return rc; }
int32_t ov2722_power_up(struct msm_sensor_ctrl_t *s_ctrl) { 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__); return rc; } if (!sdata->use_rawchip && (sdata->htc_image != HTC_CAMERA_IMAGE_YUSHANII_BOARD)) { rc = msm_camio_clk_enable(CAMIO_CAM_MCLK_CLK); if (rc < 0) { return rc; } } #ifdef CONFIG_RAWCHIPII Ilp0100_enableIlp0100SensorClock(SENSOR_1); mdelay(3); #endif ov2722_sensor_open_init(sdata); pr_info("%s end\n", __func__); return 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; }