背光的硬體設計有兩種情況:
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顯示相...