int panel_power_on(void) { int rc; /* turn on L19 for OJ. Note: must before L12 */ rc = vreg_enable(vreg_ldo19); if (rc) { pr_err("%s: LDO19 vreg enable failed (%d)\n", __func__, rc); return -1; } hr_msleep(5); rc = vreg_enable(vreg_ldo12); if (rc) { pr_err("%s: LDO12 vreg enable failed (%d)\n", __func__, rc); return -1; } hr_msleep(5); rc = vreg_enable(vreg_ldo20); if (rc) { pr_err("%s: LDO20 vreg enable failed (%d)\n", __func__, rc); return -1; } hr_msleep(5); if (is_samsung_panel()) { hr_msleep(5); gpio_set_value(VISION_LCD_RSTz, 1); hr_msleep(25); gpio_set_value(VISION_LCD_RSTz, 0); hr_msleep(10); gpio_set_value(VISION_LCD_RSTz, 1); hr_msleep(20); /* XA, XB board has HW panel issue, need to set EL_EN pin */ if(system_rev <= 1) gpio_set_value(VISION_EL_EN, 1); } else { hr_msleep(10); gpio_set_value(VISION_LCD_RSTz, 1); hr_msleep(10); gpio_set_value(VISION_LCD_RSTz, 0); udelay(500); gpio_set_value(VISION_LCD_RSTz, 1); hr_msleep(10); } return 0; }
static int panel_init_power(void) { int ret = 0; vreg_ldo12 = vreg_get(NULL, "gp9"); if (IS_ERR(vreg_ldo12)) { pr_err("%s: gp9 vreg get failed (%ld)\n", __func__, PTR_ERR(vreg_ldo12)); return -1; } ret = vreg_set_level(vreg_ldo12, 2850); if (ret) { pr_err("%s: vreg LDO12(gp9) set level failed (%d)\n", __func__, ret); return -1; } vreg_ldo19 = vreg_get(NULL, "wlan2"); if (IS_ERR(vreg_ldo19)) { pr_err("%s: wlan2 vreg get failed (%ld)\n", __func__, PTR_ERR(vreg_ldo19)); return -1; } vreg_ldo20 = vreg_get(NULL, "gp13"); if (IS_ERR(vreg_ldo20)) { pr_err("%s: gp13 vreg get failed (%ld)\n", __func__, PTR_ERR(vreg_ldo20)); return -1; } ret = vreg_set_level(vreg_ldo19, 1800); if (ret) { pr_err("%s: vreg LDO19 set level failed (%d)\n", __func__, ret); return -1; } if(is_samsung_panel()) ret = vreg_set_level(vreg_ldo20, 2850); else ret = vreg_set_level(vreg_ldo20, 2600); if (ret) { pr_err("%s: vreg LDO20 set level failed (%d)\n", __func__, ret); return -1; } return 0; }
int panel_power_off(void) { int rc; if (is_samsung_panel()) { hr_msleep(5); if(system_rev <= 1) gpio_set_value(VISION_EL_EN, 0); gpio_set_value(VISION_LCD_RSTz, 0); } else { hr_msleep(10); gpio_set_value(VISION_LCD_RSTz, 0); hr_msleep(120); } rc = vreg_disable(vreg_ldo12); if (rc) { pr_err("%s: LDO12, 19, 20 vreg disable failed (%d)\n", __func__, rc); return -1; } hr_msleep(5); rc = vreg_disable(vreg_ldo19); if (rc) { pr_err("%s: LDO12, 19, 20 vreg disable failed (%d)\n", __func__, rc); return -1; } hr_msleep(5); rc = vreg_disable(vreg_ldo20); if (rc) { pr_err("%s: LDO12, 19, 20 vreg disable failed (%d)\n", __func__, rc); return -1; } hr_msleep(5); return 0; }
int vision_init_panel(void) { int ret = 0; printk(KERN_ERR "%s: Sony=%d Samsung=%d Other=%d\n", __func__, is_sony_panel(), panel_type == SAMSUNG_PANEL, panel_type != SAMSUNG_PANEL && !is_sony_panel()); vreg_ldo12 = vreg_get(NULL, "gp9"); if (IS_ERR(vreg_ldo12)) { pr_err("%s: gp9 vreg get failed (%ld)\n", __func__, PTR_ERR(vreg_ldo12)); return -1; } ret = vreg_set_level(vreg_ldo12, 2850); if (ret) { pr_err("%s: vreg LDO12(gp9) set level failed (%d)\n", __func__, ret); return -1; } vreg_ldo19 = vreg_get(NULL, "wlan2"); if (IS_ERR(vreg_ldo19)) { pr_err("%s: wlan2 vreg get failed (%ld)\n", __func__, PTR_ERR(vreg_ldo19)); return -1; } vreg_ldo20 = vreg_get(NULL, "gp13"); if (IS_ERR(vreg_ldo20)) { pr_err("%s: gp13 vreg get failed (%ld)\n", __func__, PTR_ERR(vreg_ldo20)); return -1; } ret = vreg_set_level(vreg_ldo19, 1800); if (ret) { pr_err("%s: vreg LDO19 set level failed (%d)\n", __func__, ret); return -1; } /* resources_msm_fb[0].start = msm_fb_base; resources_msm_fb[0].end = msm_fb_base + MSM_FB_SIZE - 1; */ if(is_samsung_panel()) ret = vreg_set_level(vreg_ldo20, 2850); else ret = vreg_set_level(vreg_ldo20, 2600); if (ret) { pr_err("%s: vreg LDO20 set level failed (%d)\n", __func__, ret); return -1; } if (is_sony_panel()) { ret = platform_device_register(&sonywvga_panel); printk(KERN_ERR "%s: registered sony panel: %d\n", __func__, ret); } else if (panel_type == SAMSUNG_PANEL) { ret = platform_device_register(&amoled_panel[0]); printk(KERN_ERR "%s: registered amoled panel[0]: %d\n", __func__, ret); } else { ret = platform_device_register(&amoled_panel[1]); printk(KERN_ERR "%s: registered amoled panel[1]: %d\n", __func__, ret); } return ret; }