static int mipi_samsung_oled_hd_off(struct platform_device *pdev)
{
	struct msm_fb_data_type *mfd;
//	u32 tmp;
    
    	ENTER_FUNC2();
    
	mfd = platform_get_drvdata(pdev);

	if (!mfd)
		return -ENODEV;
	if (mfd->key != MFD_KEY)
		return -EINVAL;
    
	if (samsung_oled_hd_state.disp_on == true) {
	//	is_sleep = TRUE;
        samsung_oled_hd_state.disp_initialized = false;
        samsung_oled_hd_state.disp_on = false;
        printk("[PANTECH_LCD] power off state (oled_hd panel).... \n");
#ifdef CONFIG_PANTECH_HDMI_PW_CTRL_ON_LCD
	if (!HDMI_Get_Cable_State()) {
		hdmi_autodetect_control(HDMI_PW_OFF);
		HDMI_Schedule_Control(0);
	}

#endif	
    	}	   
    
    	EXIT_FUNC2();
	return 0;
}
예제 #2
0
static int mipi_samsung_oled_off(struct platform_device *pdev)
{
	struct msm_fb_data_type *mfd;
	u32 tmp;
    
    ENTER_FUNC2();
    
	mfd = platform_get_drvdata(pdev);

	if (!mfd)
		return -ENODEV;
	if (mfd->key != MFD_KEY)
		return -EINVAL;
    
	if (samsung_oled_state.disp_on == true) {
#if 0
	   	gpio_set_value_cansleep(gpio43, 0);
	  	usleep(10);
	  	gpio_set_value_cansleep(gpio43, 1);
	  	usleep(10);
		
		mipi_dsi_sw_reset();
#endif
		tmp = MIPI_INP(MIPI_DSI_BASE + 0xA8);
		tmp &= ~(1<<28);
		MIPI_OUTP(MIPI_DSI_BASE + 0xA8, tmp);
		wmb();
           
		is_sleep = FALSE;
        samsung_oled_state.disp_initialized = false;
        samsung_oled_state.disp_on = false;
	    printk("[PANTECH_LCD] power off state (oled panel).... \n");
#ifdef CONFIG_PANTECH_F_HDMI_PW_CTRL_ON_LCD
				if (!HDMI_Get_Cable_State()) {
					hdmi_autodetect_control(HDMI_PW_OFF);
					HDMI_Schedule_Control(0);
				}

#endif	

    }   
    
    EXIT_FUNC2();
	return 0;
}