日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

I.MX6开发板移植Linux4.1.15内核之TSC2007触摸屏设备树信息的添加

發布時間:2023/12/10 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 I.MX6开发板移植Linux4.1.15内核之TSC2007触摸屏设备树信息的添加 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前寫過一篇3.0.35內核移植關于TSC2007觸摸屏驅動移植的文章。里面對TSC2007.c驅動程序的分析比較清晰,點擊鏈接查看:點擊鏈接查看

本篇文章,主要記錄在4.1.15內核移植的過程中,對于TSC2007設備的添加,需要如何添加設備樹信息。

1、TSC2007硬件原理圖分析

先看相關原理圖:

tsc2007控制器芯片的原理圖。

由tsc2007芯片原圖與核心板相關連接的引腳知:

  • 觸摸屏與CPU通過I2C總線進行數據傳輸,且為I2C3
  • I2C3有兩條線,SCL與SDA,分別于核心板的GPIO_3與GPIO_6連接
  • 中斷引腳為GPIO6_IO7,與核心板的連接為NAND_CLE系列引腳

2、TSC2007設備樹的添加

本次主要修改imx6qdl-sabresd.dtsi文件,該文件是與具體外設相關的文件

在i2c3節點下:

&i2c3 {clock-frequency = <100000>;pinctrl-names = "default";pinctrl-0 = <&pinctrl_i2c3>;status = "okay";//添加tsc2007@48 {compatible = "ti,tsc2007";reg = <0x48>;pinctrl-names = "default";pinctrl-0 = <&pinctrl_i2c1_tsc2007_int>;interrupt-parent = <&gpio6>;interrupts = <0x7 0x8>;gpios = <&gpio6 7 0>;ti,x-plate-ohms = <180>;}; };

在iomuxc節點下的imx6qdl-sabresd節點下:

&iomuxc {pinctrl-names = "default";pinctrl-0 = <&pinctrl_hog>;imx6qdl-sabresd {................pinctrl_i2c3: i2c3grp {fsl,pins = <MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1>;};pinctrl_i2c1_tsc2007_int: i2c1_tsc2007_int {fsl,pins = <MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x80000000>;};................}; };

3、觸摸屏的校準

校準的目的:為了與顯示屏的坐標一一對應。我們一般采用軟件校準,使用Tslib庫里的校準軟件進行校準們首先需要移植Tslib庫。

  • 將Tslib庫編譯安裝到文件系統中
編譯tslib(放到rootfs/tslib/tslib): $ tar xzf tslib-1.4.tar.gz $ cd tslib $ ./autogen.sh $ mkdir tmp $ echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache $ ./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=$(pwd)/tmp $ make $ make install

我的這一步驟是放到開發的環境中做的,其實可以直接在單板上搞,如果單板上是有編譯器的話。

  • 然后將系統燒寫到單板,在單板上操作:
$ cd /tslib/tslib/tmp $ cp * / -rfd1. 修改 /etc/ts.conf第1行(去掉#號和第一個空格): # module_raw input 改為: module_raw input2.添加環境變量 $ export TSLIB_TSDEVICE=/dev/input/event1 $ export TSLIB_CALIBFILE=/etc/pointercal $ export TSLIB_CONFFILE=/etc/ts.conf $ export TSLIB_PLUGINDIR=/lib/ts $ export TSLIB_CONSOLEDEVICE=none $ export TSLIB_FBDEVICE=/dev/fb0
  • 測試
$ ts_calibrate $ ts_test

備注:如果出現段錯誤,解決辦法如下:
1、ts.conf文件中的各個設置選項之前不能有空格,否則會出現: Segmentation fault 錯誤

2、不要在pointercal對應的目錄下,建立一個空的pointercal文件,否則在運行ts_calibrate時,
也可能會出現Segmentation fault

4、總結

不要放棄,下一次就會成功!!!

學習探討加:
qq:1126137994
微信:liu1126137994

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的I.MX6开发板移植Linux4.1.15内核之TSC2007触摸屏设备树信息的添加的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。