Exemple #1
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());

  ret = panel_init_power();
  if (ret)
    return ret;

  msm_fb_add_devices(
                     vision_fb_devices, ARRAY_SIZE(vision_fb_devices));

  if (is_sony_panel())
    {
      ret = platform_device_register(&lcdc_sonywvga_panel_device);
      printk(KERN_ERR "%s: registered sony panel: %d\n", __func__, ret);
    }
  else if (panel_type == SAMSUNG_PANEL)
    {
      ret = platform_device_register(&lcdc_tl2796a_panel_device);
      printk(KERN_ERR "%s: registered tl2796a panel: %d\n", __func__, ret);
    }
  else
    {
      ret = platform_device_register(&lcdc_s6e63m0_panel_device);
      printk(KERN_ERR "%s: registered s6e63m0 panel: %d\n", __func__, ret);
    }
  return ret;
}
Exemple #2
0
int device_fb_detect_panel(const char *name)
{
  if (!strcmp(name, "lcdc_s6d16a0x21_wvga") && is_sony_panel())
    return 0;
  if (!strcmp(name, "lcdc_tl2796a_wvga") && (panel_type == SAMSUNG_PANEL))
    return 0;
  if (!strcmp(name, "lcdc_s6e63m0_wvga") && (panel_type == SAMSUNG_PANELII))
    return 0;
  return -ENODEV;
}
Exemple #3
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;
}