溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

RK3288如何增加雙屏異顯 eDP+LVDS

發(fā)布時(shí)間:2021-11-05 17:58:07 來源:億速云 閱讀:513 作者:柒染 欄目:建站服務(wù)器

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)RK3288如何增加雙屏異顯 eDP+LVDS,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

CPU:RK3288

系統(tǒng):Android 5.1

下面是官方文檔中的信息。

1、rk3288 支持的顯示接口可以任意組合。

2、雙屏異顯時(shí),一個(gè)顯示接口當(dāng)主屏,另一個(gè)當(dāng)副屏;主副屏由板級(jí) dts 文件確定,啟動(dòng)后無法動(dòng)態(tài)更改。

3、當(dāng)兩路顯示接口顯示不同分辨率時(shí),rk3288 只能為一路顯示接口提供精確時(shí)鐘,另一路顯示接口時(shí)鐘會(huì)有微小頻偏。

瑞芯微雖然提供了 Android 5.1 的補(bǔ)丁,但是本人在移植過程中出現(xiàn)一些問題(打補(bǔ)丁最好一行行核對(duì),不要圖方便直接使用指令)。

設(shè)備 eDP 為主屏,lvds 為副屏。

(1)首先修改兩個(gè)屏參文件 lcd-xxx.dtsi。

eDP 屏參文件補(bǔ)丁

diff --git a/kernel/arch/arm/boot/dts/lcd-NV116FH1.dtsi b/kernel/arch/arm/boot/dts/lcd-NV116FH1.dtsi

index 3862b05..7bf992f 100755

--- a/kernel/arch/arm/boot/dts/lcd-NV116FH1.dtsi

+++ b/kernel/arch/arm/boot/dts/lcd-NV116FH1.dtsi

@@ -3,11 +3,9 @@

  *

  */

-/ {

-

-        disp_timings: display-timings {

-                        native-mode = <&timing0>;

-                        timing0: timing0 {

+        display-timings {

+                        native-mode = <&nv116fhm>;

+                        nv116fhm: timing0 {

                 screen-type = <SCREEN_EDP>;

                 out-face    = <OUT_P666>;

                 clock-frequency = <205000000>;

@@ -30,4 +30,3 @@

                swap-gb = <0>;

                         };

               };

-};

lvds 屏參文件補(bǔ)丁

diff --git a/kernel/arch/arm/boot/dts/lcd-ZJ080NA-08A.dtsi b/kernel/arch/arm/boot/dts/lcd-ZJ080NA-08A.dtsi

old mode 100644

new mode 100755

index fc6385c..58f999be

--- a/kernel/arch/arm/boot/dts/lcd-ZJ080NA-08A.dtsi

+++ b/kernel/arch/arm/boot/dts/lcd-ZJ080NA-08A.dtsi

@@ -3,11 +3,10 @@

  *

  */

-/ {

-        disp_timings: display-timings {

-                        native-mode = <&timing0>;

-                        timing0: timing0 {

+        display-timings {

+                        native-mode = <&zj080na>;

+                        zj080na: timing0 {

                 screen-type = <SCREEN_DUAL_LVDS>;

                 lvds-format = <LVDS_8BIT_1>;

                 out-face    = <OUT_P888>;

@@ -30,4 +30,3 @@

                swap-gb = <0>;

             };

         };

-};

(2)根據(jù)官方提供,打上 kernel 補(bǔ)丁

 kernel 補(bǔ)丁

(3)根據(jù)官方提供,打上 hardware 補(bǔ)丁

 hardware 補(bǔ)丁

(4)根據(jù)官方提供,打上 framework 補(bǔ)丁

 framework 補(bǔ)丁

(5)官方提供的補(bǔ)丁打完了,但是此時(shí)編譯可能會(huì)報(bào)錯(cuò),如下:

cts/tests/tests/view/src/android/view/cts/WindowTest.java:846: error: WindowTest.MockWindow is not abstract and does not override abstract method moveExtendDisplay() in Window

public class MockWindow extends Window {

^

Note: Some input files use or override a deprecated API.

Note: Recompile with -Xlint:deprecation for details.

1 error

make: *** [out/target/common/obj/APPS/CtsViewTestCases_intermediates/classes-full-debug.jar] Error 41

make: *** Waiting for unfinished jobs....

Note: Some input files use or override a deprecated API.

Note: Recompile with -Xlint:deprecation for details.

Note: Some input files use unchecked or unsafe operations.

Note: Recompile with -Xlint:unchecked for details.

Note: Some input files use or override a deprecated API.

Note: Recompile with -Xlint:deprecation for details.

Note: Some input files use unchecked or unsafe operations.

Note: Recompile with -Xlint:unchecked for details.

Warning: AndroidManifest.xml already defines minSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest.

Warning: AndroidManifest.xml already defines targetSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest.

#### make failed to build some targets (03:55 (mm:ss)) ####

根據(jù)編譯錯(cuò)誤提示,需要修改 cts/tests/tests/view/src/android/view/cts/WindowTest.java 文件。

diff --git a/cts/tests/tests/view/src/android/view/cts/WindowTest.java b/cts/tests/tests/view/src/android/view/cts/WindowTest.java

index 3c5386d..8732ae7 100755

--- a/cts/tests/tests/view/src/android/view/cts/WindowTest.java

+++ b/cts/tests/tests/view/src/android/view/cts/WindowTest.java

@@ -998,6 +998,19 @@ public class WindowTest extends ActivityInstrumentationTestCase2<WindowCtsActivi

         }

         @Override

+        public void moveAppToDisplay(int id) {

+        }

+

+        @Override

+        public void syncDualDisplay() {

+        }

+

+        @Override

+        public void moveExtendDisplay() {

+        }

+

+

+        @Override

         public void setDefaultWindowFormat(int format) {

             super.setDefaultWindowFormat(format);

         }

(6)此時(shí)可以編譯成功,在屏參正確的前提下,主屏顯示正常,副屏出現(xiàn)花屏,需要在 system.prop 里添加屬性 ro.htg.force=1。

diff --git a/device/rockchip/rk3288/system.prop b/device/rockchip/rk3288/system.prop

index 26a2b09..c4f2c3d 100755

--- a/device/rockchip/rk3288/system.prop

+++ b/device/rockchip/rk3288/system.prop

@@ -12,6 +12,7 @@ rild.libpath=/system/lib/libril-rk29-dataonly.so

 rild.libargs=-d /dev/ttyACM0

 persist.tegra.nvmmlite = 1

 ro.audio.monitorOrientation=true

+ro.htg.force=1

 #NFC

 debug.nfc.fw_download=false

此時(shí)大功告成,雙屏可以正常顯示,也可以實(shí)現(xiàn)雙屏異顯。

如果 lcd 出現(xiàn)重復(fù)性黑屏亮屏,找到對(duì)應(yīng)的屏參文件,在正常范圍內(nèi)調(diào)節(jié)頻率 clk 值即可。

display-timings {

                        native-mode = <&ee101ia>;

                        ee101ia: timing0 {

                screen-type = <SCREEN_DUAL_LVDS>;

                lvds-format = <LVDS_8BIT_1>;

                out-face    = <OUT_P888>;

                color-mode = <COLOR_RGB>;

                // 調(diào)節(jié) lcd 頻率

                clock-frequency = <148500000>;

                hactive = <1920>;

                vactive = <1080>;

如果單屏調(diào)試都正常點(diǎn)亮,打補(bǔ)丁后,點(diǎn)不亮或者有花屏現(xiàn)象,嘗試增大對(duì)應(yīng)屏的電源使能延時(shí) 

 lcd_en {

    rockchip,power_type = <GPIO>;

    gpios = <&gpio7 GPIO_A5 GPIO_ACTIVE_HIGH>;

-   rockchip,delay = <10>;

+   rockchip,delay = <100>;

};

上述就是小編為大家分享的RK3288如何增加雙屏異顯 eDP+LVDS了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI