从零读懂设备树语法与驱动绑定
📚 共计 30 章节
01
设备树的前世今生
为什么要有设备树?从平台设备到设备树的演进史。
📜 历史
⚙️ 演进
02
设备树基础语法
节点、属性、值的定义与规则。
📖 语法
🧱 节点
03
设备树文件结构
dts、dtsi、dtb、dtbo 文件格式与关系。
📁 格式
🔗 关联
04
设备树编译器
dtc 工具的使用与反编译技巧。
🛠️ dtc
🔄 反编译
05
地址编码:reg / #address-cells / #size-cells
详解地址编码与映射规则。
📍 地址
📐 cells
06
设备树中的中断
interrupt-parent、interrupts、interrupt-controller。
⚡ 中断
🧩 控制器
07
设备树中的 GPIO
gpio-controller、gpios 属性与 GPIO 号映射。
🔌 GPIO
📟 映射
08
设备树中的时钟
clocks、clock-names、assigned-clocks。
⏱️ 时钟
🎛️ 分配
09
设备树中的 pinmux
pinctrl-names、pinctrl-0 与引脚复用配置。
📍 引脚
🔀 复用
10
设备树中的电源管理
power-domains、regulator 与睡眠唤醒。
🔋 电源
💤 唤醒
11
设备树中的 DMA
dmas、dma-names 属性配置。
🚀 DMA
📦 传输
12
设备树中的音频
sound-dai、audio-codec 等音频相关属性。
🎵 音频
🎤 codec
13
设备树中的显示
display-timings、panel 与 framebuffer。
🖥️ 显示
📐 时序
14
设备树中的 USB
dr_mode、maximum-speed 与 phy 绑定。
🔌 USB
⚡ phy
15
设备树中的 PCIe
device_type、ranges、bus-range。
💻 PCIe
🌉 桥接
16
设备树中的网络
phy-mode、mac-address、fixed-link。
🌐 网络
📡 PHY
17
设备树中的 MMC/SD
bus-width、non-removable、cd-gpios。
💾 SD
📀 MMC
18
设备树中的 I2C
clock-frequency、reg 与多主模式。
🔗 I2C
📟 频率
19
设备树中的 SPI
spi-max-frequency、mode 与 cs-gpios。
🔌 SPI
⚙️ 模式
20
设备树中的 UART
current-speed、rts-gpios 与流控。
📠 UART
🔁 流控
21
设备树中的 PWM
pwms、pwm-names 与背光控制。
💡 PWM
🔆 背光
22
设备树中的 ADC
io-channels、#io-channel-cells。
📊 ADC
📈 通道
23
设备树中的看门狗
timeout-sec、wdt 与系统复位。
🐕 看门狗
🔄 复位
24
设备树中的 RTC
start-year、trickle-resistor-ohms。
⏰ RTC
🔋 电阻
25
设备树中的 NVMEM
nvmem-cells、nvmem-cell-names。
🧠 NVMEM
📦 单元
26
设备树中的 FPGA
fpga-bridge、fpga-region 与重配置。
🔲 FPGA
🔄 重配
27
设备树中的热管理
thermal-zones、cooling-maps。
🌡️ 热区
❄️ 冷却
28
设备树中的 LED
leds、default-state、linux,default-trigger。
💡 LED
🔔 触发
29
设备树中的按键
gpio-keys、poll-interval 与自动重复。
🔘 按键
🔄 重复
30
设备树驱动绑定实战
从零编写一个完整的设备树节点与驱动匹配。
🛠️ 实战
🧩 匹配