2015-09-25 88 views
2

我有興趣從設備樹的父節點向子節點傳遞一些數據(在運行時動態創建)。舉例來說,我在設備樹下面的條目:(?正確的)linux內核設備從父到子數據樹傳遞數據

parent_node { 
    a-string-property = "A string"; 
    a-string-list-property = "first string", "second string"; 
    a-byte-data-property = [0x01 0x23 0x34 0x56]; 
    child-node1 { 
     first-child-property; 
     second-child-property = <1>; 
     a-string-property = "Hello, world"; 
    }; 
    child-node2 { 
     some_data ; 
    }; 
}; 

據我所知,你不能在運行時創建的設備樹節點的/更新屬性。

那麼,有沒有一種機制來傳遞父節點和子節點(可能通過struct bus_typestruct devicestruct device_driver)之間的數據?

此數據傳遞的最終目的是爲設備的內存映射(子節點)的地址轉換提供偏移量。

+0

你有沒有「父節點和子節點之間*通數據*」的例子嗎? – sergej

+0

如果我有一個例子,我不會問:) – user426639

+0

「從父母到孩子傳遞數據」太含糊。有很多方法可以傳遞數據。你能更具體些嗎?你在說什麼子系統(時鐘,聲音......)?請描述用例。 – sergej

回答

0

您無法在運行時創建/更新設備樹節點的屬性(正確?)。

在某些平臺上,設備樹可以在運行時進行操作。 查看CONFIG_OF_DYNAMIC配置項。

Here是關於動態dt的介紹。

的平臺SPARC的PowerPCseem to have下面的函數用於此目的:

int of_set_property(struct device_node *dp, const char *name, void *val, int len) 
+0

你是對的 - sparc體系結構確實有這個特性,不確定pc的功耗。但是,不幸的是,我的體系結構是ARM,因此這條路是無關緊要的。任何人都可以提出一些涉及某些總線結構的東西(只需一個演練即可,沒有代碼必要:)) – user426639

相關問題