broken-cd 表示沒有熱插拔探測引腳,使用輪詢檢測
cd-gpios 使用gpio管腳作為熱插拔探測引腳
non-removable 表示不能進行熱插拔,裝置一直連線(比如emmc)
上面三個選項用於指定熱插拔探測選項,如果三個選項都沒有指定,則使用主機自帶的熱插拔引腳sdcd
bus-width 資料匯流排位寬,預設值是<1>,也可以是<4>,<8>
wp-gpios 使用gpio管腳作為寫保護引腳
max-frequency 表示mmc匯流排最大操作頻率
cd-inverted 表示cd引腳是active high
wp-inverted 表示wp引腳是active high
no-1-8-v 該選項存在的話,表示該匯流排控制器不支援1.8v裝置卡
(即使該控制器硬體支援1.8v裝置卡)
cap-power-off-card 關閉該卡電源很安全
cap-sdio-irq 使能sdio匯流排 irq
full-pwr-cycle 支援裝置卡的整個電源週期
cap-sd-highspeed 支援sd high-speed時序
cap-mmc-highspeed 支援mmc high-speed時序
sd-uhs-sdr12 支援sd uhs sdr12 speed
sd-uhs-sdr25 支援sd uhs sdr25 speed
sd-uhs-sdr50 支援sd uhs sdr50 speed
sd-uhs-sdr104 支援sd uhs sdr104 speed
sd-uhs-ddr12 支援sd uhs ddr12 speed
mmc-ddr-1_8v 支援emmc high-speed ddr(1.8v)
mmc-ddr-1_2v 支援emmc high-speed ddr(1.2v)
mmc-hs200-1_8v 支援emmc hs200 mode
mmc-hs200-1_2v 支援emmc hs200 mode
mmc-hs400-1_8v 支援emmc hs400 mode
mmc-hs400-1_2v 支援emmc hs400 mode
keep-power-in-suspend 表示待機時不掉電
enable-sdio-wakeup sdio中斷發生時允許喚醒主機系統
mmc-pwrseq 指定電源上電順序
dsr 表示卡的dsr暫存器的值[從0x00 … 0xffff]
vmmc-supply 指向regulator裝置樹節點
mmc控制器存在子節點時,必須指定下面兩個選項
#address-cells 值必須是1
#size-cells 值必須是0
mmc子節點屬性
reg 該值必須是0~7,其中0表示sd卡,1~7表示sdio裝置
比如sdio介面的wifi晶元
上面有兩個圖,都是用來定義mmc控制器節點屬性
第乙個圖描述mmc控制器的不變屬性,比如mmc控制器的暫存器位址,中斷,dma通道,一般定義在.dtsi檔案中
第二個圖描述mmc控制器的可變屬性及其子節點屬性,比如mmc控制器的引腳復用情況,匯流排位寬,一般定義在.dts檔案中
注意:一般在公用的.dtsi檔案中,新增不變屬性(比如reg屬性,中斷,dma通道),在具體板卡的 .dts檔案中新增可變屬性(比如gpio使用情況,引腳復用情況),以及子結點資訊,這樣使得.dtsi檔案和.dts檔案解耦
status 表示使能該匯流排控制器,enable或者disable
clock-frequency 設定i2c匯流排頻率,一般為400khz或者100khz
i2c控制器節點存在子節點時,該控制器節點必須指定下面兩個選項
#address-cells 值必須是1
#size-cells 值必須是0
由於i2c子節點屬性比較簡單,因此不進行任何講解
上面有兩個圖,都是用來定義i2c控制器節點屬性
第乙個描述i2c控制器的不變屬性,比如i2c控制器的暫存器位址,中斷,一般定義在.dtsi檔案中
第二個描述子節點屬性,一般定義在.dts檔案中
status 表示使能該匯流排控制器,enable或者disable
cs-gpios 使用gpio管腳作為片選訊號
num-cs 表示片選訊號數量,包括原生片選訊號和gpio片選訊號
比如:cs-gpios = <0> <0>
num-cs = <3>
上述spi控制器片選訊號的對映關係如下圖所示
spi控制器節點存在子節點時,該控制器節點必須指定下面兩個選項
#address-cells 值必須是1
#size-cells 值必須是0
spi子節點屬性
spi-max-frequency 設定spi匯流排頻率
spi-cs-high 表示spi子裝置片選訊號為高電平
spi-tx-bus-width 設定spi控制器輸出匯流排位寬,預設為1(僅有一根資料線作為mosi),qspi(quad)匯流排位寬為4,spi-tx-bus-width = <4>
spi-rx-bus-width 設定spi控制器輸入匯流排位寬,預設為1(僅有一根資料線作為miso),qspi(quad)匯流排位寬為4,spi-rx-bus-width = <4>
上圖為spi控制器節點及其子節點屬性:
網路phy晶元ks8995m使用cs0片選訊號,spi匯流排頻率為1mhz
音訊晶元tlv320aic26使用cs1片選訊號,spi匯流排頻率為100khz
linux裝置樹(裝置驅動)
一 裝置樹的簡單概念 裝置樹 由一系列的節點,屬性組成,節點本身包含子節點 屬性 成對出現的名稱和值 裝置樹可描述的資訊 原先大多數被編碼在核心中 它是電路板上cpu,匯流排,裝置組成的樹,bootloader會將這棵樹傳遞給核心,並根據它展開linux核心中的platform device等裝置。...
Linux核心裝置驅動註冊
platform device與platform driver 引入devicetree後改變 platform device會由kernel自動展開,呼叫of platform bus probe null,of bus ids,null 即可自動展開所有的platform device 引入de...
Linux裝置驅動 核心開發
linux裝置驅動需要使用核心api來實現,一般被包含在linux核心原始碼樹中。驅動可以編譯到核心,隨著核心一起在系統啟動的時候被載入。也可以編譯成核心模組,在系統執行起來之後動態地載入到核心中,使得除錯的時候無需重新編譯核心,也無需重啟系統,很大程度上方便了驅動 的除錯。但並不是只有裝置驅動才能...