显示驱动

eDP显示驱动

配置文件: “arch/arm64/boot/dts/rockchip/lcd-edp-for-toybrick.dtsi”

如果需要去掉eDP屏,需要在arch/arm64/boot/dts/rockchip/rk3399pro-toybrick.dtsi中删除include “lcd-edp-for-toybrick.dtsi”

电源控制:enable-gpios = <&gpio4 rk_pd6=”” gpio_active_high=””>;

timing时序

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输出

&edp_in_vopl {
        status = "disabled";
       };

&edp_in_vopb {
        status = "okay";
       };

触摸

&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-toybrick.dtsi”

电源控制:enable-gpios = <&gpio4 30=”” gpio_active_high=””>;

MIPI屏初始化:

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时序:

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输出:

&dsi_in_vopl {
      status = "okay";
         };
&dsi_in_vopb {
       status = "disabled";
         };

触摸

&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>;
              };
    };

注意:因为HDMI,DP和eDP都是从vopb输出,所以这三个设备不能同时接入。