Initial commit: TXW82x FPV v2.7.0.7-42229 SDK + project sources
This commit is contained in:
657
sdk/lib/bus/spi/lcd/st7701s_mipi.c
Normal file
657
sdk/lib/bus/spi/lcd/st7701s_mipi.c
Normal file
@@ -0,0 +1,657 @@
|
||||
#include "lib/lcd/lcd.h"
|
||||
|
||||
#if LCD_ST7701S_MIPI_EN
|
||||
|
||||
|
||||
#define CMD(x) {LCD_CMD,x}
|
||||
#define DAT(x) {LCD_DAT,x}
|
||||
#define DLY(x) {DELAY_MS,x}
|
||||
#define END {LCD_TAB_END,LCD_TAB_END}
|
||||
|
||||
#define BOE397_IPS 1
|
||||
|
||||
|
||||
const uint8_t st7701s_register_init_tab[][2] = {
|
||||
#if BOE397_IPS
|
||||
CMD (0xFF),
|
||||
DAT (0x77),
|
||||
DAT (0x01),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x13),
|
||||
CMD (0xEF),
|
||||
DAT (0x08),
|
||||
CMD (0xFF),
|
||||
DAT (0x77),
|
||||
DAT (0x01),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x10),
|
||||
CMD (0xC0),
|
||||
DAT (0x63),
|
||||
DAT (0x00),
|
||||
CMD (0xC1),
|
||||
DAT (0x09),
|
||||
DAT (0x02),
|
||||
CMD (0xC2),
|
||||
DAT (0x07),
|
||||
DAT (0x02),
|
||||
CMD (0xCC),
|
||||
DAT (0x18),
|
||||
CMD (0xB0),
|
||||
DAT (0x00),
|
||||
DAT (0x12),
|
||||
DAT (0x19),
|
||||
DAT (0x0D),
|
||||
DAT (0x12),
|
||||
DAT (0x0A),
|
||||
DAT (0x07),
|
||||
DAT (0x0B),
|
||||
DAT (0x08),
|
||||
DAT (0x23),
|
||||
DAT (0x06),
|
||||
DAT (0x14),
|
||||
DAT (0x13),
|
||||
DAT (0x25),
|
||||
DAT (0x2B),
|
||||
DAT (0x1F),
|
||||
CMD (0xB1),
|
||||
DAT (0x00),
|
||||
DAT (0x0A),
|
||||
DAT (0x13),
|
||||
DAT (0x0D),
|
||||
DAT (0x10),
|
||||
DAT (0x03),
|
||||
DAT (0x04),
|
||||
DAT (0x07),
|
||||
DAT (0x09),
|
||||
DAT (0x1F),
|
||||
DAT (0x04),
|
||||
DAT (0x11),
|
||||
DAT (0x0E),
|
||||
DAT (0x23),
|
||||
DAT (0x2A),
|
||||
DAT (0x1F),
|
||||
CMD (0xFF),
|
||||
DAT (0x77),
|
||||
DAT (0x01),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x11),
|
||||
CMD (0xB0),
|
||||
DAT (0x4D),
|
||||
CMD (0xB1),
|
||||
DAT (0x55),
|
||||
CMD (0xB2),
|
||||
DAT (0x87),
|
||||
CMD (0xB3),
|
||||
DAT (0x80),
|
||||
CMD (0xB5),
|
||||
DAT (0x4F),
|
||||
CMD (0xB7),
|
||||
DAT (0x85),
|
||||
CMD (0xB8),
|
||||
DAT (0x23),
|
||||
CMD (0xB9),
|
||||
DAT (0x22),
|
||||
DAT (0x13),
|
||||
CMD (0xBB),
|
||||
DAT (0x03),
|
||||
CMD (0xBC),
|
||||
DAT (0x10),
|
||||
CMD (0xC0),
|
||||
DAT (0x89),
|
||||
CMD (0xC1),
|
||||
DAT (0x78),
|
||||
CMD (0xC2),
|
||||
DAT (0x78),
|
||||
CMD (0xEF),
|
||||
DAT (0x08),
|
||||
DAT (0x08),
|
||||
DAT (0x08),
|
||||
DAT (0x4C),
|
||||
DAT (0x3F),
|
||||
DAT (0x54),
|
||||
CMD (0xD0),
|
||||
DAT (0x88),
|
||||
CMD (0xE0),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x02),
|
||||
CMD (0xE1),
|
||||
DAT (0x04),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x05),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x10),
|
||||
DAT (0x10),
|
||||
CMD (0xE2),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
CMD (0xE3),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x33),
|
||||
DAT (0x00),
|
||||
CMD (0xE4),
|
||||
DAT (0x22),
|
||||
DAT (0x00),
|
||||
CMD (0xE5),
|
||||
DAT (0x03),
|
||||
DAT (0x34),
|
||||
DAT (0xAF),
|
||||
DAT (0xB3),
|
||||
DAT (0x05),
|
||||
DAT (0x34),
|
||||
DAT (0xAF),
|
||||
DAT (0xB3),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
CMD (0xE6),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x33),
|
||||
DAT (0x00),
|
||||
CMD (0xE7),
|
||||
DAT (0x22),
|
||||
DAT (0x00),
|
||||
CMD (0xE8),
|
||||
DAT (0x04),
|
||||
DAT (0x34),
|
||||
DAT (0xAF),
|
||||
DAT (0xB3),
|
||||
DAT (0x06),
|
||||
DAT (0x34),
|
||||
DAT (0xAF),
|
||||
DAT (0xB3),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
CMD (0xEB),
|
||||
DAT (0x02),
|
||||
DAT (0x00),
|
||||
DAT (0x40),
|
||||
DAT (0x40),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
CMD (0xEC),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
CMD (0xED),
|
||||
DAT (0xFA),
|
||||
DAT (0x45),
|
||||
DAT (0x0B),
|
||||
DAT (0xFF),
|
||||
DAT (0xFF),
|
||||
DAT (0xFF),
|
||||
DAT (0xFF),
|
||||
DAT (0xFF),
|
||||
DAT (0xFF),
|
||||
DAT (0xFF),
|
||||
DAT (0xFF),
|
||||
DAT (0xFF),
|
||||
DAT (0xFF),
|
||||
DAT (0xB0),
|
||||
DAT (0x54),
|
||||
DAT (0xAF),
|
||||
CMD (0xEF),
|
||||
DAT (0x08),
|
||||
DAT (0x08),
|
||||
DAT (0x08),
|
||||
DAT (0x45),
|
||||
DAT (0x3F),
|
||||
DAT (0x54),
|
||||
CMD (0xFF),
|
||||
DAT (0x77),
|
||||
DAT (0x01),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x13),
|
||||
CMD (0xE6),
|
||||
DAT (0x16),
|
||||
DAT (0x7c),
|
||||
CMD (0xe8),
|
||||
DAT (0x00),
|
||||
DAT (0x0E),
|
||||
CMD (0xFF),
|
||||
DAT (0x77),
|
||||
DAT (0x01),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
CMD (0x11),
|
||||
DLY (120),
|
||||
CMD (0xFF),
|
||||
DAT (0x77),
|
||||
DAT (0x01),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x13),
|
||||
CMD (0xe8),
|
||||
DAT (0x00),
|
||||
DAT (0x0C),
|
||||
DLY (10),
|
||||
CMD (0xe8),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
CMD (0xFF),
|
||||
DAT (0x77),
|
||||
DAT (0x01),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
DAT (0x00),
|
||||
CMD (0x35),
|
||||
DAT (0x00),
|
||||
|
||||
#if 0 //test pattern
|
||||
CMD(0xFF),
|
||||
DAT(0x77),
|
||||
DAT(0x01),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x12),
|
||||
|
||||
CMD(0xD1),
|
||||
DAT(0x81),
|
||||
|
||||
CMD(0xD2),
|
||||
DAT(0x06),
|
||||
#endif
|
||||
|
||||
CMD(0x36), // //U&D Y-DIR
|
||||
DAT(0x00), //rotate 0: 0x00 : rotate 180 :0x10
|
||||
|
||||
CMD(0x3A),
|
||||
DAT(0x77),
|
||||
|
||||
CMD (0x21),
|
||||
DLY(100),
|
||||
CMD (0x29),
|
||||
DLY(200),
|
||||
|
||||
#else
|
||||
|
||||
|
||||
CMD(0x01),
|
||||
DLY(120),
|
||||
|
||||
CMD(0x11),
|
||||
DLY(120),
|
||||
|
||||
//CMD(0xD3),
|
||||
//DAT(0x07),
|
||||
//DAT(0x00),
|
||||
|
||||
|
||||
CMD(0xFF),
|
||||
DAT(0x77),
|
||||
DAT(0x01),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x11),
|
||||
|
||||
CMD(0xD1),
|
||||
DAT(0x11),
|
||||
|
||||
CMD(0x55),
|
||||
DAT(0xb0), // 80 90 b0
|
||||
|
||||
|
||||
CMD(0xFF),
|
||||
DAT(0x77),
|
||||
DAT(0x01),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x10),
|
||||
|
||||
|
||||
CMD(0xC0),
|
||||
DAT(0x63),
|
||||
DAT(0x00),
|
||||
|
||||
CMD(0xC1),
|
||||
DAT(0x02), //vbp
|
||||
DAT(0x0A), //vfp
|
||||
|
||||
CMD(0xC2),
|
||||
DAT(0x37),
|
||||
DAT(0x08),
|
||||
|
||||
CMD(0xC3),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x08),
|
||||
|
||||
|
||||
CMD(0xC7),//x-dir
|
||||
DAT(0x04), // rotate 0 : 0x00 rotate 180 :0x04
|
||||
|
||||
CMD(0xCC),
|
||||
DAT(0x38),
|
||||
|
||||
CMD(0xB0),
|
||||
DAT(0x00),
|
||||
DAT(0x11),
|
||||
DAT(0x19),
|
||||
DAT(0x0C),
|
||||
DAT(0x10),
|
||||
DAT(0x06),
|
||||
DAT(0x07),
|
||||
DAT(0x0A),
|
||||
DAT(0x09),
|
||||
DAT(0x22),
|
||||
DAT(0x04),
|
||||
DAT(0x10),
|
||||
DAT(0x0E),
|
||||
DAT(0x28),
|
||||
DAT(0x30),
|
||||
DAT(0x1C),
|
||||
|
||||
CMD(0xB1),
|
||||
DAT(0x00),
|
||||
DAT(0x12),
|
||||
DAT(0x19),
|
||||
DAT(0x0D),
|
||||
DAT(0x10),
|
||||
DAT(0x04),
|
||||
DAT(0x06),
|
||||
DAT(0x07),
|
||||
DAT(0x08),
|
||||
DAT(0x23),
|
||||
DAT(0x04),
|
||||
DAT(0x12),
|
||||
DAT(0x11),
|
||||
DAT(0x28),
|
||||
DAT(0x30),
|
||||
DAT(0x1C),
|
||||
|
||||
|
||||
CMD(0xFF),
|
||||
DAT(0x77),
|
||||
DAT(0x01),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x11), // enable bk fun of command 2 BK1
|
||||
|
||||
|
||||
CMD(0xB0),
|
||||
DAT(0x4D),
|
||||
|
||||
CMD(0xB1),
|
||||
DAT(0x60), //0x56 0x4a 0x5b
|
||||
|
||||
|
||||
CMD(0xB2),
|
||||
DAT(0x07),
|
||||
CMD(0xB3),
|
||||
DAT(0x80),
|
||||
CMD(0xB5),
|
||||
DAT(0x47),
|
||||
CMD(0xB7),
|
||||
DAT(0x8A),
|
||||
CMD(0xB8),
|
||||
DAT(0x21),
|
||||
CMD(0xC1),
|
||||
DAT(0x78),
|
||||
|
||||
CMD(0xC2),
|
||||
DAT(0x78),
|
||||
CMD(0xD0),
|
||||
DAT(0x88),
|
||||
DLY(100),
|
||||
|
||||
|
||||
CMD(0xE0),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x02),
|
||||
|
||||
CMD(0xE1),
|
||||
DAT(0x01),
|
||||
DAT(0xA0),
|
||||
DAT(0x03),
|
||||
DAT(0xA0),
|
||||
DAT(0x02),
|
||||
DAT(0xA0),
|
||||
DAT(0x04),
|
||||
DAT(0xA0),
|
||||
DAT(0x00),
|
||||
DAT(0x44),
|
||||
DAT(0x44),
|
||||
|
||||
CMD(0xE2),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
|
||||
CMD(0xE3),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x33),
|
||||
DAT(0x33),
|
||||
|
||||
CMD(0xE4),
|
||||
DAT(0x44),
|
||||
DAT(0x44),
|
||||
|
||||
CMD(0xE5),
|
||||
DAT(0x01),
|
||||
DAT(0x26),
|
||||
DAT(0xA0),
|
||||
DAT(0xA0),
|
||||
DAT(0x03),
|
||||
DAT(0x28),
|
||||
DAT(0xA0),
|
||||
DAT(0xA0),
|
||||
DAT(0x05),
|
||||
DAT(0x2A),
|
||||
DAT(0xA0),
|
||||
DAT(0xA0),
|
||||
DAT(0x07),
|
||||
DAT(0x2C),
|
||||
DAT(0xA0),
|
||||
DAT(0xA0),
|
||||
|
||||
CMD(0xE6),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x33),
|
||||
DAT(0x33),
|
||||
|
||||
CMD(0xE7),
|
||||
DAT(0x44),
|
||||
DAT(0x44),
|
||||
|
||||
CMD(0xE8),
|
||||
DAT(0x02),
|
||||
DAT(0x26),
|
||||
DAT(0xA0),
|
||||
DAT(0xA0),
|
||||
DAT(0x04),
|
||||
DAT(0x28),
|
||||
DAT(0xA0),
|
||||
DAT(0xA0),
|
||||
DAT(0x06),
|
||||
DAT(0x2A),
|
||||
DAT(0xA0),
|
||||
DAT(0xA0),
|
||||
DAT(0x08),
|
||||
DAT(0x2C),
|
||||
DAT(0xA0),
|
||||
DAT(0xA0),
|
||||
|
||||
CMD(0xEB),
|
||||
DAT(0x00),
|
||||
DAT(0x01),
|
||||
DAT(0xE4),
|
||||
DAT(0xE4),
|
||||
DAT(0x44),
|
||||
DAT(0x00),
|
||||
DAT(0x40),
|
||||
|
||||
CMD(0xED),
|
||||
DAT(0xFF),
|
||||
DAT(0xF7),
|
||||
DAT(0x65),
|
||||
DAT(0x4F),
|
||||
DAT(0x0B),
|
||||
DAT(0xA1),
|
||||
DAT(0xCF),
|
||||
DAT(0xFF),
|
||||
DAT(0xFF),
|
||||
DAT(0xFC),
|
||||
DAT(0x1A),
|
||||
DAT(0xB0),
|
||||
DAT(0xF4),
|
||||
DAT(0x56),
|
||||
DAT(0x7F),
|
||||
DAT(0xFF),
|
||||
|
||||
|
||||
CMD(0xFF),
|
||||
DAT(0x77),
|
||||
DAT(0x01),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
|
||||
CMD(0x36), // //U&D Y-DIR
|
||||
DAT(0x10), //rotate 0: 0x00 : rotate 180 :0x10
|
||||
|
||||
CMD(0x3A),
|
||||
DAT(0x77),
|
||||
#if 0 //test pattern
|
||||
CMD(0xFF),
|
||||
DAT(0x77),
|
||||
DAT(0x01),
|
||||
DAT(0x00),
|
||||
DAT(0x00),
|
||||
DAT(0x12),
|
||||
|
||||
CMD(0xD1),
|
||||
DAT(0x81),
|
||||
|
||||
CMD(0xD2),
|
||||
DAT(0x06),
|
||||
#endif
|
||||
CMD(0x29),
|
||||
|
||||
// DLY(120),
|
||||
// CMD(0x23),
|
||||
// DLY(120),
|
||||
#endif
|
||||
END
|
||||
|
||||
};
|
||||
|
||||
|
||||
lcddev_t lcdstruct = {
|
||||
.name = "st7701s_mipi",
|
||||
.lcd_bus_type = LCD_BUS_MIPI,
|
||||
.bus_width = LCD_BUS_WIDTH_24,
|
||||
.color_mode = LCD_MODE_888,
|
||||
//.red_width = LCD_BUS_WIDTH_6,
|
||||
//.green_width = LCD_BUS_WIDTH_6,
|
||||
//.blue_width = LCD_BUS_WIDTH_6,
|
||||
.osd_scan_mode = LCD_ROTATE_270,
|
||||
.scan_mode =LCD_ROTATE_270,// LCD_ROTATE_90,//rotate 90
|
||||
.te_mode = 0xff,//te mode, 0xff:disable
|
||||
.colrarray = 0,//0:_RGB_ 1:_RBG_,2:_GBR_,3:_GRB_,4:_BRG_,5:_BGR_
|
||||
//f(wr) = source_clk/div/2
|
||||
//f(wr) >= screen_w * screen_h * clk_per_pixel * 60
|
||||
.pclk = DEFAULT_SYS_CLK/(DEFAULT_SYS_CLK/24000000),
|
||||
.even_order = 0,
|
||||
.odd_order = 0,
|
||||
.lcd_data_mode = (0<<31)|//data inversion mode
|
||||
(2<<24)|//data compress mode
|
||||
(1<<20)|//fifo mode
|
||||
(0<<17)|//output cycle 2 shift direction
|
||||
(0<<12)|//output cycle 2 shift bit
|
||||
(0<<11)|//output cycle 1 shift direction
|
||||
(0<<6)| //output cycle 1 shift bit
|
||||
(0<<5)| //output cycle 0 shift direction
|
||||
(8<<0), //output cycle 0 shift bit
|
||||
.screen_w = 480,
|
||||
.screen_h = 800,
|
||||
.video_x = 0,
|
||||
.video_y = 0,
|
||||
.video_w = 480,//480,
|
||||
.video_h = 800,//800,
|
||||
.osd_x = 0,
|
||||
.osd_y = 0,
|
||||
.osd_w = 480, // 0 : value will set to video_w , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
|
||||
.osd_h = 800, // 0 : value will set to video_h , use for 4:3 LCD +16:9 sensor show UPDOWN BLACK
|
||||
.init_table = st7701s_register_init_tab,
|
||||
.frame_table = NULL,
|
||||
.clk_per_pixel = 2,
|
||||
.lane_num = 2,
|
||||
.pclk_inv = 1,
|
||||
|
||||
.vlw = 2,
|
||||
.vbp = 2,
|
||||
.vfp = 10,
|
||||
|
||||
.hlw = 2,
|
||||
.hbp = 8,
|
||||
.hfp = 96,
|
||||
|
||||
|
||||
.de_inv = 0,
|
||||
.hs_inv = 0,
|
||||
.vs_inv = 0,
|
||||
|
||||
|
||||
.de_en = 1,
|
||||
.vs_en = 1,
|
||||
.hs_en = 1,
|
||||
|
||||
|
||||
.brightness = 1,
|
||||
.saturation = 7,
|
||||
.contrast = 7,
|
||||
.contra_index = 8,
|
||||
|
||||
.gamma_red = 3,
|
||||
.gamma_green=3,
|
||||
.gamma_blue=3,
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user