void msm_sensor_start_stream(struct msm_sensor_ctrl_t *s_ctrl) { pr_err("%s: E\n", __func__); /* LGE_CHANGE, For debugging, 2012-07-03, [email protected] */ msm_camera_i2c_write_tbl( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->start_stream_conf, s_ctrl->msm_sensor_reg->start_stream_conf_size, s_ctrl->msm_sensor_reg->default_data_type); /* LGE_CHANGE_S, Turn IEF off in camera mode, 2012-10-23 */ #ifdef LGIT_IEF_SWITCH_L1V if(system_state != SYSTEM_BOOTING){ printk("[IEF_OFF] Camera \n"); mipi_lgd_lcd_ief_off(); } #endif /* LGE_CHANGE_E, Turn IEF off in camera mode, 2012-10-23 */ /* LGE_CHANGE_S, Turn IEF off in camera mode except KeepScreenOn, 2012-09-13, [email protected] */ #ifdef LGIT_IEF_SWITCH_VU2 if(system_state != SYSTEM_BOOTING && sub_cam_id_for_keep_screen_on != -2733) { printk("[IEF_OFF] Camera \n"); mipi_lgit_lcd_ief_off(); } #endif /* LGE_CHANGE_E, Turn IEF off in camera mode except KeepScreenOn, 2012-09-13, [email protected] */ }
void msm_sensor_start_stream(struct msm_sensor_ctrl_t *s_ctrl) { pr_err("%s: E\n", __func__); /* */ msm_camera_i2c_write_tbl( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->start_stream_conf, s_ctrl->msm_sensor_reg->start_stream_conf_size, s_ctrl->msm_sensor_reg->default_data_type); /* */ #ifdef LGIT_IEF_SWITCH_L1V if(system_state != SYSTEM_BOOTING){ printk("[IEF_OFF] Camera \n"); mipi_lgd_lcd_ief_off(); } #endif /* */ /* */ #ifdef LGIT_IEF_SWITCH_VU2 if(system_state != SYSTEM_BOOTING && sub_cam_id_for_keep_screen_on != -2733) { printk("[IEF_OFF] Camera \n"); mipi_lgit_lcd_ief_off(); } #endif /* */ }
static int32_t ext_power_ctrl_mt9p017 (int enable) { int32_t rc = 0; unsigned extra_gpio = GPIO_8M_CAM_RESET_N; if (enable) { rc = gpio_request(extra_gpio, "mt9p017_reset_n"); if (rc < 0) { pr_err("%s: gpio_request failed\n", __func__); return rc; } gpio_direction_output(extra_gpio, 0); msleep(50); gpio_set_value(extra_gpio, enable ? 1 : 0); msleep(10); #ifdef LGIT_IEF_SWITCH mipi_lgit_lcd_ief_off(); #endif } else { gpio_set_value(extra_gpio, enable ? 1 : 0); gpio_free(extra_gpio); #ifdef LGIT_IEF_SWITCH mipi_lgit_lcd_ief_on(); #endif } return rc; }
int32_t imx132_sensor_power_up(struct msm_sensor_ctrl_t *s_ctrl) { int32_t rc = 0; struct msm_camera_sensor_info *data = s_ctrl->sensordata; CDBG("%s: %d\n", __func__, __LINE__); #ifdef LGIT_IEF_SWITCH if(system_state != SYSTEM_BOOTING) { mipi_lgit_lcd_ief_off(); } #endif s_ctrl->reg_ptr = kzalloc(sizeof(struct regulator *) * data->sensor_platform_info->num_vreg, GFP_KERNEL); if (!s_ctrl->reg_ptr) { pr_err("%s: could not allocate mem for regulators\n", __func__); return -ENOMEM; } pr_err("%s: before request gpio, sensor name : %s", __func__, s_ctrl->sensordata->sensor_name); rc = msm_camera_request_gpio_table(data, 1); if (rc < 0) { pr_err("%s: request gpio failed\n", __func__); goto request_gpio_failed; } rc = gpio_request(MSM_VT_PWR_EN, "VT_PWR_EN"); #if defined(CONFIG_MACH_APQ8064_GKKT) || defined(CONFIG_MACH_APQ8064_GKSK) || defined(CONFIG_MACH_APQ8064_GKU) || defined(CONFIG_MACH_APQ8064_GKATT) if(lge_get_board_revno() >= HW_REV_C ||lge_get_board_revno() == HW_REV_1_0){ LDBGI("%s: Revision [%d] MSM_CAM2_RST_EN GPIO No.%d\n",__func__, lge_get_board_revno(), MSM_CAM2_RST_EN); rc = gpio_request(MSM_CAM2_RST_EN, "VTCAM_RST_EN"); } if (rc) { LDBGE("%s: PM request gpio failed\n", __func__); } #elif defined(CONFIG_MACH_APQ8064_GVDCM) if(lge_get_board_revno() >= HW_REV_C){ LDBGI("%s: Revision [%d] MSM_CAM2_RST_EN GPIO No.%d\n",__func__, lge_get_board_revno(), MSM_CAM2_RST_EN); rc = gpio_request(MSM_CAM2_RST_EN, "VTCAM_RST_EN"); } if (rc) { LDBGE("%s: PM request gpio failed\n", __func__); } #endif rc = msm_camera_config_vreg(&s_ctrl->sensor_i2c_client->client->dev, s_ctrl->sensordata->sensor_platform_info->cam_vreg, s_ctrl->sensordata->sensor_platform_info->num_vreg, s_ctrl->vreg_seq, s_ctrl->num_vreg_seq, s_ctrl->reg_ptr, 1); if (rc < 0) { LDBGE("%s: regulator on failed\n", __func__); goto config_vreg_failed; } rc =pm8xxx_gpio_config(MSM_VT_PWR_EN, &gpio35_param); #if defined(CONFIG_MACH_APQ8064_GKKT) || defined(CONFIG_MACH_APQ8064_GKSK) || defined(CONFIG_MACH_APQ8064_GKU) || defined(CONFIG_MACH_APQ8064_GKATT) if(lge_get_board_revno() >= HW_REV_C ||lge_get_board_revno() == HW_REV_1_0){ LDBGI("%s: Revision [%d] MSM_CAM2_RST_EN GPIO No.%d\n",__func__, lge_get_board_revno(), MSM_CAM2_RST_EN ); rc =pm8xxx_gpio_config(MSM_CAM2_RST_EN, &gpio28_param); } if (rc) { LDBGE("%s: pm8xxx_gpio_config on failed\n", __func__); } #elif defined(CONFIG_MACH_APQ8064_GVDCM) if(lge_get_board_revno() >= HW_REV_C){ LDBGI("%s: Revision [%d] MSM_CAM2_RST_EN GPIO No.%d\n",__func__, lge_get_board_revno(), MSM_CAM2_RST_EN ); rc =pm8xxx_gpio_config(MSM_CAM2_RST_EN, &gpio28_param); } if (rc) { LDBGE("%s: pm8xxx_gpio_config on failed\n", __func__); } #endif rc = gpio_direction_output(MSM_VT_PWR_EN, 0); usleep(5); rc = gpio_direction_output(MSM_VT_PWR_EN, 1); if (rc) { LDBGE("%s: gpio_direction_output enable failed\n", __func__); } rc = msm_camera_enable_vreg(&s_ctrl->sensor_i2c_client->client->dev, s_ctrl->sensordata->sensor_platform_info->cam_vreg, s_ctrl->sensordata->sensor_platform_info->num_vreg, s_ctrl->vreg_seq, s_ctrl->num_vreg_seq, s_ctrl->reg_ptr, 1); if (rc < 0) { LDBGE("%s: enable regulator failed\n", __func__); goto enable_vreg_failed; } usleep(10); #if defined(CONFIG_MACH_APQ8064_GKKT) || defined(CONFIG_MACH_APQ8064_GKSK) || defined(CONFIG_MACH_APQ8064_GKU) || defined(CONFIG_MACH_APQ8064_GKATT) if(lge_get_board_revno() >= HW_REV_C ||lge_get_board_revno() == HW_REV_1_0){ LDBGI("%s: Revision [%d] MSM_CAM2_RST_EN GPIO No.%d\n",__func__, lge_get_board_revno(), MSM_CAM2_RST_EN ); rc = gpio_direction_output(MSM_CAM2_RST_EN, 1); } #elif defined(CONFIG_MACH_APQ8064_GVDCM) if(lge_get_board_revno() >= HW_REV_C){ LDBGI("%s: Revision [%d] MSM_CAM2_RST_EN GPIO No.%d\n",__func__, lge_get_board_revno(), MSM_CAM2_RST_EN ); rc = gpio_direction_output(MSM_CAM2_RST_EN, 1); } #endif else { rc = msm_camera_config_gpio_table(data, 1); if (rc < 0) { LDBGE("%s: config gpio failed\n", __func__); goto config_gpio_failed; } } if (s_ctrl->clk_rate != 0) imx132_cam_clk_info->clk_rate = s_ctrl->clk_rate; rc = msm_cam_clk_enable(&s_ctrl->sensor_i2c_client->client->dev, imx132_cam_clk_info, s_ctrl->cam_clk, ARRAY_SIZE(imx132_cam_clk_info), 1); if (rc < 0) { LDBGE("%s: clk enable failed\n", __func__); goto enable_clk_failed; } usleep_range(1000, 2000); if (data->sensor_platform_info->ext_power_ctrl != NULL) data->sensor_platform_info->ext_power_ctrl(1); if (data->sensor_platform_info->i2c_conf && data->sensor_platform_info->i2c_conf->use_i2c_mux) imx132_msm_sensor_enable_i2c_mux(data->sensor_platform_info->i2c_conf); return rc; enable_clk_failed: #if defined(CONFIG_MACH_APQ8064_GKKT) || defined(CONFIG_MACH_APQ8064_GKSK) || defined(CONFIG_MACH_APQ8064_GKU) || defined(CONFIG_MACH_APQ8064_GKATT) if(lge_get_board_revno() >= HW_REV_C ||lge_get_board_revno() == HW_REV_1_0){ LDBGI("%s: Revision [%d] MSM_CAM2_RST_EN GPIO No.%d\n",__func__, lge_get_board_revno(), MSM_CAM2_RST_EN ); rc = gpio_direction_output(MSM_CAM2_RST_EN, 0); } #elif defined(CONFIG_MACH_APQ8064_GVDCM) if(lge_get_board_revno() >= HW_REV_C){ LDBGI("%s: Revision [%d] MSM_CAM2_RST_EN GPIO No.%d\n",__func__, lge_get_board_revno(), MSM_CAM2_RST_EN ); rc = gpio_direction_output(MSM_CAM2_RST_EN, 0); } #endif else { msm_camera_config_gpio_table(data, 0); } config_gpio_failed: msm_camera_enable_vreg(&s_ctrl->sensor_i2c_client->client->dev, s_ctrl->sensordata->sensor_platform_info->cam_vreg, s_ctrl->sensordata->sensor_platform_info->num_vreg, s_ctrl->vreg_seq, s_ctrl->num_vreg_seq, s_ctrl->reg_ptr, 0); enable_vreg_failed: msm_camera_config_vreg(&s_ctrl->sensor_i2c_client->client->dev, s_ctrl->sensordata->sensor_platform_info->cam_vreg, s_ctrl->sensordata->sensor_platform_info->num_vreg, s_ctrl->vreg_seq, s_ctrl->num_vreg_seq, s_ctrl->reg_ptr, 0); config_vreg_failed: msm_camera_request_gpio_table(data, 0); request_gpio_failed: kfree(s_ctrl->reg_ptr); return rc; }