內核中設備樹的操作函數


include/linux/目錄下有很多of開頭的頭文件是與設備樹相關的。

在內核中設備樹處理的一般過程為:.dts -> .dtb -> device_node -> platform_device

a. 處理DTB
of_fdt.h                            // dtb文件的相關操作函數, 我們一般用不到, 因為dtb文件在內核中已經被轉換為device_node樹(它更易於使用)

b. 處理device_node
of.h                                 // 提供設備樹的一般處理函數, 比如 of_property_read_u32(讀取某個屬性的u32值), of_get_child_count(獲取某個device_node的子節點數)
of_address.h                  // 地址相關的函數, 比如 of_get_address(獲得reg屬性中的addr, size值)
of_match_device(從matches數組中取出與當前設備最匹配的一項)
of_dma.h                       // 設備樹中DMA相關屬性的函數
of_gpio.h                        // GPIO相關的函數
of_graph.h                      // GPU相關驅動中用到的函數, 從設備樹中獲得GPU信息
of_iommu.h                    // 很少用到
of_irq.h                          // 中斷相關的函數
of_mdio.h                       // MDIO (Ethernet PHY) API
of_net.h                          // OF helpers for network devices.
of_pci.h                           // PCI相關函數
of_pdt.h                          // 很少用到
of_reserved_mem.h       // reserved_mem的相關函數

c. 處理 platform_device
of_platform.h                // 把device_node轉換為platform_device時用到的函數,
                                     // 比如of_device_alloc(根據device_node分配設置platform_device),
                                     // of_find_device_by_node (根據device_node查找到platform_device),
                                     // of_platform_bus_probe (處理device_node及它的子節點)
of_device.h                  // 設備相關的函數, 比如 of_match_device

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM