3.7内核对设备树的处理——内核中设备树的操作函数

本节介绍一下设备树中的常用操作。

include/linux/目录下有很多of开头的头文件。

根据设备树的处理流程:

(dts -> )dtb -> device_node -> platform_device

可以分为三个部分:

  1. 处理DTB;
  2. 处理device_node;
  3. 处理 platform_device;

处理DTB

of_fdt.h           // dtb文件的相关操作函数, 我们一般用不到, 因为dtb文件在内核中已经被转换为device_node树(它更易于使用)

处理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的相关函数

处理 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值