20250617在荣品的PRO-RK3566开发板的Android13下解决海罗光电有限公司HL070T58C-05屏在休眠唤醒下无显示的问题

20250617在荣品的PRO-RK3566开发板的Android13下解决海罗光电有限公司HL070T58C-05屏在休眠唤醒下无显示的问题

2025/6/17 16:41

缘起:在荣品的PRO-RK3566开发板的Android13/Buildroot下都电量了HL070T58C-05屏。

在RK3566的Android13下需要测试休眠/唤醒功能。

1、RK3566+Android13。插适配器 进入 uboot充电图标。

2、RK3566+Android13。LCD显示问题。拿掉初始化代码 开机不亮。休眠/唤醒后正常。

加入初始化代码。LCD亮。休眠/唤醒异常。

3、RK3576的Android14/Buildroot的编译问题

RK3566+Android13。LCD显示问题。

1、拿掉初始化代码 开机背光亮,但是屏没有显示。休眠/唤醒后屏显示正常。

2、加入初始化代码。LCD屏亮。休眠/唤醒之后异常:背光亮,但是屏不亮。

欢迎您选择了海罗光电有限公司的HL070T58C-05屏。

你将会体验到别味人生!

首先老板就是技术,你将会拿到强力的技术支持。【我们家屏在测试架是好的^_】

初始化代码/DATASHEET规格书都给你们了。

其他人都点亮了,并且DJI大疆也是用的这款屏,但是具体型号未知!【可能是同一款玻璃?京东方?】

海罗光电的屏上测试架


RK3566+Android13。LCD显示问题。
1、加入初始化代码。LCD屏亮。休眠/唤醒之后异常:背光亮,但是屏不亮。
确认:uboot阶段的驱动驱动正常:
Z:\Android13.0\u-boot\drivers\video\drm\rockchip_panel.c

2、拿掉初始化代码 开机背光亮,但是屏没有显示。休眠/唤醒后屏显示正常。
确认:kernel/driver阶段在处理休眠/唤醒的时候还继续发送完整的INIT代码导致屏不亮!
那就给它订制一段唤醒的代码:panel-wakeup-sequence

Z:\Android13.0\kernel-5.10\drivers\gpu\drm\panel\panel-simple.c

Z:\Android13.0\kernel-5.10\arch\arm64\boot\dts\rockchip\rk356x\rp-lcd-mipi0-7-1200-1920.dtsi

03 96 01 29 显示

03 FF 01 11 出睡眠

];

panel-exit-sequence = [

05 78 01 28 关显示

05 78 01 10 进睡眠

Z:\Android13.0\kernel-5.10\arch\arm64\boot\dts\rockchip\rk356x\rp-lcd-mipi0-7-1200-1920.dtsi

#include "rp-lcd-hdmi.dtsi"

#define RP_SINGLE_LCD

&rpdzkj {

compatible = "rp_config";

user_version = "rpdzkj";

#system_rotate = "270"; //system rotation : Counterclockwise rotation //0 90 180 270 //no effect

system_rotate = "90"; //system rotation : Counterclockwise rotation //0 90 180 270 //no effect

csi_camera_rotate = "0"; //all csi camera rotation //0 90 180 270 //no effect

csi_camera_facing = "0"; //0:auto 1:all front 2:all back //no effect

usb_camera_rotate = "0"; //all usb camera rotation //0 90 180 270

usb_camera_facing = "0"; //0:auto 1:all front 2:all back

lcd_density = "320";

language = "zh-CN"; //zh-CN //en-US

time_zone = "Asia/Shanghai"; //Asia/Shanghai = +8 //Europe/London = +1 //Africa/Casablanca = +0;

not_navigation_bar = "false";

not_status_bar = "false";

default_launcher = "true";

has_root = "true";

usb_not_permission = "true";

gps_use = "false";

gps_serial_port = "/dev/ttyS4";

primary_device = "DSI";

extend_device = "HDMI-A";

extend_rotate = "0";//0 0//1 90 //2 180 //3 270

rotation_efull = "false";

extend_rotate_2 = "0";//0 0//1 90 //2 180 //3 270

rotation_efull_2 = "true";

extend_rotate_3 = "0";//0 0//1 90 //2 180 //3 270

rotation_efull_3 = "true";

home_apk = "null";

status = "okay";

};

&dsi0 {

status = "okay";

rockchip,lane-rate = <1000>;

dsi0_panel: panel@0 {

status = "okay";

compatible = "simple-panel-dsi";

reg = <0>;

// reset-delay-ms = <60>;

// init-delay-ms = <60>;

enable-delay-ms = <120>;

prepare-delay-ms = <120>;

// unprepare-delay-ms = <60>;

// disable-delay-ms = <60>;

dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |

//MIPI_DSI_MODE_VIDEO_SYNC_PULSE)>;

MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;

dsi,format = <MIPI_DSI_FMT_RGB888>;

dsi,lanes = <4>;

/**

* power-supply = <>;

* reset-gpios = <>;

*

* lcd reset pin and power supply

* please refer to ***-lcd-gpio.dtsi

* that included in main dts.

*/

panel-init-sequence = [

//------------- Display Initial Code Setting -------------------------

//Stop reload

13 00 02 50 5A

//INT CANCEL

13 00 02 54 03

//VCOM

23 00 03 50 5A 03

13 00 02 80 C2

//Blank 8

23 00 03 50 5A 08

23 00 03 80 C8 00

//Blank 9

13 00 02 50 5A

13 00 02 54 03

23 00 03 50 5A 08

23 00 03 80 C8 00

23 00 03 50 5A 09

29 00 11 80 5A 51 B5 AA 6A D5 4A 01 40 E1 0D 82 20 08 00 B4

29 00 11 90 00 24 42 0A E3 6D DB F4 F5 BE 7A 20 2D A1 26 00

29 00 07 A0 A1 80 08 20 06 00

//Blank 10

23 00 03 50 5A 0A

29 00 11 80 73 e7 02 05 23 37 4e 7a 65 82 b6 bb f0 4b 1b 6c

29 00 11 90 45 43 35 27 19 0f 08 05 23 37 4e 65 7A 82 b6 bb

29 00 0D A0 f0 4b 1b 6c 45 43 35 27 19 0f 08 00

//Blank 11

23 00 03 50 5A 0B

29 00 11 80 00 00 20 44 08 00 60 47 00 00 10 22 04 00 B0 23

23 00 03 90 15 00

//Blank 12

23 00 03 50 5A 0C

29 00 11 80 FE 68 58 02 3C 64 B8 06 00 60 15 00 50 15 56 51

29 00 11 90 15 55 61 15 00 60 15 00 50 15 56 51 15 55 61 95

29 00 11 A0 AB 18 80 00 80 00 80 00 80 4C 29 84 52 01 09 00

//Blank 13

23 00 03 50 5A 0D

29 00 0F 80 F0 B1 71 EF 49 C0 80 1A 00 00 00 00 00 00

//Blank 14

23 00 03 50 5A 0E

29 00 0D 80 FF 81 68 AC 22 6D 24 00 00 00 00 00

//Blank 15

23 00 03 50 5A 0F

29 00 11 80 0d 08 4A 00 25 80 64 0C 51 31 28 81 03 42 8C 8C

29 00 08 90 24 69 81 71 44 7C 14

//Blank 16

23 00 03 50 5A 10

29 00 11 80 00 00 03 E7 1F 17 00 78 00 03 D4 18 30 88 41 8A

29 00 10 90 39 28 A9 C5 9A 7B F5 07 7E E0 07 7E 20 10 00

//Blank 17

23 00 03 50 5A 11

29 00 11 80 44 77 03 40 8A F1 FF 43 30 08 C1 46 A0 80 24 18

29 00 11 90 30 06 64 C1 80 21 07 C4 E1 D0 68 40 20 1D 04 48

29 00 11 A0 40 40 28 10 90 70 38 1A 10 47 03 E2 20 00 1C 80

29 00 11 B0 50 30 00 E0 E1 01 00 28 0E 06 03 0D 11 11 11 11

29 00 11 C0 91 88 88 88 88 88 C8 08 86 C6 E3 81 00 20 00 21

29 00 11 D0 42 88 00 00 00 00 40 00 00 31 04 41 06 00 00 00

29 00 11 E0 00 92 24 49 92 04 00 00 00 00 00 00 00 85 11 0C

29 00 0A F0 00 00 40 00 00 00 00 5E 00

//Blank 18

23 00 03 50 5A 12

29 00 11 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

29 00 0A 90 00 00 00 00 00 00 00 00 00

//Blank 19

23 00 03 50 5A 13

29 00 11 80 01 00 00 0C 00 00 00 00 01 02 01 01 44 6C CE E7

29 00 04 90 62 06 00

//Blank 20

23 00 03 50 5A 14

29 00 11 80 11 02 40 5E E9 EF F7 FB FD 7E 01 00 C0 E2 C5 C9

29 00 11 90 9A 3C 20 3E D6 E4 01 53 B1 26 0F 98 8C 35 79 40

29 00 11 A0 DC AC C9 23 00 60 4D 0E 03 C0 8B 12 30 F1 1D 20

29 00 11 B0 88 8A C7 37 00 00 00 00 00 1C BC BF 2B 00 40 A1

29 00 11 C0 50 78 07 6B F2 80 31 00 6F 60 4D 1E 30 06 E0 05

29 00 11 D0 AC C9 03 C6 00 BC 82 35 79 C0 18 80 77 B1 26 0F

29 00 11 E0 18 03 F0 26 D6 E4 01 63 00 DE C3 9A 3C 60 0C C0

29 00 11 F0 5B 58 93 07 8C 01 00 01 BF 1F 00 00 00 00 00 00

//Blank 21

23 00 03 50 5A 15

29 00 11 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

29 00 11 90 00 00 C8 73 00 98 F8 86 18 7C 19 00 26 BE 21 06

29 00 11 A0 DF 7E 88 89 6F 88 C1 F7 1D 61 E2 1B 62 F0 05 00

29 00 11 B0 00 00 00 00 00 00 00 00 13 00 F0 00 94 D6 71 D6

29 00 11 C0 55 14 A3 49 51 0C 43 10 B0 71 04 C1 30 6C 01 60

29 00 11 D0 5D 45 51 82 08 02 41 18 06 1B C7 30 04 C1 96 61

29 00 11 E0 D6 55 14 21 09 41 08 02 00 B0 71 04 C1 30 6C 05

29 00 0D F0 61 5D 45 71 8A 0C 43 51 1C 07 1B C7 30 04 41 00

//Blank 22

23 00 03 50 5A 16

29 00 11 80 02 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00

29 00 07 90 00 00 00 00 C0 40

//Blank 24

23 00 03 50 5A 18

29 00 11 80 EF BD F7 DE 7B EF BD 07 08 08 0A 0C 0C 0C 0C 0C

29 00 11 90 0C 0C 0C 5C 09 A8 AA AA AA AA AA AA AA AA AA 5A

29 00 11 A0 59 59 59 59 59 59 59 59 59 59 59 09 04 FF 05 80

29 00 10 B0 80 00 04 20 00 01 08 40 00 02 10 80 00 04 0F

//Blank 25

23 00 03 50 5A 19

29 00 11 80 95 93 8F 8C 80 8B 89 87 86 84 83 83 00 60 F6 FF

29 00 11 90 FF 2F F3 EF FF BF 0F 0F AF B5 71 0E 6C 4A 69 08

29 00 08 A0 00 00 00 00 00 00 00

//Blank 26

23 00 03 50 5A 1A

29 00 11 80 00 04 08 0C 00 10 14 18 1C 00 20 28 30 38 00 40

29 00 11 90 48 50 58 00 60 68 70 78 00 80 88 90 98 00 A0 A8

29 00 11 A0 B0 B8 00 C0 C8 D0 D8 00 E0 E8 F0 F8 00 FC FE FF

29 00 11 B0 00 00 04 08 0C 00 10 14 18 1C 00 20 28 30 38 00

29 00 11 C0 40 48 50 58 00 60 68 70 78 00 80 88 90 98 00 A0

29 00 11 D0 A8 B0 B8 00 C0 C8 D0 D8 00 E0 E8 F0 F8 00 FC FE

29 00 11 E0 FF 00 00 04 08 0C 00 10 14 18 1C 00 20 28 30 38

29 00 11 F0 00 40 48 50 58 00 60 68 70 78 00 80 88 90 98 00

//Blank 27

23 00 03 50 5A 1B

29 00 11 80 A0 A8 B0 B8 00 C0 C8 D0 D8 00 E0 E8 F0 F8 00 FC

29 00 11 90 71 28 AB 6D DB B6 6D 01 03 03 00 00 00 00 00 00

29 00 05 90 FE FF 00 00

//Blank 32

23 00 03 50 5A 20

29 00 08 80 90 00 00 00 00 00 00

//Blank 34

23 00 03 50 5A 22

29 00 0E 80 2D D3 00 41 10 04 41 10 04 41 10 1E 00

//Blank 35

23 00 03 50 5A 23

29 00 11 80 01 05 00 05 00 00 00 00 00 00 00 00 00 00 00 00

29 00 0A 90 FF 00 00 00 24 00 00 00 00

//Blank 36

23 00 03 50 5A 24

29 00 11 80 00 03 00 9D BF 10 00 00 00 00 00 00 00 00 51 f9

//SPI FINISH

13 00 02 90 A5

//Blank select 2F

23 00 03 50 5A 2F

13 00 02 09 01

03 96 01 29

03 FF 01 11

];

panel-wakeup-sequence = [
//------------- Display Initial Code Setting -------------------------
//Stop reload
03 96 01 29
03 FF 01 11
];

panel-exit-sequence = [

05 78 01 28

05 78 01 10

];

disp_timings0: display-timings {

native-mode = <&dsi0_timing0>;

dsi0_timing0: timing0 {

clock-frequency = <161000000>;

hactive = <1200>;

vactive = <1920>;

hback-porch = <14>;

hfront-porch = <31>;

vback-porch = <200>;

vfront-porch = <215>;

hsync-len = <20>;

vsync-len = <6>;

hsync-active = <0>;

vsync-active = <0>;

de-active = <0>;

pixelclk-active = <0>;

};

};

ports {

#address-cells = <1>;

#size-cells = <0>;

port@0 {

reg = <0>;

panel_in_dsi: endpoint {

remote-endpoint = <&dsi_out_panel>;

};

};

};

};

ports {

#address-cells = <1>;

#size-cells = <0>;

port@1 {

reg = <1>;

dsi_out_panel: endpoint {

remote-endpoint = <&panel_in_dsi>;

};

};

};

};

&dsi0_in_vp0 {

status = "disabled";

};

&dsi0_in_vp1 {

status = "okay";

};

&video_phy0 {

status = "okay";

};

&route_dsi0 {

status = "okay";

connect = <&vp1_out_dsi0>;

};

//&gt9xx {

// status = "okay";

// compatible = "goodix,gt9xx";

// reg = <0x5d>;

// gtp_resolution_x = <1200>;

// gtp_resolution_y = <1920>;

// gtp_int_tarigger = <1>;

// gtp_change_x2y = <0>;

// gtp_overturn_x = <0>;

// gtp_overturn_y = <0>;

// gtp_send_cfg = <1>;

// gtp_touch_wakeup = <1>;

//

// /**

// * goodix_rst_gpio = <>;

// * goodix_irq_gpio = <>;

// *

// * touch panel interrupt and reset pin

// * please refer to ***-lcd-gpio.dtsi

// * that included in main dts.

// */

//

// goodix,cfg-group2 = [

// 00 20 03 00 05 0A 05 00 01 08 28

// 05 50 32 03 05 00 00 00 00 00 00

// 00 00 00 00 00 8C 2C 0E 17 15 31

// 0D 00 00 01 BA 03 1D 00 00 00 00

// 00 03 64 32 00 00 00 0F 41 94 C5

// 02 07 00 00 04 99 11 00 77 17 00

// 5F 1F 00 4C 2A 00 41 38 00 41 00

// 00 00 00 00 00 00 00 00 00 00 00

// 00 00 00 00 00 00 00 00 00 00 00

// 00 00 00 00 00 00 00 00 00 00 00

// 00 00 1C 1A 18 16 14 12 10 0E 0C

// 0A 08 06 04 02 00 00 00 00 00 00

// 00 00 00 00 00 00 00 00 00 00 28

// 26 24 22 21 20 1F 1E 1D 1C 18 16

// 00 02 04 06 08 0A 0C 0F 10 12 13

// 14 FF FF 00 00 00 00 00 00 00 00

// 00 00 00 00 00 00 00 00 FE 01

//

// ];

//};

Z:\Android13.0\kernel-5.10\drivers\gpu\drm\panel\panel-simple.c

static int panel_simple_of_get_desc_data(struct device *dev,

struct panel_desc *desc)

{

struct device_node *np = dev->of_node;

u32 bus_flags;

const void *data;

int len;

int err;

if (of_child_node_is_present(np, "display-timings")) {

struct drm_display_mode *mode;

mode = devm_kzalloc(dev, sizeof(*mode), GFP_KERNEL);

if (!mode)

return -ENOMEM;

if (!of_get_drm_display_mode(np, mode, &bus_flags,

OF_USE_NATIVE_MODE)) {

desc->modes = mode;

desc->num_modes = 1;

desc->bus_flags = bus_flags;

}

} else if (of_child_node_is_present(np, "panel-timing")) {

struct display_timing *timing;

struct videomode vm;

timing = devm_kzalloc(dev, sizeof(*timing), GFP_KERNEL);

if (!timing)

return -ENOMEM;

if (!of_get_display_timing(np, "panel-timing", timing)) {

desc->timings = timing;

desc->num_timings = 1;

bus_flags = 0;

vm.flags = timing->flags;

drm_bus_flags_from_videomode(&vm, &bus_flags);

desc->bus_flags = bus_flags;

}

}

if (desc->num_modes || desc->num_timings) {

of_property_read_u32(np, "bpc", &desc->bpc);

of_property_read_u32(np, "bus-format", &desc->bus_format);

of_property_read_u32(np, "width-mm", &desc->size.width);

of_property_read_u32(np, "height-mm", &desc->size.height);

}

of_property_read_u32(np, "prepare-delay-ms", &desc->delay.prepare);

of_property_read_u32(np, "enable-delay-ms", &desc->delay.enable);

of_property_read_u32(np, "disable-delay-ms", &desc->delay.disable);

of_property_read_u32(np, "unprepare-delay-ms", &desc->delay.unprepare);

of_property_read_u32(np, "reset-delay-ms", &desc->delay.reset);

of_property_read_u32(np, "init-delay-ms", &desc->delay.init);

//data = of_get_property(np, "panel-init-sequence", &len);
data = of_get_property(np, "panel-wakeup-sequence", &len);

if (data) {

desc->init_seq = devm_kzalloc(dev, sizeof(*desc->init_seq),

GFP_KERNEL);

if (!desc->init_seq)

return -ENOMEM;

err = panel_simple_parse_cmd_seq(dev, data, len,

desc->init_seq);

if (err) {

dev_err(dev, "failed to parse init sequence\n");

return err;

}

}

data = of_get_property(np, "panel-exit-sequence", &len);

if (data) {

desc->exit_seq = devm_kzalloc(dev, sizeof(*desc->exit_seq),

GFP_KERNEL);

if (!desc->exit_seq)

return -ENOMEM;

err = panel_simple_parse_cmd_seq(dev, data, len,

desc->exit_seq);

if (err) {

dev_err(dev, "failed to parse exit sequence\n");

return err;

}

}

return 0;

}

相关推荐
南棱笑笑生9 天前
20250609在荣品的PRO-RK3566开发板的Android13下解决串口可以执行命令但是脚本执行命令异常的问题
杂质
南棱笑笑生9 天前
20250607在荣品的PRO-RK3566开发板的Android13系统下实现长按开机之后出现插入适配器不会自动启动的问题的解决
杂质
南棱笑笑生14 天前
20250603在荣品的PRO-RK3566开发板的Android13下的命令行查看RK3566的温度
杂质
南棱笑笑生15 天前
20250602在荣品的PRO-RK3566开发板的Android13下的uboot启动阶段配置BOOTDELAY为10s
杂质
南棱笑笑生15 天前
20250602在Ubuntu20.04.6下修改压缩包的日期和时间
杂质
南棱笑笑生22 天前
20250526给荣品PRO-RK3566的Android13单独编译boot.img
杂质
南棱笑笑生1 个月前
20250520在全志H3平台的Nano Pi NEO CORE开发板上运行Ubuntu Core16.04.3时跑通4G模块EC20
杂质
南棱笑笑生1 个月前
20250515配置联想笔记本电脑IdeaPad总是使用独立显卡的步骤
杂质
南棱笑笑生1 个月前
20250513给NanoPi NEO core开发板的Ubuntu core20.04系统重新编译内核boot.img【正式版本】
杂质