本文档以展锐平台SC9863A1为基础,屏幕以FT8057S为基础。

一、原理图

屏幕接口原理图
以上图纸主要关注:reset引脚对应的GPIO
偏压IC原理图
以上图纸关注:偏压IC型号、I2C接口、avdd&dvdd使用的GPIO口
背光IC原理图
以上图纸关注:IC型号、flash_en的GPIO、PWM控制是由GPIO还是由CABC

二、LCD信号要求

规格书要求
LCD信号要求参考《FT8057S_Data_Sheet_V0.1 .pdf》中的4.1节。
主要关注:avdd、avee、vddi的电压要求,芯片的mipi line数,以及其他特殊要求。

三、GPIO口配置

3.1使用工具配置初始化

LogicTools-pinmap_V1.2工具截图
使用以上工具设置GPIO,主要配置:gpio属性
根据以上原理图可知需要配置以下IO
AVDD:RFCTL16(GPIO7)
AVEE:U0CTS(GPIO62)
LCM_RESET:LCM_RSTN(GPIO50)
TP_RESET:EXTINT1(GPIO145) (TP的reset在incell屏幕中,会影响屏幕点亮,故也需要配置)
I2C4:SIMCLK2(SCL4),SIMDAT2(SDA4) :默认已经设置
FLASH_EN:GPIO32

{REG_PIN_U0CTS,                         BITS_PIN_AF(3)},
{REG_MISC_PIN_U0CTS,                    BITS_PIN_DS(1)|BIT_PIN_NULL|BIT_PIN_NUL|BIT_PIN_SLP_AP|BIT_PIN_SLP_WPD|BIT_PIN_SLP_OE},//LCM_AVEE
...
{REG_PIN_GPIO32,                        BITS_PIN_AF(3)},
{REG_MISC_PIN_GPIO32,                   BITS_PIN_DS(1)|BIT_PIN_NULL|BIT_PIN_NUL|BIT_PIN_SLP_AP|BIT_PIN_SLP_NUL|BIT_PIN_SLP_OE},//LCM_BL_EN
...
{REG_PIN_RFCTL16,                       BITS_PIN_AF(3)},
{REG_MISC_PIN_RFCTL16,                  BITS_PIN_DS(1)|BIT_PIN_NULL|BIT_PIN_NUL|BIT_PIN_SLP_AP|BIT_PIN_SLP_WPD|BIT_PIN_SLP_OE},//LCM_AVDD

3.2将IO口信息配置到代码中

该项目通过原理图识别为使用屏幕的CABC控制背光

修改以下文件:bsp\bootloader\lk\project\sp9863a_1h10.mk

	CONFIG_LCM_GPIO_RSTN=50 \
	CONFIG_LCM_GPIO_AVDDEN=7 \
	CONFIG_LCM_GPIO_AVEEEN=62 \
	CONFIG_LCM_GPIO_TP_RESET=145 \
	LCD_I2C_BUS_NUM=4 \
	LCD_I2C_SLAVER_ADDR=0X3E

修改以下文件:bsp\kernel5.15\kernel5.15\arch\arm64\boot\dts\sprd\sp9863a-1h10-overlay.dts

&dpu {
	//sprd,backlight = <&pwm_backlight>;
};
&panel {
	//sprd,backlight = <&pwm_backlight>;
	avdd-gpio = <&ap_gpio 7 GPIO_ACTIVE_HIGH>;
	avee-gpio = <&ap_gpio 62 GPIO_ACTIVE_HIGH>;
	reset-gpio = <&ap_gpio 50 GPIO_ACTIVE_HIGH>;
};

四、初始化时序

屏幕上电时序参考《FT8057S_Data_Sheet_V0.1 .pdf》中的4.2.1.4节
上电时序
根据以上信息我们可以修改init文件内的.power函数为

static int esky_ft8057s_vdo_hdp_boe_hy_power(int on)
{
	int i, ret = 0;
	u8 bias_config[7][2] = {{0x61, 0x2C}, {0x44, 0x96}, {0x61, 0x00},{0x00, 0x14},{0x01, 0x14},{0x03, 0x43},{0xff, 0x80}};

	if (on) {
		for (i = 0; i < sizeof(bias_config)/sizeof(bias_config[0]); i++) {
				ret = i2c_send(LCD_I2C_BUS_NUM, LCD_I2C_SLAVER_ADDR, (unsigned char *)bias_config[i], ARRAY_SIZE(bias_config[i]));
				if (ret < 0) {
					pr_err("config lcd i2c bias power failed\n");
					break;
				}
			}
		sprd_gpio_request(CONFIG_LCM_GPIO_RSTN);
		sprd_gpio_direction_output(CONFIG_LCM_GPIO_RSTN, 0);
#ifdef CONFIG_LCM_GPIO_TP_RESET
        sprd_gpio_request(CONFIG_LCM_GPIO_TP_RESET);
        sprd_gpio_direction_output(CONFIG_LCM_GPIO_TP_RESET, 1);
		mdelay(5);
#endif
#ifdef CONFIG_LCM_GPIO_AVDDEN
        sprd_gpio_request(CONFIG_LCM_GPIO_AVDDEN);
        sprd_gpio_direction_output(CONFIG_LCM_GPIO_AVDDEN, 1);
        mdelay(2);
#endif
#ifdef CONFIG_LCM_GPIO_AVEEEN
        sprd_gpio_request(CONFIG_LCM_GPIO_AVEEEN);
        sprd_gpio_direction_output(CONFIG_LCM_GPIO_AVEEEN, 1);
        mdelay(2);
#endif
		sprd_gpio_request(CONFIG_LCM_GPIO_RSTN);
		sprd_gpio_direction_output(CONFIG_LCM_GPIO_RSTN, 1);
		mdelay(5);
		sprd_gpio_direction_output(CONFIG_LCM_GPIO_RSTN, 0);
		mdelay(10);
		sprd_gpio_direction_output(CONFIG_LCM_GPIO_RSTN, 1);
		mdelay(20);
	pr_err("ft8057s power no\n");
	} else {
		sprd_gpio_direction_output(CONFIG_LCM_GPIO_RSTN, 0);
		mdelay(5);
	}
	return 0;
}

以上代码中,先使用I2C设置偏压IC的偏压电压,然后在将reset引脚设置为低电平,TPreset设置为高电平,设置avdd上电延时后设置avee上电,最后在设置reset高低高。

五、修改代码

5.1 设置mipi时序

在原厂给的代码中一般会给一个mipi的proch时序如下图,其中需要重点关注的信息有
VFP
VBP
HFP
HBP
HSYNC
VSYNC
line number(有的没有直接给出,需要向fae询问)
FAE推介时序

一般我们将上图给的推介时序填入《unisoc lcd(mipi) fps-phy_feq计算_c_v1.05.xlsm》文档中会生成一个适合芯片的时序如下:
推介的PROCH参数计算结果
从以上参数可以看出,计算的帧率不能满足60fps故我们需要将以上文档发给FAE或者直接与FAE沟通修改proch参数达到要求(点亮时可以先不要求proch参数)
60HZ的proch参数
将以上结果填入init文件
bsp\bootloader\lk\platform\sprd_shared\driver\video\sprd\lcd\lcd_ft8057s_ztd_mipi_hd.c

static struct panel_info lcd_ft8057s_mipi_hd_info = {
	/* common parameters */
	.lcd_name = "lcd_ft8057s_mipi_hd",
	.type = SPRD_PANEL_TYPE_MIPI,
	.bpp = 24,
//	.fps = 60,
	.width = 720,
	.height = 1612,

	/* DPI specific parameters */
	.pixel_clk = 96000000, /*Hz*/
	.rgb_timing = {
		.hfp = 26,
		.hbp = 14,
		.hsync = 4,
		.vfp = 445,
		.vbp = 28,
		.vsync = 6,
	},

	/* MIPI DSI specific parameters */
	.phy_freq = 691000,
	.lane_num = 4,
	.work_mode = SPRD_MIPI_MODE_VIDEO,
	.burst_mode = PANEL_VIDEO_BURST_MODE,
	.bl_type = BL_TYPE_MIPI,
	.bl_config_bit = 12,
	.nc_clk_en = false,
};

5.2 设置init code

在通常的mipi屏幕,都需要下init code,以初始化屏幕的各种参数,通常fae会给类似以下文件的参数

23 00 00 02 00 00
39 00 00 04 FF 80 57 01 

00 80
FF 80 57

00  00
2A  00  00  02  CF

00  00
2B  00  00  06  4B

00 A3
B3 06 4C 00 18
00 93
C5 75

00 97
C5 75

00 9A
C5 C1

00 9C
C5 41
00 B6
C5 61 61
00 B8
C5 37 37 
00 00 
D8 33 33
00 00
D9 00 F5
00 07
D9 00 F5 F5 F5
00 82 
C5 55
00 83 
C5 07
00 96
f5 0d
00 86
f5 0d
00 94
C5 25
00 9B
C5 51
00 A3
A5 04 
00 99  
CF 56 
00 86  
B7 80
00 A5  
B0 1D
00 90
FF 00
00 00
E1 0C 10 1A 26 2D 36 44 52 53 60 64 7B 86 70 6F 62
00 10
E1 59 4D 3D 33 2B 1D 13 12
00 00
E2 0C 0F 1A 26 2D 36 44 52 53 60 64 7B 86 70 6F 62
00 10
E2 59 4D 3D 33 2B 1D 13 12
00  80
C0  00  D2  00  2E  00  1C
00  90
C0  00  7F  00  2E  00  1C
00  A0
C0  00  D2  00  2E  00  1C
00  B0
C0  01  0F  00  2E  1C
00  C1
C0  01  33  01  0A  00  CD  01  8F
00  70
C0  00  7F  00  2E  00  1C
00  A3
C1  00  33  00  3C  00  02
00  B7
C1  00  33
00  73
CE  09  09
00  80
CE  01  81  09  09  00  78  00  96  00  78  00  96  00  78  00 96
00  90
CE  00  A5  16  8F  00  A5  80  09  09  00  07  D0  16  16  17
00  A0
CE  20  00  00
00  B0
CE  87  00  00
00  D1
CE  00  00  01  00  00  00  00
00  E1
CE  08  03  C3  03  C3  02  B0  00  00  00  00
00  F1
CE  14  14  1E  01  52  01  52  01  53
00  B0
CF  00  00  6D  71
00  B5
CF  03  03  5B  5F
00  C0
CF  06  06  47  4B
00  C5
CF  06  06  4B  4F
00  60
CF  00  00  6D  71  03  03  5B  5F
00  70
CF  00  00  65  69  03  03  53  57
00  AA
CF  80  80  1C  18
00  D1
C1  03  AA  05  22  09  59  05  87  08  23  0F  AC
00  E1
C1  05  22
00  E2
CF  06  DE  06  DD  06  DD  06  DD  06  DD  06  DD
00  80
C1  22  22
00  90
C1  02
00  F5
CF  00
00  F6
CF  5A
00  F1
CF  5A
00  F7
CF  71
00  00
1F  78 78
00  D1
CE  00  0A  01  01  00  A4  01
00  E8
CE  00  A4  00  A4
00 80
CC 26 26 1C 1C 26 26 1D 26 26 26 1D 07 09 0B 0D 0F
00 90
CC 11 25 05 03 00 00 00 00
00 80
CD 26 26 1C 1C 26 26 1D 26 26 26 1D 06 08 0A 0C 0E
00 90
CD 10 01 04 02 00 00 00 00
00 80
CB C1 C1 C1 C1 C1 C1 C1 C1 C1 C1 C1 C1 C1 C1 C1 C1
00 ED
CB C1
00 90
CB 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 EE
CB 00
00 90
C3 00
00 A0
CB 00 00 00 00 00 00 00 00
00 B0
CB 55 55 55 55
00 C0
CB 55 55 55 55
00 D2
CB 83 00 83 83 00 83 83 00 83 83 00
00 E0
CB 83 83 00 83 83 00 83 83 00 83 83 00 83
00 FA
CB 83 00
00 EF
CB 00
00 68
C2 8E 05 8E C4
00 6C
C2 8D 05 8E C4
00 70
C2 8C 05 8E C4
00 74
C2 8B 05 8E C4
00 8C
C2 8D 05 38 8E C4
00 91
C2 8C 06 38 8E C4
00 96
C2 8B 07 38 8E C4
00 9B
C2 8A 08 38 8E C4
00 A0
C2 89 09 38 8E C4
00 A5
C2 88 0A 38 8E C4
00 AA
C2 87 0B 38 8E C4
00 AF
C2 86 0C 38 8E C4
00 B4
C2 85 0D 38 8E C4
00 B9
C2 84 0E 38 8E C4
00 BE
C2 83 0F 38 8E C4
00 C3
C2 82 10 38 8E C4
00 dc
C2 bb bb bb bb bb bb 00 00
00 EA
C2 0B 00 0A 04 8E C4
00 60
C2 8B 00 09 03 8E C4
00 FC
CB 08 40
00 FB
C3 8F 14 8F 14
00 98
C4 08
00 91
E9 FF FF FF 00
00 85
C4 80
00 86
A4 B6
00 95
C4 80
00 CA
C0 90 11
00 B7
F5 1D
00 90
C3 00
00 B1
F5 11
00 B0 
C5 00
00 B3
C5 00
00 B2
C5 0D
00 B5
C5 02
00 C2
F5 42
00 80
CE 00
00 D0
CE 01
00 E0
CE 00
00 A1
C1 CC
00 A6
C1 10
00 71
C0 C7 01 2B 00 22
00 00
FF 00 00 00 
00 80
FF 00 00
00 86
C3 FF F0 00
00 81
A4 73

//----------------------LCD initial code End----------------------//
//SLPOUT and DISPON
11
delayms_pc(120
29
35 00
delayms_pc(300

以上文件需要转换为dsi_cmd_desc结构体形式(参考文档《103188__Kernel 5.15 LCD配置指导手册V1.4.pdf》)
LK阶段初始化代码格式
并将修改后的参数写入(static uint8_t init_data[])数组内,完整代码如下(由于init代码经过多次修改,故可能init代码可能有差异)

/*
 * Copyright (C) 2018 Spreadtrum Communications Inc.
 *
 * This software is licensed under the terms of the GNU General Public
 * License version 2, as published by the Free Software Foundation, and
 * may be copied, distributed, and modified under those terms.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */
#include <gpio.h>
#include "../sprd_panel.h"
#include "../sprd_dsi.h"
#include "../dsi/mipi_dsi_api.h"
#include "../sprd_dphy.h"
#include "gpio_plus.h"
#include <i2c.h>

#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))

static uint8_t init_data[] = {
0x23,0x00,0x00,0x02,0x00,0x00,
0x39,0x00,0x00,0x04,0xFF,0x80,0x57,0x01,
0x23,0x00,0x00,0x02,0x00,0x80,
0x39,0x00,0x00,0x03,0xFF,0x80,0x57,
0x23,0x00,0x00,0x02,0x00,0x00,
0x39,0x00,0x00,0x05,0x2A,0x00,0x00,0x02,0xCF,
0x23,0x00,0x00,0x02,0x00,0x00,
0x39,0x00,0x00,0x05,0x2B,0x00,0x00,0x06,0x4B,
0x23,0x00,0x00,0x02,0x00,0xA3,
0x39,0x00,0x00,0x05,0xB3,0x06,0x4C,0x00,0x18,
0x23,0x00,0x00,0x02,0x00,0x93,
0x23,0x00,0x00,0x02,0xC5,0x75,
0x23,0x00,0x00,0x02,0x00,0x97,
0x23,0x00,0x00,0x02,0xC5,0x75,
0x23,0x00,0x00,0x02,0x00,0x9A,
0x23,0x00,0x00,0x02,0xC5,0xC1,
0x23,0x00,0x00,0x02,0x00,0x9C,
0x23,0x00,0x00,0x02,0xC5,0x41,
0x23,0x00,0x00,0x02,0x00,0xB6,
0x39,0x00,0x00,0x03,0xC5,0x61,0x61,
0x23,0x00,0x00,0x02,0x00,0xB8,
0x39,0x00,0x00,0x03,0xC5,0x37,0x37,
0x23,0x00,0x00,0x02,0x00,0x00,
0x39,0x00,0x00,0x03,0xD8,0x33,0x33,
0x23,0x00,0x00,0x02,0x00,0x82,
0x23,0x00,0x00,0x02,0xC5,0x55,
0x23,0x00,0x00,0x02,0x00,0x83,
0x23,0x00,0x00,0x02,0xC5,0x07,
0x23,0x00,0x00,0x02,0x00,0x96,
0x23,0x00,0x00,0x02,0xf5,0x0d,
0x23,0x00,0x00,0x02,0x00,0x86,
0x23,0x00,0x00,0x02,0xf5,0x0d,
0x23,0x00,0x00,0x02,0x00,0x94,
0x23,0x00,0x00,0x02,0xC5,0x25,
0x23,0x00,0x00,0x02,0x00,0x9B,
0x23,0x00,0x00,0x02,0xC5,0x51,
0x23,0x00,0x00,0x02,0x00,0xA3,
0x23,0x00,0x00,0x02,0xA5,0x04,
0x23,0x00,0x00,0x02,0x00,0x99,
0x23,0x00,0x00,0x02,0xCF,0x56,
0x23,0x00,0x00,0x02,0x00,0x86,
0x23,0x00,0x00,0x02,0xB7,0x80,
0x23,0x00,0x00,0x02,0x00,0xA5,
0x23,0x00,0x00,0x02,0xB0,0x1D,
0x23,0x00,0x00,0x02,0x00,0x90,
0x23,0x00,0x00,0x02,0xFF,0x00,
0x23,0x00,0x00,0x02,0x00,0x00,
0x39,0x00,0x00,0x11,0xE1,0x0C,0x10,0x1A,0x26,0x2D,0x36,0x44,0x52,0x53,0x60,0x64,0x7B,0x86,0x70,0x6F,0x62,
0x23,0x00,0x00,0x02,0x00,0x10,
0x39,0x00,0x00,0x09,0xE1,0x59,0x4D,0x3D,0x33,0x2B,0x1D,0x13,0x12,
0x23,0x00,0x00,0x02,0x00,0x00,
0x39,0x00,0x00,0x11,0xE2,0x0C,0x0F,0x1A,0x26,0x2D,0x36,0x44,0x52,0x53,0x60,0x64,0x7B,0x86,0x70,0x6F,0x62,
0x23,0x00,0x00,0x02,0x00,0x10,
0x39,0x00,0x00,0x09,0xE2,0x59,0x4D,0x3D,0x33,0x2B,0x1D,0x13,0x12,
0x23,0x00,0x00,0x02,0x00,0x80,
0x39,0x00,0x00,0x07,0xC0,0x00,0xD2,0x00,0x2E,0x00,0x1C,
0x23,0x00,0x00,0x02,0x00,0x90,
0x39,0x00,0x00,0x07,0xC0,0x00,0x7F,0x00,0x2E,0x00,0x1C,
0x23,0x00,0x00,0x02,0x00,0xA0,
0x39,0x00,0x00,0x07,0xC0,0x00,0xD2,0x00,0x2E,0x00,0x1C,
0x23,0x00,0x00,0x02,0x00,0xB0,
0x39,0x00,0x00,0x06,0xC0,0x01,0x0F,0x00,0x2E,0x1C,
0x23,0x00,0x00,0x02,0x00,0xC1,
0x39,0x00,0x00,0x09,0xC0,0x01,0x33,0x01,0x0A,0x00,0xCD,0x01,0x8F,
0x23,0x00,0x00,0x02,0x00,0x70,
0x39,0x00,0x00,0x07,0xC0,0x00,0x7F,0x00,0x2E,0x00,0x1C,
0x23,0x00,0x00,0x02,0x00,0xA3,
0x39,0x00,0x00,0x07,0xC1,0x00,0x33,0x00,0x3C,0x00,0x02,
0x23,0x00,0x00,0x02,0x00,0xB7,
0x39,0x00,0x00,0x03,0xC1,0x00,0x33,
0x23,0x00,0x00,0x02,0x00,0x73,
0x39,0x00,0x00,0x03,0xCE,0x09,0x09,
0x23,0x00,0x00,0x02,0x00,0x80,
0x39,0x00,0x00,0x11,0xCE,0x01,0x81,0x09,0x09,0x00,0x78,0x00,0x96,0x00,0x78,0x00,0x96,0x00,0x78,0x00,0x96,
0x23,0x00,0x00,0x02,0x00,0x90,
0x39,0x00,0x00,0x10,0xCE,0x00,0xA5,0x16,0x8F,0x00,0xA5,0x80,0x09,0x09,0x00,0x07,0xD0,0x16,0x16,0x17,
0x23,0x00,0x00,0x02,0x00,0xA0,
0x39,0x00,0x00,0x04,0xCE,0x20,0x00,0x00,
0x23,0x00,0x00,0x02,0x00,0xB0,
0x39,0x00,0x00,0x04,0xCE,0x87,0x00,0x00,
0x23,0x00,0x00,0x02,0x00,0xD1,
0x39,0x00,0x00,0x08,0xCE,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x23,0x00,0x00,0x02,0x00,0xE1,
0x39,0x00,0x00,0x0C,0xCE,0x08,0x03,0xC3,0x03,0xC3,0x02,0xB0,0x00,0x00,0x00,0x00,
0x23,0x00,0x00,0x02,0x00,0xF1,
0x39,0x00,0x00,0x0A,0xCE,0x14,0x14,0x1E,0x01,0x52,0x01,0x52,0x01,0x53,
0x23,0x00,0x00,0x02,0x00,0xB0,
0x39,0x00,0x00,0x05,0xCF,0x00,0x00,0x6D,0x71,
0x23,0x00,0x00,0x02,0x00,0xB5,
0x39,0x00,0x00,0x05,0xCF,0x03,0x03,0x5B,0x5F,
0x23,0x00,0x00,0x02,0x00,0xC0,
0x39,0x00,0x00,0x05,0xCF,0x06,0x06,0x47,0x4B,
0x23,0x00,0x00,0x02,0x00,0xC5,
0x39,0x00,0x00,0x05,0xCF,0x06,0x06,0x4B,0x4F,
0x23,0x00,0x00,0x02,0x00,0x60,
0x39,0x00,0x00,0x09,0xCF,0x00,0x00,0x6D,0x71,0x03,0x03,0x5B,0x5F,
0x23,0x00,0x00,0x02,0x00,0x70,
0x39,0x00,0x00,0x09,0xCF,0x00,0x00,0x65,0x69,0x03,0x03,0x53,0x57,
0x23,0x00,0x00,0x02,0x00,0xAA,
0x39,0x00,0x00,0x05,0xCF,0x80,0x80,0x1C,0x18,
0x23,0x00,0x00,0x02,0x00,0xD1,
0x39,0x00,0x00,0x0D,0xC1,0x03,0xAA,0x05,0x22,0x09,0x59,0x05,0x87,0x08,0x23,0x0F,0xAC,
0x23,0x00,0x00,0x02,0x00,0xE1,
0x39,0x00,0x00,0x03,0xC1,0x05,0x22,
0x23,0x00,0x00,0x02,0x00,0xE2,
0x39,0x00,0x00,0x0D,0xCF,0x06,0xDE,0x06,0xDD,0x06,0xDD,0x06,0xDD,0x06,0xDD,0x06,0xDD,
0x23,0x00,0x00,0x02,0x00,0x80,
0x39,0x00,0x00,0x03,0xC1,0x22,0x22,
0x23,0x00,0x00,0x02,0x00,0x90,
0x23,0x00,0x00,0x02,0xC1,0x02,
0x23,0x00,0x00,0x02,0x00,0xF5,
0x23,0x00,0x00,0x02,0xCF,0x00,
0x23,0x00,0x00,0x02,0x00,0xF6,
0x23,0x00,0x00,0x02,0xCF,0x5A,
0x23,0x00,0x00,0x02,0x00,0xF1,
0x23,0x00,0x00,0x02,0xCF,0x5A,
0x23,0x00,0x00,0x02,0x00,0xF7,
0x23,0x00,0x00,0x02,0xCF,0x71,
0x23,0x00,0x00,0x02,0x00,0x00,
0x39,0x00,0x00,0x03,0x1f,0x3c,0x3c,
0x23,0x00,0x00,0x02,0x00,0xD1,
0x39,0x00,0x00,0x08,0xCE,0x00,0x0A,0x01,0x01,0x00,0xA4,0x01,
0x23,0x00,0x00,0x02,0x00,0xE8,
0x39,0x00,0x00,0x05,0xCE,0x00,0xA4,0x00,0xA4,
0x23,0x00,0x00,0x02,0x00,0x80,
0x39,0x00,0x00,0x11,0xCC,0x26,0x26,0x1C,0x1C,0x26,0x26,0x1D,0x26,0x26,0x26,0x1D,0x07,0x09,0x0B,0x0D,0x0F,
0x23,0x00,0x00,0x02,0x00,0x90,
0x39,0x00,0x00,0x09,0xCC,0x11,0x25,0x05,0x03,0x00,0x00,0x00,0x00,
0x23,0x00,0x00,0x02,0x00,0x80,
0x39,0x00,0x00,0x11,0xCD,0x26,0x26,0x1C,0x1C,0x26,0x26,0x1D,0x26,0x26,0x26,0x1D,0x06,0x08,0x0A,0x0C,0x0E,
0x23,0x00,0x00,0x02,0x00,0x90,
0x39,0x00,0x00,0x09,0xCD,0x10,0x01,0x04,0x02,0x00,0x00,0x00,0x00,
0x23,0x00,0x00,0x02,0x00,0x80,
0x39,0x00,0x00,0x11,0xCB,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,
0x23,0x00,0x00,0x02,0x00,0xED,
0x23,0x00,0x00,0x02,0xCB,0xC1,
0x23,0x00,0x00,0x02,0x00,0x90,
0x39,0x00,0x00,0x11,0xCB,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x23,0x00,0x00,0x02,0x00,0xEE,
0x23,0x00,0x00,0x02,0xCB,0x00,
0x23,0x00,0x00,0x02,0x00,0x90,
0x23,0x00,0x00,0x02,0xC3,0x00,
0x23,0x00,0x00,0x02,0x00,0xA0,
0x39,0x00,0x00,0x09,0xCB,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x23,0x00,0x00,0x02,0x00,0xB0,
0x39,0x00,0x00,0x05,0xCB,0x55,0x55,0x55,0x55,
0x23,0x00,0x00,0x02,0x00,0xC0,
0x39,0x00,0x00,0x05,0xCB,0x55,0x55,0x55,0x55,
0x23,0x00,0x00,0x02,0x00,0xD2,
0x39,0x00,0x00,0x0C,0xCB,0x83,0x00,0x83,0x83,0x00,0x83,0x83,0x00,0x83,0x83,0x00,
0x23,0x00,0x00,0x02,0x00,0xE0,
0x39,0x00,0x00,0x0E,0xCB,0x83,0x83,0x00,0x83,0x83,0x00,0x83,0x83,0x00,0x83,0x83,0x00,0x83,
0x23,0x00,0x00,0x02,0x00,0xFA,
0x39,0x00,0x00,0x03,0xCB,0x83,0x00,
0x23,0x00,0x00,0x02,0x00,0xEF,
0x23,0x00,0x00,0x02,0xCB,0x00,
0x23,0x00,0x00,0x02,0x00,0x68,
0x39,0x00,0x00,0x05,0xC2,0x8E,0x05,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0x6C,
0x39,0x00,0x00,0x05,0xC2,0x8D,0x05,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0x70,
0x39,0x00,0x00,0x05,0xC2,0x8C,0x05,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0x74,
0x39,0x00,0x00,0x05,0xC2,0x8B,0x05,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0x8C,
0x39,0x00,0x00,0x06,0xC2,0x8D,0x05,0x38,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0x91,
0x39,0x00,0x00,0x06,0xC2,0x8C,0x06,0x38,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0x96,
0x39,0x00,0x00,0x06,0xC2,0x8B,0x07,0x38,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0x9B,
0x39,0x00,0x00,0x06,0xC2,0x8A,0x08,0x38,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0xA0,
0x39,0x00,0x00,0x06,0xC2,0x89,0x09,0x38,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0xA5,
0x39,0x00,0x00,0x06,0xC2,0x88,0x0A,0x38,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0xAA,
0x39,0x00,0x00,0x06,0xC2,0x87,0x0B,0x38,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0xAF,
0x39,0x00,0x00,0x06,0xC2,0x86,0x0C,0x38,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0xB4,
0x39,0x00,0x00,0x06,0xC2,0x85,0x0D,0x38,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0xB9,
0x39,0x00,0x00,0x06,0xC2,0x84,0x0E,0x38,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0xBE,
0x39,0x00,0x00,0x06,0xC2,0x83,0x0F,0x38,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0xC3,
0x39,0x00,0x00,0x06,0xC2,0x82,0x10,0x38,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0xdc,
0x39,0x00,0x00,0x09,0xC2,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0x00,0x00,
0x23,0x00,0x00,0x02,0x00,0x86,
0x39,0x00,0x00,0x04,0xC3,0xFF,0xF0,0x00,
0x23,0x00,0x00,0x02,0x00,0xEA,
0x39,0x00,0x00,0x07,0xC2,0x0B,0x00,0x0A,0x04,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0x60,
0x39,0x00,0x00,0x07,0xC2,0x8B,0x00,0x09,0x03,0x8E,0xC4,
0x23,0x00,0x00,0x02,0x00,0xFC,
0x39,0x00,0x00,0x03,0xCB,0x08,0x40,
0x23,0x00,0x00,0x02,0x00,0xFB,
0x39,0x00,0x00,0x05,0xC3,0x8F,0x14,0x8F,0x14,
0x23,0x00,0x00,0x02,0x00,0x98,
0x23,0x00,0x00,0x02,0xC4,0x08,
0x23,0x00,0x00,0x02,0x00,0x91,
0x39,0x00,0x00,0x05,0xE9,0xFF,0xFF,0xFF,0x00,
0x23,0x00,0x00,0x02,0x00,0x85,
0x23,0x00,0x00,0x02,0xC4,0x80,
0x23,0x00,0x00,0x02,0x00,0x81,
0x23,0x00,0x00,0x02,0xA4,0x73,
0x23,0x00,0x00,0x02,0x00,0x86,
0x23,0x00,0x00,0x02,0xA4,0xB6,
0x23,0x00,0x00,0x02,0x00,0x95,
0x23,0x00,0x00,0x02,0xC4,0x80,
0x23,0x00,0x00,0x02,0x00,0xCA,
0x39,0x00,0x00,0x03,0xC0,0x90,0x11,
0x23,0x00,0x00,0x02,0x00,0xB7,
0x23,0x00,0x00,0x02,0xF5,0x1D,
0x23,0x00,0x00,0x02,0x00,0x90,
0x23,0x00,0x00,0x02,0xC3,0x00,
0x23,0x00,0x00,0x02,0x00,0xB1,
0x23,0x00,0x00,0x02,0xF5,0x11,
0x23,0x00,0x00,0x02,0x00,0xB0,
0x23,0x00,0x00,0x02,0xC5,0x00,
0x23,0x00,0x00,0x02,0x00,0xB3,
0x23,0x00,0x00,0x02,0xC5,0x00,
0x23,0x00,0x00,0x02,0x00,0xB2,
0x23,0x00,0x00,0x02,0xC5,0x0D,
0x23,0x00,0x00,0x02,0x00,0xB5,
0x23,0x00,0x00,0x02,0xC5,0x02,
0x23,0x00,0x00,0x02,0x00,0xC2,
0x23,0x00,0x00,0x02,0xF5,0x42,
0x23,0x00,0x00,0x02,0x00,0x80,
0x23,0x00,0x00,0x02,0xCE,0x00,
0x23,0x00,0x00,0x02,0x00,0xD0,
0x23,0x00,0x00,0x02,0xCE,0x01,
0x23,0x00,0x00,0x02,0x00,0xE0,
0x23,0x00,0x00,0x02,0xCE,0x00,
0x23,0x00,0x00,0x02,0x00,0xA1,
0x23,0x00,0x00,0x02,0xC1,0xCC,
0x23,0x00,0x00,0x02,0x00,0xA6,
0x23,0x00,0x00,0x02,0xC1,0x10,
0x23,0x00,0x00,0x02,0x00,0x71,
0x39,0x00,0x00,0x06,0xC0,0xC7,0x01,0x2B,0x00,0x22,
0x23,0x00,0x00,0x02,0x00,0x00,
0x39,0x00,0x00,0x04,0xFF,0x00,0x00,0x00,
0x23,0x00,0x00,0x02,0x00,0x80,
0x39,0x00,0x00,0x03,0xFF,0x00,0x00,
0x23,0x00,0x00,0x02,0x51,0x00,
0x23,0x00,0x00,0x02,0x53,0x24,
0x23,0x78,0x00,0x02,0x35,0x00,
0x23,0x78,0x00,0x02,0x11,0x00,
0x23,0x0A,0x00,0x02,0x29,0x00,
	CMD_END
};

static int mipi_dsi_send_cmds(struct sprd_dsi *dsi, void *data)
{
	uint16_t len;
	struct dsi_cmd_desc *cmds = data;

	if ((cmds == NULL) || (dsi == NULL))
		return -1;

	for (; cmds->data_type != CMD_END;) {
		len = (cmds->wc_h << 8) | cmds->wc_l;
		mipi_dsi_gen_write(dsi, cmds->payload, len);
		if (cmds->wait)
			msleep(cmds->wait);
		cmds = (struct dsi_cmd_desc *)(cmds->payload + len);
	}
	return 0;
}

static int lcd_ft8057s_mipi_hd_init(void)
{
	struct sprd_dsi *dsi = &dsi_device;
	struct sprd_dphy *dphy = &dphy_device;
pr_err("ft8057s init\n");
	mipi_dsi_lp_cmd_enable(dsi, true);
	mipi_dsi_send_cmds(dsi, init_data);
	mipi_dsi_set_work_mode(dsi, SPRD_MIPI_MODE_VIDEO);
	mipi_dsi_state_reset(dsi);
	mipi_dphy_hs_clk_en(dphy, true);

	return 0;
}

static int lcd_ft8057s_mipi_hd_readid(struct panel_info *info)
{
	struct sprd_dsi *dsi = &dsi_device;
	uint8_t read_buf[4] = {0};

	mipi_dsi_lp_cmd_enable(dsi, true);
	mipi_dsi_set_max_return_size(dsi, 1);
	mipi_dsi_dcs_read(dsi, 0xda, read_buf, 1);
	pr_err("ft8057s read id: 0x%x 0x%x\n",read_buf[0],read_buf[1]);
//修改VSP 0x00  VSN 0x01 为  5.8V
	if(read_buf[0] ==0x40 || read_buf[0] ==0x82)
	{
		return 0;
	}
	return -1;

}

static int esky_ft8057s_vdo_hdp_boe_hy_power(int on)
{
	int i, ret = 0;
	u8 bias_config[7][2] = {{0x61, 0x2C}, {0x44, 0x96}, {0x61, 0x00},{0x00, 0x14},{0x01, 0x14},{0x03, 0x43},{0xff, 0x80}};

	if (on) {
		for (i = 0; i < sizeof(bias_config)/sizeof(bias_config[0]); i++) {
				ret = i2c_send(LCD_I2C_BUS_NUM, LCD_I2C_SLAVER_ADDR, (unsigned char *)bias_config[i], ARRAY_SIZE(bias_config[i]));
				if (ret < 0) {
					pr_err("config lcd i2c bias power failed\n");
					break;
				}
			}
		sprd_gpio_request(CONFIG_LCM_GPIO_RSTN);
		sprd_gpio_direction_output(CONFIG_LCM_GPIO_RSTN, 0);
#ifdef CONFIG_LCM_GPIO_TP_RESET
        sprd_gpio_request(CONFIG_LCM_GPIO_TP_RESET);
        sprd_gpio_direction_output(CONFIG_LCM_GPIO_TP_RESET, 1);
		mdelay(5);
#endif
#ifdef CONFIG_LCM_GPIO_AVDDEN
        sprd_gpio_request(CONFIG_LCM_GPIO_AVDDEN);
        sprd_gpio_direction_output(CONFIG_LCM_GPIO_AVDDEN, 1);
        mdelay(2);
#endif
#ifdef CONFIG_LCM_GPIO_AVEEEN
        sprd_gpio_request(CONFIG_LCM_GPIO_AVEEEN);
        sprd_gpio_direction_output(CONFIG_LCM_GPIO_AVEEEN, 1);
        mdelay(2);
#endif
		sprd_gpio_request(CONFIG_LCM_GPIO_RSTN);
		sprd_gpio_direction_output(CONFIG_LCM_GPIO_RSTN, 1);
		mdelay(5);
		sprd_gpio_direction_output(CONFIG_LCM_GPIO_RSTN, 0);
		mdelay(10);
		sprd_gpio_direction_output(CONFIG_LCM_GPIO_RSTN, 1);
		mdelay(20);
	pr_err("ft8057s power no\n");
	} else {
		sprd_gpio_direction_output(CONFIG_LCM_GPIO_RSTN, 0);
		mdelay(5);
	}
	return 0;
}

static struct panel_ops lcd_ft8057s_mipi_hd_ops = {
	.init = lcd_ft8057s_mipi_hd_init,
	.read_id = lcd_ft8057s_mipi_hd_readid,
	.power = esky_ft8057s_vdo_hdp_boe_hy_power,
};

static struct panel_info lcd_ft8057s_mipi_hd_info = {
	/* common parameters */
	.lcd_name = "lcd_ft8057s_mipi_hd",
	.type = SPRD_PANEL_TYPE_MIPI,
	.bpp = 24,
//	.fps = 60,
	.width = 720,
	.height = 1612,

	/* DPI specific parameters */
	.pixel_clk = 96000000, /*Hz*/
	.rgb_timing = {
		.hfp = 26,
		.hbp = 14,
		.hsync = 4,
		.vfp = 445,
		.vbp = 28,
		.vsync = 6,
	},

	/* MIPI DSI specific parameters */
	.phy_freq = 691000,
	.lane_num = 4,
	.work_mode = SPRD_MIPI_MODE_VIDEO,
	.burst_mode = PANEL_VIDEO_BURST_MODE,
	.bl_type = BL_TYPE_MIPI,
	.bl_config_bit = 12,
	.nc_clk_en = false,
};

struct panel_driver ft8057s_mipi_hd_driver = {
	.info = &lcd_ft8057s_mipi_hd_info,
	.ops = &lcd_ft8057s_mipi_hd_ops,
};

其中要注意lcd_ft8057s_mipi_hd_info数组中的name一定要与kernel中对应
将以上代码对应修改到kernel代码内

/ {
	fragment {
		target-path = "/";
		__overlay__ {
 lcds {
	lcd_ft8057s_mipi_hd:lcd_ft8057s_mipi_hd{

		sprd,dsi-work-mode = <1>; /* video burst mode*/
		sprd,dsi-lane-number = <4>;
		sprd,dsi-color-format = "rgb888";

		sprd,phy-bit-clock = <691000>;
		sprd,phy-escape-clock = <20000>;/* kHz */

		sprd,width-mm = <68>;
		sprd,height-mm = <121>;

					sprd,esd-check-enable = <1>;
					sprd,esd-check-mode = <1>;
					sprd,esd-check-period = <2000>;

					sprd,reset-on-sequence = <1 5>, <0 5>, <1 20>;
					sprd,reset-off-sequence = <1 20>;

		sprd,initial-command = [
			23 00 00 02 00 00
			39 00 00 04 FF 80 57 01 
			23 00 00 02 00 80
			39 00 00 03 FF 80 57
			23 00 00 02 00 00
			39 00 00 05 2A 00 00 02 CF
			23 00 00 02 00 00
			39 00 00 05 2B 00 00 06 4B
			23 00 00 02 00 A3
			39 00 00 05 B3 06 4C 00 18
			23 00 00 02 00 93
			23 00 00 02 C5 75
			23 00 00 02 00 97
			23 00 00 02 C5 75
			23 00 00 02 00 9A
			23 00 00 02 C5 C1
			23 00 00 02 00 9C
			23 00 00 02 C5 41
			23 00 00 02 00 B6
			39 00 00 03 C5 61 61
			23 00 00 02 00 B8
			39 00 00 03 C5 37 37 
			23 00 00 02 00 00 
			39 00 00 03 D8 33 33
			//23 00 00 02 00 00
			//39 00 00 03 D9 00 F5
			//23 00 00 02 00 07
			//39 00 00 05 D9 00 F5 F5 F5
			23 00 00 02 00 82 
			23 00 00 02 C5 55
			23 00 00 02 00 83 
			23 00 00 02 C5 07
			23 00 00 02 00 96
			23 00 00 02 f5 0d
			23 00 00 02 00 86
			23 00 00 02 f5 0d
			23 00 00 02 00 94
			23 00 00 02 C5 25
			23 00 00 02 00 9B
			23 00 00 02 C5 51
			23 00 00 02 00 A3
			23 00 00 02 A5 04 
			23 00 00 02 00 99  
			23 00 00 02 CF 56 
			23 00 00 02 00 86  
			23 00 00 02 B7 80
			23 00 00 02 00 A5  
			23 00 00 02 B0 1D
			23 00 00 02 00 90
			23 00 00 02 FF 00
			23 00 00 02 00 00
			39 00 00 11 E1 0C 10 1A 26 2D 36 44 52 53 60 64 7B 86 70 6F 62
			23 00 00 02 00 10
			39 00 00 09 E1 59 4D 3D 33 2B 1D 13 12
			23 00 00 02 00 00
			39 00 00 11 E2 0C 0F 1A 26 2D 36 44 52 53 60 64 7B 86 70 6F 62
			23 00 00 02 00 10
			39 00 00 09 E2 59 4D 3D 33 2B 1D 13 12
			23 00 00 02 00 80
			39 00 00 07 C0 00 D2 00 2E 00 1C
			23 00 00 02 00 90
			39 00 00 07 C0 00 7F 00 2E 00 1C
			23 00 00 02 00 A0
			39 00 00 07 C0 00 D2 00 2E 00 1C
			23 00 00 02 00 B0
			39 00 00 06 C0 01 0F 00 2E 1C
			23 00 00 02 00 C1
			39 00 00 09 C0 01 33 01 0A 00 CD 01 8F
			23 00 00 02 00 70
			39 00 00 07 C0 00 7F 00 2E 00 1C
			23 00 00 02 00 A3
			39 00 00 07 C1 00 33 00 3C 00 02
			23 00 00 02 00 B7
			39 00 00 03 C1 00 33
			23 00 00 02 00 73
			39 00 00 03 CE 09 09
			23 00 00 02 00 80
			39 00 00 11 CE 01 81 09 09 00 78 00 96 00 78 00 96 00 78 00 96
			23 00 00 02 00 90
			39 00 00 10 CE 00 A5 16 8F 00 A5 80 09 09 00 07 D0 16 16 17
			23 00 00 02 00 A0
			39 00 00 04 CE 20 00 00
			23 00 00 02 00 B0
			39 00 00 04 CE 87 00 00
			23 00 00 02 00 D1
			39 00 00 08 CE 00 00 01 00 00 00 00
			23 00 00 02 00 E1
			39 00 00 0C CE 08 03 C3 03 C3 02 B0 00 00 00 00
			23 00 00 02 00 F1
			39 00 00 0A CE 14 14 1E 01 52 01 52 01 53
			23 00 00 02 00 B0
			39 00 00 05 CF 00 00 6D 71
			23 00 00 02 00 B5
			39 00 00 05 CF 03 03 5B 5F
			23 00 00 02 00 C0
			39 00 00 05 CF 06 06 47 4B
			23 00 00 02 00 C5
			39 00 00 05 CF 06 06 4B 4F
			23 00 00 02 00 60
			39 00 00 09 CF 00 00 6D 71 03 03 5B 5F
			23 00 00 02 00 70
			39 00 00 09 CF 00 00 65 69 03 03 53 57
			23 00 00 02 00 AA
			39 00 00 05 CF 80 80 1C 18
			23 00 00 02 00 D1
			39 00 00 0D C1 03 AA 05 22 09 59 05 87 08 23 0F AC
			23 00 00 02 00 E1
			39 00 00 03 C1 05 22
			23 00 00 02 00 E2
			39 00 00 0D CF 06 DE 06 DD 06 DD 06 DD 06 DD 06 DD
			23 00 00 02 00 80
			39 00 00 03 C1 22 22
			23 00 00 02 00 90
			23 00 00 02 C1 02
			23 00 00 02 00 F5
			23 00 00 02 CF 00
			23 00 00 02 00 F6
			23 00 00 02 CF 5A
			23 00 00 02 00 F1
			23 00 00 02 CF 5A
			23 00 00 02 00 F7
			23 00 00 02 CF 71
			23 00 00 02 00 00
			39 00 00 03 1F 3c 3c
			23 00 00 02 00 D1
			39 00 00 08 CE 00 0A 01 01 00 A4 01
			23 00 00 02 00 E8
			39 00 00 05 CE 00 A4 00 A4
			23 00 00 02 00 80
			39 00 00 11 CC 26 26 1C 1C 26 26 1D 26 26 26 1D 07 09 0B 0D 0F
			23 00 00 02 00 90
			39 00 00 09 CC 11 25 05 03 00 00 00 00
			23 00 00 02 00 80
			39 00 00 11 CD 26 26 1C 1C 26 26 1D 26 26 26 1D 06 08 0A 0C 0E
			23 00 00 02 00 90
			39 00 00 09 CD 10 01 04 02 00 00 00 00
			23 00 00 02 00 80
			39 00 00 11 CB C1 C1 C1 C1 C1 C1 C1 C1 C1 C1 C1 C1 C1 C1 C1 C1
			23 00 00 02 00 ED
			23 00 00 02 CB C1
			23 00 00 02 00 90
			39 00 00 11 CB 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
			23 00 00 02 00 EE
			23 00 00 02 CB 00
			23 00 00 02 00 90
			23 00 00 02 C3 00
			23 00 00 02 00 A0
			39 00 00 09 CB 00 00 00 00 00 00 00 00
			23 00 00 02 00 B0
			39 00 00 05 CB 55 55 55 55
			23 00 00 02 00 C0
			39 00 00 05 CB 55 55 55 55
			23 00 00 02 00 D2
			39 00 00 0C CB 83 00 83 83 00 83 83 00 83 83 00
			23 00 00 02 00 E0
			39 00 00 0E CB 83 83 00 83 83 00 83 83 00 83 83 00 83
			23 00 00 02 00 FA
			39 00 00 03 CB 83 00
			23 00 00 02 00 EF
			23 00 00 02 CB 00
			23 00 00 02 00 68
			39 00 00 05 C2 8E 05 8E C4
			23 00 00 02 00 6C
			39 00 00 05 C2 8D 05 8E C4
			23 00 00 02 00 70
			39 00 00 05 C2 8C 05 8E C4
			23 00 00 02 00 74
			39 00 00 05 C2 8B 05 8E C4
			23 00 00 02 00 8C
			39 00 00 06 C2 8D 05 38 8E C4
			23 00 00 02 00 91
			39 00 00 06 C2 8C 06 38 8E C4
			23 00 00 02 00 96
			39 00 00 06 C2 8B 07 38 8E C4
			23 00 00 02 00 9B
			39 00 00 06 C2 8A 08 38 8E C4
			23 00 00 02 00 A0
			39 00 00 06 C2 89 09 38 8E C4
			23 00 00 02 00 A5
			39 00 00 06 C2 88 0A 38 8E C4
			23 00 00 02 00 AA
			39 00 00 06 C2 87 0B 38 8E C4
			23 00 00 02 00 AF
			39 00 00 06 C2 86 0C 38 8E C4
			23 00 00 02 00 B4
			39 00 00 06 C2 85 0D 38 8E C4
			23 00 00 02 00 B9
			39 00 00 06 C2 84 0E 38 8E C4
			23 00 00 02 00 BE
			39 00 00 06 C2 83 0F 38 8E C4
			23 00 00 02 00 C3
			39 00 00 06 C2 82 10 38 8E C4
			23 00 00 02 00 dc
			39 00 00 09 C2 bb bb bb bb bb bb 00 00
			23 00 00 02 00 86
		        39 00 00 04 C3 FF F0 00			
			23 00 00 02 00 EA
			39 00 00 07 C2 0B 00 0A 04 8E C4
			23 00 00 02 00 60
			39 00 00 07 C2 8B 00 09 03 8E C4
			23 00 00 02 00 FC
			39 00 00 03 CB 08 40
			23 00 00 02 00 FB
			39 00 00 05 C3 8F 14 8F 14
			23 00 00 02 00 98
			23 00 00 02 C4 08
			23 00 00 02 00 91
			39 00 00 05 E9 FF FF FF 00
			23 00 00 02 00 85
			23 00 00 02 C4 80
                        23 00 00 02 00 81
			23 00 00 02 A4 73
			23 00 00 02 00 86
			23 00 00 02 A4 B6
			23 00 00 02 00 95
			23 00 00 02 C4 80
			23 00 00 02 00 CA
			39 00 00 03 C0 90 11
			23 00 00 02 00 B7
			23 00 00 02 F5 1D
			23 00 00 02 00 90
			23 00 00 02 C3 00
			23 00 00 02 00 B1
			23 00 00 02 F5 11
			23 00 00 02 00 B0 
			23 00 00 02 C5 00
			23 00 00 02 00 B3
			23 00 00 02 C5 00
			23 00 00 02 00 B2
			23 00 00 02 C5 0D
			23 00 00 02 00 B5
			23 00 00 02 C5 02
			23 00 00 02 00 C2
			23 00 00 02 F5 42
			23 00 00 02 00 80
			23 00 00 02 CE 00
			23 00 00 02 00 D0
			23 00 00 02 CE 01
			23 00 00 02 00 E0
			23 00 00 02 CE 00
			23 00 00 02 00 A1
			23 00 00 02 C1 CC
			23 00 00 02 00 A6
			23 00 00 02 C1 10
			23 00 00 02 00 71
			39 00 00 06 C0 C7 01 2B 00 22
			23 00 00 02 00 00
			39 00 00 04 FF 00 00 00 
			23 00 00 02 00 80
			39 00 00 03 FF 00 00
			//23 00 00 02 00 86
			//39 00 00 04 C3 FF F0 00
			//23 00 00 02 00 81
			//23 00 00 02 A4 73
			23 00 00 02 51 70
			23 00 00 02 53 2C
			23 78 00 02 35 00
			23 78 00 02 11 00
			23 0A 00 02 29 00
			];
		sprd,sleep-in-command = [
			13 78 00 01 28
			13 96 00 01 10
			23 00 00 02 00 00
			39 3C 00 05 F7 5A A5 95 27
			];
		sprd,sleep-out-command = [
			13 78 00 01 11
			13 64 00 01 29
			];
					oled-backlight {
						default-brightness = <33>;
						sprd,max-level = <255>;
						brightness-levels = [
							39 00 00 03 51 00 00
							39 00 00 03 51 02 00
							39 00 00 03 51 03 00
							39 00 00 03 51 04 00
							39 00 00 03 51 05 00
							39 00 00 03 51 06 00
							39 00 00 03 51 07 00
							39 00 00 03 51 08 00
							39 00 00 03 51 09 00
							39 00 00 03 51 0A 00
							39 00 00 03 51 0B 00
							39 00 00 03 51 0C 00
							39 00 00 03 51 0D 00
							39 00 00 03 51 0E 00
							39 00 00 03 51 0F 00
							39 00 00 03 51 10 00
							39 00 00 03 51 11 10
							39 00 00 03 51 12 10
							39 00 00 03 51 13 10
							39 00 00 03 51 14 10
							39 00 00 03 51 15 10
							39 00 00 03 51 16 10
							39 00 00 03 51 17 10
							39 00 00 03 51 18 10
							39 00 00 03 51 19 10
							39 00 00 03 51 1A 10
							39 00 00 03 51 1B 10
							39 00 00 03 51 1C 10
							39 00 00 03 51 1D 10
							39 00 00 03 51 1E 10
							39 00 00 03 51 1F 10
							39 00 00 03 51 20 10
							39 00 00 03 51 21 10
							39 00 00 03 51 22 20
							39 00 00 03 51 23 20
							39 00 00 03 51 24 20
							39 00 00 03 51 25 20
							39 00 00 03 51 26 20
							39 00 00 03 51 27 20
							39 00 00 03 51 28 20
							39 00 00 03 51 29 20
							39 00 00 03 51 2A 20
							39 00 00 03 51 2B 20
							39 00 00 03 51 2C 20
							39 00 00 03 51 2D 20
							39 00 00 03 51 2E 20
							39 00 00 03 51 2F 20
							39 00 00 03 51 30 20
							39 00 00 03 51 31 20
							39 00 00 03 51 32 20
							39 00 00 03 51 33 20
							39 00 00 03 51 34 30
							39 00 00 03 51 35 30
							39 00 00 03 51 36 30
							39 00 00 03 51 37 30
							39 00 00 03 51 38 30
							39 00 00 03 51 39 30
							39 00 00 03 51 3A 30
							39 00 00 03 51 3B 30
							39 00 00 03 51 3C 30
							39 00 00 03 51 3D 30
							39 00 00 03 51 3E 30
							39 00 00 03 51 3F 30
							39 00 00 03 51 40 30
							39 00 00 03 51 41 30
							39 00 00 03 51 42 30
							39 00 00 03 51 43 30
							39 00 00 03 51 44 30
							39 00 00 03 51 45 40
							39 00 00 03 51 46 40
							39 00 00 03 51 47 40
							39 00 00 03 51 48 40
							39 00 00 03 51 49 40
							39 00 00 03 51 4A 40
							39 00 00 03 51 4B 40
							39 00 00 03 51 4C 40
							39 00 00 03 51 4D 40
							39 00 00 03 51 4E 40
							39 00 00 03 51 4F 40
							39 00 00 03 51 50 40
							39 00 00 03 51 51 40
							39 00 00 03 51 52 40
							39 00 00 03 51 53 40
							39 00 00 03 51 54 40
							39 00 00 03 51 55 40
							39 00 00 03 51 56 50
							39 00 00 03 51 57 50
							39 00 00 03 51 58 50
							39 00 00 03 51 59 50
							39 00 00 03 51 5A 50
							39 00 00 03 51 5B 50
							39 00 00 03 51 5C 50
							39 00 00 03 51 5D 50
							39 00 00 03 51 5E 50
							39 00 00 03 51 5F 50
							39 00 00 03 51 60 50
							39 00 00 03 51 61 50
							39 00 00 03 51 62 50
							39 00 00 03 51 63 50
							39 00 00 03 51 64 50
							39 00 00 03 51 65 50
							39 00 00 03 51 66 50
							39 00 00 03 51 67 60
							39 00 00 03 51 68 60
							39 00 00 03 51 69 60
							39 00 00 03 51 6A 60
							39 00 00 03 51 6B 60
							39 00 00 03 51 6C 60
							39 00 00 03 51 6D 60
							39 00 00 03 51 6E 60
							39 00 00 03 51 6F 60
							39 00 00 03 51 70 60
							39 00 00 03 51 71 60
							39 00 00 03 51 72 60
							39 00 00 03 51 73 60
							39 00 00 03 51 74 60
							39 00 00 03 51 75 60
							39 00 00 03 51 76 60
							39 00 00 03 51 77 60
							39 00 00 03 51 78 70
							39 00 00 03 51 79 70
							39 00 00 03 51 7A 70
							39 00 00 03 51 7B 70
							39 00 00 03 51 7C 70
							39 00 00 03 51 7D 70
							39 00 00 03 51 7E 70
							39 00 00 03 51 7F 70
							39 00 00 03 51 80 70
							39 00 00 03 51 81 70
							39 00 00 03 51 82 70
							39 00 00 03 51 83 70
							39 00 00 03 51 84 70
							39 00 00 03 51 85 70
							39 00 00 03 51 86 70
							39 00 00 03 51 87 70
							39 00 00 03 51 88 70
							39 00 00 03 51 89 80
							39 00 00 03 51 8A 80
							39 00 00 03 51 8B 80
							39 00 00 03 51 8C 80
							39 00 00 03 51 8D 80
							39 00 00 03 51 8E 80
							39 00 00 03 51 8F 80
							39 00 00 03 51 90 80
							39 00 00 03 51 91 80
							39 00 00 03 51 92 80
							39 00 00 03 51 93 80
							39 00 00 03 51 94 80
							39 00 00 03 51 95 80
							39 00 00 03 51 96 80
							39 00 00 03 51 97 80
							39 00 00 03 51 98 80
							39 00 00 03 51 99 80
							39 00 00 03 51 9A 90
							39 00 00 03 51 9B 90
							39 00 00 03 51 9C 90
							39 00 00 03 51 9D 90
							39 00 00 03 51 9E 90
							39 00 00 03 51 9F 90
							39 00 00 03 51 A0 90
							39 00 00 03 51 A1 90
							39 00 00 03 51 A2 90
							39 00 00 03 51 A3 90
							39 00 00 03 51 A4 90
							39 00 00 03 51 A5 90
							39 00 00 03 51 A6 90
							39 00 00 03 51 A7 90
							39 00 00 03 51 A8 90
							39 00 00 03 51 A9 90
							39 00 00 03 51 AA 90
							39 00 00 03 51 AB A0
							39 00 00 03 51 AC A0
							39 00 00 03 51 AD A0
							39 00 00 03 51 AE A0
							39 00 00 03 51 AF A0
							39 00 00 03 51 B0 A0
							39 00 00 03 51 B1 A0
							39 00 00 03 51 B2 A0
							39 00 00 03 51 B3 A0
							39 00 00 03 51 B4 A0
							39 00 00 03 51 B5 A0
							39 00 00 03 51 B6 A0
							39 00 00 03 51 B7 A0
							39 00 00 03 51 B8 A0
							39 00 00 03 51 B9 A0
							39 00 00 03 51 BA A0
							39 00 00 03 51 BB A0
							39 00 00 03 51 BC B0
							39 00 00 03 51 BD B0
							39 00 00 03 51 BE B0
							39 00 00 03 51 BF B0
							39 00 00 03 51 C0 B0
							39 00 00 03 51 C1 B0
							39 00 00 03 51 C2 B0
							39 00 00 03 51 C3 B0
							39 00 00 03 51 C4 B0
							39 00 00 03 51 C5 B0
							39 00 00 03 51 C6 B0
							39 00 00 03 51 C7 B0
							39 00 00 03 51 C8 B0
							39 00 00 03 51 C9 B0
							39 00 00 03 51 CA B0
							39 00 00 03 51 CB B0
							39 00 00 03 51 CC B0
							39 00 00 03 51 CD C0
							39 00 00 03 51 CE C0
							39 00 00 03 51 CF C0
							39 00 00 03 51 D0 C0
							39 00 00 03 51 D1 C0
							39 00 00 03 51 D2 C0
							39 00 00 03 51 D3 C0
							39 00 00 03 51 D4 C0
							39 00 00 03 51 D5 C0
							39 00 00 03 51 D6 C0
							39 00 00 03 51 D7 C0
							39 00 00 03 51 D8 C0
							39 00 00 03 51 D9 C0
							39 00 00 03 51 DA C0
							39 00 00 03 51 DB C0
							39 00 00 03 51 DC C0
							39 00 00 03 51 DD C0
							39 00 00 03 51 DE D0
							39 00 00 03 51 DF D0
							39 00 00 03 51 E0 D0
							39 00 00 03 51 E1 D0
							39 00 00 03 51 E2 D0
							39 00 00 03 51 E3 D0
							39 00 00 03 51 E4 D0
							39 00 00 03 51 E5 D0
							39 00 00 03 51 E6 D0
							39 00 00 03 51 E7 D0
							39 00 00 03 51 E8 D0
							39 00 00 03 51 E9 D0
							39 00 00 03 51 EA D0
							39 00 00 03 51 EB D0
							39 00 00 03 51 EC D0
							39 00 00 03 51 EC E0
							39 00 00 03 51 EC F0
							39 00 00 03 51 ED 00
							39 00 00 03 51 ED 10
							39 00 00 03 51 ED 20
							39 00 00 03 51 ED 30
							39 00 00 03 51 ED 40
							39 00 00 03 51 ED 50
							39 00 00 03 51 ED 60
							39 00 00 03 51 ED 70
							39 00 00 03 51 ED 80
							39 00 00 03 51 ED 90
							39 00 00 03 51 ED A0
							39 00 00 03 51 ED B0
							39 00 00 03 51 ED C0
							39 00 00 03 51 ED E0
							39 00 00 03 51 FF F0
							39 00 00 03 51 FF F0
							39 00 00 03 51 FF F0
							39 00 00 03 51 FF F0
						];
					};
		display-timings {
		native-mode = <&lcd_ft8057s_mipi_hd_timing0>;
		       
        lcd_ft8057s_mipi_hd_timing0: timing0 {
			clock-frequency = <96000000>;
			hactive = <720>;
			vactive = <1612>;
			hback-porch = <14>;
			hfront-porch = <26>;
			vback-porch = <28>;
			vfront-porch = <445>;
			hsync-len = <4>;
			vsync-len = <6>;
		};
		};
	};
};
};
	};
};

六、将文件合入代码编译

6.1lk阶段

在文件bsp\bootloader\lk\platform\sprd_shared\driver\video\sprd\lcd\panel_cfg.h 内添加panel_driver类型的外部变量(名称与之前修改的驱动文件内的一致)

extern struct panel_driver ft8057s_mipi_hd_driver;

并且在数组supported_panel[]内添加屏幕的指针

			#ifdef CONFIG_LCD_FT8057S_MIPI_HD
					{
							.lcd_id = 0x8057,
							.drv = &ft8057s_mipi_hd_driver,
					},
			#endif

在文件bsp\bootloader\lk\platform\sprd_shared\driver\video\sprd\rules.mk中添加驱动文件的编译规则,并使用宏控

			ifeq ($(LCD_FT8057S_MIPI_HD),1)
			GLOBAL_DEFINES += CONFIG_LCD_FT8057S_MIPI_HD
			MODULE_SRCS += \
				$(LOCAL_DIR)/esky_lcd/lcd_ft8057s_mipi_hd.c
			endif

其中LCD_FT8057S_MIPI_HD为宏控名称,MODULE_SRCS为源码路径
在文件bsp\bootloader\lk\project\sp9863a_1h10.mk内添加

LCD_HX105FN01_IPS_HLX_MIPI_FHD := 1

使驱动文件编译进LK内
同时在bsp\kernel5.15\kernel5.15\arch\arm64\boot\dts\sprd\sp9863a-1h10-overlay.dts文件内添加

#include "lcd/lcd_ft8057s_mipi_hd.dtsi"

使驱动文件编译进dtb内

参考文献

103188《Kernel 5.15 LCD配置指导手册V1.4.pdf》
FT8057S_Data_Sheet_V0.1 .pdf
103002 《LCD新屏移植.mp4》
33340《unisoc lcd(mipi) fps-phy_feq计算_c_v1.05.xlsm》

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐