/* msm_sensor_write_init_settings */ int32_t yacd5c1sbdbc_sensor_write_init_settings(struct msm_sensor_ctrl_t *s_ctrl) { int32_t rc = 0; #ifdef CONFIG_PANTECH_CAMERA_TUNER int tuner_data_type; if (s_ctrl->sensor_id_info->sensor_id == YACD5C1SBDBC_ID) { SKYCDBG("[CONFIG_PANTECH_CAMERA_TUNER] %s\n",__func__); tuner_data_type = s_ctrl->msm_sensor_reg->default_data_type; rc = msm_camera_i2c_write_tuner( s_ctrl->sensor_i2c_client, yacd5c1sbdbc_recommend_tuner_settings, tuner_line,//ARRAY_SIZE(yacd5c1sbdbc_recommend_tuner_settings), tuner_data_type);//MSM_CAMERA_I2C_BYTE_DATA); } else { rc = msm_sensor_write_all_conf_array( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->init_settings, s_ctrl->msm_sensor_reg->init_size); } #else rc = msm_sensor_write_all_conf_array( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->init_settings, s_ctrl->msm_sensor_reg->init_size); #endif return rc; }
int jt8ev5_panorama_mode(struct msm_sensor_ctrl_t *s_ctrl, struct msm_sensor_v4l2_ctrl_info_t *ctrl_info, int value) { int rc = 0; printk("fuyipeng---%s enter value is === %d\n", __func__,value); if(value) { rc = msm_sensor_write_all_conf_array( s_ctrl->sensor_i2c_client, &jt8ev5_panorama_reg[0], ARRAY_SIZE(jt8ev5_panorama_reg)); if (rc<0) { printk("I2C write error!-------"); return rc; } pr_err("---panorama 20fps----%s: %d\n", __func__, __LINE__); return rc; } pr_err("---not in panorama mode 25 fps----%s: %d\n", __func__, __LINE__); return rc; }
int32_t msm_sensor_write_init_settings(struct msm_sensor_ctrl_t *s_ctrl) { int32_t rc; rc = msm_sensor_write_all_conf_array( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->init_settings, s_ctrl->msm_sensor_reg->init_size); return rc; }
int32_t msm_sensor_write_init_settings(struct msm_sensor_ctrl_t *s_ctrl) { int32_t rc; CDBG("+++\n"); if(s_ctrl->sensor_i2c_client->client->addr == s_ctrl->sensor_i2c_addr_high){ CDBG("mt9m114_2nd source init\n"); rc = msm_sensor_write_all_conf_array( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->init_settings_2, s_ctrl->msm_sensor_reg->init_size_2); } else{ rc = msm_sensor_write_all_conf_array( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->init_settings, s_ctrl->msm_sensor_reg->init_size); } return rc; }
int32_t msm_sensor_write_init_settings(struct msm_sensor_ctrl_t *s_ctrl) { int32_t rc; printk("%s : E\n", __func__); // [email protected] rc = msm_sensor_write_all_conf_array( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->init_settings, s_ctrl->msm_sensor_reg->init_size); printk("%s : X\n", __func__); // [email protected] return rc; }
int32_t msm_sensor_write_init_settings(struct msm_sensor_ctrl_t *s_ctrl) { int32_t rc = 0; #ifdef CONFIG_MACH_MSM8960_STARQ if(s_ctrl->sensor_id_info->sensor_id == S5K4ECGX_ID) { rc = s5k4ecgx_sensor_init(s_ctrl); } else if(s_ctrl->sensor_id_info->sensor_id == MT9V113_ID) { rc = mt9v113_sensor_init(s_ctrl); } #else rc = msm_sensor_write_all_conf_array( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->init_settings, s_ctrl->msm_sensor_reg->init_size); #endif return rc; }
int32_t ov7695_raw_sensor_setting(struct msm_sensor_ctrl_t *s_ctrl, int update_type, int res) { int32_t rc = 0; static int csi_config; struct msm_camera_pip_ctl pip_ctl; // s_ctrl->func_tbl->sensor_stop_stream(s_ctrl); msleep(30); if (update_type == MSM_SENSOR_REG_INIT) { CDBG("Register INIT\n"); pip_ctl.sensor_i2c_client = s_ctrl->sensor_i2c_client; /*OV7695 powerup and software reset*/ pip_ov5648_ctrl(PIP_CRL_POWERUP, &pip_ctl); usleep_range(2000, 3000); pip_ov5648_ctrl(PIP_CTL_RESET_HW_PULSE, &pip_ctl); msleep(10); msm_camera_i2c_write( s_ctrl->sensor_i2c_client, 0x103, 0x1, MSM_CAMERA_I2C_BYTE_DATA); usleep_range(2000, 3000); s_ctrl->curr_csi_params = NULL; msm_sensor_enable_debugfs(s_ctrl); msm_sensor_write_init_settings(s_ctrl); usleep_range(2000, 3000); pip_ov5648_ctrl(PIP_CTL_RESET_SW, &pip_ctl); usleep_range(2000, 3000); /*OV5648 init settings*/ /*writing to OV5648, open lanes*/ pip_ctl.write_ctl = PIP_REG_SETTINGS_INIT; pip_ov5648_ctrl(PIP_CRL_WRITE_SETTINGS, &pip_ctl); msleep(60); csi_config = 0; } else if (update_type == MSM_SENSOR_UPDATE_PERIODIC) { CDBG("PERIODIC : %d\n", res); if (!csi_config) { pip_ctl.sensor_i2c_client = s_ctrl->sensor_i2c_client; pip_ov5648_ctrl(PIP_CTL_STREAM_OFF, &pip_ctl); msleep(70); pip_ov5648_ctrl(PIP_CTL_STANDBY_SW, &pip_ctl); msleep(10); msm_sensor_write_all_conf_array( s_ctrl->sensor_i2c_client, &ov7695_raw_confs[0], ARRAY_SIZE(ov7695_raw_confs)); // msm_camera_i2c_write( // s_ctrl->sensor_i2c_client, // 0x100, 0x1, // MSM_CAMERA_I2C_BYTE_DATA); msleep(60); pip_ctl.write_ctl = res; pip_ov5648_ctrl(PIP_CRL_WRITE_SETTINGS, &pip_ctl); msleep(30); s_ctrl->curr_csic_params = s_ctrl->csic_params[res]; CDBG("CSI config in progress\n"); v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_CSIC_CFG, s_ctrl->curr_csic_params); CDBG("CSI config is done\n"); mb(); msleep(30); csi_config = 1; v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev, NOTIFY_PCLK_CHANGE, &s_ctrl->sensordata->pdata->ioclk.vfe_clk_rate); // s_ctrl->func_tbl->sensor_start_stream(s_ctrl); msleep(50); pip_ov5648_ctrl(PIP_CTL_STANDBY_EXIT, &pip_ctl); msleep(50); pip_ov5648_ctrl(PIP_CTL_STREAM_ON, &pip_ctl); msleep(50); } } return rc; }
int32_t pip_ov7695_ctrl(int cmd, struct msm_camera_pip_ctl *pip_ctl) { int rc = 0; struct msm_camera_i2c_client sensor_i2c_client; struct i2c_client client; CDBG("%s IN, cmd:%d\r\n", __func__, cmd); switch(cmd) { case PIP_CRL_WRITE_SETTINGS: if(NULL == pip_ctl){ CDBG("%s parameters check error, exit\r\n", __func__); return rc; } memcpy(&sensor_i2c_client, pip_ctl->sensor_i2c_client, sizeof(struct msm_camera_i2c_client)); memcpy(&client, pip_ctl->sensor_i2c_client->client, sizeof(struct i2c_client)); client.addr = ov7695_i2c_address; sensor_i2c_client.client = &client; CDBG("write_ctl:%d\r\n", pip_ctl->write_ctl); if(PIP_REG_SETTINGS_INIT == pip_ctl->write_ctl) { rc = msm_sensor_write_all_conf_array( &sensor_i2c_client, &ov7695_raw_pip_init_conf_slave[0], ARRAY_SIZE(ov7695_raw_pip_init_conf_slave)); } else { rc = msm_sensor_write_conf_array( &sensor_i2c_client, &ov7695_raw_pip_confs_slave[0], pip_ctl->write_ctl); } break; case PIP_CRL_POWERUP: if(0 != ov7695_pwdn_pin) { CDBG("PIP ctrl, set the gpio:%d to 1\r\n", ov7695_pwdn_pin); gpio_direction_output(ov7695_pwdn_pin, 1); } break; case PIP_CRL_POWERDOWN: if(0 != ov7695_pwdn_pin) { CDBG("PIP ctrl, set the gpio:%d to 0\r\n", ov7695_pwdn_pin); gpio_direction_output(ov7695_pwdn_pin, 0); } break; case PIP_CTL_RESET_HW_PULSE: break; case PIP_CTL_RESET_SW: if(NULL == pip_ctl){ CDBG("%s parameters check error, exit\r\n", __func__); return rc; } memcpy(&sensor_i2c_client, pip_ctl->sensor_i2c_client, sizeof(struct msm_camera_i2c_client)); memcpy(&client, pip_ctl->sensor_i2c_client->client, sizeof(struct i2c_client)); client.addr = ov7695_i2c_address; sensor_i2c_client.client = &client; msm_camera_i2c_write(&sensor_i2c_client, 0x103, 0x1, MSM_CAMERA_I2C_BYTE_DATA); break; default: break; } return rc; }
// if (s_ctrl->sensor_id_info->sensor_id == YACD5C1SBDBC_ID) { SKYCDBG("[CONFIG_PANTECH_CAMERA_TUNER] %s\n",__func__); tuner_data_type = s_ctrl->msm_sensor_reg->default_data_type; rc = msm_camera_i2c_write_tuner( s_ctrl->sensor_i2c_client, yacd5c1sbdbc_recommend_tuner_settings, tuner_line,//ARRAY_SIZE(yacd5c1sbdbc_recommend_tuner_settings), tuner_data_type);//MSM_CAMERA_I2C_BYTE_DATA); } else { rc = msm_sensor_write_all_conf_array( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->init_settings, s_ctrl->msm_sensor_reg->init_size); } #else rc = msm_sensor_write_all_conf_array( s_ctrl->sensor_i2c_client, s_ctrl->msm_sensor_reg->init_settings, s_ctrl->msm_sensor_reg->init_size); #endif return rc; } /* msm_sensor_write_res_settings */ int32_t yacd5c1sbdbc_sensor_write_res_settings(struct msm_sensor_ctrl_t *s_ctrl, uint16_t res) {