1. 程式人生 > >Linux核心驅動基礎-裝置樹相關匯流排使用

Linux核心驅動基礎-裝置樹相關匯流排使用

mmc匯流排使用例項

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檔案解耦

I2C匯流排使用例項

status  表示使能該匯流排控制器,enable或者disable

clock-frequency  設定i2c匯流排頻率,一般為400KHZ或者100KHZ

i2c控制器節點存在子節點時,該控制器節點必須指定下面兩個選項

#address-cells  值必須是1

#size-cells  值必須是0

由於I2C子節點屬性比較簡單,因此不進行任何講解

 

 

上面有兩個圖,都是用來定義i2c控制器節點屬性

第一個描述i2c控制器的不變屬性,比如i2c控制器的暫存器地址,中斷,一般定義在.dtsi檔案中

第二個描述子節點屬性,一般定義在.dts檔案中

SPI匯流排使用例項

status  表示使能該匯流排控制器,enable或者disable

cs-gpios  使用gpio管腳作為片選訊號

num-cs  表示片選訊號數量,包括原生片選訊號和gpio片選訊號

比如:cs-gpios = <0>  <0>  <&gpio1 18 GPIO_ACTIVE_LOW>

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)匯流排位寬為4spi-tx-bus-width = <4>

spi-rx-bus-width  設定spi控制器輸入匯流排位寬,預設為1(僅有一根資料線作為MISO)QSPI(QUAD)匯流排位寬為4spi-rx-bus-width = <4>

 

上圖為spi控制器節點及其子節點屬性:

網路phy晶片ks8995m使用cs0片選訊號,spi匯流排頻率為1MHZ

音訊晶片tlv320aic26使用cs1片選訊號,spi匯流排頻率為100KHZ