RK3399 MIPI显示驱动
eDP显示驱动
配置文件: "arch/arm64/boot/dts/rockchip/lcd-edp-for-sunychip-rk3399.dtsi"
如果需要去掉eDP屏,需要在arch/arm64/boot/dts/rockchip/rk3399-sunychip.dtsi中删除include "lcd-edp-for-sunychip.dtsi"
电源控制:enable-gpios = <&gpio4 rk_pd6="" gpio_ac
tive_high="">;
原理图:
timing时序
1. timing0: timing0 {
clock-frequency = <200000000>;
hactive = <1536>;
vactive = <2048>;
hfront-porch = <12>;
hsync-len = <16>;
hback-porch = <48>;
vfront-porch = <8>;
vsync-len = <4>;
vback-porch = <8>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
};
eDP信号从vopb输出
1. &edp_in_vopl {
status = "disabled";
};
&edp_in_vopb {
status = "okay";
};
触摸
1. &i2c4 {
status = "okay";
i2c-scl-rising-time-ns = <345>;
i2c-scl-falling-time-ns = <11>;
gsl3673: gsl3673@40 {
compatible = "GSL,GSL3673";
reg = <0x40>;
screen_max_x = <1536>;
screen_max_y = <2048>;
irq_gpio_number = <&gpio4 RK_PC5 IRQ_TYPE_LEVEL_LOW>;
rst_gpio_number = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
};
};
MIPI显示驱动
配置文件:"arch/arm64/boot/dts/rockchip/lcd-mipi-for-sunychip.dtsi"
电源控制:enable-gpios = <&gpio4 30="" gpio_active_high="">;
MIPI屏初始化:
1. panel-init-sequence = [
05 fa 01 11
39 00 04 b9 f1 12 83
39 00 1c ba 33 81 05 f9 0e 0e 00 00 00
00 00 00 00 00 44 25 00 91 0a
00 00 02 4f 01 00 00 37
15 00 02 b8 25
39 00 04 bf 02 11 00
39 00 0b b3 0c 10 0a 50 03 ff 00 00 00
00
39 00 0a c0 73 73 50 50 00 00 08 70 00
15 00 02 bc 46
15 00 02 cc 0b
15 00 02 b4 80
39 00 04 b2 c8 12 30
39 00 0f e3 07 07 0b 0b 03 0b 00 00 00
00 ff 00 c0 10
39 00 0d c1 53 00 1e 1e 77 e1 cc dd 67
77 33 33
39 00 07 c6 00 00 ff ff 01 ff
39 00 03 b5 09 09
39 00 03 b6 87 95
39 00 40 e9 c2 10 05 05 10 05 a0 12 31
23 3f 81 0a a0 37 18 00 80 01
00 00 00 00 80 01 00 00 00 48
f8 86 42 08 88 88 80 88 88 88
58 f8 87 53 18 88 88 81 88 88
88 00 00 00 01 00 00 00 00 00
00 00 00 00
39 00 3e ea 00 1a 00 00 00 00 02 00 00
00 00 00 1f 88 81 35 78 88 88
85 88 88 88 0f 88 80 24 68 88
88 84 88 88 88 23 10 00 00 1c
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 30 05 a0 00 00
00 00
39 00 23 e0 00 06 08 2a 31 3f 38 36 07
0c 0d 11 13 12 13 11 18 00 06
08 2a 31 3f 38 36 07 0c 0d 11
13 12 13 11 18
05 32 01 29
];
panel-exit-sequence = [
05 00 01 28
05 00 01 10
];
MIPI初始化命令:一行是一条命令(tab为接上行);
命令格式:type+命令(没有则为00)+参数数量+参数
timing时序:
1. display-timings {
native-mode = <&timing1>;
iming1: timing1 {
clock-frequency = <64000000>;
hactive = <720>;
vactive = <1280>;
hfront-porch = <40>;
hsync-len = <10>;
hback-porch = <40>;
vfront-porch = <22>;
vsync-len = <4>;
vback-porch = <11>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
};
};
MIPI信号从vopl输出:
1. &dsi_in_vopl {
status = "okay";
};
&dsi_in_vopb {
status = "disabled";
};
触摸
1. &i2c4 {
status = "okay";
gt1x: gt1x@14 {
status = "okay";
compatible = "goodix,gt1x";
reg = <0x14>;
goodix,rst-gpio = <&gpio4 RK_PC6 GPIO_ACTIVE_LOW>;
goodix,irq-gpio = <&gpio4 RK_PC5 IRQ_TYPE_LEVEL_LOW>;
goodix,enable-gpio = <&gpio4 RK_PD5 GPIO_ACTIVE_HIGH>;
};
};
注意:如果客户需要LVDS需要加TC358775把MIPI转成LVDS。