迅爲iMX6開發板設備樹內核及設備樹內核相關文件簡要分析

在支持設備樹的內核源碼中,設備樹用來取代來老版本內核中的平臺文件。android

本文檔主要介紹在 迅爲iMX6 開發板(iMX6Q,iMX6D,iMX6PLUS)的幾個重要的設備樹文件,這幾個文件在後續的設備驅動分析中,常常會用到。ui

 

 

 

設備樹文件的分析 spa

這裏以 iMX6Q 的爲例來分析,iMX6D 和 PLUS 的分析方法都是相似。blog

首先看下編譯腳本,以下圖所示,「build_android_kernel.sh」爲 android 內核編譯腳本,「build_qt_kernel.sh」爲 qt 內核編譯腳本,這裏以 Qt 的內核編譯腳本爲例、開發

 

 

打開「build_qt_kernel.sh」,以下圖所示,能夠看到設備樹文件是文檔

「arch/arm/boot/dts」目錄下的,「imx6q-topeet_10.1inch.dts」、「imx6q get

topeet_7inch.dts」和「imx6q-topeet_9.7inch.dts」這三個。源碼

 

 

上圖中,這三個設備樹文件的名稱來看,應該是爲了支持不一樣分辨率的屏幕的配置,除了屏幕部分的,其它部分應該是相同的,因此這裏只須要分析其中一個便可(實際狀況就是這樣的,感興趣能夠本身對比下)。qt

這裏以「imx6q-topeet_10.1inch.dts」爲例來分析。 打開「arch/arm/boot/dts/imx6q-topeet_10.1inch.dts」,先看下調用的頭文件,以下圖所示,有兩個頭文件「imx6q.dtsi」和「imx6qdl-sabresd.dtsi」。關於這個設備樹文件, 其中大部份內容都是關於顯卡的。io

 

 

這裏咱們看下調用的「imx6q.dtsi」,打開「arch/arm/boot/dts/imx6q.dtsi」,以下圖所示,看下頭文件「imx6q-pinfunc.h」和「imx6qdl.dtsi」。

 

 

「imx6q-pinfunc.h」頭文件,若是你們之前用過飛思卡爾的 arm 芯片,那麼就會知道這個是 IO 的宏定義頭文件,這是很重要的一個文件,這個文件在後面會常常用到--- 「imx6q-pinfunc.h」在「arch/arm/boot/dts/imx6q-pinfunc.h」。

另外像「dt-bindings」打頭的設備樹頭文件,暫時不用過多關注。

打開「arch/arm/boot/dts/imx6qdl-sabresd.dtsi」文件,在其中能夠搜到

「&iomuxc」,這個是飛思卡爾設備樹文件中,給 io 初始化的地方。例如你要配置一個 IO 爲輸出,那麼須要在這裏初始化;另一層意思就是,每個 IO 都要初始化,通常咱們默認是在這個位置進行初始化。

 

 

 

在這個文件下,咱們能夠找到常規的 led,蜂鳴器和 rs485 的設備樹註冊,這代表設備樹註冊都是在這個文件中,若是咱們要新增長設備,須要在這裏增長設備樹代碼,關於設備樹代碼,咱們後續再介紹。

 

 

總結:

這裏分析出瞭如下幾個重要的文件:

1 關於屏幕(顯卡)配置的設備樹文件爲如下幾個文件(文件都在 arch/arm/boot/dts目錄下):

imx6q-topeet_10.1inch.dts topeet_10.1inch.dts

imx6q-topeet_7inch.dts topeet_7inch.dts

imx6q-topeet_9.7inch.dts topeet_9.7inch.dts

2 imx6 的 IO 的宏定義在如下文件中:

arch/arm/boot/dts/imx6q-pinfunc.h

3 設備樹對 IO 初始化和設備註冊在如下文件中:

arch/arm/boot/dts/imx6qdl-sabresd.dtsi

 

http://www.topeetboard.com 

相關文章
相關標籤/搜索