A curated list of awesome DeviceTree resources, tools, tutorials, and specifications for embedded systems and driver development.
DeviceTree (DT) is a data structure used to describe hardware. It allows operating systems to remain agnostic of specific hardware configurations by passing a description of the hardware at boot time.
- Foundations
- Tools & Compilers
- Educational Resources
- OS Implementations
- Android DTO & Architecture
- Hardware Overlays
- Specifications & Standards
- Community
- DeviceTree.org — Official project home.
- Introduction to Device Tree — High-level overview and reference on the eLinux wiki.
- The Devicetree Specification — Authoritative source for DT syntax and structure.
- dt-schema — Tools for validating DeviceTree files using YAML-based schemas.
- dtc (Device Tree Compiler) — Standard compiler for converting
.dts(source) to.dtb(binary). - fdtoverlay Usage — Official Linux kernel documentation on how overlays are resolved and applied.
- Visual Studio Code Extension — Comprehensive syntax highlighting and formatting for
.dts,.dtsi, and.dtsofiles.
- Bootlin Linux Kernel Training Slides — Professional, deep-dive slides used in kernel development training (Includes a dedicated ~70 page Device Tree section).
- Demystifying Device Tree — High-level overview of DeviceTree history, architecture, and syntax fundamentals.
- Device Tree for Dummies — Thomas Petazzoni's legendary intro. (Video Version).
- Parsing Device Tree in Linux Drivers — Practical, code-heavy tutorial showing how to parse node properties from within a Linux Kernel Module.
- Fuchsia Devicetree Overview — Overview of how the Fuchsia platform utilizes DT for board configuration.
- Linux Kernel DT Usage Model — Official guide on how the Linux kernel consumes and manages device nodes.
- U-Boot Device Tree — Hardware management at the bootloader level.
- Zephyr RTOS DeviceTree — Documentation on how Zephyr uses DT for hardware abstraction and build-time configuration.
- Android Device Tree Overlays (DTO) — Official AOSP documentation on the DTO implementation, including bootloader requirements.
- Compile and Verify DTO — Guide on using
dtcfor Android-specific DTBO images. - DTBO Partition — Details on the dedicated storage for overlays in the Android partition table.
- DTO Syntax & Rules — Specifics on using
/plugin/and__overlay__fragments in Android.
- BeagleBoard DeviceTrees — Practical examples for the AM335x and other TI-based platforms.
- Raspberry Pi Overlays — Massive collection of real-world overlay examples for various HATs and peripherals.
- Standard Bindings — Official YAML schemas for common hardware classes (GPIO, I2C, SPI).
- DeviceTree Mailing List Archive — Archive of technical discussions, patches, and binding reviews.
- Libera.Chat IRC — Home of the
#devicetreechannel for real-time community support.
Contributions are welcome! Please read the contributing guidelines first.
To the extent possible under law, the authors have waived all copyright and related or neighboring rights to this work.