设备树绑定

设备树绑定描述预期的设备树 ABI。添加开发板、选择外设资源或编写覆盖层时, 应查阅这些绑定,并结合对应驱动和现有设备树节点了解实现细节。存在 schema 文件并不代表它覆盖了所有属性,也不代表已经通过验证。

以下 S31 schema 位于 linux-esp32-s31/Documentation/devicetree/bindings/ 下:

Schema

设备

clock/espressif,esp32s31-clk.yaml

时钟和复位控制器

counter/espressif,esp32s31-gptimer.yaml

通用定时器

counter/espressif,esp32s31-pcnt.yaml

脉冲计数器

hwmon/espressif,esp32s31-tsens.yaml

温度传感器

i2c/espressif,esp32s31-i2c.yaml

I2C 控制器

iio/adc/espressif,esp32s31-adc.yaml

ADC

iio/dac/espressif,esp32s31-dac.yaml

DAC

net/wireless/espressif,esp32s31-radio.yaml

无线

nvmem/espressif,esp32s31-efuse.yaml

eFuse

pinctrl/espressif,esp32s31-pinctrl.yaml

引脚控制器和 GPIO 矩阵

power/espressif,esp32s31-pmu.yaml

电源域

pwm/espressif,esp32s31-pwm.yaml

LEDC 和 MCPWM 提供者

regulator/espressif,esp32s31-ana-i2c.yaml

模拟寄存器 I2C 的共享供电/复位调节器

regulator/espressif,esp32s31-gp-ldo.yaml

通用 LDO

sound/espressif,esp32s31-i2s.yaml

I2S 控制器

spi/espressif,esp32s31-gpspi.yaml

SPI 主机和目标端

部分设备使用通用 Linux schema。查找绑定时,请检查节点的 compatible 值和对应驱动。

开发板文件和覆盖层

基础硬件描述为 arch/riscv/boot/dts/espressif/esp32s31.dtsi。 同一目录下的 esp32s31-overlay-*.dtso 文件用于启用可选控制器。 覆盖层指南介绍了如何添加控制器、引脚路由和用户可选参数。

验证更改

修改 schema 后,使用内核的 dt_binding_check 目标检查;修改设备树后,使用 dtbs_check 检查。 检查时使用与内核构建相同的 RISC-V 配置和工具链。主机上需要安装设备树 schema 工具。

验证后,构建内核和 rootfs,将更新后的 DTB 和覆盖层打包,再在开发板上测试设备。