1.. _devicetree:
2
3Devicetree
4##########
5
6A *devicetree* is a hierarchical data structure primarily used to describe
7hardware. Zephyr uses devicetree in two main ways:
8
9- to describe hardware to the :ref:`device_model_api`
10- to provide that hardware's initial configuration
11
12This page links to a high level guide on devicetree as well as reference
13material.
14
15.. _dt-guide:
16
17Devicetree Guide
18****************
19
20The pages in this section are a high-level guide to using devicetree for Zephyr
21development.
22
23.. toctree::
24   :maxdepth: 2
25
26   intro.rst
27   design.rst
28   bindings.rst
29   api-usage.rst
30   phandles.rst
31   zephyr-user-node.rst
32   howtos.rst
33   troubleshooting.rst
34   dt-vs-kconfig.rst
35
36.. _dt-reference:
37
38Devicetree Reference
39********************
40
41These pages contain reference material for Zephyr's devicetree APIs and
42built-in bindings.
43
44For the platform-independent details, see the `Devicetree specification`_.
45
46.. _Devicetree specification: https://www.devicetree.org/
47
48.. We use ":glob:" with "*" here to add the generated bindings page.
49
50.. toctree::
51   :maxdepth: 3
52   :glob:
53
54   api/*
55