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 表示
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 支援
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)匯流排位寬為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