示例#1
0
static void epsonQcif_disp_set_rect(int x, int y, int xres, int yres)
{
	if (!disp_initialized)
		return;

	DISP_SET_RECT(y, y + yres - 1, x, x + xres - 1);
	DISP_CMD_OUT(DISP_CMD_RAMWR);
}
示例#2
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 void kgm803a0_disp_set_rect(int x, int y, int xres, int yres)
{
	if (!disp_initialized)
		return;
    if((y + yres  <= QVGA_HEIGHT) &&( yres >= 0x04) && (x + xres <= QVGA_WIDTH))
    {
      	     DISP_SET_RECT(y, y + yres - 1, x, x + xres - 1);
    }
    DISP_CMD_OUT(0x0022);      
}
void tmd20qvga_disp_clear_screen_area
    (word start_row, word end_row, word start_column, word end_column) {
	int32 i;

	/* Clear the display screen */
	DISP_SET_RECT(start_row, end_row, start_column, end_column);
	DISP_CMD_OUT(DISP_CMD_RAMWR);
	i = (end_row - start_row + 1) * (end_column - start_column + 1);
	for (; i > 0; i--)
		DISP_DATA_OUT_16TO18BPP(0x0);
}
示例#5
0
static void epsonQcif_disp_clear_screen_area(
	word start_row, word end_row, word start_column, word end_column) {
	int32 i;

	/* Clear the display screen */
	DISP_SET_RECT(start_row, end_row, start_column, end_column);
	DISP_CMD_OUT(DISP_CMD_RAMWR);
	i = (end_row - start_row + 1) * (end_column - start_column + 1);
	for (; i > 0; i--)
		DISP_DATA_OUT(0xffff);
}
示例#6
0
static void epsonQcif_disp_init(struct platform_device *pdev)
{
	struct msm_fb_data_type *mfd;

	int i;

	if (disp_initialized)
		return;

	mfd = platform_get_drvdata(pdev);

	DISP_CMD_PORT = mfd->cmd_port;
	DISP_DATA_PORT = mfd->data_port;

	/* Sleep in */
	DISP_CMD_OUT(DISP_CMD_SLPIN);

	/* Display off */
	DISP_CMD_OUT(DISP_CMD_DISOFF);

	/* Display normal */
	DISP_CMD_OUT(DISP_CMD_DISNOR);

	/* Set data mode */
	DISP_CMD_OUT(DISP_CMD_DATCTL);
	DISP_DATA_OUT(DISP_DATCTL_565);

	/* Set display timing */
	DISP_CMD_OUT(DISP_CMD_DISCTL);
	DISP_DATA_OUT(0x1c);	/* p1 */
	DISP_DATA_OUT(0x02);	/* p1 */
	DISP_DATA_OUT(0x82);	/* p2 */
	DISP_DATA_OUT(0x00);	/* p3 */
	DISP_DATA_OUT(0x00);	/* p4 */
	DISP_DATA_OUT(0xe0);	/* p5 */
	DISP_DATA_OUT(0x00);	/* p5 */
	DISP_DATA_OUT(0xdc);	/* p6 */
	DISP_DATA_OUT(0x00);	/* p6 */
	DISP_DATA_OUT(0x02);	/* p7 */
	DISP_DATA_OUT(0x00);	/* p8 */

	/* Set 64 gray scale level */
	DISP_CMD_OUT(DISP_CMD_GCP64);
	DISP_DATA_OUT(0x08);	/* p01 */
	DISP_DATA_OUT(0x00);
	DISP_DATA_OUT(0x2a);	/* p02 */
	DISP_DATA_OUT(0x00);
	DISP_DATA_OUT(0x4e);	/* p03 */
	DISP_DATA_OUT(0x00);
	DISP_DATA_OUT(0x6b);	/* p04 */
	DISP_DATA_OUT(0x00);
	DISP_DATA_OUT(0x88);	/* p05 */
	DISP_DATA_OUT(0x00);
	DISP_DATA_OUT(0xa3);	/* p06 */
	DISP_DATA_OUT(0x00);
	DISP_DATA_OUT(0xba);	/* p07 */
	DISP_DATA_OUT(0x00);
	DISP_DATA_OUT(0xd1);	/* p08 */
	DISP_DATA_OUT(0x00);
	DISP_DATA_OUT(0xe5);	/* p09 */
	DISP_DATA_OUT(0x00);
	DISP_DATA_OUT(0xf3);	/* p10 */
	DISP_DATA_OUT(0x00);
	DISP_DATA_OUT(0x03);	/* p11 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0x13);	/* p12 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0x22);	/* p13 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0x2f);	/* p14 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0x3b);	/* p15 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0x46);	/* p16 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0x51);	/* p17 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0x5b);	/* p18 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0x64);	/* p19 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0x6c);	/* p20 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0x74);	/* p21 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0x7c);	/* p22 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0x83);	/* p23 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0x8a);	/* p24 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0x91);	/* p25 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0x98);	/* p26 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0x9f);	/* p27 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xa6);	/* p28 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xac);	/* p29 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xb2);	/* p30 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xb7);	/* p31 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xbc);	/* p32 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xc1);	/* p33 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xc6);	/* p34 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xcb);	/* p35 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xd0);	/* p36 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xd4);	/* p37 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xd8);	/* p38 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xdc);	/* p39 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xe0);	/* p40 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xe4);	/* p41 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xe8);	/* p42 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xec);	/* p43 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xf0);	/* p44 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xf4);	/* p45 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xf8);	/* p46 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xfb);	/* p47 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xfe);	/* p48 */
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0x01);	/* p49 */
	DISP_DATA_OUT(0x02);
	DISP_DATA_OUT(0x03);	/* p50 */
	DISP_DATA_OUT(0x02);
	DISP_DATA_OUT(0x05);	/* p51 */
	DISP_DATA_OUT(0x02);
	DISP_DATA_OUT(0x07);	/* p52 */
	DISP_DATA_OUT(0x02);
	DISP_DATA_OUT(0x09);	/* p53 */
	DISP_DATA_OUT(0x02);
	DISP_DATA_OUT(0x0b);	/* p54 */
	DISP_DATA_OUT(0x02);
	DISP_DATA_OUT(0x0d);	/* p55 */
	DISP_DATA_OUT(0x02);
	DISP_DATA_OUT(0x0f);	/* p56 */
	DISP_DATA_OUT(0x02);
	DISP_DATA_OUT(0x11);	/* p57 */
	DISP_DATA_OUT(0x02);
	DISP_DATA_OUT(0x13);	/* p58 */
	DISP_DATA_OUT(0x02);
	DISP_DATA_OUT(0x15);	/* p59 */
	DISP_DATA_OUT(0x02);
	DISP_DATA_OUT(0x17);	/* p60 */
	DISP_DATA_OUT(0x02);
	DISP_DATA_OUT(0x19);	/* p61 */
	DISP_DATA_OUT(0x02);
	DISP_DATA_OUT(0x1b);	/* p62 */
	DISP_DATA_OUT(0x02);
	DISP_DATA_OUT(0x1c);	/* p63 */
	DISP_DATA_OUT(0x02);

	/* Set 16 gray scale level */
	DISP_CMD_OUT(DISP_CMD_GCP16);
	DISP_DATA_OUT(0x1a);	/* p01 */
	DISP_DATA_OUT(0x32);	/* p02 */
	DISP_DATA_OUT(0x42);	/* p03 */
	DISP_DATA_OUT(0x4c);	/* p04 */
	DISP_DATA_OUT(0x58);	/* p05 */
	DISP_DATA_OUT(0x5f);	/* p06 */
	DISP_DATA_OUT(0x66);	/* p07 */
	DISP_DATA_OUT(0x6b);	/* p08 */
	DISP_DATA_OUT(0x70);	/* p09 */
	DISP_DATA_OUT(0x74);	/* p10 */
	DISP_DATA_OUT(0x78);	/* p11 */
	DISP_DATA_OUT(0x7b);	/* p12 */
	DISP_DATA_OUT(0x7e);	/* p13 */
	DISP_DATA_OUT(0x80);	/* p14 */
	DISP_DATA_OUT(0x82);	/* p15 */

	/* Set DSP column */
	DISP_CMD_OUT(DISP_CMD_MD_CSET);
	DISP_DATA_OUT(0xff);
	DISP_DATA_OUT(0x03);
	DISP_DATA_OUT(0xff);
	DISP_DATA_OUT(0x03);

	/* Set DSP page */
	DISP_CMD_OUT(DISP_CMD_MD_PSET);
	DISP_DATA_OUT(0xff);
	DISP_DATA_OUT(0x01);
	DISP_DATA_OUT(0xff);
	DISP_DATA_OUT(0x01);

	/* Set ARM column */
	DISP_CMD_OUT(DISP_CMD_SD_CSET);
	DISP_DATA_OUT(0x02);
	DISP_DATA_OUT(0x00);
	DISP_DATA_OUT((QCIF_WIDTH + 1) & 0xFF);
	DISP_DATA_OUT((QCIF_WIDTH + 1) >> 8);

	/* Set ARM page */
	DISP_CMD_OUT(DISP_CMD_SD_PSET);
	DISP_DATA_OUT(0x00);
	DISP_DATA_OUT(0x00);
	DISP_DATA_OUT((QCIF_HEIGHT - 1) & 0xFF);
	DISP_DATA_OUT((QCIF_HEIGHT - 1) >> 8);

	/* Set 64 gray scales */
	DISP_CMD_OUT(DISP_CMD_GSSET);
	DISP_DATA_OUT(DISP_GS_64);

	DISP_CMD_OUT(DISP_CMD_OSSEL);
	DISP_DATA_OUT(0);

	/* Sleep out */
	DISP_CMD_OUT(DISP_CMD_SLPOUT);

	WAIT_SEC(40000);

	/* Initialize power IC */
	DISP_CMD_OUT(DISP_CMD_VOLCTL);
	DISP_DATA_OUT(DISP_VOLCTL_TONE);

	WAIT_SEC(40000);

	/* Set electronic volume, d'xx */
	DISP_CMD_OUT(DISP_CMD_VOLCTL);
	DISP_DATA_OUT(DISP_DEFAULT_CONTRAST);	/* value from 0 to 127 */

	/* Initialize display data */
	DISP_SET_RECT(0, (QCIF_HEIGHT - 1), 0, (QCIF_WIDTH - 1));
	DISP_CMD_OUT(DISP_CMD_RAMWR);
	for (i = 0; i < QCIF_HEIGHT * QCIF_WIDTH; i++)
		DISP_DATA_OUT(0xffff);

	DISP_CMD_OUT(DISP_CMD_RAMRD);
	databack = DISP_DATA_IN();
	databack = DISP_DATA_IN();
	databack = DISP_DATA_IN();
	databack = DISP_DATA_IN();

	WAIT_SEC(80000);

	DISP_CMD_OUT(DISP_CMD_DISON);

	disp_area_start_row = 0;
	disp_area_end_row = QCIF_HEIGHT - 1;
	disp_powered_up = TRUE;
	disp_initialized = TRUE;
	epsonQcif_disp_set_display_area(0, QCIF_HEIGHT - 1);
	display_on = TRUE;
}