Exemplo n.º 1
0
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;
}
Exemplo n.º 2
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;
}
Exemplo n.º 3
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;
}
Exemplo n.º 4
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;
}