設備樹之GPIO和中斷實例

概述

設備樹不僅僅描述常規硬件信息,還可以描述中斷,GPIO,DMA,PINCTRL,時鐘,電源管理等內核基礎設施信息及其使用情況,下面重點介紹中斷,GPIO等結點屬性

中斷控制器

對於中斷控制器結點,它提供如下屬性:

interrupt-controller 表明自己的身份爲中斷控制器

#interrupt-cells

該屬性與#address-cells屬性相似,它聲明瞭設備結點interrupt cells的個數。對於ARM GIC中斷控制器而言#interrupt-cells = <3>

具體含義如下:

第一個cell表示中斷類型,0代表SPI interrupts,1代表PPI interrupts

第二個cell表示中斷號碼,SPI interrupts的中斷號範圍是0 ~ 987,而PPI interrupts的中斷號範圍是0 ~ 15

第三個cell表示中斷觸發方式,它有4個值,分別爲1,2,4,8

1表示上升沿觸發

2表示下降沿觸發

4表示高電平觸發

8表示低電平觸發

設備樹之GPIO和中斷實例

                 圖1

上圖1爲典型的中斷控制器結點

從上圖1可知:

該中斷控制器包含4組寄存器,設備結點interrupt cells的個數爲3

第一個cell表示中斷類型,第二個cell表示中斷號碼,第三個cell表示中斷觸發方式

設備結點與中斷相關的屬性

interrupt-parent

指定設備結點所依附的中斷控制器,當結點沒有指定interrupt-parent時,則從父結點繼承

interrupts

指定設備結點的中斷號和觸發方式,該屬性cell個數,由它依附的中斷控制器#interrupt-cells決定,另外某些設備還可以使用多箇中斷號

比如:某設備結點中斷類型爲SPI interrupts,中斷號爲168和169,高電平觸發,該設備結點的中斷屬性定義爲

interrupts-parents = <&gic>;

interrupts = <0 168 4>, <0 169 4>;

設備樹之GPIO和中斷實例

                   圖2

上圖2爲watchdog結點信息,使用SPI interrupts方式,中斷號爲75,高電平觸發

GPIO控制器

對於GPIO控制器結點,它提供如下屬性:

gpio-controller 表明自己的身份爲gpio控制器

#gpio-cells

該屬性與#address-cells相似,它聲明瞭設備結點gpio cells的個數。

一般gpio控制器#gpio-cells = <2>

第一個cell表示gpio號,第二個cell表示gpio有效電平

設備樹之GPIO和中斷實例

                     圖3

上圖3爲典型的gpio控制器結點

從上圖3可知:

設備結點gpio cells的個數爲2

第一個cell表示gpio號,第二個cell表示gpio有效電平

設備結點與gpio相關的屬性

設備樹之GPIO和中斷實例

                     圖4

上圖4爲mmc1結點信息,該結點定義了cd-gpios屬性,該屬性表示使用219號gpio引腳(32*6+27)作爲熱插拔探測引腳,有效電平爲低電平。

在mmc控制器驅動中會通過如下方法獲取cd-gpios值

of_get_named_gpio(np, "cd-gpios", 0);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章