Toybrick EN

中文 / EN
Toybrick EN Wiki TB-RK3399ProD How to enable a panel for the TB-RK3399ProD
How to enable a panel for the TB-RK3399ProD

How to enable the eDP panel

eDP panel configure file can be find at: "arch/arm64/boot/dts/rockchip/rk3399pro-toybrick-edp.dtsi"

if you want enable eDP, you can add the line 'include "rk3399pro-toybrick-edp.dtsi"' from related dts file.

Power control:enable-gpios = <&gpio4 rk_pd6="" gpio_active_high="">;

Timing sample

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

Using the VOPB to control/out this eDP panel(We have two LCD mixer and controllers at RK3399Pro)

  1. &edp_in_vopl {
            status = "disabled";
           };
     
    &edp_in_vopb {
            status = "okay";
           };

Enabling the touch screen

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

How to enable the MIPI panel

MIPI panel configure file can be find at "arch/arm64/boot/dts/rockchip/rk3399pro-toybrick-mipi.dtsi"

Power control:enable-gpios = <&gpio4 30="" gpio_active_high="">;

The init operation of that MIPI panel

  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
                ];

The format of the MIPI command:

1. A full command end with a newline, a line starting with a tab, it means if follows the above command.

2. A command consists of  "type + command(00 for empty) + the number of argument, argument "

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

We use the VOPL for MIPI panel here:

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

Touch screen

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

Attention: both HDMI, DP and eDP would use VOPB in the default configure, so you can't use them at the same time










Products Store Community Wiki Download About TB


To Top