天天看點

goodix,gt928觸屏驅動移植,飛淩OKMX6Q/DL-C闆子由闆級檔案到裝置樹移植

使用的是飛淩OKMX6Q/DL-C闆子,和它對應的goodix,gt928子產品。由3.0.35的闆級檔案移植到飛思卡爾官方IMX6Q的4.1.15核心的裝置樹使用,裝置樹關于顯示部分也是參考天嵌E9_V3的闆子的imx6qdl-sabresd.dtsi的裝置樹。

飛淩OKMX6Q/DL-C闆子 觸屏的IIC線與LVDS在一起的,如下如是飛淩闆子的觸屏的原理圖:

goodix,gt928觸屏驅動移植,飛淩OKMX6Q/DL-C闆子由闆級檔案到裝置樹移植

下圖是飛思卡爾官方的觸屏原理圖:

goodix,gt928觸屏驅動移植,飛淩OKMX6Q/DL-C闆子由闆級檔案到裝置樹移植

因為官方沒有複位腳,而飛淩闆子有複位腳,檢視飛淩提供的屏闆子觸屏接口的原理圖與實物對比:

goodix,gt928觸屏驅動移植,飛淩OKMX6Q/DL-C闆子由闆級檔案到裝置樹移植
goodix,gt928觸屏驅動移植,飛淩OKMX6Q/DL-C闆子由闆級檔案到裝置樹移植

這上面也顯示有四個引腳,是以需要配置這四個引腳,參考天嵌E9_V3闆子的裝置樹,設定如下

goodix,gt928觸屏驅動移植,飛淩OKMX6Q/DL-C闆子由闆級檔案到裝置樹移植
goodix,gt928觸屏驅動移植,飛淩OKMX6Q/DL-C闆子由闆級檔案到裝置樹移植

好了,用的是飛思卡爾官網的的核心裡面的goodix.c驅動,編譯後運作,IIC挂載成功,但是觸屏沒有任何反應,打開裝置檔案點選觸屏也沒有任何列印資訊。但也的确實觸屏已經挂載成功,

goodix,gt928觸屏驅動移植,飛淩OKMX6Q/DL-C闆子由闆級檔案到裝置樹移植
goodix,gt928觸屏驅動移植,飛淩OKMX6Q/DL-C闆子由闆級檔案到裝置樹移植

後來發現是因為官方闆子沒有喚醒腳,驅動裡面也沒有複位功能,但是,飛淩的有喚醒腳,在對闆子IRQ的引腳拉低一小段時間後觸屏就能正常使用,是以對比飛淩的觸屏驅動與飛思卡爾的驅動,添加了喚醒的程式;

goodix,gt928觸屏驅動移植,飛淩OKMX6Q/DL-C闆子由闆級檔案到裝置樹移植
goodix,gt928觸屏驅動移植,飛淩OKMX6Q/DL-C闆子由闆級檔案到裝置樹移植

然後觸屏就能夠在核心啟動後正常工作了,但是核心在啟動過程中的列印資訊滅有改變。點選觸屏也有列印資訊了。

goodix,gt928觸屏驅動移植,飛淩OKMX6Q/DL-C闆子由闆級檔案到裝置樹移植

然而通過觸屏程式驗證時,X,Y軸和螢幕的分辨大小是反着的,是以又來改驅動。在這兩個地方反一下就可以了,但是通過坐标列印出來的位置XY軸的最大值依然是反着的,但已經能夠像正常觸屏一樣使用了。

goodix,gt928觸屏驅動移植,飛淩OKMX6Q/DL-C闆子由闆級檔案到裝置樹移植
goodix,gt928觸屏驅動移植,飛淩OKMX6Q/DL-C闆子由闆級檔案到裝置樹移植

總結:也有通過下圖計算的方法換算XY軸的分辨率,也能實作正常使用,但是卡頓十分明顯,而且不能實作多點觸發。主要是沒考到要自己添加喚醒程式,以為官方驅動裡面已經有了,是以在這裡浪費了一些時間。

goodix,gt928觸屏驅動移植,飛淩OKMX6Q/DL-C闆子由闆級檔案到裝置樹移植

繼續閱讀