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

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

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

   設備樹文件的分析

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

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

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

    「arch/arm/boot/dts」目錄下的,「imx6q-topeet_10.1inch.dts」、「imx6q-topeet_7inch.dts」和「imx6q-topeet_9.7inch.dts」這三個。開發

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

    這裏以「imx6q-topeet_10.1inch.dts」爲例來分析。源碼

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

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

    「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 目錄下):

    mx6q-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

相關文章
相關標籤/搜索