int __init eid_init(void)
{
	int rc;

	vreg_lcm_2v85 = vreg_get(0, "gp4");
	if (IS_ERR(vreg_lcm_2v85))
		return PTR_ERR(vreg_lcm_2v85);
	if (machine_is_mega() || machine_is_clickc()){
		vreg_lcm_2v6 = vreg_get(0, "rfrx2");
		if (IS_ERR(vreg_lcm_2v6))
			return PTR_ERR(vreg_lcm_2v6);
	}
	rc = platform_device_register(&msm_device_mdp);
	if (rc)
		return rc;
	msm_device_mddi0.dev.platform_data = &eid_pdata;
	rc = platform_device_register(&msm_device_mddi0);
	if (rc)
		return rc;

	led_trigger_register_simple("lcd-backlight-gate", &eid_lcd_backlight);
	if (IS_ERR(eid_lcd_backlight))
		printk(KERN_ERR "%s: backlight registration failed!\n", __func__);
	rc = display_sysfs_init() ;
	if (rc)
		return rc ;
	return 0;
}
static int amoled_probe(struct platform_device *pdev)
{
	int rc = -EIO;
	struct panel_platform_data *pdata;
	pdata = pdev->dev.platform_data;

	amoled_power = pdata->power;
	gpio_switch = pdata->gpio_switch;
	amoled_lcdc_platform_data.fb_resource = pdata->fb_res;
	panel_id = amoled_panel_detect();

	amoled_lcdc_timing.hsync_pulse_width      = 2;
	amoled_lcdc_timing.hsync_back_porch       = 14;
	amoled_lcdc_timing.hsync_front_porch     = 16;
	amoled_lcdc_timing.vsync_pulse_width      = 2;
	amoled_lcdc_timing.vsync_back_porch       = 1;
	amoled_lcdc_timing.vsync_front_porch      = 28;
	printk("Panel type = %d\n", amoled_panel_detect());

	rc = amoled_init_panel();
	if (rc)
		printk(KERN_ERR "%s fail %d\n", __func__, rc);

	display_sysfs_init();
	return rc;
}
static int amoled_probe(struct platform_device *pdev)
{
	int rc = -EIO;
	struct msm_panel_common_pdata *lcdc_amoled_pdata;

	lcdc_amoled_pdata = pdev->dev.platform_data;
	panel_power_gpio = lcdc_amoled_pdata->panel_config_gpio;
	printk("Panel type = %d\n", amoled_panel_detect());

	rc = amoled_init_panel();
	if (rc)
		printk(KERN_ERR "%s fail %d\n", __func__, rc);

	display_sysfs_init();
	return rc;
}
static int sonywvga_probe(struct platform_device *pdev)
{
	int rc = -EIO;
	struct panel_platform_data *pdata;
	pdata = pdev->dev.platform_data;

	sonywvga_power = pdata->power;
	gpio_switch = pdata->gpio_switch;
	sonywvga_lcdc_platform_data.fb_resource = pdata->fb_res;

	if(!is_sony_spi())
		last_val_pwm = SONYWVGA_DEFAULT_VAL;
	else
		last_val_pwm = SONYWVGA_BR_DEF_PANEL_PWM;

	rc = sonywvga_init_panel();
	if (rc)
		printk(KERN_ERR "%s fail %d\n", __func__, rc);

	display_sysfs_init();
	return rc;
}