TI Tools

Device Tree Validator for Linux

🚧 Beta / Work in Progress

This tool is currently in beta and under active development.

While it provides useful syntax checking and validation, it may not catch all issues. Always test your device trees thoroughly and validate with the official dtc compiler before deployment.

📋 Web-Based Validator

This tool provides syntax validation and best practice checks for Device Tree Source (DTS) files.

For compilation and complete validation, use the official Device Tree Compiler (dtc):

dtc -I dts -O dtb -o output.dtb input.dts

This tool is useful for quick syntax checks, learning device tree structure, and catching common mistakes before compilation.

Note: Preprocessor directives (#include, #define, /dts-v1/) are recognized and preserved but not evaluated. Macros and constants will be displayed as-is.

Device Tree Source Input

About This Tool

This Device Tree Validator helps you check DTS/DTSI files for common syntax errors, structural issues, and adherence to best practices. It's particularly useful for TI MPU processor development where device trees define hardware configurations.

What It Checks

  • Syntax Errors: Malformed nodes, properties, and values
  • Node Structure: Proper hierarchy, naming conventions, unit addresses
  • Property Validation: Required properties, correct formats for reg, interrupts, etc.
  • References: Phandle references, label definitions and usage
  • Compatibility Strings: Valid format and known vendor prefixes
  • Best Practices: Deprecated properties, common patterns, TI-specific guidance

Common Property Formats

reg: <address size> - e.g., <0x4a100000 0x1000>
interrupts: Depends on interrupt-parent, typically <irq-num flags>
compatible: String list - e.g., "ti,am625-uart", "ti,am64-uart"
status: "okay", "disabled", "reserved", or "fail"
phandles: Reference using &label or <phandle-value>

TI-Specific Guidelines

  • Use appropriate compatible strings with "ti," vendor prefix
  • Include pinmux configurations for peripherals
  • Specify power-domains for devices that require them
  • Configure clocks and clock-names properly
  • Set up interrupt routing through appropriate controllers