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; }
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; }
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; }
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; }
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; }
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; }
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; }
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 }
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; }