I.MX6开发板移植Linux4.1.15内核之TSC2007触摸屏设备树信息的添加
之前寫過一篇3.0.35內(nèi)核移植關(guān)于TSC2007觸摸屏驅(qū)動(dòng)移植的文章。里面對TSC2007.c驅(qū)動(dòng)程序的分析比較清晰,點(diǎn)擊鏈接查看:點(diǎn)擊鏈接查看
本篇文章,主要記錄在4.1.15內(nèi)核移植的過程中,對于TSC2007設(shè)備的添加,需要如何添加設(shè)備樹信息。
1、TSC2007硬件原理圖分析
先看相關(guān)原理圖:
tsc2007控制器芯片的原理圖。
 
 
由tsc2007芯片原圖與核心板相關(guān)連接的引腳知:
- 觸摸屏與CPU通過I2C總線進(jìn)行數(shù)據(jù)傳輸,且為I2C3
- I2C3有兩條線,SCL與SDA,分別于核心板的GPIO_3與GPIO_6連接
- 中斷引腳為GPIO6_IO7,與核心板的連接為NAND_CLE系列引腳
2、TSC2007設(shè)備樹的添加
本次主要修改imx6qdl-sabresd.dtsi文件,該文件是與具體外設(shè)相關(guān)的文件
在i2c3節(jié)點(diǎn)下:
&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節(jié)點(diǎn)下的imx6qdl-sabresd節(jié)點(diǎn)下:
&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、觸摸屏的校準(zhǔn)
校準(zhǔn)的目的:為了與顯示屏的坐標(biāo)一一對應(yīng)。我們一般采用軟件校準(zhǔn),使用Tslib庫里的校準(zhǔn)軟件進(jìn)行校準(zhǔn)們首先需要移植Tslib庫。
- 將Tslib庫編譯安裝到文件系統(tǒng)中
我的這一步驟是放到開發(fā)的環(huán)境中做的,其實(shí)可以直接在單板上搞,如果單板上是有編譯器的話。
- 然后將系統(tǒng)燒寫到單板,在單板上操作:
- 測試
備注:如果出現(xiàn)段錯(cuò)誤,解決辦法如下:
 1、ts.conf文件中的各個(gè)設(shè)置選項(xiàng)之前不能有空格,否則會(huì)出現(xiàn): Segmentation fault 錯(cuò)誤
2、不要在pointercal對應(yīng)的目錄下,建立一個(gè)空的pointercal文件,否則在運(yùn)行ts_calibrate時(shí),
 也可能會(huì)出現(xiàn)Segmentation fault
4、總結(jié)
不要放棄,下一次就會(huì)成功!!!
學(xué)習(xí)探討加:
 qq:1126137994
 微信:liu1126137994
總結(jié)
以上是生活随笔為你收集整理的I.MX6开发板移植Linux4.1.15内核之TSC2007触摸屏设备树信息的添加的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: php的两种复合数据类型是什么意思_2.
- 下一篇: python删除停用词_删除停用词
