1.uboot层
1)sprd/u-boot64/drivers/video/sprdfb/lcd
此路径下添加LCM驱动文件,如lcd_st7701_mipi.c
修改Makefile
obj-$(CONFIG_FB_LCD_ST7701S_MIPI) += lcd_st7701s_mipi.o
2)sprd\u-boot64\drivers\video\sprdfb
修改配置sprdfb_panel.c
extern struct panel_spec lcd_mipi_spec;
static struct panel_cfg panel_cfg[] = {
{
.lcd_id = 0x7701, //此id可自定义,匹配uboot层返回的id,相同就可识别LCM
.panel = &lcd_st7701_mipi_spec,
},
};
vidinfo_t panel_info = { //此处需要适配LCM分辨率大小配置,如配置不正确会导致卡死在uboot层,黑屏,无法进入kernel
.vl_col = 720,
.vl_row = 1440,
.vl_bpix = 4,
.cmap = colormap,
};
2.kernel层
1)sprd\kernel\drivers\video\sprdfb\lcd
此路径下添加LCM驱动文件,如lcd_st7701_mipi.c
修改Makefile
obj-$(CONFIG_FB_LCD_ST7701_MIPI) += lcd_st7701_mipi.o
2)sprd\kernel\drivers\video\sprdfb
此路径下修改Kconfig
config FB_LCD_ST7701_MIPI
boolean "support ST7701 mipi panel"
depends on FB_SC8825
default n
3.打开uboot宏开关
sprd\u-boot64\include\configs
修改sp7731gea.h
#define CONFIG_FB_LCD_ST7701_MIPI
/*此宏需要根据实际分辨率配置,如配置有误会导致无法亮屏,看log却可以正常读ID和进入kernel*/
//#define CONFIG_FB_LOW_RES_SIMU
#ifdef CONFIG_FB_LOW_RES_SIMU
#define LCD_DISPLAY_WIDTH 720
#define LCD_DISPLAY_HEIGHT 1440
#endif
4.打开kernel宏开关
sprd\kernel\arch\arm\configs
修改sp7731gea-dt_defconfig
CONFIG_FB_LCD_ST7701_MIPI=y