天天看點

迅為i.MX6ULL開發闆Linux 裝置樹實作i2c

在使用了裝置樹以後,就不用這麼複雜了,使用裝置樹的時候隻要在對應的 I2C 節點下建立相應裝置的

節點即可,比如我想添加一個觸摸晶片 FT5X06 的裝置,我就可以在對應的 I2C 的節點下這樣寫,如下所示:

注意:迅為 10.1 寸螢幕的觸摸晶片是 gt911,4.3 寸觸摸晶片是 tsc2007,其它都是 ft5426 晶片。

&i2c2

{

clock_frequency = <100000>;

pinctrl-names = "default";

pinctrl-0 = <&pinctrl_i2c2>;

status="okay";

edt-ft5x06 @38

{

compatible = "edt,edt-ft5306", "edt,edt-ft5x06", "edt,edt-ft5406";

pinctrl-names = "default";

pinctrl-0 = <&ts_int_pin& ts_reset_pin>;

reg = <0x38>;

interrupt-parent = <&gpio1>;

interrupts = <9 0>;

reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;

irq-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;

status = "okay";

};

}

第 6 行更改 status 為“okay”,使能 i2c-2 總線;

第 8 行觸摸屏所使用的 FT5x06 晶片節點,挂載 I2C-2 節點下;“@”後面的“38”就是

edt-ft5x06 的 I2C 器件位址

第 10 行 compatible 用于和驅動程式的 compatible 比對;

第 12 行 pinctrl-0 屬性描述 FT5426 的複位 IO 和中斷 IO 所使用的節點為

&ts_int_pin& ts_reset_pin

第 13 行 reg 屬性描述 ft5x 的器件位址為 0x38;

第 14 行 interrupt-parent 屬性描述中斷 IO 對應的 GPIO 組為 GPIO1;

第 15 行 interrupts 屬性描述中斷 IO 對應的是 GPIO1 組的 9 号引腳和 0 号引腳;

第 16 行 reset-gpios 屬性描述複位 IO 對應的 GPIO 為 GPIO5 9;

第 17 行 irq-gpios 屬性描述中斷 IO 對應的 GPIO 為 GPIO1 9。

因為我們的開發闆預設是裝置樹的鏡像, 我們進入到開發闆的/sys/bus/i2c/devices/目錄下,因為通過

查找原理圖發現我們螢幕使用的是 i2c2,是以進入到 1-0038,檢視 name 為 edt-ft5306

迅為i.MX6ULL開發闆Linux 裝置樹實作i2c

接下來我們以非裝置樹的方式寫一個 client.c,然後加載進去,然後看一下和我們使用裝置樹的效果是

不是一樣的呢?有些同學可能會說,現在都是用裝置樹了,為什麼還要用以前的方法呢?因為我們以前的

方法也是需要熟悉的,我們隻有學會以前的方法,才能夠更好的了解現在的這種裝置樹的方法,而且有些

老的版本還是使用低版本的核心,比如說 kernel3.0。

更多内容:關注北京迅為

繼續閱讀