📘 设备树语法解析 & 驱动匹配实战
🎯 30章
从入门到实战
01
设备树起源
从板级文件到设备树的演进历史
02
设备树基础概念
DTS、DTC、DTB、DTBO 文件格式与关系
03
设备树语法入门
根节点、子节点、属性的基本写法
04
设备树节点定义
节点名称、路径、标签(label)的使用
05
设备树属性详解
compatible, reg, interrupts, status 等核心属性
06
设备树地址编码
#address-cells, #size-cells, reg 地址映射
07
设备树中断控制器
interrupt-parent, interrupts, interrupt-controller
08
设备树时钟与GPIO
clocks, gpios, pinctrl 绑定与使用
09
设备树别名与chosen
aliases 节点、chosen 节点 (bootargs, stdout-path)
10
设备树包含文件
#include 与 /include/ 区别,dtsi 复用
11
设备树覆盖 (Overlay)
DTBO 生成、加载与动态设备树原理
12
设备树绑定文档
阅读内核 Documentation/bindings/ YAML 文档
13
设备树编译与反编译
dtc 工具,DTB 反编译回 DTS
14
内核设备树解析流程
从 bootloader 传递 DTB 到内核解析链路
15
OF API 详解 (上)
of_find_node_by_path, of_get_property 等常用API
16
OF API 详解 (下)
of_match_table, of_irq_get, of_get_named_gpio_flags
17
Platform 驱动匹配机制
设备树节点与 platform_driver 匹配
18
设备树与 I2C 设备
I2C 子节点定义,i2c_client 生成与匹配
19
设备树与 SPI 设备
SPI 子节点定义,spi_device 生成与匹配
20
设备树与 MMC/SDIO
mmc 控制器节点与 SDIO 功能设备绑定
21
设备树与 PCIe
PCIe 总线在设备树中的描述方式
22
设备树与 DMA
dmas, dma-names 配置与 DMA 引擎绑定
23
设备树与 PWM
pwms, pwm-names 属性使用与 PWM 驱动匹配
24
设备树与音频设备
sound 节点、DAI link 配置与 ASoC 匹配
25
设备树与显示/DRM
display-timings, panel 节点与 DRM 匹配
26
设备树与电源管理
regulator 节点、power-domains 属性配置
27
设备树与热管理
thermal-zones, cooling-devices 与 thermal 框架
28
设备树调试技巧
/sys/firmware/devicetree 和 of_dump 调试
29
设备树常见错误与排查
编译错误、匹配失败、资源冲突实战排查
30
综合实战
从零编写字符设备驱动设备树节点并匹配