代碼從mtk6589平台移植,ic為用戶定制。
解決的問題有:
一、build err:主要原因是89和82平台函數和宏定義沖突,如:
extern void mt_eint_unmask(unsigned int line);
extern void mt_eint_mask(unsigned int line);
extern void mt_eint_set_hw_debounce(unsigned int eintno, unsigned int ms);
extern kal_uint32 mt_eint_set_sens(unsigned int eintno, unsigned int sens);
extern void mt_eint_registration(unsigned int eint_num, unsigned int flag, void (EINT_FUNC_PTR) (void), unsigned int is_auto_umask);
為82平台。而它們在89平台的樣子是82xx....
解決方法是找到依賴庫,嚴格按照依賴庫的定義去改,mtk8972依賴庫位置:mediatek/platform/Mt6582/kernel/core/include/mach
二、確認i2c地址
三、確認是否需要軟件上電,上電的位置,如
hwPowerOn(MT6323_POWER_LDO_VGP1, VOL_2800, "TP");
上面第一個參數power id,注意根據平台修改。
四、.h文件中的配置。屏幕尺寸、按鍵定義、按鍵尺寸等,必須根據平台修改。
五、若完成以上調整后仍不能正常工作,需仔細查看log,看看有沒有運行時問題。比如我調試時,init過程中會probe兩次,第二次probe讀寫i2c會失敗,雖然到現在還未找到原因,但用全局變量的方式可以很好的避免第二次probe,於是可以正常工作了。
