mt8735 andorid7 0 lcm除錯總結

2021-08-11 07:13:25 字數 3002 閱讀 7578

這裡以除錯mt8735 7.0 中的lvds屏icn6202為例:

icn6202是一款lvds 屏:它可以把cpu端傳出來的數碼訊號(譬如mipi訊號)轉換成lvds訊號,再轉換成lcd能接收的數碼訊號,再通過lcd顯示對應的影象;lvds訊號跟mipi訊號一樣,雖都可以做到低功耗高數率傳輸,但lvds訊號能遠距離傳送;

下面開始具體分析除錯lcd:

//lk**名稱跟路徑

icn6202_wsvga_lvds_dsi_vdo.c (drivers\vendor\mediatek\proprietary\bootable\bootloader\lk\dev\lcm\icn6202_wsvga_lvds_dsi_vdo) 

lk:直接可以呼叫系統介面的i2通訊函式操作gpio口函式

//lk的i2c通訊函式

static struct mt_i2c_t icn6202_i2c;

#define lcm_i2c_id i2c1

#define lcm_i2c_addr 0x58

#define lcm_i2c_mode st_mode

#define lcm_i2c_speed 100

static int icn6202_reg_i2c_write(kal_uint8 addr, kal_uint8 value)

//lk的gpio操作函式

#define gpio_lcd_icn6202_en (gpio55 | 0x80000000)

static void lcm_set_power_pin(u32 pin, u32 out)

static void lcm_init(void)

//kernel的**名稱跟路徑

//icn6202_wsvga_lvds_dsi_vdo.c (drivers\kernel-3.18\drivers\misc\mediatek\lcm\icn6202_wsvga_lvds_dsi_vdo)

//gpio的操作函式

跟lk不同,kernel的gpio函式要除了跟lk樣要dct工具配置外,還要在裝置樹中配置,因此**中必須要先申請,後才能呼叫

static unsigned int gpio_lcd_pwr1_en;

static unsigned int gpio_lcd_pwr2_en;

static unsigned int gpio_lcd_ic6202_en;

void lcm_get_gpio_infor(void)

//i2c的dct操作和out目錄生成的檔案如下

&i2c1 ;

};//除

了dct的i2c配置外,同時**庫裡面也要對i2c進行操作

static int icn6202_i2c_write(u8 reg, u8 writedata)

;int ret = 0;

databuf[0] = reg;

databuf[1] = writedata;

ret = i2c_master_send(icn6202_i2c_client, databuf, 2);

printk(" lcm --- icn6202_i2c_write ret=%d, databuf[0]=%d, databuf[1]=%d\n", ret, databuf[0], databuf[1]);

if(ret < 0)

return ret;

}#ifdef config_of

static const struct of_device_id lcm_of_match = ,

{},            

};#endif

struct i2c_driver icn6202_i2c_driver = , 

};//lcm除錯對於驅動來講:lk kernel一樣就是填充乙個結構體中的6個成員(其他成員按情況新增)

lcm_driver icn6202_wsvga_lvds_dsi_vdo_lcm_drv =

;mt6737 m0  c66專案    (同樣適合mt8735_7.0)

lcd 移植

lk r:\c66_6.0\vendor\mediatek\proprietary\bootable\bootloader\lk\dev\lcm\ek79030_tm686_dsi_vdo

r:\c66_6.0\vendor\mediatek\proprietary\bootable\bootloader\lk\project\joya6737m_65_m0.mk

r:\c66_6.0\vendor\mediatek\proprietary\bootable\bootloader\lk\dev\lcm\mt65xx_lcm_list.c

kernel 

r:\c66_6.0\device\joya\joya6737m_65_m0\projectconfig.mk

r:\c66_6.0\kernel-3.18\drivers\misc\mediatek\lcm\mt65xx_lcm_list.c

r:\c66_6.0\kernel-3.18\drivers\misc\mediatek\lcm\mt65xx_lcm_list.h

r:\c66_6.0\kernel-3.18\arch\arm64\configs\joya6737m_65_m0_defconfig

r:\c66_6.0\kernel-3.18\arch\arm64\configs\joya6737m_65_m0_debug_defconfig

line 1037: config_custom_kernel_lcm="ek79030_tm686_dsi_vdo"

line 1160: config_mtk_lcm_physical_rotation="90"

line 1161: config_lcm_height="1280"

line 1162: config_lcm_width="480"

//add kernel driver 

r:\c66_6.0\kernel-3.18\drivers\misc\mediatek\lcm\ek79030_tm686_dsi_vdo

mt6735 mt8735硬體電量計執行流程

mt6735 mt8735 目前預設使用硬體電量計 soc by hw fg 採集電池電量,現在簡單描述一下這硬體電量計的工作過程。1.首先,系統在kernel 3.10 drivers misc mediatek mach mt6735 ap7350 tb l1 power cust batter...

面試小結 MT

方法一 a a b b a b a a b 方法二 a a b b a b a a b 按位異或運算子 按位異或運算將兩個運算分量的對應位按位遵照以下規則進行計算 0 0 0,0 1 1,1 0 1,1 1 0 即相應位的值相同的,結果為 0,不相同的結果為 1。方法三 a a b b a b a ...

MT6737晶元功能介紹 MT6737晶元資料分享

mt6737晶元功能介紹 mt6737晶元資料分享 mt6737是什麼呢?mt6737是聯發科技極具成本效益的r.9 cat 4 lte解決方案,不但能將模組及記憶體成本降至最低,符合中低端市場需求,同時具備超越同級產品的效能與電源效能表現。此外,mt6737能在全球範圍內支援各式ip多 子系統 i...