예제 #1
0
static int is_ili9481_lcd(void)
{
    int i;
    unsigned short SBit,SBuffer,LcdCodeId[6];
    unsigned char BitCounter;

//	ILI9481_WriteReg(0xC6);
//	ILI9481_WriteData(0x00);
    ILI9481_WriteReg(0xB0);
    ILI9481_WriteData(0x00);

    SBuffer = 0xBF;
    gpio_direction_input(d_gpio_in);

    gpio_direction_output(cs_gpio, 0);	//Set_CS(0); //CLR CS
    udelay(20);
    //send command
    for(BitCounter=0; BitCounter<9; BitCounter++)
    {
        SBit = SBuffer&0x100;
        if(SBit)
            gpio_direction_output(d_gpio, 1);//Set_SDA(1);
        else
            gpio_direction_output(d_gpio, 0);//Set_SDA(0);

        udelay(20);
        gpio_direction_output(clk_gpio, 0);//Set_SCK(0); //CLR SCL
        udelay(20);
        gpio_direction_output(clk_gpio, 1);//Set_SCK(1); //SET SCL
        udelay(20);
        SBuffer = SBuffer<<1;
    }

    //read ili9481 LcdCodeId
    for(i = 0; i < 6; i++)
    {
        LcdCodeId[i] = 0;
        for(BitCounter = 0; BitCounter < 8; BitCounter++)
        {
            gpio_direction_output(clk_gpio, 0);//Set_SCK(0); //CLR SCL
            udelay(20);
            SBit = gpio_get_value(d_gpio_in);
            gpio_direction_output(clk_gpio, 1);//Set_SCK(1); //SET SCL
            udelay(20);
            if(0 != SBit)
            {
                LcdCodeId[i] |= (1 << (7 - BitCounter));
            }
        }
        printk(KERN_INFO "+++++++++lcd_code is 0x%x %d\n", LcdCodeId[i], LcdCodeId[i]);
    }

    gpio_direction_output(cs_gpio, 1);//Set_CS(1); //SET CS

//       ILI9481_WriteReg(0xC6);
//	ILI9481_WriteData(0x9a);

    if((LcdCodeId[2] == 0x4a && LcdCodeId[3] == 0x40) || (LcdCodeId[3] == 0x94 && LcdCodeId[4] == 0x81))
    {
        return 1;
    }
    else if((LcdCodeId[2] == 0x22) && (LcdCodeId[3] == 0x15))
    {
        return 0;
    }

    return 1;
}
예제 #2
0
static void lcdc_ili_init(void)
{
	gpio_direction_output(himax_reset, 1);
	msleep(5);
	gpio_direction_output(himax_reset, 0);
	msleep(10);
	gpio_direction_output(himax_reset, 1);
	msleep(20);

	gpio_direction_output(spi_cs, 1);
	gpio_direction_output(spi_sdo, 1);
	gpio_direction_output(spi_sclk, 1);
	msleep(20);
#if 1
	ILI9481_WriteReg(0xE9);
	ILI9481_WriteData(0x20);
	ILI9481_WriteReg(0x11);//EXIT Sleep
	msleep(100);
	
	ILI9481_WriteReg(0xD1);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x68);//SET VCOMH
	ILI9481_WriteData(0x1a);//SET VCOM
	
	ILI9481_WriteReg(0xD0);
	ILI9481_WriteData(0x07);
	ILI9481_WriteData(0x01);
	ILI9481_WriteData(0x8b);

	ILI9481_WriteReg(0x36);
	ILI9481_WriteData(0x48);

	ILI9481_WriteReg(0x3A);
	ILI9481_WriteData(0x66);//0x66, CPU18,0x55 CPU16

	ILI9481_WriteReg(0xC1);
	ILI9481_WriteData(0x10);//LINE INVERSION
	ILI9481_WriteData(0x10);
	ILI9481_WriteData(0x02);
	ILI9481_WriteData(0x02);

	ILI9481_WriteReg(0xC0);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x35);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x01);
	ILI9481_WriteData(0x02);

    ILI9481_WriteReg(0xC5);//Set frame rate
	ILI9481_WriteData(0x02);//72Hz
	
	ILI9481_WriteReg(0xC6);
	ILI9481_WriteData(0x9B);///5B

	ILI9481_WriteReg(0xD2);
	ILI9481_WriteData(0x01);
	ILI9481_WriteData(0x22);

	ILI9481_WriteReg(0xC8);//Gamma setting
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x47);
	ILI9481_WriteData(0x33);
	ILI9481_WriteData(0x10);
	ILI9481_WriteData(0x0C);
	ILI9481_WriteData(0x06);
    ILI9481_WriteData(0x44);
	ILI9481_WriteData(0x03);
	ILI9481_WriteData(0x77);
	ILI9481_WriteData(0x21);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x10);
	ILI9481_WriteData(0x08);
	ILI9481_WriteData(0x80);
	ILI9481_WriteData(0x00);

	ILI9481_WriteReg(0xB4);
	ILI9481_WriteData(0x11);
	
    ILI9481_WriteReg(0x29);//display on
    ILI9481_WriteReg(0x2C);	
	#endif 
	
#if 0
	ILI9481_WriteReg(0xE9);
	ILI9481_WriteData(0x20);
	ILI9481_WriteReg(0x11);//EXIT Sleep
	msleep(100);
	
	ILI9481_WriteReg(0xD1);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x71);//SET VCOMH
	ILI9481_WriteData(0x19);//SET VCOM
	
	ILI9481_WriteReg(0xD0);
	ILI9481_WriteData(0x07);
	ILI9481_WriteData(0x01);
	ILI9481_WriteData(0x08);

	ILI9481_WriteReg(0x36);
	ILI9481_WriteData(0x48);

	ILI9481_WriteReg(0x3A);
	ILI9481_WriteData(0x66);//0x66, CPU18,0x55 CPU16

	ILI9481_WriteReg(0xC1);
	ILI9481_WriteData(0x10);//LINE INVERSION
	ILI9481_WriteData(0x10);
	ILI9481_WriteData(0x02);
	ILI9481_WriteData(0x02);

	ILI9481_WriteReg(0xC0);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x35);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x01);
	ILI9481_WriteData(0x02);

    ILI9481_WriteReg(0xC5);//Set frame rate
	ILI9481_WriteData(0x04);//72Hz
	
	ILI9481_WriteReg(0xC6);
	ILI9481_WriteData(0x9B);///5B

	ILI9481_WriteReg(0xD2);
	ILI9481_WriteData(0x01);
	ILI9481_WriteData(0x44);

	ILI9481_WriteReg(0xC8);//Gamma setting
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x47);
	ILI9481_WriteData(0x33);
	ILI9481_WriteData(0x09);
	ILI9481_WriteData(0x0C);
	ILI9481_WriteData(0x06);
    ILI9481_WriteData(0x44);
	ILI9481_WriteData(0x03);
	ILI9481_WriteData(0x77);
	ILI9481_WriteData(0x50);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x10);
	ILI9481_WriteData(0x08);
	ILI9481_WriteData(0x80);
	ILI9481_WriteData(0x00);

	ILI9481_WriteReg(0xB4);
	ILI9481_WriteData(0x11);
	
    ILI9481_WriteReg(0x29);//display on
    ILI9481_WriteReg(0x2C);	
	#endif 
}
예제 #3
0
static void lcd_lead_init(void)
{
    //************* Start Initial Sequence **********//
    ILI9481_WriteReg( 0x11);
    mdelay(20);//Delay(10*20);

    //CPT+ILI9481
    ILI9481_WriteReg(0xC6);
    ILI9481_WriteData(0x9a);//ILI9481_WriteData(0x9B);///5B for lcd effect

    ILI9481_WriteReg(0xD0);
    ILI9481_WriteData(0x07);
    ILI9481_WriteData(0x41);//ILI9481_WriteData( 0x41);for lcd effect
    ILI9481_WriteData(0x1A);

    ILI9481_WriteReg(0xD1);
    ILI9481_WriteData(0x00);
    ILI9481_WriteData(0x0B);//10
    ILI9481_WriteData(0x11);

    ILI9481_WriteReg(0xD2);
    ILI9481_WriteData(0x01);
    ILI9481_WriteData(0x11);

    ILI9481_WriteReg(0xC0);
    ILI9481_WriteData(0x10);
    ILI9481_WriteData(0x3B);
    ILI9481_WriteData(0x00);
    ILI9481_WriteData(0x02);
    ILI9481_WriteData(0x11);

    ILI9481_WriteReg(0xC5);
    ILI9481_WriteData(0x02);//

    ILI9481_WriteReg(0xC8);
    ILI9481_WriteData(0x00);
    ILI9481_WriteData(0x66);
    ILI9481_WriteData(0x15);
    ILI9481_WriteData(0x24);
    ILI9481_WriteData(0x00);
    ILI9481_WriteData(0x08);
    ILI9481_WriteData(0x26);
    ILI9481_WriteData(0x11);
    ILI9481_WriteData(0x77);
    ILI9481_WriteData(0x42);
    ILI9481_WriteData(0x08);
    ILI9481_WriteData(0x00);

    ILI9481_WriteReg(0x36);
    ILI9481_WriteData(0xDA);//ILI9481_WriteData( 0x0A);rotated for u810 lcd screen
    ILI9481_WriteReg(0x3A);
    ILI9481_WriteData(0x66);
    ILI9481_WriteReg(0x0C);
    ILI9481_WriteData(0x66);
    ILI9481_WriteReg(0x2A);
    ILI9481_WriteData(0x00);
    ILI9481_WriteData(0x00);
    ILI9481_WriteData(0x01);
    ILI9481_WriteData(0x3F);
    ILI9481_WriteReg(0x2B);
    ILI9481_WriteData(0x00);
    ILI9481_WriteData(0x00);
    ILI9481_WriteData(0x01);
    ILI9481_WriteData(0xE0);
    mdelay(120);//Delay(10*120);
    ILI9481_WriteReg(0xB4);
    ILI9481_WriteData(0x10);

    ILI9481_WriteReg(0x29);
    ILI9481_WriteReg(0x2C);
}
static void lcdc_lead_init(void)
{
	//************* Start Initial Sequence **********//
	ILI9481_WriteReg(0x11);
	mdelay(20);//Delay(10*20);
	
	//CPT+ILI9481
	ILI9481_WriteReg(0xC6);
		ILI9481_WriteData(0x9B);///5B

	ILI9481_WriteReg(0xD0);
	ILI9481_WriteData(0x07);
	ILI9481_WriteData(0x41);
	ILI9481_WriteData(0x1A);
	
	ILI9481_WriteReg(0xD1);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x0B);//10
	ILI9481_WriteData(0x11);
	
	ILI9481_WriteReg(0xD2);
	ILI9481_WriteData(0x01);
	ILI9481_WriteData(0x11);
	
	ILI9481_WriteReg(0xC0);
	ILI9481_WriteData(0x10);
	ILI9481_WriteData(0x3B);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x02);
	ILI9481_WriteData(0x11);
	
	ILI9481_WriteReg(0xC5);
	ILI9481_WriteData(0x02);//3//
	
	ILI9481_WriteReg(0xC8);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x66);
	ILI9481_WriteData(0x15);
	ILI9481_WriteData(0x24);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x08);
	ILI9481_WriteData(0x26);
	ILI9481_WriteData(0x11);
	ILI9481_WriteData(0x77);
	ILI9481_WriteData(0x42);
	ILI9481_WriteData(0x08);
	ILI9481_WriteData(0x00);
	
	ILI9481_WriteReg(0x36);
	ILI9481_WriteData(0x09);   //0x0A
	ILI9481_WriteReg(0x3A);
	ILI9481_WriteData(0x66);
	ILI9481_WriteReg(0x0C);
	ILI9481_WriteData(0x66);
	ILI9481_WriteReg(0x2A);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x01);
	ILI9481_WriteData(0x3F);
	ILI9481_WriteReg(0x2B);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x00);
	ILI9481_WriteData(0x01);
	ILI9481_WriteData(0xE0);
	mdelay(120);//Delay(10*120);
	ILI9481_WriteReg(0xB4);
	ILI9481_WriteData(0x10);//ILI9481_WriteData(0x10);//

	ILI9481_WriteReg(0x29);
	ILI9481_WriteReg(0x2C);
}