展訊平台 LCD(Mipi)移植步驟及問題歸納

2021-12-29 23:21:54 字數 3567 閱讀 8050

背光的硬體設計有兩種情況:

1. 內建併聯背光

2. 外接串聯背光

對於 1 的情況,步驟如下:

1.移植對應的 lcd 驅動。

2.設定u-boot\drivers\video\sprdfb\sprdfb_main.c中的背光為內建:

void set_backlight(uint32_t value)函式中,新增white_led = 1;

3. 在 kernel/drivers/video/backlight/sprd_backlight.c 的

#if (defined(config_spx15))前面

刪除下述巨集定義,只定義 #define sprd_backlight_whiteled

-- #ifdef config_backlight_sprd_pwm_mode

-- /*if the backlight is driven by pwm, use this macro */

-- #define sprd_backlight_pwm

-- #else

-- /*the backlight is driven by whiteled default */

-- #define sprd_backlight_whiteled

-- #define sprd_dim_pwm_mode

-- #endif

++ #define sprd_backlight_whiteled

4.在sprd_bl_whiteled_update_status中,刪除如下操作:

sci_adi_raw_write(pd_pwm_base + pwm_scale, pwm_prescale);

sci_adi_raw_write(pd_pwm_base + pwm_cnt,(pwm_level << 8) | pwm_mod_max);

sci_adi_raw_write(pd_pwm_base + pwm_scale, pwm_scale | pwm_enable);

對於 2 的情況,展訊預設採用的便是外接串聯,所以不需要進行配置。

lcd 的載入分為兩個部分,u-boot 和 kernel,同樣移植也分為這兩個部分。

u-boot

1.新增驅動檔案 u-boot/drivers/video/sprdfb/lcd/lcd_ek79007_mipi.c

2.新增編譯規則 u-boot/drivers/video/sprdfb/lcd/makefile

cobjs-$(config_fb_lcd_ek79007_mipi) += lcd_ek79007_mipi.o3.配置 lcd 編譯選項及 lcd 尺寸 u-boot/include/configs/sp7731gea_hdr.h

4.關聯到核心 u-boot/drivers/video/sprdfb_panel.c

新增

1.新增驅動檔案 kernel/drivers/video/sprdfb/lcd/lcd_ek79007_mipi.c

注意**檔案中需要新增

2.新增 makefile

obj-$(config_fb_lcd_ek79007_mipi) += lcd_ek79007_mipi.o3.新增 config kernel/arch/arm/configs/sp7731gea_hdr-dt_defconfig

config_fb_lcd_ek79007_mipi=y4.修改 kconfig

config fb_lcd_ek79007_mipi

boolean "support ek79007 mipi panel"

default y

q: backlight 不亮

a: 因為採用的是展訊預設的外接串聯背光電路,所以軟體方面不需要額外配置。

檢查硬體:

檢查背光的電壓是否有給

依次檢查

lcm_bl_pwm 輸出的波形 (正常)

leda 電壓(異常)交由硬體檢查進一步發現,有一顆電阻阻值異常(1.3歐錯貼成了1.3k歐)

修改後,背光正常:白屏

q:lcd 白屏

a:移植完成驅動後應該至少可以點亮(顯示東西,雖然顯示的東西可能有誤)

但是實際為白屏(只點亮了背光)

檢查 屏的電壓是否正常。要保證這樣幾個地方電壓是正常的:

vgh 和 vgl

——> 這個地方的使能腳控制 vgh 和 vgl

——> 發現lcd_pwren 接到的是 lcm_cabc

而 lcm_cabc 是無法管腳復用的

所以直接飛線到乙個高電壓,lcd_pwren 使能腳為高電壓。

q:開機時,先白屏,然後慢慢的變暗(背光一直為亮)

a:繼續檢查硬體,發現 lcd_vdd 沒有 ldo 電壓供電。

解決辦法是 從 buffer 電壓飛線過去,用的是 vdd_1v8,板子走線寬度是 2.5mm,可以正常使用。

至此 kernel 部分可以正常顯示,但是 u-boot 階段花屏。

q:抓取 log 發現 lcd panel info: 720 x 1280, 16 bit/pix

但是實際應該是 600 x 1024 ,追蹤**發現 panel info 是根據 u-boot/drivers/video/sprdfb/sprdfb_panel.c 來輸出的

在 u-boot/include/configs/sp7731gea_hdr.h 中發現並修改

並且在燒錄的時候修改bootloader階段的為 600x1024 的 bmp

u-boot 階段顯示正常。

展訊平台camera驅動移植 FLASH

平台 展訊 系統 安卓10 新增flash驅動程式 一般flash驅動資料夾裡包含三個檔案 c kbuild makefile 由相應廠商提供,配置點亮一般不需要自行修改。直接將該資料夾拷貝過來放入下列路徑 bsp modules camera flash 在k dts檔案裡配置其供電。flash ...

展訊平台 mimi教程

資源位置 要會看學習文件 先看目錄 在具體看內容 有重點的看 d l6 test ms mmi source resource mmi res 320x240 common mmi res default imag idle style black breey time 學習方法 注意跟蹤測試理論與...

展訊平台android display驅動分析

本文以展訊tshak平台的display controller為硬體模型,來說明android底層顯示驅動的實現原理。該硬體模型較基礎和簡單,目前大多soc平台的硬體設計都變得越來越複雜,實現功能也越來越全面,但基於此平台的設計更方便理解。下圖的結構即是顯示控制器的模組組成,它內部整合了lcd顯示相...