這裡以除錯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...