Пример #1
0
static int icp_hd_reset(int set)
{
	int rc = 0;

	rc = gpio_tlmm_config(GPIO_CFG(SENSOR_RESET_8M, 0, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA),GPIO_CFG_ENABLE);

	if (!rc) {
		CAM_INFO("%s %s:%d\n", __FILE__, __func__, __LINE__);
		gpio_set_value(SENSOR_RESET_8M,0);		
		if(set){
			gpio_set_value(SENSOR_RESET_8M,1);		
		}
	}
	else{
		CAM_ERR("icp_hd_reset gpio_tlmm_config Failed!\n");
		goto reset_fail;
	}

	CAM_INFO("%s %s Success:%d\n", __FILE__, __func__, __LINE__);
	return rc;

reset_fail:
	CAM_ERR("%s %s Failed!:%d\n", __FILE__, __func__, __LINE__);
	return rc;
}
Пример #2
0
static int mt9v113_power(int on)
{
	int rc = 0;
	int status = 0;
	//CAM_INFO("%s %s:%d power = %d\n", __FILE__, __func__, __LINE__,on);
	if(on) {
		rc = regulator_enable(lvs3b_1p8v);
		if (rc) {
			CAM_ERR("%s: Enable regulator lvs3b_1p8v failed\n", __func__);
			goto fail;
		}
		msleep(1);
		rc = regulator_enable(lvs1b_1p8v);
		if (rc) {
			CAM_ERR("%s: Enable regulator lvs1b_1p8v failed\n", __func__);
			goto fail;
		}
		msleep(1);
		rc = regulator_enable(l15a_2p8v);
		if (rc) {
			CAM_ERR("%s: Enable regulator l15a_2p8v failed\n", __func__);
			goto fail;
		}
		msleep(1);
	}
	else {
		rc = regulator_disable(l15a_2p8v);
		if (rc)
			CAM_INFO("%s: Disable regulator l15a_2p8v failed\n", __func__);
		regulator_put(l15a_2p8v);
		
		rc = regulator_disable(lvs3b_1p8v);
		if (rc)
			CAM_ERR("%s: Disable regulator lvs3b_1p8v failed\n", __func__);
		rc = regulator_disable(lvs1b_1p8v);
		if (rc)
			CAM_ERR("%s: Disable regulator lvs1b_1p8v failed\n", __func__);
	}
	//CAM_INFO("%s %s:%d\n", __FILE__, __func__, __LINE__);

	status = gpio_tlmm_config(GPIO_CFG(SENSOR_RESET, 0, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA),GPIO_CFG_ENABLE);

	if (!status) 
    {
		//CAM_INFO("%s %s:%d\n", __FILE__, __func__, __LINE__);
		gpio_set_value(SENSOR_RESET,0);
	}
	
	return rc;
fail:
	CAM_INFO("%s %s:%d\n", __FILE__, __func__, __LINE__);
	if(l15a_2p8v)
		regulator_put(l15a_2p8v);
	return rc;			
}
Пример #3
0
static int mt9v113_reset(int set)//const struct msm_camera_sensor_info *dev)
{
	int rc = 0;

	//standby
	rc = gpio_tlmm_config(GPIO_CFG(SENSOR_RESET, 0, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA),GPIO_CFG_ENABLE);

	if (!rc) {
		//CAM_INFO("%s %s:%d\n", __FILE__, __func__, __LINE__);
		gpio_set_value(SENSOR_RESET,0);
		//rc = gpio_direction_output(137, 0);
		mdelay(10);  //hhs 20); //10
		gpio_set_value(SENSOR_RESET,1);
		//rc = gpio_direction_output(137, 1);
	}
  
	//standby
	rc = gpio_tlmm_config(GPIO_CFG(SENSOR_STANDBY, 0, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA),GPIO_CFG_ENABLE);

	if (!rc) {
		//CAM_INFO("%s %s:%d\n", __FILE__, __func__, __LINE__);
		if(set)
			set=0;
		else
			set=1;
		gpio_set_value(SENSOR_STANDBY,set);
		//rc = gpio_direction_output(137, 0);
		mdelay(10);  //hhs 20);		
	}
  
    CAM_ERR("%s: mt9v113_reset set=%d=\n", __func__, set);
	return rc;
}
Пример #4
0
static int s5k6aafx13_vreg_init()
{
	int rc;
	CAM_INFO("%s %s:%d\n", __FILE__, __func__, __LINE__);
#if 0
	lvs3b_1p8v = regulator_get(NULL, "8901_mvs0");//"8901_lvs3");
	if (IS_ERR(lvs3b_1p8v)) {
		CAM_ERR("regulator_get lvs2b_1p8v fail\n" );;
		return -ENODEV;
	}
	
	lvs2b_1p8v = regulator_get(NULL, "8901_lvs2");
	if (IS_ERR(lvs2b_1p8v)) {
		CAM_ERR("regulator_get lvs2b_1p8v fail\n" );;
		return -ENODEV;
	}
#endif	
	l1b_2p8v = regulator_get(NULL, "8901_l1");
	if (IS_ERR(l1b_2p8v)) {
		CAM_ERR("regulator_get l1b_2p8v fail\n" );;
		return -ENODEV;
	}
	rc = regulator_set_voltage(l1b_2p8v, 2800000, 2800000);
	if (rc) {
		CAM_ERR("%s: unable to set l1b_2p8v voltage to 2.8V\n", __func__);
		goto fail;
	}
	
	l15a_1p5v = regulator_get(NULL, "8058_l15");
	if (IS_ERR(l15a_1p5v)) {
		CAM_ERR("regulator_get l15a_1p5v fail\n" );;
		return -ENODEV;
	}	
	rc = regulator_set_voltage(l15a_1p5v, 1500000, 1500000);
	if (rc) {
		CAM_ERR("%s: unable to set l15a_1p5v voltage to 1.5V\n", __func__);
		goto fail;
	}
	
	lvs1b_1p8v = regulator_get(NULL, "8901_lvs1");
	if (IS_ERR(lvs1b_1p8v)) {
		CAM_ERR("regulator_get lvs1b_1p8v fail\n" );;
		return -ENODEV;
	}	
	
	CAM_INFO("%s %s:%d\n", __FILE__, __func__, __LINE__);
	return rc;
fail:
	CAM_INFO("%s %s:%d\n", __FILE__, __func__, __LINE__);
	if(l15a_1p5v) {
	regulator_put(l15a_1p5v);
	}
	if(l1b_2p8v) {
	regulator_put(l1b_2p8v);
	}
	return rc;	
}
Пример #5
0
static int s5k6aafx13_power(int on)
{
	int rc = 0;
	CAM_INFO("%s %s:%d power = %d\n", __FILE__, __func__, __LINE__,on);
	if(on) {
#if 0		
		rc = regulator_enable(lvs3b_1p8v);
		if (rc) {
			CAM_ERR("%s: Enable regulator lvs3b_1p8v failed\n", __func__);
			goto fail;
		}
		msleep(1);
		rc = regulator_enable(lvs2b_1p8v);
		if (rc) {
			CAM_ERR("%s: Enable regulator lvs2b_1p8v failed\n", __func__);
			goto fail;
		}
#endif		
		rc = regulator_enable(l1b_2p8v);
		if (rc) {
			CAM_ERR("%s: Enable regulator l1b_2p8v failed\n", __func__);
			goto fail;
		}
		msleep(1);
		rc = regulator_enable(l15a_1p5v);
		if (rc) {
			CAM_ERR("%s: Enable regulator l15a_1p5v failed\n", __func__);
			goto fail;
		}
		msleep(1);
		rc = regulator_enable(lvs1b_1p8v);
		if (rc) {
			CAM_ERR("%s: Enable regulator lvs1b_1p8v failed\n", __func__);
			goto fail;
		}
		msleep(1);
	}
	else {
#if 0		
		rc = regulator_disable(lvs3b_1p8v);
		if (rc)
			CAM_ERR("%s: Disable regulator lvs3b_1p8v failed\n", __func__);

		rc = regulator_disable(lvs2b_1p8v);
		if (rc)
			CAM_ERR("%s: Disable regulator lvs2b_1p8v failed\n", __func__);
#endif
		rc = regulator_disable(lvs1b_1p8v);
		if (rc)
			CAM_ERR("%s: Disable regulator lvs1b_1p8v failed\n", __func__);

		rc = regulator_disable(l15a_1p5v);
		if (rc)
			CAM_INFO("%s: Disable regulator l15a_1p5v failed\n", __func__);
		regulator_put(l15a_1p5v);
		
		rc = regulator_disable(l1b_2p8v);
		if (rc)
			CAM_ERR("%s: Disable regulator l1b_2p8v failed\n", __func__);
		regulator_put(l1b_2p8v);		
		
	}
	CAM_INFO("%s %s:%d\n", __FILE__, __func__, __LINE__);
	return rc;
fail:
	CAM_INFO("%s %s:%d\n", __FILE__, __func__, __LINE__);
	if(l1b_2p8v)
		regulator_put(l1b_2p8v);
	if(l15a_1p5v)
		regulator_put(l15a_1p5v);
	return rc;			
}
Пример #6
0
static int icp_hd_power(int on)
{
	int rc = 0;
		CAM_INFO("%s %s:%d power = %d\n", __FILE__, __func__, __LINE__,on);
	if(on) {
		//standby control
		rc = gpio_tlmm_config(GPIO_CFG(SENSOR_STANDBY_8M, 0, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA),GPIO_CFG_ENABLE);
		if (!rc) {
			CAM_INFO("%s %s:%d\n", __FILE__, __func__, __LINE__);
			gpio_set_value(SENSOR_STANDBY_8M,0);					
		}
		
		rc = regulator_enable(s2b_1p2v_8m);
		if (rc) {
			CAM_ERR("%s: Enable regulator s2b_1p2v failed\n", __func__);
			goto fail;
		}
		msleep(1);
		
		rc = regulator_enable(mvs0b_1p8v_8m);
		if (rc) {
			CAM_ERR("%s: Enable regulator mvs0b_1p8v failed\n", __func__);
			goto fail;
		}
		msleep(1);
		
		rc = regulator_enable(lvs3b_1p8v);
		if (rc) {
			CAM_ERR("%s: Enable regulator lvs3b_1p8v failed\n", __func__);
			goto fail;
		}		
		msleep(1);
		
		rc = regulator_enable(l2b_2p8v_8m);
		if (rc) {
			CAM_ERR("%s: Enable regulator l2b_2p8v failed\n", __func__);
			goto fail;
		}
		msleep(1);
		
		rc = regulator_enable(l3b_2p8v_8m);
		if (rc) {
			CAM_ERR("%s: Enable regulator l3b_2p8v failed\n", __func__);
			goto fail;
		}

		CAM_INFO("%s %s ON Success:%d\n", __FILE__, __func__, __LINE__);
	}
	else {
		CAM_INFO("%s %s:%d power \n", __FILE__, __func__, __LINE__);
		if(s2b_1p2v_8m) 
		{
			rc = regulator_disable(s2b_1p2v_8m);
			if (rc){
				CAM_ERR("%s: Disable regulator s2b_1p2v failed\n", __func__);
				goto fail;
			}
			regulator_put(s2b_1p2v_8m);
		}
		if(1)//lvs3b_1p8v) {
		{
			rc = regulator_disable(lvs3b_1p8v);
			if (rc){
				CAM_ERR("%s: Disable regulator lvs3b_1p8v failed\n", __func__);		
				goto fail;
			}
		}
		
		CAM_INFO("%s %s:%d power \n", __FILE__, __func__, __LINE__);
		if(1)//mvs0b_1p8v) 
		{
			rc = regulator_disable(mvs0b_1p8v_8m);
			if (rc){
				CAM_ERR("%s: Disable regulator mvs0b_1p8v failed\n", __func__);
				goto fail;
			}
		}
		CAM_INFO("%s %s:%d power \n", __FILE__, __func__, __LINE__);
		if(1)//l2b_2p8v) 
		{
			rc = regulator_disable(l2b_2p8v_8m);
			if (rc){
				CAM_ERR("%s: Disable regulator l2b_2p8v failed\n", __func__);
				goto fail;
			}
			regulator_put(l2b_2p8v_8m);
		}
		CAM_INFO("%s %s:%d power \n", __FILE__, __func__, __LINE__);
		if(1)//l3b_2p8v) 
		{
		rc = regulator_disable(l3b_2p8v_8m);
			if (rc){
				CAM_ERR("%s: Disable regulator l3b_2p8v failed\n", __func__);
				goto fail;
			}
			regulator_put(l3b_2p8v_8m);		
		}
		CAM_INFO("%s %s OFF Success:%d\n", __FILE__, __func__, __LINE__);
	}
	
	return rc;
fail:
	CAM_ERR("%s %s Failed!:%d\n", __FILE__, __func__, __LINE__);
	if(l2b_2p8v_8m){
		regulator_put(l2b_2p8v_8m);
	}
	if(s2b_1p2v_8m){
		regulator_put(s2b_1p2v_8m);
	}
	if(l3b_2p8v_8m){
		regulator_put(l3b_2p8v_8m);
	}
	return rc;			
}
Пример #7
0
static int icp_hd_vreg_init()
{
	int rc = 0;
	CAM_INFO("%s %s:%d\n", __FILE__, __func__, __LINE__);

	s2b_1p2v_8m = regulator_get(NULL, "8901_s2");
	if (IS_ERR(s2b_1p2v_8m)) {
		CAM_ERR("regulator_get s2b_1p2v fail : 0x%x\n", s2b_1p2v_8m);
		return -ENODEV;
	}
	rc = regulator_set_voltage(s2b_1p2v_8m, 1300000, 1300000);
	if (rc) {
		CAM_ERR("%s: unable to set s2b_1p2v voltage to 1.2V\n", __func__);
		goto fail;
	}

	lvs3b_1p8v = regulator_get(NULL, "8901_lvs3");
	if (IS_ERR(lvs3b_1p8v)) {
		CAM_ERR("regulator_get lvs3b_1p8v : 0x%x fail\n", lvs3b_1p8v);
		return -ENODEV;
	}

	mvs0b_1p8v_8m = regulator_get(NULL, "8901_mvs0");
	if (IS_ERR(mvs0b_1p8v_8m)) {
		CAM_ERR("regulator_get mvs0b_1p8v : 0x%x fail\n", mvs0b_1p8v_8m);
		return -ENODEV;
	}
	
	l2b_2p8v_8m = regulator_get(NULL, "8901_l2");
	if (IS_ERR(l2b_2p8v_8m)) {
		CAM_ERR("regulator_get l2b_2p8v : 0x%x fail\n", l2b_2p8v_8m);
		return -ENODEV;
	}

	rc = regulator_set_voltage(l2b_2p8v_8m, 2800000, 2800000);
	if (rc) {
		CAM_ERR("%s: unable to set l2b_2p8v voltage to 2.8V\n", __func__);
		goto fail;
	}

	l3b_2p8v_8m = regulator_get(NULL, "8901_l3");
	if (IS_ERR(l3b_2p8v_8m)) {
		CAM_ERR("regulator_get l3b_2p8v : 0x%x fail\n", l3b_2p8v_8m);
		return -ENODEV;
	}
	rc = regulator_set_voltage(l3b_2p8v_8m, 2800000, 2800000);
	if (rc) {
		CAM_ERR("%s: unable to set l3b_2p8v voltage to 2.8V\n", __func__);
		goto fail;
	}
	
	CAM_INFO("%s %s Success!:%d\n", __FILE__, __func__, __LINE__);
	return rc;
fail:
	CAM_INFO("%s %s Failed!:%d\n", __FILE__, __func__, __LINE__);
	if(l2b_2p8v_8m) {
		regulator_put(l2b_2p8v_8m);
	}
	if(s2b_1p2v_8m) {
		regulator_put(s2b_1p2v_8m);
	}
	if(l3b_2p8v_8m) {
		regulator_put(l3b_2p8v_8m);
	}
	return rc;	
}