Zephyr Project
3.1.0

Contents

  • Introduction
  • Developing with Zephyr
  • Kernel
  • OS Services
  • Build and Configuration Systems
    • Build System (CMake)
    • Devicetree
      • Introduction to devicetree
      • Design goals
      • Devicetree bindings
      • Devicetree access from C/C++
      • Devicetree HOWTOs
      • Troubleshooting devicetree
      • Devicetree versus Kconfig
      • Reference
    • Configuration System (Kconfig)
    • Zephyr CMake Package
  • Connectivity
  • Hardware Support
  • Contributing to Zephyr
  • Project and Governance
  • Security
  • Samples and Demos
  • Supported Boards
  • Release Notes
Zephyr Project
  • Build and Configuration Systems
  • Devicetree
  • View page source

Devicetree

This is a high-level guide to devicetree as it is used for Zephyr development. See Reference for reference material.

  • Introduction to devicetree
    • Syntax and structure
    • Unit address examples
    • Important properties
    • Writing property values
    • Aliases and chosen nodes
    • Input and output files
  • Design goals
    • Single source for all hardware information
    • Source compatibility with other operating systems
  • Devicetree bindings
    • Introduction
    • Bindings file syntax
    • Rules for mainline bindings
    • Inferred bindings
  • Devicetree access from C/C++
    • A note for Linux developers
    • Node identifiers
    • Node identifiers are not values
    • Property access
    • Other APIs
    • Device driver conveniences
    • Hardware specific APIs
    • Generated macros
  • Devicetree HOWTOs
    • Get your devicetree and generated header
    • Get a struct device from a devicetree node
    • Find a devicetree binding
    • Set devicetree overlays
    • Use devicetree overlays
    • Write device drivers using devicetree APIs
    • Device drivers that depend on other devices
    • Applications that depend on board-specific devices
  • Troubleshooting devicetree
    • Try again with a pristine build directory
    • Make sure <devicetree.h> is included
    • Make sure you’re using the right names
    • Look at the preprocessor output
    • Validate properties
    • Check for missing bindings
    • Errors with DT_INST_() APIs
  • Devicetree versus Kconfig
  • Reference
    • Devicetree API
Next Previous

© Copyright 2015-2022 Zephyr Project members and individual contributors. Last updated on Feb 22, 2023.

Zephyr Project
Bridle
Bridle API
Zephyr Project API
Kconfig Reference
Devicetree Bindings