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; }
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 }
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); }