Device-tree bindings
Device-tree bindings describe the intended device-tree ABI. Use them when adding a board, selecting peripheral resources, or writing an overlay, and check the matching driver and existing device-tree nodes for implementation details. A schema’s presence does not establish complete property coverage or a successful validation run.
The following S31 schemas are under
linux-esp32-s31/Documentation/devicetree/bindings/:
Schema |
Device |
|---|---|
|
Clock and reset controller |
|
General-purpose timers |
|
Pulse counters |
|
Temperature sensor |
|
I2C controller |
|
ADC |
|
DAC |
|
Radio |
|
eFuse |
|
Pin controller and GPIO matrix |
|
Power domains |
|
LEDC and MCPWM providers |
|
Shared analog register-I2C power/reset regulator |
|
General-purpose LDOs |
|
I2S controller |
|
SPI host and target |
Some devices use generic Linux schemas. Check the node’s compatible value
and the associated driver when locating its binding.
Board files and overlays
The base description is arch/riscv/boot/dts/espressif/esp32s31.dtsi. Optional
controllers are enabled by esp32s31-overlay-*.dtso files in the same
directory. The overlay guide shows how to
add a controller, pin routes, and user-selectable parameters.
Validate a change
Use the kernel’s dt_binding_check target for schema changes and dtbs_check
for device-tree changes, with the same RISC-V configuration and toolchain as
the kernel build. These checks require the device-tree schema tools on the
host.
After validation, build the kernel and rootfs to package the updated DTBs and overlays, then test the device on the board.