/* 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;

}
Esempio n. 3
0
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;
}
Esempio n. 4
0
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;
}
Esempio n. 9
0
//    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)
{