Step1. 添加LCD设备树描述,包括背光节点和ltdc节点
Step2. 驱动文件里添加一组设备ID

一、添加设备树描述

1. 修改ltdc节点描述

STM32MP157A驱动开发 | 05 - 基于LTDC接口驱动RGB LCD_驱动开发


比较重要的属性是remote-endpoint,描述ltdc输出到哪里。

2. 添加ltdc输出接口描述

: rgblcd {
compatible = "bearpi,rgblcd";
backlight = &rgblcd_backlight;
status = "okay";

port {
rgblcd_in: endpoint {
remote-endpoint = <<dc_ep0_out>;
};
};
};

其中remote-endpoint用于告诉屏幕驱动数据从哪里获得。

3. 添加backlight节点

: rgblcd-backlight {
compatible = "gpio-backlight";
gpios = <&gpioe 9 GPIO_ACTIVE_HIGH>;
default-on;
status = "okay";
};

二、在驱动中添加屏幕参数

1. 添加屏幕参数描述

static const struct drm_display_mode bearpi_rgblcd_mode = {
.clock = 51200,
.hdisplay = 800,
.hsync_start = 800 + 46,
.hsync_end = 800 + 46 + 1,
.htotal = 800 + 46 + 1 + 210,
.vdisplay = 480,
.vsync_start = 480 + 23,
.vsync_end = 480 + 23 + 1,
.vtotal = 480 + 23 + 1 + 22,
.flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
};

static const struct panel_desc bearpi_rgblcd_desc = {
.modes = &bearpi_rgblcd_mode,
.num_modes = 1,
.bpc = 6,
.size = {
.width = 152,
.height = 91,
},
.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
};

2. 添加设备兼容性

STM32MP157A驱动开发 | 05 - 基于LTDC接口驱动RGB LCD_stm32_02

三、测试

STM32MP157A驱动开发 | 05 - 基于LTDC接口驱动RGB LCD_驱动开发_03