Example #1
0
static int prox_power_set(unsigned char onoff)
{

/* LGE_CHANGE_S: E0 [email protected] [2011-10-17] : for new bl */
#if defined(CONFIG_BACKLIGHT_AAT2870)
	if(onoff == 1) {
		aat28xx_ldo_set_level(NULL,1,1800);
		aat28xx_ldo_enable(NULL,1,1);
	} else {
		aat28xx_ldo_enable(NULL,1,0);
	}
#elif defined(CONFIG_BACKLIGHT_BU61800)
   if(onoff == 1) {
		bu61800_ldo_enable(NULL,1,1);
	} else {
		bu61800_ldo_enable(NULL,1,0);
	}
#else
	//default
#endif
/* LGE_CHANGE_E: E0 [email protected] [2011-10-17] : for new bl */

	printk("[Proximity] %s() : Power %s\n",__FUNCTION__, onoff ? "On" : "Off");

	return 0;
}
Example #2
0
int camera_power_off (void)
{
	struct device *dev = lu3100_backlight_dev();


	






    aat28xx_ldo_set_level(dev, 3, 0);
	aat28xx_ldo_set_level(dev, 2, 0);
	aat28xx_ldo_set_level(dev, 4, 0);
	aat28xx_ldo_set_level(dev, 1, 0);
	aat28xx_ldo_enable(dev, 3, 0);	
	aat28xx_ldo_enable(dev, 2, 0);
	aat28xx_ldo_enable(dev, 4, 0);

	aat28xx_ldo_enable(dev, 1, 0);






	return 0;
}
Example #3
0
int lu3700_vibrator_power_set(int enable)
{
	static int is_enabled = 0;
	struct device *dev = lu3700_backlight_dev();

	if (dev==NULL) {
		printk(KERN_ERR "%s: backlight devive get failed\n", __FUNCTION__);
		return -1;
	}

	if (enable) {
		if (is_enabled) {
			
			return 0;
		}
		
						
		if (aat28xx_ldo_set_level(dev, 1, VIBE_IC_VOLTAGE) < 0) {
			printk(KERN_ERR "%s: vibrator LDO set failed\n", __FUNCTION__);
			return -EIO;
		}
		
		if (aat28xx_ldo_enable(dev, 1, 1) < 0) {
			printk(KERN_ERR "%s: vibrator LDO enable failed\n", __FUNCTION__);
			return -EIO;
		}
		is_enabled = 1;
	} else {
		if (!is_enabled) {
			
			return 0;
		}
		
		if (aat28xx_ldo_set_level(dev, 1, 0) < 0) {		
			printk(KERN_ERR "%s: vibrator LDO set failed\n", __FUNCTION__);
			return -EIO;
		}
		
		if (aat28xx_ldo_enable(dev, 1, 0) < 0) {
			printk(KERN_ERR "%s: vibrator LDO disable failed\n", __FUNCTION__);
			return -EIO;
		}
		is_enabled = 0;
	}
	return 0;
}
int thunderg_vibrator_power_set(int enable)
{
    static int is_enabled = 0;
    struct device *dev = thunderg_backlight_dev();

    if (dev==NULL) {
        printk(KERN_ERR "%s: backlight devive get failed\n", __FUNCTION__);
        return -1;
    }

    if (enable) {
        if (is_enabled) {
            //printk(KERN_INFO "vibrator power was enabled, already\n");
            return 0;
        }

        /* 3300 mV for Motor IC */
        if (aat28xx_ldo_set_level(dev, 1, VIBE_IC_VOLTAGE) < 0) {
            printk(KERN_ERR "%s: vibrator LDO set failed\n", __FUNCTION__);
            return -EIO;
        }

        if (aat28xx_ldo_enable(dev, 1, 1) < 0) {
            printk(KERN_ERR "%s: vibrator LDO enable failed\n", __FUNCTION__);
            return -EIO;
        }
        is_enabled = 1;
    } else {
        if (!is_enabled) {
            //printk(KERN_INFO "vibrator power was disabled, already\n");
            return 0;
        }

        if (aat28xx_ldo_set_level(dev, 1, 0) < 0) {
            printk(KERN_ERR "%s: vibrator LDO set failed\n", __FUNCTION__);
            return -EIO;
        }

        if (aat28xx_ldo_enable(dev, 1, 0) < 0) {
            printk(KERN_ERR "%s: vibrator LDO disable failed\n", __FUNCTION__);
            return -EIO;
        }
        is_enabled = 0;
    }
    return 0;
}
Example #5
0
int camera_power_on (void)
{
	struct device *dev = lu3100_backlight_dev();
	printk("dev = %d\n",dev);

	



    aat28xx_ldo_set_level(dev, 1, 1200);

	aat28xx_ldo_set_level(dev, 4, 2700);

	aat28xx_ldo_set_level(dev, 2, 2700);

	aat28xx_ldo_set_level(dev, 3, 2800);

	
	aat28xx_ldo_enable(dev, 1, 1);	
	mdelay(1);

	aat28xx_ldo_enable(dev, 4, 1);	
	mdelay(1);
	aat28xx_ldo_enable(dev, 2, 1);	
	mdelay(1);
	aat28xx_ldo_enable(dev, 3, 1);	
	mdelay(5);

#if 0
	msm_camio_clk_rate_set(24000000);
	mdelay(5);
	msm_camio_camif_pad_reg_reset();

	mdelay(5);

	gpio_set_value(0, 1);	
	
#endif
	return 0;
}
Example #6
0
int camera_power_off (void)
{
	int rc;
	struct device *dev = gelato_backlight_dev();

	/*Nstandby low*/
	gpio_set_value(GPIO_CAM_PWDN, 0);
	mdelay(5);

	/*reset low*/
	gpio_set_value(GPIO_CAM_RESET, 0);

	mdelay(1);
	gpio_set_value(GPIO_CAM_PWDN, 0);

	/*AVDD power 2.8V*/
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_AF_NO, 0);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_AF_NO);
		goto power_off_fail;
	}
	rc = aat28xx_ldo_enable(dev, LDO_CAM_AF_NO, 0);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_AF_NO);
		goto power_off_fail;
	}

	/*IOVDD power 2.6V*/
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_IOVDD_NO, 0);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_IOVDD_NO);
		goto power_off_fail;
	}

	rc = aat28xx_ldo_enable(dev, LDO_CAM_IOVDD_NO, 0);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_IOVDD_NO);
		goto power_off_fail;
	}

	/*AVDD power 2.7V*/
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_AVDD_NO, 0);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_AVDD_NO);
		goto power_off_fail;
	}

	rc = aat28xx_ldo_enable(dev, LDO_CAM_AVDD_NO, 0);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_AVDD_NO);
		goto power_off_fail;
	}

	/* DVDD power 1.2V*/
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_DVDD_NO, 0);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_DVDD_NO);
		goto power_off_fail;
	}

	rc = aat28xx_ldo_enable(dev, LDO_CAM_DVDD_NO, 0);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_DVDD_NO);
		goto power_off_fail;
	}

	aat28xx_power(dev, 0);
	camera_power_state = CAM_POWER_OFF;

	/*Hitachi LCD LUT*/
	if(gelato_panel_id==1){
		mdp_load_hitachi_lut(1);
	}
power_off_fail:
	return rc;
}
Example #7
0
int camera_power_on (void)
{
	int rc;
	struct device *dev = gelato_backlight_dev();
	int retry  = 0;

	/* clear RESET, PWDN to Low*/
	gpio_set_value(GPIO_CAM_RESET, 0);
	gpio_set_value(GPIO_CAM_PWDN, 0);

	aat28xx_power(dev, 1);

	/*
	 * 2011-04-23, [email protected]
	 * wait for Backlight IC enable.
	 * because camera application does not work well permanently after power on failure.
	 */
	for (retry = 100; retry != 0; retry--) {
		/* FIXME: check the Backlight IC enable status using another method */
		rc = aat28xx_ldo_set_level(dev, LDO_CAM_AF_NO, 2800);
		if (rc < 0) {
			//printk("%s, wait for Backlight IC enabling, ramian retry %d\n", __func__, retry);
			msleep(50);
		} else {
			break;
		}
	}

	/*AVDD power 2.8V*/
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_AF_NO, 2800);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_AF_NO);
		goto power_on_fail;
	}
	rc = aat28xx_ldo_enable(dev, LDO_CAM_AF_NO, 1);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_AF_NO);
		goto power_on_fail;
	}

  /* DVDD power 1.2V */
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_DVDD_NO, 1800);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_DVDD_NO);
		goto power_on_fail;
	}
	rc = aat28xx_ldo_enable(dev, LDO_CAM_DVDD_NO, 1);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_DVDD_NO);
		goto power_on_fail;
	}

	udelay(500);

	/*AVDD power  2.7V*/
	/* LGE_CHANGE 
	  * Change AVDD level from 2.7V to 2.8V in order to reduce camera noise in dard environment.
	  * 2010-08-03. [email protected]
	  */
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_AVDD_NO, 2800);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_AVDD_NO);
		goto power_on_fail;
	}
	rc = aat28xx_ldo_enable(dev, LDO_CAM_AVDD_NO, 1);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_AVDD_NO);
		goto power_on_fail;
	}	

	udelay(100);
		
  /*IOVDD power 2.6V*/
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_IOVDD_NO, 2800);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_IOVDD_NO);
		goto power_on_fail;
	}
	rc = aat28xx_ldo_enable(dev, LDO_CAM_IOVDD_NO, 1);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_IOVDD_NO);
		goto power_on_fail;
	}


	mdelay(5);
	/*M Clock -24Mhz*/
	msm_camio_clk_rate_set(mclk_rate);
	mdelay(5);
	msm_camio_camif_pad_reg_reset();
	mdelay(5);

	/*Nstandby high*/
	gpio_set_value(GPIO_CAM_PWDN, 1);

	udelay(20);

	/*reset high*/
	gpio_set_value(GPIO_CAM_RESET, 1);
	mdelay(5); 
	camera_power_state = CAM_POWER_ON;

	/*Hitachi LCD LUT*/
	if(gelato_panel_id==1){
		mdp_load_hitachi_lut(2);
	}
power_on_fail:
	return rc;
}
int camera_power_on (void)
{
	int rc;
	struct device *dev = su370_backlight_dev();

	camera_power_mutex_lock();
	if(lcd_bl_power_state == BL_POWER_SUSPEND)
	{
		u370_pwrsink_resume();
		mdelay(50);
	}

	
	/* clear RESET, PWDN to Low*/
	gpio_set_value(GPIO_CAM_RESET, 0);
	gpio_set_value(GPIO_CAM_PWDN, 0);

	/*AVDD power 2.8V*/


	{	/* it is for rev.c and default */
		struct vreg *vreg_mmc = vreg_get(0, "mmc");
		vreg_set_level(vreg_mmc, 2800);
		vreg_enable(vreg_mmc);
	}

  /* DVDD power 1.2V */
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_DVDD_NO, 1200);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_DVDD_NO);
		goto power_on_fail;
	}
	rc = aat28xx_ldo_enable(dev, LDO_CAM_DVDD_NO, 1);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_DVDD_NO);
		goto power_on_fail;
	}

  /*IOVDD power 2.6V*/
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_IOVDD_NO, 2600);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_IOVDD_NO);
		goto power_on_fail;
	}
	rc = aat28xx_ldo_enable(dev, LDO_CAM_IOVDD_NO, 1);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_IOVDD_NO);
		goto power_on_fail;
	}

	rc = aat28xx_ldo_set_level(dev, LDO_CAM_AVDD_NO, 2800);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_AVDD_NO);
		goto power_on_fail;
	}
	rc = aat28xx_ldo_enable(dev, LDO_CAM_AVDD_NO, 1);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_AVDD_NO);
		goto power_on_fail;
	}	

	mdelay(5);
	/*M Clock -24Mhz*/
	msm_camio_clk_rate_set(mclk_rate);
	mdelay(5);
	msm_camio_camif_pad_reg_reset();
	mdelay(5);

	/*reset high*/
	gpio_set_value(GPIO_CAM_RESET, 1);

	mdelay(5); 
	/*Nstandby high*/
	gpio_set_value(GPIO_CAM_PWDN, 1);
	
	mdelay(8);  // T2 

	camera_power_state = CAM_POWER_ON;

power_on_fail:
	camera_power_mutex_unlock();
	return rc;

}
int camera_power_off (void)
{
	int rc;
	struct device *dev = su370_backlight_dev();

	camera_power_mutex_lock();

	if (lcd_bl_power_state == BL_POWER_SUSPEND) {
		u370_pwrsink_resume();
		mdelay(50);
	}
	/*Nstandby low*/
	gpio_set_value(GPIO_CAM_PWDN, 0);
	mdelay(5);

	/*reset low*/
	gpio_set_value(GPIO_CAM_RESET, 0);

	{	
		struct vreg *vreg_mmc = vreg_get(0, "mmc");
		vreg_set_level(vreg_mmc, 0);
		vreg_disable(vreg_mmc);
	}


	/*AVDD power 2.7V*/
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_AVDD_NO, 0);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_AVDD_NO);
		goto power_off_fail;
	}
	rc = aat28xx_ldo_enable(dev, LDO_CAM_AVDD_NO, 0);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_AVDD_NO);
		goto power_off_fail;
	}

	/*IOVDD power 2.6V*/
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_IOVDD_NO, 0);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_IOVDD_NO);
		goto power_off_fail;
	}
	rc = aat28xx_ldo_enable(dev, LDO_CAM_IOVDD_NO, 0);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_IOVDD_NO);
		goto power_off_fail;
	}

  /* DVDD power 1.2V*/
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_DVDD_NO, 0);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_DVDD_NO);
		goto power_off_fail;
	}
	rc = aat28xx_ldo_enable(dev, LDO_CAM_DVDD_NO, 0);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_DVDD_NO);
		goto power_off_fail;
	}
	camera_power_state = CAM_POWER_OFF;


power_off_fail:
	camera_power_mutex_unlock();
	return rc;

}
Example #10
0
int camera_power_on (void)
{
	int rc;
	struct device *dev = thunderg_backlight_dev();
	
	
	gpio_set_value(GPIO_CAM_RESET, 0);
	gpio_set_value(GPIO_CAM_PWDN, 0);

	
	if (lge_bd_rev == LGE_REV_B) {
		rc = aat28xx_ldo_set_level(dev, LDO_CAM_AF_NO, 2800);
		if (rc < 0) {
			printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_AF_NO);
			return rc;
		}
		rc = aat28xx_ldo_enable(dev, LDO_CAM_AF_NO, 1);
		if (rc < 0) {
			printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_AF_NO);
			return rc;
		}
	} else {	
		struct vreg *vreg_mmc = vreg_get(0, "mmc");
		vreg_set_level(vreg_mmc, 2800);
		vreg_enable(vreg_mmc);
	}

  
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_DVDD_NO, 1200);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_DVDD_NO);
		return rc;
	}
	rc = aat28xx_ldo_enable(dev, LDO_CAM_DVDD_NO, 1);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_DVDD_NO);
		return rc;
	}

  
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_IOVDD_NO, 2600);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_IOVDD_NO);
		return rc;
	}
	rc = aat28xx_ldo_enable(dev, LDO_CAM_IOVDD_NO, 1);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_IOVDD_NO);
		return rc;
	}

	
	
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_AVDD_NO, 2800);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_AVDD_NO);
		return rc;
	}
	rc = aat28xx_ldo_enable(dev, LDO_CAM_AVDD_NO, 1);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_AVDD_NO);
		return rc;
	}	

	mdelay(5);
	
	msm_camio_clk_rate_set(mclk_rate);
	mdelay(5);
	msm_camio_camif_pad_reg_reset();
	mdelay(5);

	
	gpio_set_value(GPIO_CAM_RESET, 1);

	mdelay(5); 
	
	gpio_set_value(GPIO_CAM_PWDN, 1);
	
	mdelay(8);  


	return rc;

}
Example #11
0
static void msm_camera_vreg_config(int vreg_en)
{
	int rc;
	static int gpio_initialzed;

	if (!gpio_initialzed) {
		rc = gpio_request(GPIO_CAM_PWDN, "hi351_pwdn");
		if (rc < 0) {
			pr_err("%s: gpio_request(GPIO_CAM_PWDN) failed\n", __func__);
		}
		
		rc = gpio_request(GPIO_CAM_RESET, "hi351_reset");
		if (rc < 0) {
			pr_err("%s: gpio_request(GPIO_CAM_RESET) failed\n", __func__);
		}
		
		rc = gpio_direction_output(GPIO_CAM_PWDN, 0);
		if (rc < 0) {
			pr_err("%s: gpio_direction_output(GPIO_CAM_PWDN, 0) failed(1)\n", __func__);
		}

		rc = gpio_direction_output(GPIO_CAM_RESET, 0);
		if (rc < 0) {
			pr_err("%s: gpio_direction_output(GPIO_CAM_RESET, 0) failed(2)\n", __func__);
		}
		gpio_initialzed = 1;
	}
	
#if defined(CONFIG_BACKLIGHT_AAT2870)
	if (vreg_en) {
		pr_err("%s: msm_camera_vreg_config power on vreg_en enable\n", __func__);

		//IOVDD: 1.8V START
		rc = aat28xx_ldo_set_level(NULL, 4, 1800);
		if (rc < 0) {
			pr_err("%s: aat28xx_ldo_set_level(ldo4) failed\n", __func__);
		}
		rc = aat28xx_ldo_enable(NULL, 4, vreg_en);
		if (rc < 0) {
			pr_err("%s: aat28xx_ldo_enable(ldo4) failed\n", __func__);
		}
		//IOVDD: 1.8V END

		//AVDD: 2.8V START
		rc = aat28xx_ldo_set_level(NULL, 2, 2800);
		if (rc < 0) {
			pr_err("%s: aat28xx_ldo_set_level(ldo2) failed\n", __func__);
		}
		rc = aat28xx_ldo_enable(NULL, 2, vreg_en);
		if (rc < 0) {
			pr_err("%s: aat28xx_ldo_enable(ldo2) failed\n", __func__);
		}
		//AVDD: 2.8V END

		//DVDD: 1.2V START
		rc = aat28xx_ldo_set_level(NULL, 3, 1200); //DVDD: 1.2V E0
		if (rc < 0) {
			pr_err("%s: aat28xx_ldo_set_level(ldo3) failed\n", __func__);
		}
		rc = aat28xx_ldo_enable(NULL, 3, vreg_en);
		if (rc < 0) {
			pr_err("%s: aat28xx_ldo_enable(ldo3) failed\n", __func__);
		}
		//DVDD: 1.2V END

	} 
	else {
	 	pr_err("%s: msm_camera_vreg_config power on vreg_en disable start\n", __func__);

		rc = aat28xx_ldo_enable(NULL, 3, 0);
		if (rc < 0) {
			pr_err("%s: aat28xx_ldo_enable(ldo3) OFF failed\n", __func__);
		}

		rc = aat28xx_ldo_enable(NULL, 2, 0);
		if (rc < 0) {
			pr_err("%s: aat28xx_ldo_enable(ldo2) OFF failed\n", __func__);
		}

		rc = aat28xx_ldo_enable(NULL, 4, 0);
		if (rc < 0) {
			pr_err("%s: aat28xx_ldo_enable(ldo4) OFF failed\n", __func__);
		}
		pr_err("%s: msm_camera_vreg_config power on vreg_en disable end\n", __func__);

	}
#elif defined(CONFIG_BACKLIGHT_BU61800)
	if (vreg_en) {
		pr_err("%s: msm_camera_vreg_config power on vreg_en enable\n", __func__);

		//IOVDD: 1.8V START

		rc = bu61800_ldo_enable(NULL,4,vreg_en); 
		if (rc < 0) {
			pr_err("%s: aat28xx_ldo_enable(ldo4) failed\n", __func__);
		}
		//IOVDD: 1.8V END

		//AVDD: 2.8V START

		rc = bu61800_ldo_enable(NULL,2,vreg_en);
		if (rc < 0) {
			pr_err("%s: aat28xx_ldo_enable(ldo2) failed\n", __func__);
		}
		//AVDD: 2.8V END

		//DVDD: 1.2V START

		rc = bu61800_ldo_enable(NULL,3,vreg_en);
		if (rc < 0) {
			pr_err("%s: aat28xx_ldo_enable(ldo3) failed\n", __func__);
		}
		//DVDD: 1.2V END

	} 
	else {
		
	 	pr_err("%s: msm_camera_vreg_config power on vreg_en disable start\n", __func__);

		rc = bu61800_ldo_enable(NULL,3,vreg_en);
		if (rc < 0) {
			pr_err("%s: aat28xx_ldo_enable(ldo3) OFF failed\n", __func__);
		}

		rc = bu61800_ldo_enable(NULL,2,vreg_en);
		if (rc < 0) {
			pr_err("%s: aat28xx_ldo_enable(ldo2) OFF failed\n", __func__);
		}

		rc = bu61800_ldo_enable(NULL,4,vreg_en);
		if (rc < 0) {
			pr_err("%s: aat28xx_ldo_enable(ldo4) OFF failed\n", __func__);
		}
		pr_err("%s: msm_camera_vreg_config power on vreg_en disable end\n", __func__);

	}
#else
	//default
#endif
	return;
}
int camera_power_on (void)
{
    int rc;
    struct device *dev = pecan_backlight_dev();

    camera_power_mutex_lock();
    if(lcd_bl_power_state == BL_POWER_SUSPEND)
    {
        pecan_pwrsink_resume();
        mdelay(50);
    }

    /* clear RESET, PWDN to Low*/
    gpio_set_value(GPIO_CAM_RESET, 0);
    gpio_set_value(GPIO_CAM_PWDN, 0);
    //2010-11-02
    config_camera_off_gpios();
    mdelay(40);

    /*AVDD power 2.8V*/
    if (lge_bd_rev == LGE_REV_B) {
        rc = aat28xx_ldo_set_level(dev, LDO_CAM_AF_NO, 2800);
        if (rc < 0) {
            printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_AF_NO);
            goto power_on_fail;
        }
        rc = aat28xx_ldo_enable(dev, LDO_CAM_AF_NO, 1);
        if (rc < 0) {
            printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_AF_NO);
            goto power_on_fail;
        }
    } else {	/* it is for rev.c and default */
        struct vreg *vreg_mmc = vreg_get(0, "mmc");
        vreg_set_level(vreg_mmc, 2800);
        vreg_enable(vreg_mmc);
    }

    /* DVDD power 1.2V, change to 1.8V */
    rc = aat28xx_ldo_set_level(dev, LDO_CAM_DVDD_NO, 1800);
    if (rc < 0) {
        printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_DVDD_NO);
        goto power_on_fail;
    }
    rc = aat28xx_ldo_enable(dev, LDO_CAM_DVDD_NO, 1);
    if (rc < 0) {
        printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_DVDD_NO);
        goto power_on_fail;
    }

    mdelay(1);

    /*IOVDD power 2.6V*/
    rc = aat28xx_ldo_set_level(dev, LDO_CAM_IOVDD_NO, 2600);
    if (rc < 0) {
        printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_IOVDD_NO);
        goto power_on_fail;
    }
    rc = aat28xx_ldo_enable(dev, LDO_CAM_IOVDD_NO, 1);
    if (rc < 0) {
        printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_IOVDD_NO);
        goto power_on_fail;
    }

    /*AVDD power  2.7V*/
    /* LGE_CHANGE
      * Change AVDD level from 2.7V to 2.8V in order to reduce camera noise in dard environment.
      * 2010-08-03. [email protected]
      */
    rc = aat28xx_ldo_set_level(dev, LDO_CAM_AVDD_NO, 2800);
    if (rc < 0) {
        printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_AVDD_NO);
        goto power_on_fail;
    }
    rc = aat28xx_ldo_enable(dev, LDO_CAM_AVDD_NO, 1);
    if (rc < 0) {
        printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_AVDD_NO);
        goto power_on_fail;
    }

    //mdelay(5);
    /*M Clock -24Mhz*/
    mdelay(20);
    config_camera_on_gpios();
    msm_camio_clk_rate_set(mclk_rate);
    mdelay(5);
    msm_camio_camif_pad_reg_reset();
    mdelay(5);

    /*Nstandby high*/
    gpio_set_value(GPIO_CAM_PWDN, 0);
    mdelay(1);

    /*reset high*/
    gpio_set_value(GPIO_CAM_RESET, 1);

    mdelay(8);  // T2

    camera_power_state = CAM_POWER_ON;

power_on_fail:
    camera_power_mutex_unlock();
    return rc;

}
int gelato_vibrator_power_set(int enable)
{
//#ifdef	LG_FW_AUDIO_GELATO_MOTOR
#if 1
	struct vreg *vreg_motor;
		
		printk("[Touch] %s() onoff:%d\n",__FUNCTION__, enable);
	
		vreg_motor = vreg_get(0, "gp1");
		
	
		if((IS_ERR(vreg_motor)) ){
			printk("[motor] vreg_get fail : motor\n");
			return -1;
		}
	
		if (enable) {	
			vreg_enable(vreg_motor);
	
		} else {
			vreg_disable(vreg_motor);
			
		}
		return 0;
#else
#if 0
	static int is_enabled = 0;
	struct device *dev = gelato_backlight_dev();

	if (dev==NULL) {
		printk(KERN_ERR "%s: backlight devive get failed\n", __FUNCTION__);
		return -1;
	}

	if (enable) {
		if (is_enabled) {
			//printk(KERN_INFO "vibrator power was enabled, already\n");
			return 0;
		}
		/* 3300 mV for Motor IC */				
		if (aat28xx_ldo_set_level(dev, 1, VIBE_IC_VOLTAGE) < 0) {
			printk(KERN_ERR "%s: vibrator LDO set failed\n", __FUNCTION__);
			return -EIO;
		}
		if (aat28xx_ldo_enable(dev, 1, 1) < 0) {
			printk(KERN_ERR "%s: vibrator LDO enable failed\n", __FUNCTION__);
			return -EIO;
		}
		is_enabled = 1;
	} else {
		if (!is_enabled) {
			//printk(KERN_INFO "vibrator power was disabled, already\n");
			return 0;
		}
		if (aat28xx_ldo_set_level(dev, 1, 0) < 0) {		
			printk(KERN_ERR "%s: vibrator LDO set failed\n", __FUNCTION__);
			return -EIO;
		}
		if (aat28xx_ldo_enable(dev, 1, 0) < 0) {
			printk(KERN_ERR "%s: vibrator LDO disable failed\n", __FUNCTION__);
			return -EIO;
		}
		is_enabled = 0;
	}
	return 0;
#endif 	
#endif
}
Example #14
0
int camera_power_on (void)
{
	int rc;
	struct device *dev = su370_backlight_dev();

	camera_power_mutex_lock();
	if(lcd_bl_power_state == BL_POWER_SUSPEND)
	{
		u370_pwrsink_resume();
		mdelay(50);
	}

	
	
	gpio_set_value(GPIO_CAM_RESET, 0);
	gpio_set_value(GPIO_CAM_PWDN, 0);

	


	


	{	
		struct vreg *vreg_mmc = vreg_get(0, "mmc");
		vreg_set_level(vreg_mmc, 2800);
		vreg_enable(vreg_mmc);
	}

  
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_DVDD_NO, 1200);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_DVDD_NO);
		goto power_on_fail;
	}
	rc = aat28xx_ldo_enable(dev, LDO_CAM_DVDD_NO, 1);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_DVDD_NO);
		goto power_on_fail;
	}

  
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_IOVDD_NO, 2600);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_IOVDD_NO);
		goto power_on_fail;
	}
	rc = aat28xx_ldo_enable(dev, LDO_CAM_IOVDD_NO, 1);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_IOVDD_NO);
		goto power_on_fail;
	}

	
	
	rc = aat28xx_ldo_set_level(dev, LDO_CAM_AVDD_NO, 2800);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d set level error\n", __func__, LDO_CAM_AVDD_NO);
		goto power_on_fail;
	}
	rc = aat28xx_ldo_enable(dev, LDO_CAM_AVDD_NO, 1);
	if (rc < 0) {
		printk(KERN_ERR "%s: ldo %d control error\n", __func__, LDO_CAM_AVDD_NO);
		goto power_on_fail;
	}	

	mdelay(5);
	
	msm_camio_clk_rate_set(mclk_rate);
	mdelay(5);
	msm_camio_camif_pad_reg_reset();
	mdelay(5);

	
	gpio_set_value(GPIO_CAM_RESET, 1);

	mdelay(5); 
	
	gpio_set_value(GPIO_CAM_PWDN, 1);
	
	mdelay(8);  

	camera_power_state = CAM_POWER_ON;

power_on_fail:
	camera_power_mutex_unlock();
	return rc;

}