void tovis_qvga_esd_recovery(void)
{
	static struct timeval last;
	unsigned long elapsed_time = 0;
	struct timeval now;
	unsigned short reg1, reg2 = 0;	
	
	do_gettimeofday(&now);
	elapsed_time =
		1000000 * (now.tv_sec - last.tv_sec) + now.tv_usec - last.tv_usec;
	
	/* if elapsed 1 second */
	if (elapsed_time > 1000000) {
		EBI2_WRITE16C(DISP_CMD_PORT, 0xa);
		EBI2_READ16(DISP_DATA_PORT); /* dummy read */
		reg1 = EBI2_READ16(DISP_DATA_PORT);

		EBI2_WRITE16C(DISP_CMD_PORT, 0xc);
		EBI2_READ16(DISP_DATA_PORT); /* dummy read */
		reg2 = EBI2_READ16(DISP_DATA_PORT);
		
		if (reg1 == 0x8 && reg2 == 0x66) {
			printk("tovis_qvga_esd_recovery lcd reset detected!!! -> send initial code\n");
			
			do_tovis_init();
		}
		
		last = now;
	}
}
static int ilitek_qvga_disp_off(struct platform_device *pdev)
{

/* LGE_CHANGE_S: E0 [email protected] [2011-11-22] : BL control error fix */
#if 1
	struct msm_panel_ilitek_pdata *pdata = tovis_qvga_panel_pdata;
#endif
/* LGE_CHANGE_E: E0 [email protected] [2011-11-22] : BL control error fix */


	printk("%s: display off...\n", __func__);
	if (!disp_initialized)
		tovis_qvga_disp_init(pdev);

#ifndef CONFIG_ARCH_MSM7X27A
	pm_qos_update_request(tovis_pm_qos_req, PM_QOS_DEFAULT_VALUE);
#endif

	EBI2_WRITE16C(DISP_CMD_PORT, 0x28);
	msleep(50);
	EBI2_WRITE16C(DISP_CMD_PORT, 0x10); // SPLIN
	msleep(120);

/* LGE_CHANGE_S: E0 [email protected] [2011-11-22] : BL control error fix */
#if 1 
	if(pdata->gpio)
		gpio_set_value(pdata->gpio, 0);
#endif	
/* LGE_CHANGE_E: E0 [email protected] [2011-11-22] : BL control error fix */

	msm_fb_ebi2_power_save(0);
	display_on = FALSE;

	return 0;
}
static int ilitek_qvga_disp_off(struct platform_device *pdev)
{
	if (!disp_initialized)
		tovis_qvga_disp_init(pdev);

	if (display_on) {
		// perform lcd deep sleep instead of power off
		EBI2_WRITE16C(DISP_CMD_PORT, 0x28); 
		mdelay(50);
		EBI2_WRITE16C(DISP_CMD_PORT, 0x10); // SPLIN
		mdelay(120);
		/* TEST */ msm_fb_ebi2_power_save(0);
		display_on = FALSE;
	}

	return 0;
}
Esempio n. 4
0
static void ilitek_qvga_disp_set_rect(int x, int y, int xres, int yres) // xres = width, yres - height
{
	if (!disp_initialized)
		return;

	DISP_SET_RECT(x, x+xres-1, y, y+yres-1);
	EBI2_WRITE16C(DISP_CMD_PORT,0x2c); // Write memory start
}
static int tovis_qvga_disp_off(struct platform_device *pdev)
{
	if (!disp_initialized)
		tovis_qvga_disp_init(pdev);

	if (display_on) {
		// (b) -> (a)
		EBI2_WRITE16C(DISP_CMD_PORT, 0x28); // Display Off
		mdelay(20);
		EBI2_WRITE16C(DISP_CMD_PORT, 0x10); // AMP Off
		mdelay(120);

		msm_fb_ebi2_power_save(0);
		display_on = FALSE;
	}

	return 0;
}
static void ilitek_qvga_disp_set_rect(int x, int y, int xres, int yres) // xres = width, yres - height
{
	if (!disp_initialized)
		return;

	EBI2_WRITE16C(DISP_CMD_PORT, 0x2a); // Set_Column address
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0xef); // 4

	EBI2_WRITE16C(DISP_CMD_PORT, 0x2b); // Set_Page address
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x3f); // 4

	EBI2_WRITE16C(DISP_CMD_PORT,0x2c); // Write memory start
}
static int ilitek_qvga_disp_off(struct platform_device *pdev)
{
	if (!disp_initialized)
		tovis_qvga_disp_init(pdev);

	if (display_on) {
		EBI2_WRITE16C(DISP_CMD_PORT, 0x28); 
		mdelay(50);
		msm_fb_ebi2_power_save(0);
		display_on = FALSE;
	}

	return 0;
}
static int tovis_qvga_disp_off(struct platform_device *pdev)
{
	if (!disp_initialized)
		tovis_qvga_disp_init(pdev);
	
	pm_qos_update_requirement(PM_QOS_SYSTEM_BUS_FREQ, "ebi2_lcd",
		PM_QOS_DEFAULT_VALUE);
	if (display_on) {
		// (b) -> (a)
		EBI2_WRITE16C(DISP_CMD_PORT, 0x28);  // ScreenOff
		mdelay(20);
		EBI2_WRITE16C(DISP_CMD_PORT, 0x10);  // AMP Off
		mdelay(120);

		// (a) -> (d)
		EBI2_WRITE16C(DISP_CMD_PORT, 0xb1); 
		EBI2_WRITE16D(DISP_DATA_PORT,0x01); 

		display_on = FALSE;
	}

	return 0;
}
Esempio n. 9
0
static int ilitek_qvga_disp_off(struct platform_device *pdev)
{
	struct msm_panel_ilitek_pdata *pdata = tovis_qvga_panel_pdata;

	printk("%s: display off...", __func__);
	if (!disp_initialized)
		tovis_qvga_disp_init(pdev);

	pm_qos_update_request(tovis_pm_qos_req, PM_QOS_DEFAULT_VALUE);

		EBI2_WRITE16C(DISP_CMD_PORT, 0x28);
		mdelay(50);
		EBI2_WRITE16C(DISP_CMD_PORT, 0x10); // SPLIN
		mdelay(120);

	if(pdata->gpio)
		gpio_set_value(pdata->gpio, 0);

		msm_fb_ebi2_power_save(0);
		display_on = FALSE;

	return 0;
}
static void do_ilitek_init()
{
	int x, y;

	EBI2_WRITE16C(DISP_CMD_PORT, 0xc0);
	EBI2_WRITE16D(DISP_DATA_PORT,0x27); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 2

	EBI2_WRITE16C(DISP_CMD_PORT, 0xc1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 1
	
	EBI2_WRITE16C(DISP_CMD_PORT, 0xc2);
	EBI2_WRITE16D(DISP_DATA_PORT,0x80); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0xc5);
	EBI2_WRITE16D(DISP_DATA_PORT,0x34); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x49); // 2

	EBI2_WRITE16C(DISP_CMD_PORT, 0x13);

	EBI2_WRITE16C(DISP_CMD_PORT, 0x36);
	EBI2_WRITE16D(DISP_DATA_PORT,0x48); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0x3a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x05); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0xb1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x17); // 2

	EBI2_WRITE16C(DISP_CMD_PORT, 0xb4);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2

	EBI2_WRITE16C(DISP_CMD_PORT, 0xb5);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x06); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x14); // 4

	EBI2_WRITE16C(DISP_CMD_PORT, 0xb6);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x02); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x27); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 4

	EBI2_WRITE16C(DISP_CMD_PORT, 0x35);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0x44); // Tearing effect Control
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0xe2); // 2

	EBI2_WRITE16C(DISP_CMD_PORT, 0xe0); // Positive Gamma Correction
	EBI2_WRITE16D(DISP_DATA_PORT,0x0d); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x2c); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x27); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x0c); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x10); // 5
	EBI2_WRITE16D(DISP_DATA_PORT,0x07); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x4f); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x55); // 8
	EBI2_WRITE16D(DISP_DATA_PORT,0x3b); // 9
	EBI2_WRITE16D(DISP_DATA_PORT,0x04); // 10
	EBI2_WRITE16D(DISP_DATA_PORT,0x10); // 11
	EBI2_WRITE16D(DISP_DATA_PORT,0x02); // 12
	EBI2_WRITE16D(DISP_DATA_PORT,0x17); // 13
	EBI2_WRITE16D(DISP_DATA_PORT,0x12); // 14
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 15

	EBI2_WRITE16C(DISP_CMD_PORT, 0xe1); // Negative Gamma Correction
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x15); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x1a); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x02); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x0d); // 5
	EBI2_WRITE16D(DISP_DATA_PORT,0x03); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x32); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x44); // 8
	EBI2_WRITE16D(DISP_DATA_PORT,0x46); // 9
	EBI2_WRITE16D(DISP_DATA_PORT,0x06); // 10
	EBI2_WRITE16D(DISP_DATA_PORT,0x0d); // 11
	EBI2_WRITE16D(DISP_DATA_PORT,0x0c); // 12
	EBI2_WRITE16D(DISP_DATA_PORT,0x2a); // 13
	EBI2_WRITE16D(DISP_DATA_PORT,0x2f); // 14
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f); // 15

	EBI2_WRITE16C(DISP_CMD_PORT,0x2a); // Set_column_address
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0xef); // 4

	EBI2_WRITE16C(DISP_CMD_PORT,0x2b); // Set_Page_address
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x3f); // 4

	EBI2_WRITE16C(DISP_CMD_PORT,0xe8); // Charge Sharing Control
	EBI2_WRITE16D(DISP_DATA_PORT,0x89); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x08); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x79); // 3

	EBI2_WRITE16C(DISP_CMD_PORT,0x11); // Exit Sleep
	mdelay(80);

/*-- bootlogo is displayed at oemsbl
	EBI2_WRITE16C(DISP_CMD_PORT,0x2c); // Write memory start
	for(y = 0; y < 320; y++) {
		int pixel = 0x0;
		for(x= 0; x < 240; x++) {
			EBI2_WRITE16D(DISP_DATA_PORT,pixel); // 1
		}
	}

	mdelay(50);
*/
	EBI2_WRITE16C(DISP_CMD_PORT,0x29); // Display On 
}
static void do_tovis_init()
{
	int x, y;

	EBI2_WRITE16C(DISP_CMD_PORT,0xb0); // Manufacturer command access protect
	EBI2_WRITE16D(DISP_DATA_PORT,0x0);

	EBI2_WRITE16C(DISP_CMD_PORT,0xb1); // Low power mode control
	EBI2_WRITE16D(DISP_DATA_PORT,0x0);
	
	EBI2_WRITE16C(DISP_CMD_PORT,0xb3); // frame memory & I/F setting
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x01);

	EBI2_WRITE16C(DISP_CMD_PORT,0xb4); // Display mode & frame memory write mode setting
	EBI2_WRITE16D(DISP_DATA_PORT,0x0);
/*
	EBI2_WRITE16C(DISP_CMD_PORT,0xb8); // Back Light Control(1)
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x1f); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x1f); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 5
	EBI2_WRITE16D(DISP_DATA_PORT,0x3f); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x3f); // 7
	EBI2_WRITE16D(DISP_DATA_PORT,0xff); // 8
	EBI2_WRITE16D(DISP_DATA_PORT,0xff); // 9
	EBI2_WRITE16D(DISP_DATA_PORT,0x08); // 10
	EBI2_WRITE16D(DISP_DATA_PORT,0x08); // 11 
	EBI2_WRITE16D(DISP_DATA_PORT,0x10); // 12
	EBI2_WRITE16D(DISP_DATA_PORT,0x10); // 13
	EBI2_WRITE16D(DISP_DATA_PORT,0xff); // 14
	EBI2_WRITE16D(DISP_DATA_PORT,0xff); // 15
	EBI2_WRITE16D(DISP_DATA_PORT,0xff); // 16
	EBI2_WRITE16D(DISP_DATA_PORT,0xff); // 17
	EBI2_WRITE16D(DISP_DATA_PORT,0xff); // 18
	EBI2_WRITE16D(DISP_DATA_PORT,0xff); // 19
	EBI2_WRITE16D(DISP_DATA_PORT,0xff); // 20 

	EBI2_WRITE16C(DISP_CMD_PORT,0xb9); // Back Light Control(2)
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x1d); // 4
*/
	EBI2_WRITE16C(DISP_CMD_PORT,0xc0); // Panel driving setting
	EBI2_WRITE16D(DISP_DATA_PORT,0x03); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x4f); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 5
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 7
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 8

	EBI2_WRITE16C(DISP_CMD_PORT,0xc1); // Display timing setting for normal mode
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x19); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x05); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x07); // 5

	EBI2_WRITE16C(DISP_CMD_PORT,0xc3); // Display timing setting for idle mode
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x19); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x05); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x07); // 5

	EBI2_WRITE16C(DISP_CMD_PORT,0xc4); // Source/Vcom/gate driving time setting
	EBI2_WRITE16D(DISP_DATA_PORT,0x11); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x43); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 4

	EBI2_WRITE16C(DISP_CMD_PORT,0xc8); // Gamma Set A (Blue)
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x0A); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x15); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0xde); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x09); // 5
	EBI2_WRITE16D(DISP_DATA_PORT,0x13); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x14); // 7
	EBI2_WRITE16D(DISP_DATA_PORT,0x05); // 8
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 9
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 10
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 11 
	EBI2_WRITE16D(DISP_DATA_PORT,0x14); // 12
	EBI2_WRITE16D(DISP_DATA_PORT,0x13); // 13
	EBI2_WRITE16D(DISP_DATA_PORT,0xd9); // 14
	EBI2_WRITE16D(DISP_DATA_PORT,0x0e); // 15
	EBI2_WRITE16D(DISP_DATA_PORT,0x15); // 16
	EBI2_WRITE16D(DISP_DATA_PORT,0x0A); // 17
	EBI2_WRITE16D(DISP_DATA_PORT,0x05); // 18
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 19
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 20 

	EBI2_WRITE16C(DISP_CMD_PORT,0xc9); // Gamma Set B (Green)
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x0A); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x15); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0xde); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x09); // 5
	EBI2_WRITE16D(DISP_DATA_PORT,0x13); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x14); // 7
	EBI2_WRITE16D(DISP_DATA_PORT,0x05); // 8
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 9
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 10
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 11 
	EBI2_WRITE16D(DISP_DATA_PORT,0x14); // 12
	EBI2_WRITE16D(DISP_DATA_PORT,0x13); // 13
	EBI2_WRITE16D(DISP_DATA_PORT,0xd9); // 14
	EBI2_WRITE16D(DISP_DATA_PORT,0x0e); // 15
	EBI2_WRITE16D(DISP_DATA_PORT,0x15); // 16
	EBI2_WRITE16D(DISP_DATA_PORT,0x0A); // 17
	EBI2_WRITE16D(DISP_DATA_PORT,0x05); // 18
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 19
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 20 

	EBI2_WRITE16C(DISP_CMD_PORT,0xca); // Gamma Set C (Red)
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x0A); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x15); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0xde); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x09); // 5
	EBI2_WRITE16D(DISP_DATA_PORT,0x13); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x14); // 7
	EBI2_WRITE16D(DISP_DATA_PORT,0x05); // 8
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 9
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 10
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 11 
	EBI2_WRITE16D(DISP_DATA_PORT,0x14); // 12
	EBI2_WRITE16D(DISP_DATA_PORT,0x13); // 13
	EBI2_WRITE16D(DISP_DATA_PORT,0xd9); // 14
	EBI2_WRITE16D(DISP_DATA_PORT,0x0e); // 15
	EBI2_WRITE16D(DISP_DATA_PORT,0x15); // 16
	EBI2_WRITE16D(DISP_DATA_PORT,0x0A); // 17
	EBI2_WRITE16D(DISP_DATA_PORT,0x05); // 18
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 19
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 20 

	EBI2_WRITE16C(DISP_CMD_PORT,0xd0); // Power setting(common)
	EBI2_WRITE16D(DISP_DATA_PORT,0x07); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0xc6); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0xdd); // 3

	EBI2_WRITE16C(DISP_CMD_PORT,0xd1); // Vcom setting
	EBI2_WRITE16D(DISP_DATA_PORT,0x67); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x0d); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x02); // 3

	EBI2_WRITE16C(DISP_CMD_PORT,0xd2); // Power setting for normal mode
	EBI2_WRITE16D(DISP_DATA_PORT,0x63); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x24); // 2

	EBI2_WRITE16C(DISP_CMD_PORT,0xd4); // Power setting for idle mode
	EBI2_WRITE16D(DISP_DATA_PORT,0x63); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x24); // 2

/*	EBI2_WRITE16C(DISP_CMD_PORT,0xd7); // Test Register
	EBI2_WRITE16D(DISP_DATA_PORT,0x06); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x16); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x88); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x07); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0xaa); // 5
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0xca); // 7
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 8
	EBI2_WRITE16D(DISP_DATA_PORT,0x0c); // 9

	EBI2_WRITE16C(DISP_CMD_PORT,0xd8); // Sequencer Control
	EBI2_WRITE16D(DISP_DATA_PORT,0x77); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x77); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x33); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x75); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x11); // 5
	EBI2_WRITE16D(DISP_DATA_PORT,0x91); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 7
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 8
	EBI2_WRITE16D(DISP_DATA_PORT,0x09); // 9

	EBI2_WRITE16C(DISP_CMD_PORT, 0xd9); // Test Register1
	EBI2_WRITE16D(DISP_DATA_PORT,0xfb); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x9f); // 2

	EBI2_WRITE16C(DISP_CMD_PORT, 0xe0); // NVM Access Control
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2

	EBI2_WRITE16C(DISP_CMD_PORT, 0xe4); // Test Register2
	EBI2_WRITE16D(DISP_DATA_PORT,0x11); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x11); // 2

	EBI2_WRITE16C(DISP_CMD_PORT, 0xe5); // Test Register3
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2

	EBI2_WRITE16C(DISP_CMD_PORT,0xfa); // Test Register4
	EBI2_WRITE16D(DISP_DATA_PORT,0x04); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 3

	EBI2_WRITE16C(DISP_CMD_PORT,0xfc); // Test Register5
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 5
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 7
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 8
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 9
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 10
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 11 

	EBI2_WRITE16C(DISP_CMD_PORT,0xfd); // Test Register6
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x0c); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 5
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 7

	EBI2_WRITE16C(DISP_CMD_PORT,0xfe); // Test Register7
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x21); // 4
*/
	EBI2_WRITE16C(DISP_CMD_PORT,0x35); // Set_tear on
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1

	EBI2_WRITE16C(DISP_CMD_PORT,0x36); // Set_address_mode
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1

	EBI2_WRITE16C(DISP_CMD_PORT,0x3a); // Set_pixel_format
	EBI2_WRITE16D(DISP_DATA_PORT,0x05); // 1

/*	EBI2_WRITE16C(DISP_CMD_PORT,0x44); // Set_tear_scanline
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0xb8); // 2
*/
	EBI2_WRITE16C(DISP_CMD_PORT,0x2a); // Set_column_address
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0xef); // 4

	EBI2_WRITE16C(DISP_CMD_PORT,0x2b); // Set_Page_address
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x3f); // 4

/*-- bootlogo is displayed at oemsbl
	EBI2_WRITE16C(DISP_CMD_PORT,0x2c); // Write memory start
	for(y = 0; y < 320; y++) {
		int pixel = 0x0;
		for(x= 0; x < 240; x++) {
			EBI2_WRITE16D(DISP_DATA_PORT,pixel); // 1
		}
	}
*/

	EBI2_WRITE16C(DISP_CMD_PORT,0x11); // Exit_sleep_mode
	mdelay(50); //mdelay(120);

	EBI2_WRITE16C(DISP_CMD_PORT,0x29); // Display On
	mdelay(15);
}
Esempio n. 12
0
static void do_lgd_init(struct platform_device *pdev)
{
	EBI2_WRITE16C(DISP_CMD_PORT, 0x11);

	EBI2_WRITE16C(DISP_CMD_PORT, 0x35);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0x36);
	EBI2_WRITE16D(DISP_DATA_PORT,mactl); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0x3a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x05); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0xb1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x17); // 2

	EBI2_WRITE16C(DISP_CMD_PORT, 0xb4);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0xb6);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x02); // 2

	/* Power Control 1 */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xc0);
	EBI2_WRITE16D(DISP_DATA_PORT,0x12); // 1

	/* Power Control 2 */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xc1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x11); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0xc5);
	EBI2_WRITE16D(DISP_DATA_PORT,0x22); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x33); // 2

	EBI2_WRITE16C(DISP_CMD_PORT, 0xc7);
	EBI2_WRITE16D(DISP_DATA_PORT,0xcf); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0xcb);
	EBI2_WRITE16D(DISP_DATA_PORT,0x39); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x2c); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x35); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x06); // 5

	EBI2_WRITE16C(DISP_CMD_PORT, 0xcf);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0xba); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0xb0); // 3

	EBI2_WRITE16C(DISP_CMD_PORT, 0xe8);
	EBI2_WRITE16D(DISP_DATA_PORT,0x89); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x7b); // 3

	EBI2_WRITE16C(DISP_CMD_PORT, 0xea);
	EBI2_WRITE16D(DISP_DATA_PORT,0x10); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2

	EBI2_WRITE16C(DISP_CMD_PORT, 0xf6);
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x30); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 3

	EBI2_WRITE16C(DISP_CMD_PORT, 0xf7);
	EBI2_WRITE16D(DISP_DATA_PORT,0x20); // 1

	/* Gamma Setting(Positive) */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xe0);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x22); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x30); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x13); // 5
	EBI2_WRITE16D(DISP_DATA_PORT,0x0e); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x50); // 7
	EBI2_WRITE16D(DISP_DATA_PORT,0x55); // 8
	EBI2_WRITE16D(DISP_DATA_PORT,0x2c); // 9
	EBI2_WRITE16D(DISP_DATA_PORT,0x06); // 10
	EBI2_WRITE16D(DISP_DATA_PORT,0x14); // 11
	EBI2_WRITE16D(DISP_DATA_PORT,0x04); // 12
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 13
	EBI2_WRITE16D(DISP_DATA_PORT,0x08); // 14
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 15

	/* Gamma Setting(Negative) */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xe1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x0e); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x0c); // 5
	EBI2_WRITE16D(DISP_DATA_PORT,0x02); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x2e); // 7
	EBI2_WRITE16D(DISP_DATA_PORT,0x25); // 8
	EBI2_WRITE16D(DISP_DATA_PORT,0x49); // 9
	EBI2_WRITE16D(DISP_DATA_PORT,0x05); // 10
	EBI2_WRITE16D(DISP_DATA_PORT,0x0c); // 11
	EBI2_WRITE16D(DISP_DATA_PORT,0x0b); // 12
	EBI2_WRITE16D(DISP_DATA_PORT,0x35); // 13
	EBI2_WRITE16D(DISP_DATA_PORT,0x38); // 14
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f); // 15

	EBI2_WRITE16C(DISP_CMD_PORT, 0x29);
}
Esempio n. 13
0
static void do_ilitek_init(struct platform_device *pdev)
{
#if defined (CONFIG_MACH_MSM7X27_JUMP)
	EBI2_WRITE16C(DISP_CMD_PORT, 0xc0);
	EBI2_WRITE16D(DISP_DATA_PORT,0x23); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0xc1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x13); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0xc5);
	EBI2_WRITE16D(DISP_DATA_PORT,0x3b); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x50); // 2

	EBI2_WRITE16C(DISP_CMD_PORT, 0xcb);
	EBI2_WRITE16D(DISP_DATA_PORT,0x39); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x2c); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x34); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x02); // 5

	EBI2_WRITE16C(DISP_CMD_PORT, 0xcf);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x81); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x30); // 3

	EBI2_WRITE16C(DISP_CMD_PORT, 0xe8);
	EBI2_WRITE16D(DISP_DATA_PORT,0x85); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x78); // 2

	EBI2_WRITE16C(DISP_CMD_PORT, 0xea);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2

	/* Power on sequence control */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xed);
	EBI2_WRITE16D(DISP_DATA_PORT,0x64); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x03); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x12); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x81); // 4

	/* Pump ratio control */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xf7);
	EBI2_WRITE16D(DISP_DATA_PORT,0x20); // 1

	/* Display mode setting */
	EBI2_WRITE16C(DISP_CMD_PORT, 0x13);

	/* Memory access control */
	EBI2_WRITE16C(DISP_CMD_PORT, 0x36);
	EBI2_WRITE16D(DISP_DATA_PORT,mactl); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0x3a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x05); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0xb1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x1b); // 2

	EBI2_WRITE16C(DISP_CMD_PORT, 0xb4);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0xb5);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x14); // 4

	EBI2_WRITE16C(DISP_CMD_PORT, 0xb6);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x82); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x27); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 4

	EBI2_WRITE16C(DISP_CMD_PORT, 0x35);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0x44); // Tearing effect Control
	EBI2_WRITE16D(DISP_DATA_PORT,te_lines >> 8); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,te_lines & 0xFF); // 2

  /* Positive Gamma Correction */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xe0);
	EBI2_WRITE16D(DISP_DATA_PORT,0x06); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x24); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x1f); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x15); // 5
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x4e); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x08); // 8
	EBI2_WRITE16D(DISP_DATA_PORT,0x3f); // 9
	EBI2_WRITE16D(DISP_DATA_PORT,0x0b); // 10
	EBI2_WRITE16D(DISP_DATA_PORT,0x10); // 11
	EBI2_WRITE16D(DISP_DATA_PORT,0x03); // 12
	EBI2_WRITE16D(DISP_DATA_PORT,0x03); // 13
	EBI2_WRITE16D(DISP_DATA_PORT,0x02); // 14
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 15

  /* Negative Gamma Correction */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xe1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x1d); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x25); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x06); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x11); // 5
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x33); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x02); // 8
	EBI2_WRITE16D(DISP_DATA_PORT,0x44); // 9
	EBI2_WRITE16D(DISP_DATA_PORT,0x05); // 10
	EBI2_WRITE16D(DISP_DATA_PORT,0x15); // 11
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f); // 12
	EBI2_WRITE16D(DISP_DATA_PORT,0x36); // 13
	EBI2_WRITE16D(DISP_DATA_PORT,0x37); // 14
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f); // 15

	EBI2_WRITE16C(DISP_CMD_PORT,0x2a); // Set_column_address
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0xef); // 4

	EBI2_WRITE16C(DISP_CMD_PORT,0x2b); // Set_Page_address
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x3f); // 4

	EBI2_WRITE16C(DISP_CMD_PORT,0xe8); // Charge Sharing Control
	EBI2_WRITE16D(DISP_DATA_PORT,0x85); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x78); // 3

	EBI2_WRITE16C(DISP_CMD_PORT,0x11); // Exit Sleep

	mdelay(120);

/*-- bootlogo is displayed at oemsbl
	EBI2_WRITE16C(DISP_CMD_PORT,0x2c); // Write memory start
	for(y = 0; y < 320; y++) {
		int pixel = 0x0;
		for(x= 0; x < 240; x++) {
			EBI2_WRITE16D(DISP_DATA_PORT,pixel); // 1
		}
	}

	mdelay(50);
*/
	EBI2_WRITE16C(DISP_CMD_PORT,0x29); // Display On	
#else
	EBI2_WRITE16C(DISP_CMD_PORT, 0xc0);
	EBI2_WRITE16D(DISP_DATA_PORT,0x23); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0xc1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x11); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0xc5);
	EBI2_WRITE16D(DISP_DATA_PORT,0x2f); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x50); // 2

	EBI2_WRITE16C(DISP_CMD_PORT, 0xcb);
	EBI2_WRITE16D(DISP_DATA_PORT,0x39); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x2c); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x34); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x02); // 5

	EBI2_WRITE16C(DISP_CMD_PORT, 0xcf);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x89); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x30); // 3

	EBI2_WRITE16C(DISP_CMD_PORT, 0xe8);
	EBI2_WRITE16D(DISP_DATA_PORT,0x85); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x78); // 2

	EBI2_WRITE16C(DISP_CMD_PORT, 0xea);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2

	/* Power on sequence control */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xed);
	EBI2_WRITE16D(DISP_DATA_PORT,0x64); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x03); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x12); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x81); // 4

	/* Pump ratio control */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xf7);
	EBI2_WRITE16D(DISP_DATA_PORT,0x20); // 1

	/* Display mode setting */
	EBI2_WRITE16C(DISP_CMD_PORT, 0x13);

	/* Memory access control */
	EBI2_WRITE16C(DISP_CMD_PORT, 0x36);
	EBI2_WRITE16D(DISP_DATA_PORT,mactl); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0x3a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x05); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0xb1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x17); // 2

	EBI2_WRITE16C(DISP_CMD_PORT, 0xb4);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0xb5);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x14); // 4

	EBI2_WRITE16C(DISP_CMD_PORT, 0xb6);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x02); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x27); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 4

	EBI2_WRITE16C(DISP_CMD_PORT, 0x35);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1

	EBI2_WRITE16C(DISP_CMD_PORT, 0x44); // Tearing effect Control
	EBI2_WRITE16D(DISP_DATA_PORT,te_lines>>8); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,te_lines&0xFF); // 2

  /* Positive Gamma Correction */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xe0);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x34); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x2d); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x0d); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f); // 5
	EBI2_WRITE16D(DISP_DATA_PORT,0x06); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x4b); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x65); // 8
	EBI2_WRITE16D(DISP_DATA_PORT,0x30); // 9
	EBI2_WRITE16D(DISP_DATA_PORT,0x02); // 10
	EBI2_WRITE16D(DISP_DATA_PORT,0x0c); // 11
	EBI2_WRITE16D(DISP_DATA_PORT,0x02); // 12
	EBI2_WRITE16D(DISP_DATA_PORT,0x0e); // 13
	EBI2_WRITE16D(DISP_DATA_PORT,0x0b); // 14
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 15

  /* Negative Gamma Correction */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xe1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x08); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x0d); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x14); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 4
	EBI2_WRITE16D(DISP_DATA_PORT,0x0e); // 5
	EBI2_WRITE16D(DISP_DATA_PORT,0x04); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x36); // 6
	EBI2_WRITE16D(DISP_DATA_PORT,0x34); // 8
	EBI2_WRITE16D(DISP_DATA_PORT,0x51); // 9
	EBI2_WRITE16D(DISP_DATA_PORT,0x08); // 10
	EBI2_WRITE16D(DISP_DATA_PORT,0x11); // 11
	EBI2_WRITE16D(DISP_DATA_PORT,0x0c); // 12
	EBI2_WRITE16D(DISP_DATA_PORT,0x33); // 13
	EBI2_WRITE16D(DISP_DATA_PORT,0x36); // 14
	EBI2_WRITE16D(DISP_DATA_PORT,0x17); // 15

	EBI2_WRITE16C(DISP_CMD_PORT,0x2a); // Set_column_address
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0xef); // 4

	EBI2_WRITE16C(DISP_CMD_PORT,0x2b); // Set_Page_address
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 3
	EBI2_WRITE16D(DISP_DATA_PORT,0x3f); // 4

	EBI2_WRITE16C(DISP_CMD_PORT,0xe8); // Charge Sharing Control
	EBI2_WRITE16D(DISP_DATA_PORT,0x85); // 1
	EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 2
	EBI2_WRITE16D(DISP_DATA_PORT,0x78); // 3

	EBI2_WRITE16C(DISP_CMD_PORT,0x11); // Exit Sleep

	mdelay(120);

/*-- bootlogo is displayed at oemsbl
	EBI2_WRITE16C(DISP_CMD_PORT,0x2c); // Write memory start
	for(y = 0; y < 320; y++) {
		int pixel = 0x0;
		for(x= 0; x < 240; x++) {
			EBI2_WRITE16D(DISP_DATA_PORT,pixel); // 1
		}
	}

	mdelay(50);
*/
	EBI2_WRITE16C(DISP_CMD_PORT,0x29); // Display On
#endif	
}
static void panel_lgdisplay_init(void)
{
	/* SET EXTC */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xcf);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x21);

	/* Inversion Control */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xb4);
	EBI2_WRITE16D(DISP_DATA_PORT,0x02);

	/* Power control 1 */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xc0);
	EBI2_WRITE16D(DISP_DATA_PORT,0x14);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f);

	/* Power control 2*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xc1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x04);

	/* Power control 3*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xc2);
	EBI2_WRITE16D(DISP_DATA_PORT,0x32);

	/* Vcom control 1*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xc5);
	EBI2_WRITE16D(DISP_DATA_PORT,0xfc);
	
	/* Interface control*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xf6);
	EBI2_WRITE16D(DISP_DATA_PORT,0x41);
	EBI2_WRITE16D(DISP_DATA_PORT,0x30);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);

	/* Entry Mode Set*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xb7);
	EBI2_WRITE16D(DISP_DATA_PORT,0x06);

	/* Frame Rate control*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xb1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x1f);

	/* Memory Access control*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0x36);
	EBI2_WRITE16D(DISP_DATA_PORT,0x08);

	/* Blanking Porch control*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xb5);
	EBI2_WRITE16D(DISP_DATA_PORT,0x02);
	EBI2_WRITE16D(DISP_DATA_PORT,0x02);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x14);

	/* Display Function control*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xb6);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x02);
	EBI2_WRITE16D(DISP_DATA_PORT,0x27);
	EBI2_WRITE16D(DISP_DATA_PORT,0x04);

	/* Pixel Format */
	EBI2_WRITE16C(DISP_CMD_PORT, 0x3a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x55);

	/* Tearing Effect Line On */
	EBI2_WRITE16C(DISP_CMD_PORT, 0x35);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);

	/* Tearing effect Control Parameter */
	EBI2_WRITE16C(DISP_CMD_PORT, 0x44);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0xef);

   /* Positive Gamma Correction*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xe0);
	EBI2_WRITE16D(DISP_DATA_PORT,0x08);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0e);
	EBI2_WRITE16D(DISP_DATA_PORT,0x12);
	EBI2_WRITE16D(DISP_DATA_PORT,0x04);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f);
	EBI2_WRITE16D(DISP_DATA_PORT,0x05);
	EBI2_WRITE16D(DISP_DATA_PORT,0x35);
	EBI2_WRITE16D(DISP_DATA_PORT,0x32);
	EBI2_WRITE16D(DISP_DATA_PORT,0x4f);
	EBI2_WRITE16D(DISP_DATA_PORT,0x03);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0c);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x2f);
	EBI2_WRITE16D(DISP_DATA_PORT,0x35);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f);

	/* Negative Gamma Correction*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xe1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x08);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0e);
	EBI2_WRITE16D(DISP_DATA_PORT,0x12);
	EBI2_WRITE16D(DISP_DATA_PORT,0x03);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0e);
	EBI2_WRITE16D(DISP_DATA_PORT,0x03);
	EBI2_WRITE16D(DISP_DATA_PORT,0x35);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x4d);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x12);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f);
	EBI2_WRITE16D(DISP_DATA_PORT,0x31);
	EBI2_WRITE16D(DISP_DATA_PORT,0x38);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f);

	/* Column address*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0x2a); // Set_column_address
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0xef);

	/* Page address*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0x2b); // Set_Page_address
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x01);
	EBI2_WRITE16D(DISP_DATA_PORT,0x3f);

	/* Charge Sharing control*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xe8); // Charge Sharing Control
	EBI2_WRITE16D(DISP_DATA_PORT,0x84);
	EBI2_WRITE16D(DISP_DATA_PORT,0x1a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x38);

	/* Exit Sleep - This command should be only used at Power on sequence*/
	EBI2_WRITE16C(DISP_CMD_PORT,0x11); // Exit Sleep

	msleep(120);

	EBI2_WRITE16C(DISP_CMD_PORT,0x2c); // Write memory start
	{
		int x, y;
	for(y = 0; y < QVGA_HEIGHT; y++) {
		for(x = 0; x < QVGA_WIDTH; x++) {
			EBI2_WRITE16D(DISP_DATA_PORT, 0);
		}
	}
	}
	msleep(80);

	EBI2_WRITE16C(DISP_CMD_PORT,0x29); // Display On
}
Esempio n. 15
0
static void do_ilitek_init(struct platform_device *pdev)
{
#if defined(CONFIG_MACH_MSM7X25A_E0EU) || defined(CONFIG_MACH_MSM7X25A_E1BR)
	int x,y; 

	/* EXTC Option*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xcf);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x21);
	EBI2_WRITE16D(DISP_DATA_PORT,0x20);

	/* 3-Gamma Function Off */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xf2);
	EBI2_WRITE16D(DISP_DATA_PORT,0x02);
	
	/* Inversion Control -> 2Dot inversion*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xb4);
	EBI2_WRITE16D(DISP_DATA_PORT,0x02);

	/* Power control 1 */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xc0);
	EBI2_WRITE16D(DISP_DATA_PORT,0x15);
	EBI2_WRITE16D(DISP_DATA_PORT,0x15);

	/* Power control 2*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xc1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x05);

	/* Power control 3*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xc2);
	EBI2_WRITE16D(DISP_DATA_PORT,0x32);

	/* Vcom control 1*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xc5);
	EBI2_WRITE16D(DISP_DATA_PORT,0xfc);

	/* V-core Setting */
	EBI2_WRITE16C(DISP_CMD_PORT, 0xcb);
	EBI2_WRITE16D(DISP_DATA_PORT,0x31);
	EBI2_WRITE16D(DISP_DATA_PORT,0x24);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x34);
	
	/* Interface control*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xf6);
	EBI2_WRITE16D(DISP_DATA_PORT,0x41);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);

	/* Entry Mode Set*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xb7);
	EBI2_WRITE16D(DISP_DATA_PORT,0x06);

	/* Frame Rate control*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xb1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x1b);

	/* Memory Access control*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0x36);
	EBI2_WRITE16D(DISP_DATA_PORT,0x08);

	/* Blanking Porch control*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xb5);
	EBI2_WRITE16D(DISP_DATA_PORT,0x02);
	EBI2_WRITE16D(DISP_DATA_PORT,0x02);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x14);

	/* Display Function control*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xb6);
	EBI2_WRITE16D(DISP_DATA_PORT,0x02);
	EBI2_WRITE16D(DISP_DATA_PORT,0x82);
	EBI2_WRITE16D(DISP_DATA_PORT,0x27);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);

	/* Pixel Format --> DBI(5 = 16bit) */
	EBI2_WRITE16C(DISP_CMD_PORT, 0x3a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x05);

	/* Tearing Effect Line On */
	EBI2_WRITE16C(DISP_CMD_PORT, 0x35);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);

	/* Tearing effect Control Parameter */
	EBI2_WRITE16C(DISP_CMD_PORT, 0x44);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0xef);

	/* Positive Gamma Correction*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xe0);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x06);
	EBI2_WRITE16D(DISP_DATA_PORT,0x07);
	EBI2_WRITE16D(DISP_DATA_PORT,0x03);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x40);
	EBI2_WRITE16D(DISP_DATA_PORT,0x59);
	EBI2_WRITE16D(DISP_DATA_PORT,0x4d);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0c);
	EBI2_WRITE16D(DISP_DATA_PORT,0x18);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f);
	EBI2_WRITE16D(DISP_DATA_PORT,0x22);
	EBI2_WRITE16D(DISP_DATA_PORT,0x1d);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f);

	/* Negative Gamma Correction*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xe1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x06);
	EBI2_WRITE16D(DISP_DATA_PORT,0x23);
	EBI2_WRITE16D(DISP_DATA_PORT,0x24);
	EBI2_WRITE16D(DISP_DATA_PORT,0x01);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f);
	EBI2_WRITE16D(DISP_DATA_PORT,0x01);
	EBI2_WRITE16D(DISP_DATA_PORT,0x36);
	EBI2_WRITE16D(DISP_DATA_PORT,0x23);
	EBI2_WRITE16D(DISP_DATA_PORT,0x41);
	EBI2_WRITE16D(DISP_DATA_PORT,0x07);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0f);
	EBI2_WRITE16D(DISP_DATA_PORT,0x30);
	EBI2_WRITE16D(DISP_DATA_PORT,0x27);
	EBI2_WRITE16D(DISP_DATA_PORT,0x0e);

	/* Column address*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0x2a); // Set_column_address
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0xef);

	/* Page address*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0x2b); // Set_Page_address
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x01);
	EBI2_WRITE16D(DISP_DATA_PORT,0x3f);

	/* Charge Sharing control*/
	EBI2_WRITE16C(DISP_CMD_PORT, 0xe8); // Charge Sharing Control
	EBI2_WRITE16D(DISP_DATA_PORT,0x84);
	EBI2_WRITE16D(DISP_DATA_PORT,0x1a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x68);

	/* Exit Sleep - This command should be only used at Power on sequence*/
	EBI2_WRITE16C(DISP_CMD_PORT,0x11); // Exit Sleep

	msleep(120);

/* LGE_CHANGE_S: E0 [email protected] [2011-11-22] : BL control error fix */
#if 1
	EBI2_WRITE16C(DISP_CMD_PORT,0x2c); // Write memory start
	for(y = 0; y < 320; y++) {
		int pixel = 0x0;
		for(x= 0; x < 240; x++) {
			EBI2_WRITE16D(DISP_DATA_PORT,pixel);
		}
	}
	msleep(30);
#endif
/* LGE_CHANGE_E: E0 [email protected] [2011-11-22] : BL control error fix */
		   

	EBI2_WRITE16C(DISP_CMD_PORT,0x29); // Display On
#else
		EBI2_WRITE16C(DISP_CMD_PORT, 0xc0);
		EBI2_WRITE16D(DISP_DATA_PORT,0x1D); // 1
	
		EBI2_WRITE16C(DISP_CMD_PORT, 0xc1);
		EBI2_WRITE16D(DISP_DATA_PORT,0x11); // 1
	
		EBI2_WRITE16C(DISP_CMD_PORT, 0xc5);
		EBI2_WRITE16D(DISP_DATA_PORT,0x33); // 1
		EBI2_WRITE16D(DISP_DATA_PORT,0x34); // 2
	
		EBI2_WRITE16C(DISP_CMD_PORT, 0xcb);
		EBI2_WRITE16D(DISP_DATA_PORT,0x39); // 1
		EBI2_WRITE16D(DISP_DATA_PORT,0x2c); // 2
		EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 3
		EBI2_WRITE16D(DISP_DATA_PORT,0x34); // 4
		EBI2_WRITE16D(DISP_DATA_PORT,0x02); // 5
	
		EBI2_WRITE16C(DISP_CMD_PORT, 0xcf);
		EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
		EBI2_WRITE16D(DISP_DATA_PORT,0x83); // 2
		EBI2_WRITE16D(DISP_DATA_PORT,0x30); // 3
	
		EBI2_WRITE16C(DISP_CMD_PORT, 0xe8);
		EBI2_WRITE16D(DISP_DATA_PORT,0x85); // 1
		EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 2
		EBI2_WRITE16D(DISP_DATA_PORT,0x78); // 2
	
		EBI2_WRITE16C(DISP_CMD_PORT, 0xea);
		EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
		EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
	
		/* Power on sequence control */
		EBI2_WRITE16C(DISP_CMD_PORT, 0xed);
		EBI2_WRITE16D(DISP_DATA_PORT,0x64); // 1
		EBI2_WRITE16D(DISP_DATA_PORT,0x03); // 2
		EBI2_WRITE16D(DISP_DATA_PORT,0x12); // 3
		EBI2_WRITE16D(DISP_DATA_PORT,0x81); // 4
	
		/* Pump ratio control */
		EBI2_WRITE16C(DISP_CMD_PORT, 0xf7);
		EBI2_WRITE16D(DISP_DATA_PORT,0x20); // 1
	
		/* Display mode setting */
		EBI2_WRITE16C(DISP_CMD_PORT, 0x13);
	
		/* Memory access control */
		EBI2_WRITE16C(DISP_CMD_PORT, 0x36);
		EBI2_WRITE16D(DISP_DATA_PORT,mactl); // 1
	
		EBI2_WRITE16C(DISP_CMD_PORT, 0x3a);
		EBI2_WRITE16D(DISP_DATA_PORT,0x05); // 1
	
		EBI2_WRITE16C(DISP_CMD_PORT, 0xb1);
		EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
		EBI2_WRITE16D(DISP_DATA_PORT,0x1A); // 2
	
		EBI2_WRITE16C(DISP_CMD_PORT, 0xb4);
		EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	
		EBI2_WRITE16C(DISP_CMD_PORT, 0xb5);
		EBI2_WRITE16D(DISP_DATA_PORT,0x02); // 1
		EBI2_WRITE16D(DISP_DATA_PORT,0x02); // 2
		EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 3
		EBI2_WRITE16D(DISP_DATA_PORT,0x14); // 4
	
		EBI2_WRITE16C(DISP_CMD_PORT, 0xb6);
		EBI2_WRITE16D(DISP_DATA_PORT,0x0a); // 1
		EBI2_WRITE16D(DISP_DATA_PORT,0x82); // 2
		EBI2_WRITE16D(DISP_DATA_PORT,0x27); // 3
		//EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 4
	
		EBI2_WRITE16C(DISP_CMD_PORT, 0x35);
		EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
	
		EBI2_WRITE16C(DISP_CMD_PORT, 0x44); // Tearing effect Control
		EBI2_WRITE16D(DISP_DATA_PORT,te_lines >> 8); // 1
		EBI2_WRITE16D(DISP_DATA_PORT,te_lines & 0xFF); // 2
	
		/* Positive Gamma Correction */
		EBI2_WRITE16C(DISP_CMD_PORT, 0xe0);
		EBI2_WRITE16D(DISP_DATA_PORT,0x0F); // 1
		EBI2_WRITE16D(DISP_DATA_PORT,0x2B); // 2
		EBI2_WRITE16D(DISP_DATA_PORT,0x2A); // 3
		EBI2_WRITE16D(DISP_DATA_PORT,0x0B); // 4
		EBI2_WRITE16D(DISP_DATA_PORT,0x11); // 5
		EBI2_WRITE16D(DISP_DATA_PORT,0x0B); // 6
		EBI2_WRITE16D(DISP_DATA_PORT,0x57); // 6
		EBI2_WRITE16D(DISP_DATA_PORT,0xF2); // 8
		EBI2_WRITE16D(DISP_DATA_PORT,0x45); // 9
		EBI2_WRITE16D(DISP_DATA_PORT,0x0A); // 10
		EBI2_WRITE16D(DISP_DATA_PORT,0x15); // 11
		EBI2_WRITE16D(DISP_DATA_PORT,0x05); // 12
		EBI2_WRITE16D(DISP_DATA_PORT,0x0B); // 13
		EBI2_WRITE16D(DISP_DATA_PORT,0x04); // 14
		EBI2_WRITE16D(DISP_DATA_PORT,0x04); // 15
	
		/* Negative Gamma Correction */
		EBI2_WRITE16C(DISP_CMD_PORT, 0xe1);
		EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
		EBI2_WRITE16D(DISP_DATA_PORT,0x18); // 2
		EBI2_WRITE16D(DISP_DATA_PORT,0x19); // 3
		EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 4
		EBI2_WRITE16D(DISP_DATA_PORT,0x0F); // 5
		EBI2_WRITE16D(DISP_DATA_PORT,0x04); // 6
		EBI2_WRITE16D(DISP_DATA_PORT,0x28); // 6
		EBI2_WRITE16D(DISP_DATA_PORT,0x81); // 8
		EBI2_WRITE16D(DISP_DATA_PORT,0x3D); // 9
		EBI2_WRITE16D(DISP_DATA_PORT,0x06); // 10
		EBI2_WRITE16D(DISP_DATA_PORT,0x0B); // 11
		EBI2_WRITE16D(DISP_DATA_PORT,0x0A); // 12
		EBI2_WRITE16D(DISP_DATA_PORT,0x32); // 13
		EBI2_WRITE16D(DISP_DATA_PORT,0x3A); // 14
		EBI2_WRITE16D(DISP_DATA_PORT,0x0f); // 15
	
		EBI2_WRITE16C(DISP_CMD_PORT,0x2a); // Set_column_address
		EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
		EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
		EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 3
		EBI2_WRITE16D(DISP_DATA_PORT,0xef); // 4
	
		EBI2_WRITE16C(DISP_CMD_PORT,0x2b); // Set_Page_address
		EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 1
		EBI2_WRITE16D(DISP_DATA_PORT,0x00); // 2
		EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 3
		EBI2_WRITE16D(DISP_DATA_PORT,0x3f); // 4
	
		EBI2_WRITE16C(DISP_CMD_PORT,0xe8); // Charge Sharing Control
		EBI2_WRITE16D(DISP_DATA_PORT,0x85); // 1
		EBI2_WRITE16D(DISP_DATA_PORT,0x01); // 2
		EBI2_WRITE16D(DISP_DATA_PORT,0x78); // 3
	
		EBI2_WRITE16C(DISP_CMD_PORT,0x11); // Exit Sleep
	
		mdelay(120);
	
	/*-- bootlogo is displayed at oemsbl
		EBI2_WRITE16C(DISP_CMD_PORT,0x2c); // Write memory start
		for(y = 0; y < 320; y++) {
			int pixel = 0x0;
			for(x= 0; x < 240; x++) {
				EBI2_WRITE16D(DISP_DATA_PORT,pixel); // 1
			}
		}
	
		mdelay(50);
	*/
		EBI2_WRITE16C(DISP_CMD_PORT,0x29); // Display On	
#endif
}
Esempio n. 16
0
static void do_AUO_init(struct platform_device *pdev)
{
	int x,y; 
	EBI2_WRITE16C(DISP_CMD_PORT,0x11); // Exit Sleep
	msleep(120);
	
	EBI2_WRITE16C(DISP_CMD_PORT, 0xb0);
	EBI2_WRITE16D(DISP_DATA_PORT,0x3f);
	EBI2_WRITE16D(DISP_DATA_PORT,0x3f);

	EBI2_WRITE16C(DISP_CMD_PORT, 0xb3);
	EBI2_WRITE16D(DISP_DATA_PORT,0x02);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x31);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	
	EBI2_WRITE16C(DISP_CMD_PORT, 0xb4);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	
	EBI2_WRITE16C(DISP_CMD_PORT, 0xc0);
	EBI2_WRITE16D(DISP_DATA_PORT,0x33);
	EBI2_WRITE16D(DISP_DATA_PORT,0x4f);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x10);
	EBI2_WRITE16D(DISP_DATA_PORT,0xa0);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x01);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	
	
	EBI2_WRITE16C(DISP_CMD_PORT, 0xc1);
	EBI2_WRITE16D(DISP_DATA_PORT,0x01);
	EBI2_WRITE16D(DISP_DATA_PORT,0x02);
	EBI2_WRITE16D(DISP_DATA_PORT,0x1a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x60);
	EBI2_WRITE16D(DISP_DATA_PORT,0x60);
	msleep(25);
	
	EBI2_WRITE16C(DISP_CMD_PORT, 0xc3);
	EBI2_WRITE16D(DISP_DATA_PORT,0x01);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x28);
	EBI2_WRITE16D(DISP_DATA_PORT,0x08);
	EBI2_WRITE16D(DISP_DATA_PORT,0x08);
	
	msleep(25);
	
	EBI2_WRITE16C(DISP_CMD_PORT, 0xc4);
	EBI2_WRITE16D(DISP_DATA_PORT,0x11);
	EBI2_WRITE16D(DISP_DATA_PORT,0x01);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	
	 //Gamma B
	 EBI2_WRITE16C(DISP_CMD_PORT, 0xc8);				//1
	 EBI2_WRITE16D(DISP_DATA_PORT,0x07);						   //2
	 EBI2_WRITE16D(DISP_DATA_PORT,0x19);						   //3
	 EBI2_WRITE16D(DISP_DATA_PORT,0x18);						   //4
	 EBI2_WRITE16D(DISP_DATA_PORT,0x14);						   //5
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0c);						   //6
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0b);						   //7
	 EBI2_WRITE16D(DISP_DATA_PORT,0x04);						   //8
	 EBI2_WRITE16D(DISP_DATA_PORT,0x03);						   //9
	 EBI2_WRITE16D(DISP_DATA_PORT,0x09);						   //10
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0c);						   //11
	 EBI2_WRITE16D(DISP_DATA_PORT,0x00);						   //12
	 EBI2_WRITE16D(DISP_DATA_PORT,0x09);						   //13
	 EBI2_WRITE16D(DISP_DATA_PORT,0x03);						   //14
	 EBI2_WRITE16D(DISP_DATA_PORT,0x04);						   //15
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0b);						   //16
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0c);						   //17
	 EBI2_WRITE16D(DISP_DATA_PORT,0x14);						   //18
	 EBI2_WRITE16D(DISP_DATA_PORT,0x18);						   //19
	 EBI2_WRITE16D(DISP_DATA_PORT,0x19);						   //20
	 EBI2_WRITE16D(DISP_DATA_PORT,0x07);						   //21
	 EBI2_WRITE16D(DISP_DATA_PORT,0x00);						   //22
	 EBI2_WRITE16D(DISP_DATA_PORT,0x00);						   //23
	 
//Gamma G
	 EBI2_WRITE16C(DISP_CMD_PORT, 0xc9);				//1 	  
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0b);				//2
	 EBI2_WRITE16D(DISP_DATA_PORT,0x1a);				//3
	 EBI2_WRITE16D(DISP_DATA_PORT,0x14);				//4
	 EBI2_WRITE16D(DISP_DATA_PORT,0x14);				//5
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0c);				//6
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0a);				//7
	 EBI2_WRITE16D(DISP_DATA_PORT,0x04);				//8
	 EBI2_WRITE16D(DISP_DATA_PORT,0x03);				//9
	 EBI2_WRITE16D(DISP_DATA_PORT,0x09);				//10
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0c);				//11
	 EBI2_WRITE16D(DISP_DATA_PORT,0x00);				//12
	 EBI2_WRITE16D(DISP_DATA_PORT,0x09);				//13
	 EBI2_WRITE16D(DISP_DATA_PORT,0x03);				//14
	 EBI2_WRITE16D(DISP_DATA_PORT,0x04);				//15
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0a);				//16
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0c);				//17
	 EBI2_WRITE16D(DISP_DATA_PORT,0x14);				//18
	 EBI2_WRITE16D(DISP_DATA_PORT,0x14);				//19
	 EBI2_WRITE16D(DISP_DATA_PORT,0x1a);				//20
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0b);				//21
	 EBI2_WRITE16D(DISP_DATA_PORT,0x00);				//22
	 EBI2_WRITE16D(DISP_DATA_PORT,0x00);				//23

	 //Gamma R
	 EBI2_WRITE16C(DISP_CMD_PORT, 0xca);  // 1
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0b);  // 2
	 EBI2_WRITE16D(DISP_DATA_PORT,0x1a);  // 3
	 EBI2_WRITE16D(DISP_DATA_PORT,0x14);  // 4
	 EBI2_WRITE16D(DISP_DATA_PORT,0x14);  // 5
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0c);  // 6
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0a);  // 7
	 EBI2_WRITE16D(DISP_DATA_PORT,0x04);  // 8
	 EBI2_WRITE16D(DISP_DATA_PORT,0x03);  // 9
	 EBI2_WRITE16D(DISP_DATA_PORT,0x09);  // 10
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0c);  // 11
	 EBI2_WRITE16D(DISP_DATA_PORT,0x00);  // 12
	 EBI2_WRITE16D(DISP_DATA_PORT,0x09);  // 13
	 EBI2_WRITE16D(DISP_DATA_PORT,0x03);  // 14
	 EBI2_WRITE16D(DISP_DATA_PORT,0x04);  // 15
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0a);  // 16
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0c);  // 17
	 EBI2_WRITE16D(DISP_DATA_PORT,0x14);  // 18
	 EBI2_WRITE16D(DISP_DATA_PORT,0x14);  // 19
	 EBI2_WRITE16D(DISP_DATA_PORT,0x1a);  // 20
	 EBI2_WRITE16D(DISP_DATA_PORT,0x0b);  // 21
	 EBI2_WRITE16D(DISP_DATA_PORT,0x00);  // 22
	 EBI2_WRITE16D(DISP_DATA_PORT,0x00);  // 23

	
	EBI2_WRITE16D(DISP_CMD_PORT ,0xd0);
	EBI2_WRITE16D(DISP_DATA_PORT,0x23);
	EBI2_WRITE16D(DISP_DATA_PORT,0x53);
	EBI2_WRITE16D(DISP_DATA_PORT,0x02);
	EBI2_WRITE16D(DISP_DATA_PORT,0x38);
	EBI2_WRITE16D(DISP_DATA_PORT,0x30);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);	
	
	EBI2_WRITE16C(DISP_CMD_PORT, 0xd2); 
	EBI2_WRITE16D(DISP_DATA_PORT,0x01);
	EBI2_WRITE16D(DISP_DATA_PORT,0x22);	
	
	EBI2_WRITE16C(DISP_CMD_PORT, 0x35);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);	
	
	/* Tearing effect Control Parameter */
	EBI2_WRITE16C(DISP_CMD_PORT, 0x44);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0xef);	
	
	EBI2_WRITE16C(DISP_CMD_PORT, 0x36);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	
	EBI2_WRITE16C(DISP_CMD_PORT, 0x3a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x55);
	
	EBI2_WRITE16C(DISP_CMD_PORT, 0x2a);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0xef);
	
	EBI2_WRITE16C(DISP_CMD_PORT, 0x2b);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x00);
	EBI2_WRITE16D(DISP_DATA_PORT,0x01);
	EBI2_WRITE16D(DISP_DATA_PORT,0x3f);
	
	//EBI2_WRITE16C(DISP_CMD_PORT,0x11); // Exit Sleep

	msleep(120);

/* LGE_CHANGE_S: E0 [email protected] [2011-11-22] : BL control error fix */
#if 1
	EBI2_WRITE16C(DISP_CMD_PORT,0x2c); // Write memory start
	for(y = 0; y < 320; y++) {
		int pixel = 0x0;
		for(x= 0; x < 240; x++) {
			EBI2_WRITE16D(DISP_DATA_PORT,pixel);
		}
	}
	msleep(30);

#endif	
	EBI2_WRITE16C(DISP_CMD_PORT,0x29); // Display On
}