.vsync_front_porch = 8, .vsync_act_low = 1, .hsync_act_low = 1, .den_act_low = 0, }; /*----------------------------------------------------------------------------*/ #define LCM_CMD(_cmd, ...) \ { \ .cmd = _cmd, \ .data = (u8 []){__VA_ARGS__}, \ .len = sizeof((u8 []){__VA_ARGS__}) / sizeof(u8) \ } static struct spi_msg sharp_init_seq[] = { LCM_CMD(0x11), LCM_CMD(LCM_MDELAY, 110), LCM_CMD(0x29), }; static struct spi_msg sharp_uninit_seq[] = { LCM_CMD(0x28), LCM_CMD(0x10), }; static int lcm_sharp_write_seq(struct spi_msg *cmd_table, unsigned size) { int i; for (i = 0; i < size; i++) { if (cmd_table[i].cmd == LCM_MDELAY) { hr_msleep(cmd_table[i].data[0]); continue; }
#define LCM_CMD_END {-1, 0, 0} struct lcm_cmdII { u8 cmd; u8 *vals; unsigned len; }; #define LCM_CMD(_cmd, ...) \ { \ .cmd = _cmd, \ .data = (u8 []){__VA_ARGS__}, \ .len = sizeof((u8 []){__VA_ARGS__}) / sizeof(u8) \ } static struct spi_msg lcm_init_seq[] = { LCM_CMD(0xF8, 0x01, 0x27, 0x27, 0x07, 0x07, 0x54, 0x9F, 0x63, 0x86, 0x1A, 0x33, 0x0D, 0x00, 0x00), LCM_CMD(0xF2, 0x02, 0x03, 0x1C, 0x10, 0x10), LCM_CMD(0xF7, 0x00, 0x03, 0x01), LCM_CMD(0xF6, 0x00, 0x8C, 0x07), LCM_CMD(0xB3, 0x0C), LCM_CMD(0xB5, 0x2C, 0x12, 0x0C, 0x0A, 0x10, 0x0E, 0x17, 0x13, 0x1F, 0x1A, 0x2A, 0x24, 0x1F, 0x1B, 0x1A, 0x17, 0x2B, 0x26, 0x22, 0x20, 0x3A, 0x34, 0x30, 0x2C, 0x29, 0x26, 0x25, 0x23, 0x21, 0x20, 0x1E, 0x1E), LCM_CMD(0xB7, 0x2C, 0x12, 0x0C, 0x0A, 0x10, 0x0E, 0x17, 0x13, 0x1F, 0x1A, 0x2A, 0x24, 0x1F, 0x1B, 0x1A, 0x17, 0x2B, 0x26, 0x22, 0x20, 0x3A, 0x34, 0x30, 0x2C, 0x29, 0x26, 0x25, 0x23, 0x21, 0x20, 0x1E, 0x1E), LCM_CMD(0xB6, 0x00, 0x00, 0x11, 0x22, 0x33, 0x44, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66), LCM_CMD(0xB8, 0x00, 0x00, 0x11, 0x22, 0x33, 0x44, 0x44, 0x44, 0x55,
.hsync_act_low = 1, .den_act_low = 0, }; #endif /*----------------------------------------------------------------------------*/ #define LCM_CMD(_cmd, ...) \ { \ .cmd = _cmd, \ .data = (u8 []){__VA_ARGS__}, \ .len = sizeof((u8 []){__VA_ARGS__}) / sizeof(u8) \ } static struct spi_msg sharp565_init_seq[] = { LCM_CMD(0x11), LCM_CMD(LCM_MDELAY, 110), LCM_CMD(0xB9, 0xFF, 0x83, 0x63), LCM_CMD(0x3A, 0x50), LCM_CMD(0x29), }; static struct spi_msg sharp_init_seq[] = { LCM_CMD(0x11), LCM_CMD(LCM_MDELAY, 110), LCM_CMD(0xB9, 0xFF, 0x83, 0x63), LCM_CMD(0x3A, 0x70), LCM_CMD(0xC9, 0x0F, 0x3E, 0x02), }; static struct spi_msg sharp_gamma_seq[] = { LCM_CMD(0xB1, 0x78, 0x34, 0x07, 0x01, 0x02, 0x03, 0x0F, 0x00, 0x3A,
u8 cmd; unsigned delay; u8 *vals; unsigned len; }; #define LCM_CMD(_cmd, _delay, ...) \ { \ .cmd = _cmd, \ .delay = _delay, \ .vals = (u8 []){__VA_ARGS__}, \ .len = sizeof((u8 []){__VA_ARGS__}) / sizeof(u8) \ } static struct mddi_cmd renesas_init_cmd_table[] = { LCM_CMD(0xb0, 0, 0x04, 0x00, 0x00, 0x00), LCM_CMD(0x36, 0, 0x08, 0x00, 0x00, 0x00), LCM_CMD(0x3a, 0, 0x07, 0x00, 0x00, 0x00), LCM_CMD(0x35, 0, 0x00, 0x00, 0x00, 0x00), LCM_CMD(0xb8, 0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), LCM_CMD(0xc0, 0, 0x01, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), LCM_CMD(0xc1, 0, 0x07, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), LCM_CMD(0xc4, 0, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
power_fail: return ret; } extern int qspi_send_9bit(struct spi_msg *msg); #define LCM_CMD(_cmd, ...) \ { \ .cmd = _cmd, \ .data = (u8 []){__VA_ARGS__}, \ .len = sizeof((u8 []){__VA_ARGS__}) / sizeof(u8) \ } //2010-5-21 Rev May21-2(Wx, Wy)=(0.306, 0.315) Gamma = 2.2 static struct spi_msg SONY_TFT_INIT_TABLE[] = { //Change to level 2 LCM_CMD(0xF1, 0x5A, 0x5A), LCM_CMD(0xFA, 0x32, 0x3F, 0x3F, 0x29, 0x3E, 0x3C, 0x3D, 0x2C, 0x27, 0x3D, 0x2E, 0x31, 0x3A, 0x34, 0x36, 0x1A, 0x3F, 0x3F, 0x2E, 0x40, 0x3C, 0x3C, 0x2B, 0x25, 0x39, 0x25, 0x23, 0x2A, 0x20, 0x22, 0x00, 0x3F, 0x3F, 0x2F, 0x3E, 0x3C, 0x3C, 0x2A, 0x23, 0x35, 0x1E, 0x18, 0x1C, 0x0C, 0x0E), LCM_CMD(0xFB, 0x00, 0x0D, 0x09, 0x0C, 0x26, 0x2E, 0x31, 0x22, 0x19, 0x33, 0x22, 0x23, 0x21, 0x17, 0x00, 0x00, 0x25, 0x1D, 0x1F, 0x35, 0x3C, 0x3A, 0x26, 0x1B, 0x34, 0x23, 0x23, 0x1F, 0x12, 0x00, 0x00, 0x3F, 0x31, 0x33, 0x43, 0x48, 0x41, 0x2A, 0x1D, 0x35, 0x23, 0x23, 0x21, 0x10, 0x00), // F3h Power control LCM_CMD(0xF3, 0x00, 0x10, 0x25, 0x01, 0x2D, 0x2D, 0x24, 0x2D, 0x10, 0x10, 0x0A, 0x37), // F4h VCOM Control LCM_CMD(0xF4, 0x88, 0x20, 0x00, 0xAF, 0x64, 0x00, 0xAA, 0x64, 0x00, 0x00),