在使用了裝置樹以後,就不用這麼複雜了,使用裝置樹的時候隻要在對應的 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
接下來我們以非裝置樹的方式寫一個 client.c,然後加載進去,然後看一下和我們使用裝置樹的效果是
不是一樣的呢?有些同學可能會說,現在都是用裝置樹了,為什麼還要用以前的方法呢?因為我們以前的
方法也是需要熟悉的,我們隻有學會以前的方法,才能夠更好的了解現在的這種裝置樹的方法,而且有些
老的版本還是使用低版本的核心,比如說 kernel3.0。
更多内容:關注北京迅為