发作品签到
专业版

野火鲁班猫CAT2 MIPI 转RGB666 86屏 附点亮驱动

工程标签

673
0
0
4

简介

驱动见链接,触摸已调通

简介:驱动见链接,触摸已调通

开源协议

GPL 3.0

创建时间:2024-08-15 16:07:23更新时间:2025-02-22 04:28:15

描述

基于泰山派4寸86屏转接 - 立创开源硬件平台 (oshwhub.com)修改

平台野火鲁班猫2BTB 版本

MIPI DSI0 

芯片平台:RK3568

 

 

2024/08/19 触摸已更新

各开发板DTSI不同注意辨别

例:我选择的是rk3568-lubancat-2io-dsi-800p   

将以下内容放进设备树

&i2c1 {
status = "okay";
clock-frequency = <400000>;
FT5X06@38 {
status = "okay";
compatible = "edt,edt-ft5406";
reg = <0x38>;
 
interrupt-parent = <&gpio0>;
interrupts = ;
reset_gpio= <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
wake_gpio=<&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
  touchscreen-size-x = <480>;
  touchscreen-size-y = <480>;
  touch_type = <1>;
};
};
设备树节点,无需使用补丁直接调用 edt-ft5x06.c文件
 
 
由于不知道鲁班猫具体使用哪个make files 
所以把部分def都加载了该驱动,其他驱动进行了屏蔽
建议屏蔽不需要的型号,一方面提升编译速度,也防止地址错乱,驱动加载失败
 
# CONFIG_TOUCHSCREEN_GOODIX=y
# CONFIG_TOUCHSCREEN_GSLX6801=y
# CONFIG_TOUCHSCREEN_GSLX680_PAD=y
# CONFIG_TOUCHSCREEN_GSLX680_VR=y
# CONFIG_TOUCHSCREEN_GSL3673=y
# CONFIG_TOUCHSCREEN_GSL3673_800X1280=y
# CONFIG_TOUCHSCREEN_GSL3676=y
# CONFIG_TOUCHSCREEN_HYN_CST2XX=y
# CONFIG_TOUCHSCREEN_WACOM_W9013=y
# CONFIG_TOUCHSCREEN_GT1X=y
#CONFIG_TOUCHSCREEN_FTS=y
#CONFIG_TOUCHSCREEN_ROCKPI_FT5406=y
CONFIG_TOUCHSCREEN_EDT_FT5X06=y  //86屏驱动
# CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP5=y
# CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP5_DEVICETREE_SUPPORT=y
# CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP5_I2C=y
# CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP5_DEVICE_ACCESS=y
# CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP5_LOADER=y

前方添加#表示屏蔽

我主要修改了

lubancat2_android11_defconfig  //大概率我编译的mipi800p是这个配置文件

lubancat2_buildroot_defconfig

lubancat2_defconfig

rockchip_defconfig

rockchip_linux_defconfig

都试验一下具体没做测试 

文件路径在 kernel/arch/arm64/configs

修改驱动

文件路径在 kernel/drivers/input/touchscreen/makefile

bj-$(CONFIG_TOUCHSCREEN_EDT_FT5X06)    += edt-ft5x06.o  

这个驱动是默认装载的,如果没有自己添加

 

然后编译就行了

 

完整设备树

// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2020 Rockchip Electronics Co., Ltd.
 *
 */
&route_dsi0 {
status = "okay";
connect = <&vp0_out_dsi0>;
};
 
&video_phy0 {
status = "okay";
};
 
&dsi0_in_vp0 {
status = "okay";
};
 
&dsi0_in_vp1 {
status = "disabled";
};
 
&dsi0 {
status = "okay";
rockchip,lane-rate = <480>;
power-supply = <&mipi_dsi0_power>;
dsi0_panel:panel@0 {
compatible = "simple-panel-dsi";
reg = <0>;
backlight = <&backlight0>;
reset-gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;
enable-delay-ms = <100>;
prepare-delay-ms = <20>;
reset-delay-ms = <200>;
init-delay-ms = <120>;
unprepare-delay-ms = <20>;
disable-delay-ms = <20>;
 
size,width = <72>;
size,height = <72>;
 
dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
dsi,format = ;
dsi,lanes  = <2>;
 
panel-init-sequence = [
23 01 02 7A C1
  23 01 02 20 E0
  23 01 02 21 E0
  23 01 02 22 11
  23 01 02 23 02
  23 01 02 24 02
  23 01 02 25 12
  23 01 02 26 00
  23 01 02 27 02
  23 01 02 28 02
  23 01 02 29 12
  23 01 02 34 80
  23 01 02 36 02
  23 01 02 86 29
  23 01 02 B5 A0
  23 01 02 5C FF
          //23 01 02 14 43  // Test mode
            //23 01 02 2A 49  // Test mode
  23 01 02 2A 01
  23 01 02 56 92
  23 01 02 6B 72
  23 01 02 69 12
  23 01 02 10 10
  23 01 02 11 88
  23 01 02 B6 20
  23 01 02 51 20
  23 01 02 09 10
05 78 01 11
05 14 01 29
 
];
 
panel-exit-sequence = [
05 00 01 28
05 00 01 10
];
 
disp_timing: display-timings {
native-mode = <&dsi0_timing>;
dsi0_timing: timing {
clock-frequency = <16800000>;
hactive = <480>;
hfront-porch = <2>;
hback-porch = <18>;
hsync-len = <2>;
 
vactive = <480>;
vfront-porch = <2>;
vback-porch = <18>;
vsync-len = <2>;
 
 
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
swap-rb = <0>;
swap-rg = <0>;
swap-gb = <0>;
};
};
 
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
panel_in_dsi0: endpoint {
remote-endpoint = <&dsi0_out_panel>;
};
};
};
};
 
ports {
#address-cells = <1>;
#size-cells = <0>;
 
port@1 {
reg = <1>;
dsi0_out_panel: endpoint {
remote-endpoint = <&panel_in_dsi0>;
};
};
    };
 
};
 
&i2c1 {
status = "okay";
clock-frequency = <400000>;
FT5X06@38 {
status = "okay";
compatible = "edt,edt-ft5406";
reg = <0x38>;
 
interrupt-parent = <&gpio0>;
interrupts = ;
reset_gpio= <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
wake_gpio=<&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
  touchscreen-size-x = <480>;
  touchscreen-size-y = <480>;
  touch_type = <1>;
};
};
&route_dsi1 {
status = "okay";
connect = <&vp1_out_dsi1>;
};
 
&video_phy1 {
status = "okay";
};
 
&dsi1_in_vp0 {
status = "disabled";
};
 
&dsi1_in_vp1 {
status = "okay";
};
 
&dsi1 {
status = "okay";
power-supply = <&mipi_dsi1_power>;
dsi1_panel:panel@0 {
status = "okay";
compatible = "simple-panel-dsi";
reg = <0>;
backlight = <&backlight1>;
reset-gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_LOW>;
 
enable-delay-ms = <35>;
prepare-delay-ms = <6>;
reset-delay-ms = <0>;
init-delay-ms = <20>;
unprepare-delay-ms = <0>;
disable-delay-ms = <20>;
 
size,width = <74>;
size,height = <133>;
 
dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
dsi,format = ;
dsi,lanes  = <4>;
 
panel-init-sequence = [
39 05 04 FF 98 81 03
15 05 02 01 00
15 05 02 02 00
15 05 02 03 53
15 05 02 04 D3
15 05 02 05 00
15 05 02 06 0D
15 05 02 07 08
15 05 02 08 00
15 05 02 09 00
15 05 02 0a 00
15 05 02 0b 00
15 05 02 0c 00
15 05 02 0d 00
15 05 02 0e 00
15 05 02 0f 28
15 05 02 10 28
15 05 02 11 00
15 05 02 12 00
15 05 02 13 00
15 05 02 14 00
15 05 02 15 00
15 05 02 16 00
15 05 02 17 00
15 05 02 18 00
15 05 02 19 00
15 05 02 1a 00
15 05 02 1b 00
15 05 02 1d 00
15 05 02 1e 40
15 05 02 1f 80
15 05 02 20 06
15 05 02 21 01
15 05 02 22 00
15 05 02 23 00
15 05 02 24 00
15 05 02 25 00
15 05 02 26 00
15 05 02 27 00
15 05 02 28 33
15 05 02 29 33
15 05 02 2a 00
15 05 02 2b 00
15 05 02 2c 00
15 05 02 2d 00
15 05 02 2e 00
15 05 02 2f 00
15 05 02 30 00
15 05 02 31 00
15 05 02 32 00
15 05 02 33 00
15 05 02 34 03
15 05 02 35 00
15 05 02 36 00
15 05 02 37 00
15 05 02 38 96
15 05 02 39 00
15 05 02 3a 00
15 05 02 3b 00
15 05 02 3c 00
15 05 02 3d 00
15 05 02 3e 00
15 05 02 3f 00
15 05 02 40 00
15 05 02 41 00
15 05 02 42 00
15 05 02 43 00
15 05 02 44 00
15 05 02 50 00
15 05 02 51 23
15 05 02 52 45
15 05 02 53 67
15 05 02 54 89
15 05 02 55 AB
15 05 02 56 01
15 05 02 57 23
15 05 02 58 45
15 05 02 59 67
15 05 02 5a 89
15 05 02 5b AB
15 05 02 5c CD
15 05 02 5d EF
15 05 02 5e 00
15 05 02 5f 08
15 05 02 60 08
15 05 02 61 06
15 05 02 62 06
15 05 02 63 01
15 05 02 64 01
15 05 02 65 00
15 05 02 66 00
15 05 02 67 02
15 05 02 68 15
15 05 02 69 15
15 05 02 6a 14
15 05 02 6b 14
15 05 02 6c 0D
15 05 02 6d 0D
15 05 02 6e 0C
15 05 02 6f 0C
15 05 02 70 0F
15 05 02 71 0F
15 05 02 72 0E
15 05 02 73 0E
15 05 02 74 02
15 05 02 75 08
15 05 02 76 08
15 05 02 77 06
15 05 02 78 06
15 05 02 79 01
15 05 02 7a 01
15 05 02 7b 00
15 05 02 7c 00
15 05 02 7d 02
15 05 02 7e 15
15 05 02 7f 15
15 05 02 80 14
15 05 02 81 14
15 05 02 82 0D
15 05 02 83 0D
15 05 02 84 0C
15 05 02 85 0C
15 05 02 86 0F
15 05 02 87 0F
15 05 02 88 0E
15 05 02 89 0E
15 05 02 8A 02
39 05 04 FF 98 81 04
15 05 02 6E 2B
15 05 02 6F 37
15 05 02 3A 24
15 05 02 8D 1A
15 05 02 87 BA
15 05 02 B2 D1
15 05 02 88 0B
15 05 02 38 01
15 05 02 39 00
15 05 02 B5 02
15 05 02 31 25
15 05 02 3B 98
39 05 04 FF 98 81 01
15 05 02 22 0A
15 05 02 31 00
15 05 02 53 3D
15 05 02 55 3D
15 05 02 50 B5
15 05 02 51 AD
15 05 02 60 06
15 05 02 62 20
15 05 02 A0 00
15 05 02 A1 21
15 05 02 A2 35
15 05 02 A3 19
15 05 02 A4 1E
15 05 02 A5 33
15 05 02 A6 27
15 05 02 A7 26
15 05 02 A8 AF
15 05 02 A9 1B
15 05 02 AA 27
15 05 02 AB 8D
15 05 02 AC 1A
15 05 02 AD 1B
15 05 02 AE 50
15 05 02 AF 26
15 05 02 B0 2B
15 05 02 B1 54
15 05 02 B2 5E
15 05 02 B3 23
15 05 02 C0 00
15 05 02 C1 21
15 05 02 C2 35
15 05 02 C3 19
15 05 02 C4 1E
15 05 02 C5 33
15 05 02 C6 27
15 05 02 C7 26
15 05 02 C8 AF
15 05 02 C9 1B
15 05 02 CA 27
15 05 02 CB 8D
15 05 02 CC 1A
15 05 02 CD 1B
15 05 02 CE 50
15 05 02 CF 26
15 05 02 D0 2B
15 05 02 D1 54
15 05 02 D2 5E
15 05 02 D3 23
39 05 04 FF 98 81 00
15 78 02 11 00
15 05 02 29 00
];
 
panel-exit-sequence = [
05 78 01 28
05 00 01 10
];
 
disp_timings: display-timings {
native-mode = <&dsi1_timing>;
dsi1_timing: timing {
clock-frequency = <67000000>;
hactive = <800>;
vactive = <1280>;
hsync-len = <24>;
hback-porch = <24>;
hfront-porch = <12>;
vsync-len = <2>;
vback-porch = <9>;
vfront-porch = <7>;
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_dsi1: endpoint {
remote-endpoint = <&dsi1_out_panel>;
};
};
};
};
 
ports {
#address-cells = <1>;
#size-cells = <0>;
 
port@1 {
reg = <1>;
dsi1_out_panel: endpoint {
remote-endpoint = <&panel_in_dsi1>;
};
};
   };
};
 
&i2c5 {
status = "okay";
clock-frequency = <100000>;
 
gt911_2: gt911_2@5d {
status = "okay";
compatible = "goodix,gt911";
reg = <0x5d>;
interrupt-parent = <&gpio3>;
interrupts = ;
reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
irq-gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
};
};
 
&route_hdmi {
    status = "disabled";
};
 
&hdmi_in_vp0 {
    status = "disabled";
};
 
&hdmi_in_vp1 {
    status = "disabled";
};
 
&hdmi {
    status = "disabled";
};

视频效果见附件

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
1075a293f61d29e5751e9b6b40857fcf.mp4
2
2
651ff0945025ac635c5ab5685af9c99a.mp4
2
3
rk3568-lubancat-2io-dsi-800p.dtsi
2
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航