From 0bcf84b155e281e15280311d21a077b3c3b80871 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=AD=20Bol=C3=ADvar?= Date: Wed, 19 Feb 2020 13:34:35 -0800 Subject: [PATCH] doc: dts/intro.rst improvements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Syntax highlight all the DTS fragments and add some more explanatory text. Split the content about important properties into its own section, and add a similar section about unit addresses. Signed-off-by: Martí Bolívar --- doc/guides/dts/intro.rst | 178 ++++++++++++++------ doc/guides/dts/zephyr_dt_i2c_high_level.png | Bin 9700 -> 6380 bytes doc/guides/dts/zephyr_dt_i2c_high_level.svg | 2 +- 3 files changed, 130 insertions(+), 50 deletions(-) diff --git a/doc/guides/dts/intro.rst b/doc/guides/dts/intro.rst index 85ee790a539..28588e06888 100644 --- a/doc/guides/dts/intro.rst +++ b/doc/guides/dts/intro.rst @@ -33,6 +33,8 @@ drivers. Zephyr does not work this way because the size of the devicetree binary and associated handling code would be too large to fit comfortably on the relatively constrained devices Zephyr supports. +.. _dt-syntax: + Syntax and structure ******************** @@ -44,7 +46,7 @@ for this tree is called DTS (for devicetree source), and is defined in the Here is an example DTS file: -.. code-block:: none +.. code-block:: DTS /dts-v1/; @@ -56,9 +58,12 @@ Here is an example DTS file: }; }; -This example has three nodes: +The ``/dts-v1/;`` line means the file's contents are in version 1 of the DTS +syntax, which has replaced a now-obsolete "version 0". -#. A root node +The tree has three *nodes*: + +#. A root node: ``/`` #. A node named ``a-node``, which is a child of the root node #. A node named ``a-sub-node``, which is a child of ``a-node`` @@ -82,25 +87,28 @@ for a complete list of ways to write a property value in a DTS file. In practice, devicetree nodes correspond to some hardware, and the node hierarchy reflects the hardware's physical layout. For example, let's consider -a board with three I2C peripherals connected to an I2C bus master on an SoC, +a board with three I2C peripherals connected to an I2C bus controller on an SoC, like this: .. figure:: zephyr_dt_i2c_high_level.png :alt: representation of a board with three I2C peripherals :figclass: align-center -Nodes corresponding to the I2C bus master and each I2C peripheral would be +Nodes corresponding to the I2C bus controller and each I2C peripheral would be present in this board's devicetree. Reflecting the hardware layout, the -devicetree's peripheral nodes would be children of the bus master node. Similar -conventions exist for representing other types of hardware in devicetree. +devicetree's peripheral nodes would be children of the bus controller node. +Similar conventions exist for representing other types of hardware in +devicetree. -The corresponding DTS would look something like this: +The DTS would look something like this: -.. code-block:: none +.. code-block:: DTS + + /dts-v1/; / { soc { - i2c-bus-master { + i2c-bus-controller { i2c-peripheral-1 { }; i2c-peripheral-2 { @@ -121,20 +129,117 @@ names and properties you might see when working with I2C devices. .. figure:: zephyr_dt_i2c_example.png :figclass: align-center - I2C devicetree example with real-world names and properties + I2C devicetree example with real-world names and properties. + Node names are at the top of each node with a gray background. + Properties are shown as "name=value" lines. -Above, node names -- like ``i2c@40003000`` -- are at the top of each node, with -a gray background, except for the root node, which is shown using its path -``/``. Properties are shown as ``name=value`` pairs below the node names. +This is the corresponding DTS: + +.. code-block:: DTS + + /dts-v1/; + + / { + soc { + i2c@40003000 { + compatible = "nordic,nrf-twim"; + label = "I2C_0"; + reg = <0x40003000 0x1000>; + + apds9960@39 { + compatible = "avago,apds9960"; + label = "APDS9960"; + reg = <0x39>; + }; + ti_hdc@43 { + compatible = "ti,hdc", "ti,hdc1010"; + label = "HDC1010"; + reg = <0x43>; + }; + mma8652fc@1d { + compatible = "nxp,fxos8700", "nxp,mma8652fc"; + label = "MMA8652FC"; + reg = <0x1d>; + }; + }; + }; + }; + +In addition to showing more realistic names and properties, the above example +introduces a new devicetree concept: unit addresses. Unit addresses are the +parts of node names after an "at" sign (``@``), like ``40003000`` in +``i2c@40003000``, or ``39`` in ``apds9960@39``. Unit addresses are optional: +the ``soc`` node does not have one. + +Some more details about unit addresses and important properties follow. + +Unit address examples +********************* + +In devicetree, unit addresses give a node's address in the +address space of its parent node. Here are some example unit addresses for +different types of hardware. + +Memory-mapped peripherals + The peripheral's register map base address. + For example, the node named ``i2c@40003000`` represents an I2C controller + whose register map base address is 0x40003000. + +I2C peripherals + The peripheral's address on the I2C bus. + For example, the child node ``apds9960@39`` of the I2C controller + in the previous section has I2C address 0x39. + +SPI peripherals + An index representing the peripheral's chip select line number. + (If there is no chip select line, 0 is used.) + +Memory + The physical start address. + For example, a node named ``memory@2000000`` represents RAM starting at + physical address 0x2000000. + +Memory-mapped flash + Like RAM, the physical start address. + For example, a node named ``flash@8000000`` represents a flash device + whose physical start address is 0x8000000. + +Flash partitions + The start offset of the partition within its flash device. + For example, take this flash device and its partitions: + + .. code-block:: DTS + + flash@8000000 { + /* ... */ + partitions { + partition@0 { /* ... */ }; + partition@20000 { /* ... */ }; + /* ... */ + }; + }; + + The node named ``partition@0`` has offset 0 from the start of its flash + device, so its base address is 0x8000000. Similarly, the base address of + the node named ``partition@20000`` is 0x8020000. + +Important properties +******************** Some important properties are: compatible - Says what kind of device the node represents. The value is a - string in the format "vendor,device", like ``"avago,apds9960"``, or a - sequence of these, like ``"ti,hdc", "ti,hdc1010"``. The build system uses - the compatible property to find the right :ref:`bindings ` for - the node. + Says what kind of device the node represents. The recommended format is + ``"manufacturer,device"``, like ``"avago,apds9960"``, or a sequence of + these, like ``"ti,hdc", "ti,hdc1010"``. The file + :zephyr_file:`dts/bindings/vendor-prefixes.txt` contains a list of accepted + ``manufacturer`` prefixes. + + It is also sometimes a value like ``gpio-keys``, ``mmio-sram``, or + ``fixed-clock`` when the hardware's behavior is generic. + + The build system uses the compatible property to find the right + :ref:`bindings ` for the node. label The device's name according to Zephyr's :ref:`device_drivers`. The value @@ -154,36 +259,11 @@ reg select line, or some other value depending on the kind of device the node represents. -This tree has the following DTS. - -.. code-block:: none - - / { - soc { - i2c@40003000 { - compatible = "nordic,nrf-twim"; - label = "I2C_0"; - reg = <0x40003000 0x1000>; - - apds9960@39 { - compatible = "avago,apds9960"; - label = "APDS9960"; - reg = <0x39>; - }; - ti_hdc@43 { - compatible = "ti,hdc", "ti,hdc1010"; - label = "HDC1010; - reg = <0x43>; - }; - mma8652fc@1d { - compatible = "nxp,fxos8700", "nxp,mma8652fc"; - label = "MMA8652FC"; - reg = <0x1d>; - }; - }; - }; - }; - + Unlike a node's unit address, which is a simple number, the reg property is + an array of 32-bit unsigned integers. This is often used to describe the + size of a register map. In the case of the ``i2c@40003000`` node above, + ``reg = <0x40003000 0x1000>;`` means the register map occupies 0x1000 bytes + in the memory map. Input and output files ********************** diff --git a/doc/guides/dts/zephyr_dt_i2c_high_level.png b/doc/guides/dts/zephyr_dt_i2c_high_level.png index b34f222d742d8343794c36ac8192ac0b1a641950..a76b3e89a077fed8908859b77ae1a58f774f58f0 100644 GIT binary patch literal 6380 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 diff --git a/doc/guides/dts/zephyr_dt_i2c_high_level.svg b/doc/guides/dts/zephyr_dt_i2c_high_level.svg index 8a4ce228339..da6fe4d9c89 100644 --- a/doc/guides/dts/zephyr_dt_i2c_high_level.svg +++ b/doc/guides/dts/zephyr_dt_i2c_high_level.svg @@ -1,3 +1,3 @@ -
/
/
I2C bus master
I2C bus master
soc
soc
I2C peripheral 3
I2C peripheral 3
I2C peripheral 2
I2C peripheral 2
I2C peripheral 1
I2C peripheral 1
\ No newline at end of file +
/
/
I2C bus controller
I2C bus controller
soc
soc
I2C peripheral 3
I2C peripheral 3
I2C peripheral 2
I2C peripheral 2
I2C peripheral 1
I2C peripheral 1