Kickpi-Book
  • KICKPI Document
  • K5(A133)
    • A133中文文档
      • 02-KICKPI-K5C硬件介绍
      • 02-KICKPI-K5硬件介绍
      • 10-系统镜像烧录
      • 11-SDK源码编译
      • 12-硬件功能使用说明
      • 13-硬件工厂测试
      • 20-LCD功能调试
      • 21-LRADC按键配置
      • 31-Android10.0 Tablet系统定制
      • 32-Ubuntu16.04 系统定制
      • 33-Kernel 驱动定制
      • 34-K5C主板供电
  • K2B/K2C(H618)
    • zh
      • 01-主板介绍
        • 01-KICKPI-K2B硬件介绍
        • 02-KICKPI-K2C硬件介绍
      • 02-入门必读
        • 01-网盘目录说明
        • 02-快速使用
        • 03-功能测试
        • 04-扩展引脚
      • 03-镜像烧录
        • 01-SD卡烧录
        • 02-USB线烧录
      • 04-SDK编译
        • 01-编译环境搭建
        • 02-LINUX_SDK源码编译
        • 2. Android SDK编译
      • 05-外设驱动
        • RTC
      • 06-Android系统定制
        • Android常用系统定制
      • 07-Linux系统定制
        • Linux常用系统定制
      • 08-进阶
        • 14-Secure Boot
        • 硬件工厂测试
        • 44-Keybox
  • K1/K1B/K3/K8(RK3568/RK3562/RK3588)
    • zh
      • 01-主板介绍
        • 01-RK芯片对比介绍
        • 02-KICKPI-K1硬件介绍
        • 03-KICKPI-K1B硬件介绍
        • 04-KICKPI-K3硬件介绍
        • 06-KICKPI-K8硬件介绍
      • 02-入门必读
        • 01-网盘目录说明
        • 02-快速使用
        • 02-快速使用
        • 02-快速使用
        • 03-功能测试
        • 04-拓展引脚
      • 03-镜像烧录
        • 01-USB线烧录
      • 04-SDK编译
        • 01-编译环境搭建
        • 02-LINUX SDK 编译
        • 03-ANDROID SDK 编译
      • 05-外设驱动
        • GPIO
        • Kernel
        • LCD
        • PWM
        • RTC
      • 06-ANDROID系统定制
        • 01-Android常用系统定制
        • 07-Android NPU YOLOV5 目标检测
      • 07-LINUX系统定制
        • 01-Linux常用系统定制
        • 02-Linux安装VNC
        • 03-Linux Docker环境搭建
        • 04-Linux QT环境搭建
        • 05-Linux NPU YOLOV5S 目标检测
      • 08-进阶
        • 01-硬件工厂测试
        • 02-硬件老化测试
        • 03-固件解包和打包
  • K7(RK3576)
    • zh
      • 01-主板介绍
        • 01-KICKPI-K7硬件介绍
      • 02-入门必读
        • 01-网盘目录说明
        • 02-快速使用
        • 03-功能测试
        • 04-拓展引脚
      • 03-镜像烧录
        • 01-获取镜像文件
        • 02-USB线烧录
      • 04-SDK编译
        • 01-编译环境搭建
        • 02-Linux_SDK编译
        • 03-Android_SDK编译
      • 05-外设驱动
        • ADC
        • PWM
      • 06-ANDROID系统定制
        • 01-Android常用系统定制
      • 07-LINUX系统定制
        • 01-Linux常用系统定制
        • 02-Linux Docker环境搭建
        • 03-Linux NPU YOLOV5S 目标检测
        • 04-Linux_Deepseek大模型
        • 05-Linux_VNC远程控制
      • 08-进阶
        • ADB功能使用
        • 进阶测试
  • K4B(T113-S3)
    • T113-S3中文文档
      • 01-KICKPI-K4B硬件介绍
      • 10-系统镜像烧录
      • 11-SDK源码编译
      • 12-硬件功能测试
      • 13-硬件工厂测试
      • LCD功能调试
      • 20-Ubuntu20.04系统定制
      • Buildroot_QT5配置
      • Buildroot系统定制
  • common
    • zh
      • adb
        • ADB教程
      • android
        • 02-ADC
      • bluetooth
        • bootanimation
      • display
        • FPC接口介绍
      • linux
        • SSH
        • bluetoothctl教程
        • qt
Powered by GitBook
On this page
  • 1. 显示接口资源介绍
  • RK3568
  • 2. 单显示屏驱动配置
  • MIPI
  • LVDS
  • EDP
  • 3. 多屏显示系统配置
  • 内核设备树配置
  • Android多屏配置
  • 4. 单触摸屏驱动配置
  • 驱动移植
  • 内核设备树配置
  • 旋转触摸方向
  • 5. 多屏触摸系统配置
  • 内核设备树配置
  • Android单屏触摸配置
  • Android多屏触摸配置
  1. K1/K1B/K3/K8(RK3568/RK3562/RK3588)
  2. zh
  3. 05-外设驱动

LCD

RK3568 配备四路显示输出接口,分别为 HDMI、MIPI、LVDS、EDP,其中最高支持三路同时显示输出

1. 显示接口资源介绍

RK3568

RK3568 有三个VP节点,每个VP节点可挂接一个显示屏,对应关系如下表格示

VP编号
VP支持显示接口
VP最大分辨率

VP0

MIPI0 / MIPI1 / HDMI / EDP

4096x2304@60Hz

VP1

MIPI0 / MIPI1 / LVDS / HDMI / EDP

2048x1536@60Hz

VP2

LVDS / RGB

1920x1080@60Hz

MIPI0与LVDS接口引脚冲突,只能二选一

VP2节点仅支持LVDS/RGB,所以三屏显示时其中一路必须是LVDS(RGB接口未引出)

显示接口
显示最大分辨率
格式

HDMI

4096x2160@60Hz

RGB/YUV420 10Bit

MIPI

1920x1080@60Hz

RGB 8Bit

Dual MIPI

2560x1440@60Hz

RGB 8Bit

LVDS

1280x800@60Hz

RGB 8Bit

EDP

2560x1600@60Hz

RGB 10Bit

RGB

1920x1080@60Hz

RGB 8Bit

2. 单显示屏驱动配置

显示屏配置 主要修改设备树LCD配置文件,RK3568 设备树LCD配置目录如下:

$ vim kernel/arch/arm64/boot/dts/rockchip/rk3568-kickpi-k1.dtsi //linux
$ vim kernel-5.10/arch/arm64/boot/dts/rockchip/rk3568-kickpi-k1.dtsi //android

// LCD
#include "rk3568-kickpi-lcd-hdmi.dtsi"
//#include "rk3568-kickpi-lcd-edp-15.6-1920-1080.dtsi"
//#include "rk3568-kickpi-lcd-mipi0-10.1-800-1280.dtsi"
//#include "rk3568-kickpi-lcd-mipi1-10.1-800-1280.dtsi"
//#include "rk3568-kickpi-lcd-lvds-7-1024-600.dtsi"

其中的rk3568-kickpi-lcd-hdmi.dtsi需要默认保持使能

若显示屏调试有问题,可联系售后,获取技术支持

MIPI

RK3568 有两路MIPI LCD,分别为MIPI0、MIPI1,其中MIPI0与LVDS复用

MIPI0接口 参考 rk3568-kickpi-lcd-mipi0-10.1-800-1280.dtsi

MIPI1接口 参考 rk3568-kickpi-lcd-mipi1-10.1-800-1280.dtsi

LVDS

LVDS接口 参考 rk3568-kickpi-lcd-lvds-7-1024-600.dtsi

EDP

EDP接口 参考 rk3568-kickpi-lcd-edp-15.6-1920-1080.dtsi

3. 多屏显示系统配置

多屏显示方案中,LCD参数选择注意事项:

推荐选择显示长宽比例一致的显示屏,否则会出现画面拉伸或者画面黑边

内核设备树配置

$ vim kernel/arch/arm64/boot/dts/rockchip/rk3568-kickpi-k1.dtsi

// Triple LCD
//#include "rk3568-kickpi-triple-lcd-hdmi-mipi1-lvds.dtsi"
//#include "rk3568-kickpi-triple-lcd-edp-mipi1-lvds.dtsi"

在完成单屏调试的基础上,参考以上提供的多屏设备树配置文件

Android多屏配置

  • DSI作为主屏,HDMI-A作为副屏

PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.primary=DSI
PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.extend=HDMI-A
  • DSI\eDP作为主屏,LVDS\HDMI-A作为副屏

PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.primary=DSI,eDP
PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.extend=LVDS,HDMI-A

4. 单触摸屏驱动配置

以GT9XX为例

驱动移植

将厂商提供的驱动移植进SDK目录,并修改添加进编译文件

驱动文件copy到触摸驱动的文件夹下$(SDK_DIR)\kernel-5.10\drivers\input\touchscreen

修改kconfig:添加如下

config TOUCHSCREEN_GT9XX
	tristate "GT9XX touchscreens support"

修改Makefile:添加如下

obj-$(CONFIG_TOUCHSCREEN_GT9XX)		+= gt9xx/

内核配置添加CONFIG_TOUCHSCREEN_GT9XX=y

内核配置文件如arch/arm64/configs/rockchip_defconfig,不同版本的defconfig请自行在git历史记录中查找对应的版本文件

内核设备树配置

i2c_gt9xx配置:

&i2c1 {
	status = "okay";
	gt9xx:gt9xx@5d {
		compatible = "goodix,gt9xx";
		status = "okay";
		reg = <0x5d>;

		gtp_resolution_x = <1024>;
		gtp_resolution_y = <600>;
		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 = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
		goodix_irq_gpio = <&gpio3 RK_PA3 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&touch3_gpio>;

		goodix,cfg-group0 = [
			4B 00 04 58 02 01 0D 00 01 08
			28 05 50 32 03 05 00 00 00 00
			00 00 00 00 00 00 00 8B 2A 0C
			17 15 31 0D 00 00 02 BA 03 2D
			00 00 00 00 00 03 00 00 00 00
			00 0F 41 94 C5 02 07 00 00 04
			9B 11 00 77 17 00 5C 1F 00 48
			2A 00 3B 38 00 3B 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 02 04 06 08 0A 0C 0E 10
			12 14 16 18 FF FF 00 00 00 00
			00 00 00 00 00 00 00 00 00 00
			00 00 00 02 04 06 08 0A 0C 0F
			10 12 13 16 18 1C 1D 1E 1F 20
			21 22 24 FF FF FF FF FF 00 00
			00 00 00 00 00 00 00 00 00 00
			00 00 00 00 B6 01
		];
	};
};

旋转触摸方向

基于设备树调整触摸屏方向,以下方向仅适用于GT9XX驱动

0度(默认)

gt9xx:gt9xx@5d {
	gtp_change_x2y = <0>;		
	gtp_overturn_x = <0>;
	gtp_overturn_y = <0>;
};

90度

gt9xx:gt9xx@5d {
	gtp_change_x2y = <1>;
	gtp_overturn_x = <1>;
	gtp_overturn_y = <0>;
};

180度

gt9xx:gt9xx@5d {
	gtp_change_x2y = <0>;
	gtp_overturn_x = <0>;
	gtp_overturn_y = <1>;
};

270度

gt9xx:gt9xx@5d {
	gtp_change_x2y = <0>;
	gtp_overturn_x = <1>;
	gtp_overturn_y = <0>;
};

5. 多屏触摸系统配置

内核设备树配置

I2C + I2C

Android单屏触摸配置

  • Android13.0

禁止副屏触摸,不论external 或 internal类型设备,都作用在主屏

$ vim frameworks/native/services/inputflinger/reader/EventHub.cpp

    // Determine whether the device is external or internal.
    if (isExternalDeviceLocked(device)) {
-        device->classes |= INPUT_DEVICE_CLASS_EXTERNAL;
+        //device->classes |= INPUT_DEVICE_CLASS_EXTERNAL;
    }

Android多屏触摸配置

  • 判断设备名称

$ vim frameworks/native/services/inputflinger/reader/EventHub.cpp

bool EventHub::isExternalDeviceLocked(Device* device) {
+	const char *I2C_DEVICE_NAME = "generic ft5x06 (79)";
+	ALOGE("input deviceis '%s' ",device->identifier.name.c_str());
+	if (strcmp(device->identifier.name.c_str(), I2C_DEVICE_NAME) == 0) {
+		return true;
+	}

	if (device->configuration) {
	bool value;
}
  • 添加IDC配置文件

Last updated 3 days ago