This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/nuttx-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 93cf07d0d2 Publishing docs: 0dcbf44487dc1327e4932521e18a0e797dbfaf00
(web: b3ba9359c605c5e92ad2feac6444e03d16143fd3)
93cf07d0d2 is described below
commit 93cf07d0d2ab6e84920c9e8becaf506ad6acdf57
Author: Swatantra Yadav <[email protected]>
AuthorDate: Thu Oct 22 01:09:01 2026 +0000
Publishing docs: 0dcbf44487dc1327e4932521e18a0e797dbfaf00 (web:
b3ba9359c605c5e92ad2feac6444e03d16143fd3)
---
.../applications/system/wifibridge/index.rst.txt | 53 ++-
.../os/drivers/special/power/index.rst.txt | 2 +
.../os/drivers/special/power/lm51772.rst.txt | 178 +++++++++
.../_sources/os/drivers/special/power/smps.rst.txt | 72 ++++
.../latest/_sources/os/filesystem/index.rst.txt | 4 +-
.../applications/system/wifibridge/index.html | 50 ++-
.../components/drivers/special/power/lm51772.html | 5 +
.../components/drivers/special/power/smps.html | 5 +
.../latest/guides/programs/fully_linked_elf.html | 2 +-
.../guides/programs/partially_linked_elf.html | 2 +-
content/docs/latest/objects.inv | Bin 257174 -> 257473 bytes
content/docs/latest/os/drivers/special/index.html | 18 +
.../drivers/special/power/battery/fakegauge.html | 4 +-
.../latest/os/drivers/special/power/index.html | 18 +
.../latest/os/drivers/special/power/lm51772.html | 445 +++++++++++++++++++++
.../os/drivers/special/power/power_management.html | 4 +-
.../special/power/{index.html => smps.html} | 153 +++++--
content/docs/latest/os/filesystem/index.html | 4 +-
.../arm/stm32c0/boards/nucleo-c092rc/index.html | 60 +--
.../arm64/fvp-v8r/boards/fvp-armv8r/index.html | 88 ++--
.../arm64/zynq-mpsoc/boards/zcu111/index.html | 60 +--
.../boards/esp32c3-legacy-devkit/index.html | 4 +-
.../esp32c3/boards/esp32c3-devkit/index.html | 6 +-
.../esp32c6/boards/esp32c6-devkitc/index.html | 2 +-
.../esp32c6/boards/esp32c6-devkitm/index.html | 2 +-
.../esp32h2/boards/esp32h2-devkit/index.html | 2 +-
content/docs/latest/searchindex.js | 2 +-
27 files changed, 1059 insertions(+), 186 deletions(-)
diff --git
a/content/docs/latest/_sources/applications/system/wifibridge/index.rst.txt
b/content/docs/latest/_sources/applications/system/wifibridge/index.rst.txt
index c5804fde6f..bca530a5bc 100644
--- a/content/docs/latest/_sources/applications/system/wifibridge/index.rst.txt
+++ b/content/docs/latest/_sources/applications/system/wifibridge/index.rst.txt
@@ -41,6 +41,9 @@ The defaults used when an option is not given on the command
line are:
``CONFIG_NETUTILS_WIFIBRIDGE_DHCPD``
Allow the ``-d`` option, which runs the DHCP server on the bridge
(``CONFIG_NETUTILS_DHCPD``).
+``CONFIG_NETUTILS_WIFIBRIDGE_PERSIST``
+ Allow ``save`` and ``clear``, which keep the configuration across resets
+ (see `Keeping the configuration`_).
Change the default passphrase before deploying a board.
@@ -50,9 +53,12 @@ Usage
.. code-block:: console
wifibridge start [-s <ssid>] [-p <passphrase>] [-c <channel>] [-3]
- [-a <ipaddr>] [-d]
+ [-a <ipaddr>] [-d|-D]
wifibridge stop
wifibridge status
+ wifibridge save [-s <ssid>] [-p <passphrase>] [-c <channel>] [-3]
+ [-a <ipaddr>] [-d|-D]
+ wifibridge clear
``start``
Configure the Wi-Fi interface as an access point, create the bridge,
@@ -73,17 +79,58 @@ Usage
``-d``
Run the DHCP server on the bridge. Leave it out when another DHCP
server is reachable through the Ethernet port.
+ ``-D``
+ Do not run the DHCP server. It is the default; with ``save`` it
+ turns off a ``-d`` that was kept before.
``stop``
Stop the DHCP server, remove the ports, delete the bridge and stop the
access point.
``status``
Show whether the bridge exists, its address, the state of the two
ports and the SSID of the access point.
+``save``
+ Keep the configuration, see `Keeping the configuration`_. It takes the
+ same options as ``start``, and does not start anything.
+``clear``
+ Forget the saved configuration.
The Ethernet and Wi-Fi interfaces carry no IP address of their own: only
the bridge does. The Ethernet interface needs a MAC address, which a
board without a factory programmed one has to provide.
+Keeping the configuration
+=========================
+
+With ``CONFIG_NETUTILS_WIFIBRIDGE_PERSIST``, ``wifibridge save`` keeps the
+SSID, the passphrase, the channel, the security, the address and the DHCP
+server option, and ``wifibridge start`` uses them instead of the defaults
+of the configuration. The options of ``start`` still win, for that run
+only. ``wifibridge clear`` forgets them and the defaults are used again.
+The options of ``save`` are applied over what is already saved, if there is
+something, and over the defaults otherwise.
+
+.. code-block:: console
+
+ nsh> wifibridge save -s MyBridge -p mypassphrase -c 11 -a 10.0.0.7 -d
+ nsh> reboot
+ ...
+ nsh> wifibridge start
+ nsh> wifibridge status
+ br0 present 10.0.0.7
+ eth0 up
+ wlan0 up ssid "MyBridge"
+
+The configuration is one record, with a CRC, at the start of
+``CONFIG_NETUTILS_WIFIBRIDGE_STORAGE``. That is a file of a file system
+that is mounted at boot (the default is ``/data/wifibridge.conf``), or a block
+device, such as the MTD of a few pages of the flash (it needs ``CONFIG_BCH``
+to be opened by name). Saving a device erases and writes the flash that
+holds it, so it should be used for this alone. A record that is missing or
+damaged is ignored. The passphrase is stored as is.
+
+On the PIC32MZ-W1, ``CONFIG_PIC32MZ_PROGMEM`` with ``CONFIG_MTD_PROGMEM``
+provides such a device in the last pages of the program flash.
+
Example
=======
@@ -102,7 +149,7 @@ Limitations
* Only the access point mode is supported. A station cannot be bridged
at layer 2 because it cannot send frames with foreign source addresses.
* ``start`` fails with ``EEXIST`` if the bridge already exists.
-* The SSID and the passphrase are not saved: they come from the
- command line or from the defaults of the configuration.
+* The saved configuration does not include the names of the interfaces and
+ the netmask, which come from the configuration.
* The rest of the limits of the bridge apply, see
:doc:`/os/networking/bridge`.
diff --git
a/content/docs/latest/_sources/os/drivers/special/power/index.rst.txt
b/content/docs/latest/_sources/os/drivers/special/power/index.rst.txt
index c5eb790497..4e0561071f 100644
--- a/content/docs/latest/_sources/os/drivers/special/power/index.rst.txt
+++ b/content/docs/latest/_sources/os/drivers/special/power/index.rst.txt
@@ -8,6 +8,8 @@ Power-related Drivers
pm/index.rst
regulator.rst
battery/fakegauge.rst
+ smps.rst
+ lm51772.rst
.. toctree::
:maxdepth: 1
diff --git
a/content/docs/latest/_sources/os/drivers/special/power/lm51772.rst.txt
b/content/docs/latest/_sources/os/drivers/special/power/lm51772.rst.txt
new file mode 100644
index 0000000000..9da293e6e5
--- /dev/null
+++ b/content/docs/latest/_sources/os/drivers/special/power/lm51772.rst.txt
@@ -0,0 +1,178 @@
+==========================================
+TI LM51772 buck-boost controller
+==========================================
+
+The LM51772 driver (``drivers/power/supply/lm51772.c``) is a lower half
+of the :doc:`SMPS driver <smps>` for the Texas Instruments LM51772 buck-boost
+controller, controlled over I2C. It is enabled with
+``CONFIG_SMPS_LM51772``, which needs ``CONFIG_DRIVERS_SMPS`` and
+``CONFIG_I2C``. The register map and the bit fields, with the names of the
+datasheet, are in ``include/nuttx/power/lm51772.h``.
+
+The converter regulates a constant output voltage (``SMPS_OPMODE_CV``, the
+only mode) with an output current limit. The driver reports the state and
+the faults, but it has no output feedback.
+
+Board interface
+===============
+
+The board registers the device with::
+
+ int lm51772_register(const char *path, const struct lm51772_config_s
*config);
+
+and describes the hardware in ``struct lm51772_config_s``:
+
+===================== ====================================================
+Field Description
+===================== ====================================================
+``i2c`` I2C bus
+``frequency`` I2C frequency
+``addr`` 7-bit address, 0x6a if 0
+``r_isns_mohm`` Output sense resistor, in milliohms, which sets the
+ scale of the current limit
+``v_out_min``, Absolute maximum ratings of the board, 0 for none.
+``v_out_max``, See below.
+``i_out_max``,
+``p_out_max``
+``enable``, ``arg`` Callback that drives the EN/UVLO pin. It is called
+ with interrupts disabled when switching off, so it
+ must not sleep.
+``init``, ``ninit`` Registers written at start, in order. See below.
+===================== ====================================================
+
+Start and stop
+--------------
+
+The controller is enabled and configured by ``PWRIOC_START``, not when the
+device is opened, because the upper half calls the lower half ``setup`` with
+interrupts disabled and the configuration needs I2C:
+
+#. The ``enable`` callback is called and the driver waits 15 ms for the
+ supplies of the controller.
+#. The driver reads ``STATUS_BYTE`` to check that the controller answers.
+ Otherwise the ``enable`` callback is called again to disable it and the
+ error is returned by ``PWRIOC_START``.
+#. The registers of ``init`` are written in order, and the step of the output
+ voltage is read back from ``MFR_SPECIFIC_D8`` (``SEL_FB_DIV20``).
+#. The output voltage target and the current limit are written, and the
+ latched faults are cleared.
+#. ``CONV_EN`` and ``CONV_EN2`` are set, and ``FORCE_DISCH`` is cleared.
+
+``PWRIOC_STOP`` clears ``CONV_EN`` and ``CONV_EN2`` and sets ``FORCE_DISCH``,
+which discharges the output. When the device is closed for the last time the
+``enable`` callback disables the controller and the converter stops, so a
+program that starts it has to keep the device open while it runs.
+
+Register list
+-------------
+
+``init`` lists the registers that the board needs to change from the values
+loaded by the controller. ``MFR_SPECIFIC_D0`` is written with ``CONV_EN``
+cleared, since the power stage starts only with ``PWRIOC_START``. If the
+output voltage step is not the default one (``MFR_SPECIFIC_D8``), the entry
+must be in the list. An ``ILIM_THRESHOLD`` entry sets the current limit at
+start, when the parameters keep it, and
+``LM51772_ILIM_THRESHOLD(ma, mohm)`` computes its value.
+
+Absolute maximum ratings
+------------------------
+
+The limits (``PWRIOC_SET_LIMITS``) and the parameters (``PWRIOC_SET_PARAMS``)
+set by the application are refused with ``-EINVAL`` when they exceed the
+ratings of the board: an output voltage outside of ``v_out_min`` to
+``v_out_max``, a current above ``i_out_max``, or a power ``v_out * i_out``
+above ``p_out_max``. A current or power limit left at 0 becomes the rating.
+When the parameters keep the current limit, the current of the ``init``
+``ILIM_THRESHOLD`` entry is used for the power check.
+
+The ``ILIM_THRESHOLD`` register saturates at 70 mV across the sense resistor
+(0x8c), and a current limit that needs a higher value is refused with
+``-EINVAL``.
+
+Faults
+======
+
+The faults come from ``STATUS_BYTE``:
+
+======================= ================================
+``STATUS_BYTE`` ``smps_fault_e``
+======================= ================================
+``VOUT`` (VOUT_OV) ``SMPS_FAULT_OVERVOLTAGE``
+``IOUT`` (IOUT_OC) ``SMPS_FAULT_OVERCURRENT``
+``TEMPERATURE`` ``SMPS_FAULT_OVERTEMP``
+``INPUT`` (VIN_UV), ``SMPS_FAULT_OTHER``
+``CML``, ``OTHER``
+======================= ================================
+
+``OFF`` and ``BUSY`` are not faults. A fault state is reported by
+``PWRIOC_GET_STATE`` as ``SMPS_STATE_FAULT``. The faults are latched by the
+controller: after a fault disappears, for example when the input voltage
+returns above the ``VDET`` rising threshold and the converter restarts, they
+stay set until ``PWRIOC_CLEAN_FAULT``.
+
+Hardware notes
+==============
+
+These points depend on how the board connects the controller:
+
+- The EN/UVLO pin only enables the power stage. If the ``nRST`` pin is tied to
+ the input, the logic and the I2C interface are always on while the input is
+ present, and the controller keeps its registers across an ``enable``
+ callback with false and a reset of the processor. Only removing the input
+ returns the registers to their defaults.
+- The ``MODE`` pin selects forced PWM (high) or the power save mode (low). In
+ forced PWM the current can reverse and return to the input, so a source
+ that does not sink current needs the input overvoltage protection
+ (``EN_IVP`` in ``MFR_SPECIFIC_D3`` and the threshold in ``IVP_VOLTAGE``).
+- With no external UVLO divider on the EN/UVLO pin, the ``VDET`` thresholds
+ (``VDET_FALL`` in ``MFR_SPECIFIC_D3`` and ``VDET_RISE`` in
+ ``MFR_SPECIFIC_D4``) set the input undervoltage lockout.
+- ``EN_DTRK_STARTOVER`` (``MFR_SPECIFIC_D1``) starts the converter without
+ waiting for the PWM signal of the ``DTRK`` pin. It is set at reset, and a
+ board with the pin tied low should keep it set: on such a board the converter
+ did not start again after a stop with the bit cleared.
+- ``SEL_ISET_PIN`` (``MFR_SPECIFIC_D9``, set at reset) disables the internal
+ current limit DAC, and the limit would come from a resistor on the
+ ``ILIMCOMP/ISET`` pin. A board without that resistor needs it cleared, or
+ ``ILIM_THRESHOLD`` has no effect.
+- The ``nFLT/nINT`` pin is an open drain output that is low while a fault
+ condition is active, ``OFF`` included, and high impedance when the
+ condition goes away, even if the bit stays latched in ``STATUS_BYTE``.
+
+Example
+=======
+
+A board that describes a 8 milliohm sense resistor, a 9 to 24 V output, 8 A
+and 120 W, and writes one register::
+
+ static const struct lm51772_reg_s g_init[] =
+ {
+ { LM51772_REG_MFR_SPECIFIC_D1,
+ LM51772_D1_EN_THER_WARN | LM51772_D1_EN_DTRK_STARTOVER },
+ { LM51772_REG_ILIM_THRESHOLD, LM51772_ILIM_THRESHOLD(5000, 8) }
+ };
+
+ static void board_smps_enable(void *arg, bool enable)
+ {
+ /* Drive the EN/UVLO pin */
+ }
+
+ int board_smps_init(struct i2c_master_s *i2c)
+ {
+ struct lm51772_config_s config;
+
+ config.i2c = i2c;
+ config.frequency = 400000;
+ config.addr = 0;
+ config.r_isns_mohm = 8;
+ config.v_out_min = 9.0f;
+ config.v_out_max = 24.0f;
+ config.i_out_max = 8.0f;
+ config.p_out_max = 120.0f;
+ config.enable = board_smps_enable;
+ config.arg = NULL;
+ config.init = g_init;
+ config.ninit = nitems(g_init);
+
+ return lm51772_register("/dev/smps0", &config);
+ }
diff --git a/content/docs/latest/_sources/os/drivers/special/power/smps.rst.txt
b/content/docs/latest/_sources/os/drivers/special/power/smps.rst.txt
new file mode 100644
index 0000000000..baa3974cd5
--- /dev/null
+++ b/content/docs/latest/_sources/os/drivers/special/power/smps.rst.txt
@@ -0,0 +1,72 @@
+=====================================
+Switched-Mode Power Supply (``smps``)
+=====================================
+
+The SMPS driver is split into an "upper half" character driver
+(``drivers/power/supply/smps.c``) and chip-specific "lower half" drivers.
+It is enabled with ``CONFIG_DRIVERS_SMPS``. The application interface is
+defined in ``include/nuttx/power/smps.h`` and
+``include/nuttx/power/power_ioctl.h``. A lower half registers itself with
+``smps_register()`` as ``/dev/smpsN``.
+
+Application interface
+=====================
+
+========================= ============================ ===================
+IOCTL Argument Description
+========================= ============================ ===================
+``PWRIOC_SET_MODE`` ``enum smps_opmode_e`` Select the
+ operation mode
+``PWRIOC_SET_LIMITS`` ``struct smps_limits_s *`` Set the absolute
+ limits
+``PWRIOC_SET_PARAMS`` ``struct smps_params_s *`` Set the output
+ voltage, current
+ and power
+``PWRIOC_START`` none Start the
+ converter
+``PWRIOC_STOP`` none Stop the converter
+``PWRIOC_GET_STATE`` ``struct smps_state_s *`` Get the state and
+ the faults
+``PWRIOC_GET_FAULT`` ``uint8_t *`` Get the faults
+``PWRIOC_SET_FAULT`` ``uint8_t`` Set a fault
+``PWRIOC_CLEAN_FAULT`` ``uint8_t`` Clear the latched
+ faults
+========================= ============================ ===================
+
+Commands that the upper half does not know are forwarded to the ``ioctl``
+operation of the lower half.
+
+Sequence
+========
+
+#. Select a mode with ``PWRIOC_SET_MODE``. The upper half refuses
+ ``PWRIOC_START`` while the mode is ``SMPS_OPMODE_INIT``.
+#. Set the limits with ``PWRIOC_SET_LIMITS``, with ``lock`` set to true. The
+ limits can not be changed after they are locked, and the upper half
+ refuses ``PWRIOC_START`` and ``PWRIOC_SET_PARAMS`` until they are set and
+ locked.
+#. Set the parameters with ``PWRIOC_SET_PARAMS``. The upper half refuses
+ parameters above the limits with ``-EPERM``. The parameter that the mode
+ regulates must be set: ``v_out`` for ``SMPS_OPMODE_CV``, ``i_out`` for
+ ``SMPS_OPMODE_CC`` and ``p_out`` for ``SMPS_OPMODE_CP``. The parameters
+ can be set again while the converter runs, unless they are locked.
+#. Start and stop the converter with ``PWRIOC_START`` and ``PWRIOC_STOP``.
+
+The lower half ``setup`` operation is called when the device is opened for
+the first time and ``shutdown`` when it is closed for the last time, with
+interrupts disabled. The open count is kept for every open, so closing a
+descriptor does not shut the converter down while another one is open.
+
+Supported chips
+===============
+
+========== ===== ====================================================
+Chip Bus Notes
+========== ===== ====================================================
+LM51772 I2C Buck-boost controller, constant voltage only. See
+ :doc:`lm51772`.
+========== ===== ====================================================
+
+The ``b-g474e-dpow1`` and ``stm32f334-disco`` boards register an SMPS
+device that is driven by the
:doc:`../../../../applications/examples/smps/index`
+example.
diff --git a/content/docs/latest/_sources/os/filesystem/index.rst.txt
b/content/docs/latest/_sources/os/filesystem/index.rst.txt
index 6d26a45ad9..3df0b6b0b2 100644
--- a/content/docs/latest/_sources/os/filesystem/index.rst.txt
+++ b/content/docs/latest/_sources/os/filesystem/index.rst.txt
@@ -494,7 +494,9 @@ belonging to a unified interface:
only the ones that are required according to the flags.
:param int flags: A bit field that can have values including ``CH_STAT_MODE``
, ``CH_STAT_UID``, ``CH_STAT_GID``, ``CH_STAT_ATIME`` or ``CH_STAT_MTIME``
- which are or-ed together.
+ which are or-ed together. ``lchown()``, ``lchmod()`` and ``lutimens()``
+ also set ``CH_STAT_NOFOLLOW``: if ``relpath`` names a symbolic link, the
+ file system must change the link itself, not the file that it points to.
.. c:function:: int syncfs(FAR struct inode *mountpt)
diff --git a/content/docs/latest/applications/system/wifibridge/index.html
b/content/docs/latest/applications/system/wifibridge/index.html
index 349e81b034..fbfe5781ca 100644
--- a/content/docs/latest/applications/system/wifibridge/index.html
+++ b/content/docs/latest/applications/system/wifibridge/index.html
@@ -251,6 +251,7 @@
<li class="toctree-l4"><a class="reference internal"
href="#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal"
href="#configuration">Configuration</a></li>
<li class="toctree-l4"><a class="reference internal"
href="#usage">Usage</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="#keeping-the-configuration">Keeping the configuration</a></li>
<li class="toctree-l4"><a class="reference internal"
href="#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal"
href="#limitations">Limitations</a></li>
</ul>
@@ -336,15 +337,21 @@ and <code class="docutils literal notranslate"><span
class="pre">wlan0</span></c
<dt><code class="docutils literal notranslate"><span
class="pre">CONFIG_NETUTILS_WIFIBRIDGE_DHCPD</span></code></dt><dd><p>Allow the
<code class="docutils literal notranslate"><span class="pre">-d</span></code>
option, which runs the DHCP server on the bridge
(<code class="docutils literal notranslate"><span
class="pre">CONFIG_NETUTILS_DHCPD</span></code>).</p>
</dd>
+<dt><code class="docutils literal notranslate"><span
class="pre">CONFIG_NETUTILS_WIFIBRIDGE_PERSIST</span></code></dt><dd><p>Allow
<code class="docutils literal notranslate"><span class="pre">save</span></code>
and <code class="docutils literal notranslate"><span
class="pre">clear</span></code>, which keep the configuration across resets
+(see <a class="reference internal" href="#keeping-the-configuration">Keeping
the configuration</a>).</p>
+</dd>
</dl>
<p>Change the default passphrase before deploying a board.</p>
</section>
<section id="usage">
<h2>Usage<a class="headerlink" href="#usage" title="Permalink to this
heading"></a></h2>
<div class="highlight-console notranslate"><div
class="highlight"><pre><span></span><span class="go">wifibridge start [-s
<ssid>] [-p <passphrase>] [-c <channel>] [-3]</span>
-<span class="go"> [-a <ipaddr>] [-d]</span>
+<span class="go"> [-a <ipaddr>] [-d|-D]</span>
<span class="go">wifibridge stop</span>
<span class="go">wifibridge status</span>
+<span class="go">wifibridge save [-s <ssid>] [-p <passphrase>] [-c
<channel>] [-3]</span>
+<span class="go"> [-a <ipaddr>] [-d|-D]</span>
+<span class="go">wifibridge clear</span>
</pre></div>
</div>
<dl>
@@ -366,6 +373,9 @@ it.</p>
<dt><code class="docutils literal notranslate"><span
class="pre">-d</span></code></dt><dd><p>Run the DHCP server on the bridge.
Leave it out when another DHCP
server is reachable through the Ethernet port.</p>
</dd>
+<dt><code class="docutils literal notranslate"><span
class="pre">-D</span></code></dt><dd><p>Do not run the DHCP server. It is the
default; with <code class="docutils literal notranslate"><span
class="pre">save</span></code> it
+turns off a <code class="docutils literal notranslate"><span
class="pre">-d</span></code> that was kept before.</p>
+</dd>
</dl>
</dd>
<dt><code class="docutils literal notranslate"><span
class="pre">stop</span></code></dt><dd><p>Stop the DHCP server, remove the
ports, delete the bridge and stop the
@@ -374,11 +384,45 @@ access point.</p>
<dt><code class="docutils literal notranslate"><span
class="pre">status</span></code></dt><dd><p>Show whether the bridge exists, its
address, the state of the two
ports and the SSID of the access point.</p>
</dd>
+<dt><code class="docutils literal notranslate"><span
class="pre">save</span></code></dt><dd><p>Keep the configuration, see <a
class="reference internal" href="#keeping-the-configuration">Keeping the
configuration</a>. It takes the
+same options as <code class="docutils literal notranslate"><span
class="pre">start</span></code>, and does not start anything.</p>
+</dd>
+<dt><code class="docutils literal notranslate"><span
class="pre">clear</span></code></dt><dd><p>Forget the saved configuration.</p>
+</dd>
</dl>
<p>The Ethernet and Wi-Fi interfaces carry no IP address of their own: only
the bridge does. The Ethernet interface needs a MAC address, which a
board without a factory programmed one has to provide.</p>
</section>
+<section id="keeping-the-configuration">
+<h2>Keeping the configuration<a class="headerlink"
href="#keeping-the-configuration" title="Permalink to this heading"></a></h2>
+<p>With <code class="docutils literal notranslate"><span
class="pre">CONFIG_NETUTILS_WIFIBRIDGE_PERSIST</span></code>, <code
class="docutils literal notranslate"><span class="pre">wifibridge</span> <span
class="pre">save</span></code> keeps the
+SSID, the passphrase, the channel, the security, the address and the DHCP
+server option, and <code class="docutils literal notranslate"><span
class="pre">wifibridge</span> <span class="pre">start</span></code> uses them
instead of the defaults
+of the configuration. The options of <code class="docutils literal
notranslate"><span class="pre">start</span></code> still win, for that run
+only. <code class="docutils literal notranslate"><span
class="pre">wifibridge</span> <span class="pre">clear</span></code> forgets
them and the defaults are used again.
+The options of <code class="docutils literal notranslate"><span
class="pre">save</span></code> are applied over what is already saved, if there
is
+something, and over the defaults otherwise.</p>
+<div class="highlight-console notranslate"><div
class="highlight"><pre><span></span><span class="go">nsh> wifibridge save -s
MyBridge -p mypassphrase -c 11 -a 10.0.0.7 -d</span>
+<span class="go">nsh> reboot</span>
+<span class="go">...</span>
+<span class="go">nsh> wifibridge start</span>
+<span class="go">nsh> wifibridge status</span>
+<span class="go">br0 present 10.0.0.7</span>
+<span class="go">eth0 up</span>
+<span class="go">wlan0 up ssid "MyBridge"</span>
+</pre></div>
+</div>
+<p>The configuration is one record, with a CRC, at the start of
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_NETUTILS_WIFIBRIDGE_STORAGE</span></code>. That is a file
of a file system
+that is mounted at boot (the default is <code class="docutils literal
notranslate"><span class="pre">/data/wifibridge.conf</span></code>), or a block
+device, such as the MTD of a few pages of the flash (it needs <code
class="docutils literal notranslate"><span class="pre">CONFIG_BCH</span></code>
+to be opened by name). Saving a device erases and writes the flash that
+holds it, so it should be used for this alone. A record that is missing or
+damaged is ignored. The passphrase is stored as is.</p>
+<p>On the PIC32MZ-W1, <code class="docutils literal notranslate"><span
class="pre">CONFIG_PIC32MZ_PROGMEM</span></code> with <code class="docutils
literal notranslate"><span class="pre">CONFIG_MTD_PROGMEM</span></code>
+provides such a device in the last pages of the program flash.</p>
+</section>
<section id="example">
<h2>Example<a class="headerlink" href="#example" title="Permalink to this
heading"></a></h2>
<div class="highlight-console notranslate"><div
class="highlight"><pre><span></span><span class="go">nsh> wifibridge start
-s MyBridge -p mypassphrase -d</span>
@@ -396,8 +440,8 @@ board without a factory programmed one has to provide.</p>
<li><p>Only the access point mode is supported. A station cannot be bridged
at layer 2 because it cannot send frames with foreign source
addresses.</p></li>
<li><p><code class="docutils literal notranslate"><span
class="pre">start</span></code> fails with <code class="docutils literal
notranslate"><span class="pre">EEXIST</span></code> if the bridge already
exists.</p></li>
-<li><p>The SSID and the passphrase are not saved: they come from the
-command line or from the defaults of the configuration.</p></li>
+<li><p>The saved configuration does not include the names of the interfaces and
+the netmask, which come from the configuration.</p></li>
<li><p>The rest of the limits of the bridge apply, see
<a class="reference internal" href="../../../os/networking/bridge.html"><span
class="doc">Ethernet Bridge</span></a>.</p></li>
</ul>
diff --git a/content/docs/latest/components/drivers/special/power/lm51772.html
b/content/docs/latest/components/drivers/special/power/lm51772.html
new file mode 100644
index 0000000000..264096bd85
--- /dev/null
+++ b/content/docs/latest/components/drivers/special/power/lm51772.html
@@ -0,0 +1,5 @@
+<!-- SPDX-License-Identifier: Apache-2.0 -->
+<html><head>
+<script>location.replace("../../../../os/drivers/special/power/lm51772.html" +
location.hash);</script>
+<meta http-equiv="refresh" content="0;
url=../../../../os/drivers/special/power/lm51772.html">
+</head></html>
diff --git a/content/docs/latest/components/drivers/special/power/smps.html
b/content/docs/latest/components/drivers/special/power/smps.html
new file mode 100644
index 0000000000..9dbda5d7af
--- /dev/null
+++ b/content/docs/latest/components/drivers/special/power/smps.html
@@ -0,0 +1,5 @@
+<!-- SPDX-License-Identifier: Apache-2.0 -->
+<html><head>
+<script>location.replace("../../../../os/drivers/special/power/smps.html" +
location.hash);</script>
+<meta http-equiv="refresh" content="0;
url=../../../../os/drivers/special/power/smps.html">
+</head></html>
diff --git a/content/docs/latest/guides/programs/fully_linked_elf.html
b/content/docs/latest/guides/programs/fully_linked_elf.html
index 84c628419e..e3cd493e6a 100644
--- a/content/docs/latest/guides/programs/fully_linked_elf.html
+++ b/content/docs/latest/guides/programs/fully_linked_elf.html
@@ -488,7 +488,7 @@ NuttX package: <code class="docutils literal
notranslate"><span class="pre">nutt
<div
class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version
admonition">
<p class="admonition-title">Here is an alternative minimal (and possibly
outdated) version</p>
<div class="sphinx_collapse docutils">
-<input class="sphinx_collapse__input"
id="8e444d83-ac71-4b7a-92d1-456447692cc6"
name="8e444d83-ac71-4b7a-92d1-456447692cc6" type="checkbox"><label
class="sphinx_collapse__label" for="8e444d83-ac71-4b7a-92d1-456447692cc6"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="067e4e4e-7b94-4858-8389-4246981d846a"
name="067e4e4e-7b94-4858-8389-4246981d846a" type="checkbox"><label
class="sphinx_collapse__label" for="067e4e4e-7b94-4858-8389-4246981d846a"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
<div class="highlight-text notranslate"><div
class="highlight"><pre><span></span>SECTIONS
{
.text 0x00000000 :
diff --git a/content/docs/latest/guides/programs/partially_linked_elf.html
b/content/docs/latest/guides/programs/partially_linked_elf.html
index b9fc4904da..58cbdd815b 100644
--- a/content/docs/latest/guides/programs/partially_linked_elf.html
+++ b/content/docs/latest/guides/programs/partially_linked_elf.html
@@ -514,7 +514,7 @@ NuttX package: <code class="docutils literal
notranslate"><span class="pre">nutt
<div
class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version
admonition">
<p class="admonition-title">Here is an alternative minimal (and possibly
outdated) version</p>
<div class="sphinx_collapse docutils">
-<input class="sphinx_collapse__input"
id="04e6c284-cb20-46da-94a6-d6c240cd086b"
name="04e6c284-cb20-46da-94a6-d6c240cd086b" type="checkbox"><label
class="sphinx_collapse__label" for="04e6c284-cb20-46da-94a6-d6c240cd086b"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="2afd7bab-57f5-4e7c-984f-46f9f0b4acfe"
name="2afd7bab-57f5-4e7c-984f-46f9f0b4acfe" type="checkbox"><label
class="sphinx_collapse__label" for="2afd7bab-57f5-4e7c-984f-46f9f0b4acfe"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
<div class="highlight-text notranslate"><div
class="highlight"><pre><span></span>SECTIONS
{
.text 0x00000000 :
diff --git a/content/docs/latest/objects.inv b/content/docs/latest/objects.inv
index eab56ebd6f..f7ea0e8baf 100644
Binary files a/content/docs/latest/objects.inv and
b/content/docs/latest/objects.inv differ
diff --git a/content/docs/latest/os/drivers/special/index.html
b/content/docs/latest/os/drivers/special/index.html
index 91746ab47a..9e38bb8815 100644
--- a/content/docs/latest/os/drivers/special/index.html
+++ b/content/docs/latest/os/drivers/special/index.html
@@ -916,6 +916,24 @@ and thus expose them to applications.</p>
<li class="toctree-l3"><a class="reference internal"
href="power/battery/fakegauge.html#usage">Usage</a></li>
</ul>
</li>
+<li class="toctree-l2"><a class="reference internal"
href="power/smps.html">Switched-Mode Power Supply (<code class="docutils
literal notranslate"><span class="pre">smps</span></code>)</a><ul>
+<li class="toctree-l3"><a class="reference internal"
href="power/smps.html#application-interface">Application interface</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="power/smps.html#sequence">Sequence</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="power/smps.html#supported-chips">Supported chips</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal"
href="power/lm51772.html">TI LM51772 buck-boost controller</a><ul>
+<li class="toctree-l3"><a class="reference internal"
href="power/lm51772.html#board-interface">Board interface</a><ul>
+<li class="toctree-l4"><a class="reference internal"
href="power/lm51772.html#start-and-stop">Start and stop</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="power/lm51772.html#register-list">Register list</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="power/lm51772.html#absolute-maximum-ratings">Absolute maximum
ratings</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal"
href="power/lm51772.html#faults">Faults</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="power/lm51772.html#hardware-notes">Hardware notes</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="power/lm51772.html#example">Example</a></li>
+</ul>
+</li>
<li class="toctree-l2"><a class="reference internal"
href="power/power_management.html">Power Management</a><ul>
<li class="toctree-l3"><a class="reference internal"
href="power/power_management.html#power-management-pm-subsystem">Power
Management (PM) Subsystem</a></li>
<li class="toctree-l3"><a class="reference internal"
href="power/power_management.html#dynamic-clocking">Dynamic Clocking</a><ul>
diff --git
a/content/docs/latest/os/drivers/special/power/battery/fakegauge.html
b/content/docs/latest/os/drivers/special/power/battery/fakegauge.html
index 8d5e14772a..9e2c053c6e 100644
--- a/content/docs/latest/os/drivers/special/power/battery/fakegauge.html
+++ b/content/docs/latest/os/drivers/special/power/battery/fakegauge.html
@@ -46,7 +46,7 @@
<script src="../../../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../../../genindex.html" />
<link rel="search" title="Search" href="../../../../../search.html" />
- <link rel="next" title="Power Management" href="../power_management.html"
/>
+ <link rel="next" title="Switched-Mode Power Supply (smps)"
href="../smps.html" />
<link rel="prev" title="Regulator Drivers" href="../regulator.html" />
</head>
@@ -272,7 +272,7 @@ real batteries.</p>
</div>
<footer><div class="rst-footer-buttons" role="navigation"
aria-label="Footer">
<a href="../regulator.html" class="btn btn-neutral float-left"
title="Regulator Drivers" accesskey="p" rel="prev"><span class="fa
fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
- <a href="../power_management.html" class="btn btn-neutral float-right"
title="Power Management" accesskey="n" rel="next">Next <span class="fa
fa-arrow-circle-right" aria-hidden="true"></span></a>
+ <a href="../smps.html" class="btn btn-neutral float-right"
title="Switched-Mode Power Supply (smps)" accesskey="n" rel="next">Next <span
class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
diff --git a/content/docs/latest/os/drivers/special/power/index.html
b/content/docs/latest/os/drivers/special/power/index.html
index a40bacf620..eee6ba6c4b 100644
--- a/content/docs/latest/os/drivers/special/power/index.html
+++ b/content/docs/latest/os/drivers/special/power/index.html
@@ -228,6 +228,24 @@
<li class="toctree-l2"><a class="reference internal"
href="battery/fakegauge.html#usage">Usage</a></li>
</ul>
</li>
+<li class="toctree-l1"><a class="reference internal"
href="smps.html">Switched-Mode Power Supply (<code class="docutils literal
notranslate"><span class="pre">smps</span></code>)</a><ul>
+<li class="toctree-l2"><a class="reference internal"
href="smps.html#application-interface">Application interface</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="smps.html#sequence">Sequence</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="smps.html#supported-chips">Supported chips</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="lm51772.html">TI
LM51772 buck-boost controller</a><ul>
+<li class="toctree-l2"><a class="reference internal"
href="lm51772.html#board-interface">Board interface</a><ul>
+<li class="toctree-l3"><a class="reference internal"
href="lm51772.html#start-and-stop">Start and stop</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="lm51772.html#register-list">Register list</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="lm51772.html#absolute-maximum-ratings">Absolute maximum ratings</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal"
href="lm51772.html#faults">Faults</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="lm51772.html#hardware-notes">Hardware notes</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="lm51772.html#example">Example</a></li>
+</ul>
+</li>
</ul>
</div>
<div class="toctree-wrapper compound">
diff --git a/content/docs/latest/os/drivers/special/power/lm51772.html
b/content/docs/latest/os/drivers/special/power/lm51772.html
new file mode 100644
index 0000000000..347a4a99dc
--- /dev/null
+++ b/content/docs/latest/os/drivers/special/power/lm51772.html
@@ -0,0 +1,445 @@
+<!--
+ Documentation/_templates/layout.html
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership. The
+ ASF licenses this file to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ License for the specific language governing permissions and limitations
+ under the License.
+-->
+
+
+
+<!DOCTYPE html>
+<html class="writer-html5" lang="en">
+<head>
+ <meta charset="utf-8" /><meta name="generator" content="Docutils 0.19:
https://docutils.sourceforge.io/" />
+
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <title>TI LM51772 buck-boost controller — NuttX latest
documentation</title>
+ <link rel="stylesheet" type="text/css"
href="../../../../_static/pygments.css" />
+ <link rel="stylesheet" type="text/css"
href="../../../../_static/css/theme.css" />
+ <link rel="stylesheet" type="text/css"
href="../../../../_static/copybutton.css" />
+ <link rel="stylesheet" type="text/css"
href="../../../../_static/sphinx_collapse.css" />
+ <link rel="stylesheet" type="text/css"
href="../../../../_static/sphinx-design.4cbf315f70debaebd550c87a6162cf0f.min.css"
/>
+ <link rel="stylesheet" type="text/css"
href="../../../../_static/custom.css" />
+
+
+ <link rel="shortcut icon" href="../../../../_static/favicon.ico"/>
+ <script src="../../../../_static/jquery.js"></script>
+ <script
src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+ <script data-url_root="../../../../" id="documentation_options"
src="../../../../_static/documentation_options.js"></script>
+ <script src="../../../../_static/doctools.js"></script>
+ <script src="../../../../_static/sphinx_highlight.js"></script>
+ <script src="../../../../_static/clipboard.min.js"></script>
+ <script src="../../../../_static/copybutton.js"></script>
+ <script src="../../../../_static/design-tabs.js"></script>
+ <script src="../../../../_static/js/theme.js"></script>
+ <link rel="index" title="Index" href="../../../../genindex.html" />
+ <link rel="search" title="Search" href="../../../../search.html" />
+ <link rel="next" title="Power Management" href="power_management.html" />
+ <link rel="prev" title="Switched-Mode Power Supply (smps)"
href="smps.html" />
+</head>
+
+<body class="wy-body-for-nav">
+ <div class="wy-grid-for-nav">
+ <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+ <div class="wy-side-scroll">
+ <div class="wy-side-nav-search" >
+
+ <a href="../../../../index.html" class="nuttx-brand">
+
+ <img src="../../../../_static/NuttX.png" class="logo" alt="NuttX logo"/>
+
+
+ <span class="nuttx-brand-name">NuttX</span>
+
+ </a>
+
+ <div class="version-selector">
+ <label class="nuttx-version-label" for="nuttx-version">Version</label>
+ <select id="nuttx-version"
+ onchange="javascript:location.href = this.value;">
+ <option value="../../../../../latest" selected="selected">latest</option>
+
+ <option value="../../../../../10.0.0" >10.0.0</option>
+
+ <option value="../../../../../10.0.1" >10.0.1</option>
+
+ <option value="../../../../../10.1.0" >10.1.0</option>
+
+ <option value="../../../../../10.2.0" >10.2.0</option>
+
+ <option value="../../../../../10.3.0" >10.3.0</option>
+
+ <option value="../../../../../11.0.0" >11.0.0</option>
+
+ <option value="../../../../../12.0.0" >12.0.0</option>
+
+ <option value="../../../../../12.1.0" >12.1.0</option>
+
+ <option value="../../../../../12.2.0" >12.2.0</option>
+
+ <option value="../../../../../12.2.1" >12.2.1</option>
+
+ <option value="../../../../../12.3.0" >12.3.0</option>
+
+ <option value="../../../../../12.4.0" >12.4.0</option>
+
+ <option value="../../../../../12.5.0" >12.5.0</option>
+
+ <option value="../../../../../12.5.1" >12.5.1</option>
+
+ <option value="../../../../../12.6.0" >12.6.0</option>
+
+ <option value="../../../../../12.7.0" >12.7.0</option>
+
+ <option value="../../../../../12.8.0" >12.8.0</option>
+
+ <option value="../../../../../12.9.0" >12.9.0</option>
+
+ <option value="../../../../../12.10.0" >12.10.0</option>
+
+ <option value="../../../../../12.11.0" >12.11.0</option>
+
+ <option value="../../../../../12.12.0" >12.12.0</option>
+
+ <option value="../../../../../12.13.0" >12.13.0</option>
+
+ <option value="../../../../../13.0.0" >13.0.0</option>
+
+ <option value="../../../../../13.0.1" >13.0.1</option>
+
+ <option value="../../../../../13.1.0" >13.1.0</option>
+
+ </select>
+ </div>
+
+
+<div role="search">
+ <form id="rtd-search-form" class="wy-form" action="../../../../search.html"
method="get">
+ <input type="text" name="q" placeholder="Search docs" aria-label="Search
docs" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+</div>
+
+ </div><div class="wy-menu wy-menu-vertical" data-spy="affix"
role="navigation" aria-label="Navigation menu">
+ <p class="caption" role="heading"><span
class="caption-text">Table of Contents</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal"
href="../../../../index.html">Home</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../../../introduction/index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../../../quickstart/index.html">Getting Started</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../../../platforms/index.html">Supported Platforms</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../../../guides/index.html">Guides</a></li>
+<li class="toctree-l1 current"><a class="reference internal"
href="../../../index.html">OS Design</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal"
href="../../../index.html#build-modes">Build modes</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../../../index.html#the-kernel">The kernel</a></li>
+<li class="toctree-l2 current"><a class="reference internal"
href="../../../index.html#device-drivers">Device drivers</a><ul class="current">
+<li class="toctree-l3 current"><a class="reference internal"
href="../../index.html">Device Drivers</a><ul class="current">
+<li class="toctree-l4"><a class="reference internal"
href="../../index.html#lower-half-and-upper-half">Lower-half and
upper-half</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../index.html#subdirectories-of-nuttx-drivers">Subdirectories of <code
class="docutils literal notranslate"><span
class="pre">nuttx/drivers</span></code></a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../index.html#skeleton-files">Skeleton Files</a></li>
+<li class="toctree-l4 current"><a class="reference internal"
href="../../index.html#drivers-early-initialization">Drivers Early
Initialization</a><ul class="current">
+<li class="toctree-l5"><a class="reference internal"
href="../../character/index.html">Character Device Drivers</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../block/index.html">Block Device Drivers</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../index.html">Specialized Device Drivers</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../thermal/index.html">Thermal Framework</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../drivers_design.html">OS Drivers Design</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../device_drivers.html">Device Drivers</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../device_nodes.html">Device Nodes</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../ioctl.html">ioctl</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../usb.html">USB
(Universal Serial Bus)</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal"
href="../../../index.html#file-systems-and-networking">File systems and
networking</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../../../index.html#running-programs">Running programs</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../../../index.html#media-and-security">Media and security</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../../../index.html#portability">Portability</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../../../index.html#reference">Reference</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal"
href="../../../../reference/index.html">API Reference</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../../../applications/index.html">Applications</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../../../developing/index.html">Developing NuttX</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../../../../about/index.html">About</a></li>
+</ul>
+
+ </div>
+ </div>
+ </nav>
+
+ <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav
class="wy-nav-top" aria-label="Mobile navigation menu" >
+ <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+ <a href="../../../../index.html">NuttX</a>
+ </nav>
+
+ <div class="wy-nav-content">
+ <div class="rst-content">
+ <div role="navigation" aria-label="Page navigation">
+ <ul class="wy-breadcrumbs">
+ <li><a href="../../../../index.html" class="icon icon-home"
aria-label="Home"></a></li>
+ <li class="breadcrumb-item"><a href="../../../index.html">OS
Design</a></li>
+ <li class="breadcrumb-item"><a href="../../index.html">Device
Drivers</a></li>
+ <li class="breadcrumb-item"><a href="../index.html">Specialized
Device Drivers</a></li>
+ <li class="breadcrumb-item"><a href="index.html">Power-related
Drivers</a></li>
+ <li class="breadcrumb-item active">TI LM51772 buck-boost controller</li>
+ <li class="wy-breadcrumbs-aside">
+ <a
href="https://github.com/apache/nuttx/blob/master/Documentation/os/drivers/special/power/lm51772.rst"
class="fa fa-github"> Edit on GitHub</a>
+ </li>
+ </ul>
+ <hr/>
+</div>
+ <div role="main" class="document" itemscope="itemscope"
itemtype="http://schema.org/Article">
+ <div itemprop="articleBody">
+
+ <section id="ti-lm51772-buck-boost-controller">
+<h1>TI LM51772 buck-boost controller<a class="headerlink"
href="#ti-lm51772-buck-boost-controller" title="Permalink to this
heading"></a></h1>
+<p>The LM51772 driver (<code class="docutils literal notranslate"><span
class="pre">drivers/power/supply/lm51772.c</span></code>) is a lower half
+of the <a class="reference internal" href="smps.html"><span class="doc">SMPS
driver</span></a> for the Texas Instruments LM51772 buck-boost
+controller, controlled over I2C. It is enabled with
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_SMPS_LM51772</span></code>, which needs <code
class="docutils literal notranslate"><span
class="pre">CONFIG_DRIVERS_SMPS</span></code> and
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_I2C</span></code>. The register map and the bit fields, with
the names of the
+datasheet, are in <code class="docutils literal notranslate"><span
class="pre">include/nuttx/power/lm51772.h</span></code>.</p>
+<p>The converter regulates a constant output voltage (<code class="docutils
literal notranslate"><span class="pre">SMPS_OPMODE_CV</span></code>, the
+only mode) with an output current limit. The driver reports the state and
+the faults, but it has no output feedback.</p>
+<section id="board-interface">
+<h2>Board interface<a class="headerlink" href="#board-interface"
title="Permalink to this heading"></a></h2>
+<p>The board registers the device with:</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>int lm51772_register(const char *path,
const struct lm51772_config_s *config);
+</pre></div>
+</div>
+<p>and describes the hardware in <code class="docutils literal
notranslate"><span class="pre">struct</span> <span
class="pre">lm51772_config_s</span></code>:</p>
+<table class="docutils align-default">
+<thead>
+<tr class="row-odd"><th class="head"><p>Field</p></th>
+<th class="head"><p>Description</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span
class="pre">i2c</span></code></p></td>
+<td><p>I2C bus</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span
class="pre">frequency</span></code></p></td>
+<td><p>I2C frequency</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span
class="pre">addr</span></code></p></td>
+<td><p>7-bit address, 0x6a if 0</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span
class="pre">r_isns_mohm</span></code></p></td>
+<td><p>Output sense resistor, in milliohms, which sets the
+scale of the current limit</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span
class="pre">v_out_min</span></code>,</p></td>
+<td><p>Absolute maximum ratings of the board, 0 for none.</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span
class="pre">v_out_max</span></code>,</p></td>
+<td><p>See below.</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span
class="pre">i_out_max</span></code>,</p></td>
+<td></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span
class="pre">p_out_max</span></code></p></td>
+<td></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span
class="pre">enable</span></code>, <code class="docutils literal
notranslate"><span class="pre">arg</span></code></p></td>
+<td><p>Callback that drives the EN/UVLO pin. It is called
+with interrupts disabled when switching off, so it
+must not sleep.</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span
class="pre">init</span></code>, <code class="docutils literal
notranslate"><span class="pre">ninit</span></code></p></td>
+<td><p>Registers written at start, in order. See below.</p></td>
+</tr>
+</tbody>
+</table>
+<section id="start-and-stop">
+<h3>Start and stop<a class="headerlink" href="#start-and-stop"
title="Permalink to this heading"></a></h3>
+<p>The controller is enabled and configured by <code class="docutils literal
notranslate"><span class="pre">PWRIOC_START</span></code>, not when the
+device is opened, because the upper half calls the lower half <code
class="docutils literal notranslate"><span class="pre">setup</span></code> with
+interrupts disabled and the configuration needs I2C:</p>
+<ol class="arabic simple">
+<li><p>The <code class="docutils literal notranslate"><span
class="pre">enable</span></code> callback is called and the driver waits 15 ms
for the
+supplies of the controller.</p></li>
+<li><p>The driver reads <code class="docutils literal notranslate"><span
class="pre">STATUS_BYTE</span></code> to check that the controller answers.
+Otherwise the <code class="docutils literal notranslate"><span
class="pre">enable</span></code> callback is called again to disable it and the
+error is returned by <code class="docutils literal notranslate"><span
class="pre">PWRIOC_START</span></code>.</p></li>
+<li><p>The registers of <code class="docutils literal notranslate"><span
class="pre">init</span></code> are written in order, and the step of the output
+voltage is read back from <code class="docutils literal notranslate"><span
class="pre">MFR_SPECIFIC_D8</span></code> (<code class="docutils literal
notranslate"><span class="pre">SEL_FB_DIV20</span></code>).</p></li>
+<li><p>The output voltage target and the current limit are written, and the
+latched faults are cleared.</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">CONV_EN</span></code> and <code class="docutils literal
notranslate"><span class="pre">CONV_EN2</span></code> are set, and <code
class="docutils literal notranslate"><span
class="pre">FORCE_DISCH</span></code> is cleared.</p></li>
+</ol>
+<p><code class="docutils literal notranslate"><span
class="pre">PWRIOC_STOP</span></code> clears <code class="docutils literal
notranslate"><span class="pre">CONV_EN</span></code> and <code class="docutils
literal notranslate"><span class="pre">CONV_EN2</span></code> and sets <code
class="docutils literal notranslate"><span
class="pre">FORCE_DISCH</span></code>,
+which discharges the output. When the device is closed for the last time the
+<code class="docutils literal notranslate"><span
class="pre">enable</span></code> callback disables the controller and the
converter stops, so a
+program that starts it has to keep the device open while it runs.</p>
+</section>
+<section id="register-list">
+<h3>Register list<a class="headerlink" href="#register-list" title="Permalink
to this heading"></a></h3>
+<p><code class="docutils literal notranslate"><span
class="pre">init</span></code> lists the registers that the board needs to
change from the values
+loaded by the controller. <code class="docutils literal notranslate"><span
class="pre">MFR_SPECIFIC_D0</span></code> is written with <code class="docutils
literal notranslate"><span class="pre">CONV_EN</span></code>
+cleared, since the power stage starts only with <code class="docutils literal
notranslate"><span class="pre">PWRIOC_START</span></code>. If the
+output voltage step is not the default one (<code class="docutils literal
notranslate"><span class="pre">MFR_SPECIFIC_D8</span></code>), the entry
+must be in the list. An <code class="docutils literal notranslate"><span
class="pre">ILIM_THRESHOLD</span></code> entry sets the current limit at
+start, when the parameters keep it, and
+<code class="docutils literal notranslate"><span
class="pre">LM51772_ILIM_THRESHOLD(ma,</span> <span
class="pre">mohm)</span></code> computes its value.</p>
+</section>
+<section id="absolute-maximum-ratings">
+<h3>Absolute maximum ratings<a class="headerlink"
href="#absolute-maximum-ratings" title="Permalink to this heading"></a></h3>
+<p>The limits (<code class="docutils literal notranslate"><span
class="pre">PWRIOC_SET_LIMITS</span></code>) and the parameters (<code
class="docutils literal notranslate"><span
class="pre">PWRIOC_SET_PARAMS</span></code>)
+set by the application are refused with <code class="docutils literal
notranslate"><span class="pre">-EINVAL</span></code> when they exceed the
+ratings of the board: an output voltage outside of <code class="docutils
literal notranslate"><span class="pre">v_out_min</span></code> to
+<code class="docutils literal notranslate"><span
class="pre">v_out_max</span></code>, a current above <code class="docutils
literal notranslate"><span class="pre">i_out_max</span></code>, or a power
<code class="docutils literal notranslate"><span class="pre">v_out</span> <span
class="pre">*</span> <span class="pre">i_out</span></code>
+above <code class="docutils literal notranslate"><span
class="pre">p_out_max</span></code>. A current or power limit left at 0 becomes
the rating.
+When the parameters keep the current limit, the current of the <code
class="docutils literal notranslate"><span class="pre">init</span></code>
+<code class="docutils literal notranslate"><span
class="pre">ILIM_THRESHOLD</span></code> entry is used for the power check.</p>
+<p>The <code class="docutils literal notranslate"><span
class="pre">ILIM_THRESHOLD</span></code> register saturates at 70 mV across the
sense resistor
+(0x8c), and a current limit that needs a higher value is refused with
+<code class="docutils literal notranslate"><span
class="pre">-EINVAL</span></code>.</p>
+</section>
+</section>
+<section id="faults">
+<h2>Faults<a class="headerlink" href="#faults" title="Permalink to this
heading"></a></h2>
+<p>The faults come from <code class="docutils literal notranslate"><span
class="pre">STATUS_BYTE</span></code>:</p>
+<table class="docutils align-default">
+<thead>
+<tr class="row-odd"><th class="head"><p><code class="docutils literal
notranslate"><span class="pre">STATUS_BYTE</span></code></p></th>
+<th class="head"><p><code class="docutils literal notranslate"><span
class="pre">smps_fault_e</span></code></p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span
class="pre">VOUT</span></code> (VOUT_OV)</p></td>
+<td><p><code class="docutils literal notranslate"><span
class="pre">SMPS_FAULT_OVERVOLTAGE</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span
class="pre">IOUT</span></code> (IOUT_OC)</p></td>
+<td><p><code class="docutils literal notranslate"><span
class="pre">SMPS_FAULT_OVERCURRENT</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span
class="pre">TEMPERATURE</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span
class="pre">SMPS_FAULT_OVERTEMP</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span
class="pre">INPUT</span></code> (VIN_UV),</p></td>
+<td><p><code class="docutils literal notranslate"><span
class="pre">SMPS_FAULT_OTHER</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span
class="pre">CML</span></code>, <code class="docutils literal notranslate"><span
class="pre">OTHER</span></code></p></td>
+<td></td>
+</tr>
+</tbody>
+</table>
+<p><code class="docutils literal notranslate"><span
class="pre">OFF</span></code> and <code class="docutils literal
notranslate"><span class="pre">BUSY</span></code> are not faults. A fault state
is reported by
+<code class="docutils literal notranslate"><span
class="pre">PWRIOC_GET_STATE</span></code> as <code class="docutils literal
notranslate"><span class="pre">SMPS_STATE_FAULT</span></code>. The faults are
latched by the
+controller: after a fault disappears, for example when the input voltage
+returns above the <code class="docutils literal notranslate"><span
class="pre">VDET</span></code> rising threshold and the converter restarts, they
+stay set until <code class="docutils literal notranslate"><span
class="pre">PWRIOC_CLEAN_FAULT</span></code>.</p>
+</section>
+<section id="hardware-notes">
+<h2>Hardware notes<a class="headerlink" href="#hardware-notes"
title="Permalink to this heading"></a></h2>
+<p>These points depend on how the board connects the controller:</p>
+<ul class="simple">
+<li><p>The EN/UVLO pin only enables the power stage. If the <code
class="docutils literal notranslate"><span class="pre">nRST</span></code> pin
is tied to
+the input, the logic and the I2C interface are always on while the input is
+present, and the controller keeps its registers across an <code
class="docutils literal notranslate"><span class="pre">enable</span></code>
+callback with false and a reset of the processor. Only removing the input
+returns the registers to their defaults.</p></li>
+<li><p>The <code class="docutils literal notranslate"><span
class="pre">MODE</span></code> pin selects forced PWM (high) or the power save
mode (low). In
+forced PWM the current can reverse and return to the input, so a source
+that does not sink current needs the input overvoltage protection
+(<code class="docutils literal notranslate"><span
class="pre">EN_IVP</span></code> in <code class="docutils literal
notranslate"><span class="pre">MFR_SPECIFIC_D3</span></code> and the threshold
in <code class="docutils literal notranslate"><span
class="pre">IVP_VOLTAGE</span></code>).</p></li>
+<li><p>With no external UVLO divider on the EN/UVLO pin, the <code
class="docutils literal notranslate"><span class="pre">VDET</span></code>
thresholds
+(<code class="docutils literal notranslate"><span
class="pre">VDET_FALL</span></code> in <code class="docutils literal
notranslate"><span class="pre">MFR_SPECIFIC_D3</span></code> and <code
class="docutils literal notranslate"><span class="pre">VDET_RISE</span></code>
in
+<code class="docutils literal notranslate"><span
class="pre">MFR_SPECIFIC_D4</span></code>) set the input undervoltage
lockout.</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">EN_DTRK_STARTOVER</span></code> (<code class="docutils literal
notranslate"><span class="pre">MFR_SPECIFIC_D1</span></code>) starts the
converter without
+waiting for the PWM signal of the <code class="docutils literal
notranslate"><span class="pre">DTRK</span></code> pin. It is set at reset, and a
+board with the pin tied low should keep it set: on such a board the converter
+did not start again after a stop with the bit cleared.</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">SEL_ISET_PIN</span></code> (<code class="docutils literal
notranslate"><span class="pre">MFR_SPECIFIC_D9</span></code>, set at reset)
disables the internal
+current limit DAC, and the limit would come from a resistor on the
+<code class="docutils literal notranslate"><span
class="pre">ILIMCOMP/ISET</span></code> pin. A board without that resistor
needs it cleared, or
+<code class="docutils literal notranslate"><span
class="pre">ILIM_THRESHOLD</span></code> has no effect.</p></li>
+<li><p>The <code class="docutils literal notranslate"><span
class="pre">nFLT/nINT</span></code> pin is an open drain output that is low
while a fault
+condition is active, <code class="docutils literal notranslate"><span
class="pre">OFF</span></code> included, and high impedance when the
+condition goes away, even if the bit stays latched in <code class="docutils
literal notranslate"><span class="pre">STATUS_BYTE</span></code>.</p></li>
+</ul>
+</section>
+<section id="example">
+<h2>Example<a class="headerlink" href="#example" title="Permalink to this
heading"></a></h2>
+<p>A board that describes a 8 milliohm sense resistor, a 9 to 24 V output, 8 A
+and 120 W, and writes one register:</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>static const struct lm51772_reg_s g_init[] =
+{
+ { LM51772_REG_MFR_SPECIFIC_D1,
+ LM51772_D1_EN_THER_WARN | LM51772_D1_EN_DTRK_STARTOVER },
+ { LM51772_REG_ILIM_THRESHOLD, LM51772_ILIM_THRESHOLD(5000, 8) }
+};
+
+static void board_smps_enable(void *arg, bool enable)
+{
+ /* Drive the EN/UVLO pin */
+}
+
+int board_smps_init(struct i2c_master_s *i2c)
+{
+ struct lm51772_config_s config;
+
+ config.i2c = i2c;
+ config.frequency = 400000;
+ config.addr = 0;
+ config.r_isns_mohm = 8;
+ config.v_out_min = 9.0f;
+ config.v_out_max = 24.0f;
+ config.i_out_max = 8.0f;
+ config.p_out_max = 120.0f;
+ config.enable = board_smps_enable;
+ config.arg = NULL;
+ config.init = g_init;
+ config.ninit = nitems(g_init);
+
+ return lm51772_register("/dev/smps0", &config);
+}
+</pre></div>
+</div>
+</section>
+</section>
+
+
+ </div>
+ </div>
+ <footer><div class="rst-footer-buttons" role="navigation"
aria-label="Footer">
+ <a href="smps.html" class="btn btn-neutral float-left"
title="Switched-Mode Power Supply (smps)" accesskey="p" rel="prev"><span
class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+ <a href="power_management.html" class="btn btn-neutral float-right"
title="Power Management" accesskey="n" rel="next">Next <span class="fa
fa-arrow-circle-right" aria-hidden="true"></span></a>
+ </div>
+
+ <hr/>
+
+ <div role="contentinfo">
+ <p>© Copyright 2020-2026, The Apache Software Foundation.</p>
+ </div>
+
+
+
+</footer>
+ </div>
+ </div>
+ </section>
+ </div>
+ <script>
+ jQuery(function () {
+ SphinxRtdTheme.Navigation.enable(true);
+ });
+ </script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/content/docs/latest/os/drivers/special/power/power_management.html
b/content/docs/latest/os/drivers/special/power/power_management.html
index ecd7c59606..70e2db568f 100644
--- a/content/docs/latest/os/drivers/special/power/power_management.html
+++ b/content/docs/latest/os/drivers/special/power/power_management.html
@@ -47,7 +47,7 @@
<link rel="index" title="Index" href="../../../../genindex.html" />
<link rel="search" title="Search" href="../../../../search.html" />
<link rel="next" title="PTP Clock Driver Framework" href="../ptp.html" />
- <link rel="prev" title="Battery Gauge" href="battery/fakegauge.html" />
+ <link rel="prev" title="TI LM51772 buck-boost controller"
href="lm51772.html" />
</head>
<body class="wy-body-for-nav">
@@ -401,7 +401,7 @@ such functions calls to get the dynamic clock frequency.</p>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation"
aria-label="Footer">
- <a href="battery/fakegauge.html" class="btn btn-neutral float-left"
title="Battery Gauge" accesskey="p" rel="prev"><span class="fa
fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+ <a href="lm51772.html" class="btn btn-neutral float-left" title="TI
LM51772 buck-boost controller" accesskey="p" rel="prev"><span class="fa
fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="../ptp.html" class="btn btn-neutral float-right" title="PTP
Clock Driver Framework" accesskey="n" rel="next">Next <span class="fa
fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
diff --git a/content/docs/latest/os/drivers/special/power/index.html
b/content/docs/latest/os/drivers/special/power/smps.html
similarity index 55%
copy from content/docs/latest/os/drivers/special/power/index.html
copy to content/docs/latest/os/drivers/special/power/smps.html
index a40bacf620..27159f7af6 100644
--- a/content/docs/latest/os/drivers/special/power/index.html
+++ b/content/docs/latest/os/drivers/special/power/smps.html
@@ -25,7 +25,7 @@
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.19:
https://docutils.sourceforge.io/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <title>Power-related Drivers — NuttX latest documentation</title>
+ <title>Switched-Mode Power Supply (smps) — NuttX latest
documentation</title>
<link rel="stylesheet" type="text/css"
href="../../../../_static/pygments.css" />
<link rel="stylesheet" type="text/css"
href="../../../../_static/css/theme.css" />
<link rel="stylesheet" type="text/css"
href="../../../../_static/copybutton.css" />
@@ -46,8 +46,8 @@
<script src="../../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../../genindex.html" />
<link rel="search" title="Search" href="../../../../search.html" />
- <link rel="next" title="Power Management" href="pm/index.html" />
- <link rel="prev" title="FIFO and named pipe drivers" href="../pipes.html"
/>
+ <link rel="next" title="TI LM51772 buck-boost controller"
href="lm51772.html" />
+ <link rel="prev" title="Battery Gauge" href="battery/fakegauge.html" />
</head>
<body class="wy-body-for-nav">
@@ -195,9 +195,10 @@
<li class="breadcrumb-item"><a href="../../../index.html">OS
Design</a></li>
<li class="breadcrumb-item"><a href="../../index.html">Device
Drivers</a></li>
<li class="breadcrumb-item"><a href="../index.html">Specialized
Device Drivers</a></li>
- <li class="breadcrumb-item active">Power-related Drivers</li>
+ <li class="breadcrumb-item"><a href="index.html">Power-related
Drivers</a></li>
+ <li class="breadcrumb-item active">Switched-Mode Power Supply (<code
class="docutils literal notranslate"><span class="pre">smps</span></code>)</li>
<li class="wy-breadcrumbs-aside">
- <a
href="https://github.com/apache/nuttx/blob/master/Documentation/os/drivers/special/power/index.rst"
class="fa fa-github"> Edit on GitHub</a>
+ <a
href="https://github.com/apache/nuttx/blob/master/Documentation/os/drivers/special/power/smps.rst"
class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
@@ -205,44 +206,122 @@
<div role="main" class="document" itemscope="itemscope"
itemtype="http://schema.org/Article">
<div itemprop="articleBody">
- <section id="power-related-drivers">
-<h1>Power-related Drivers<a class="headerlink" href="#power-related-drivers"
title="Permalink to this heading"></a></h1>
-<div class="toctree-wrapper compound">
-<p class="caption" role="heading"><span class="caption-text">Supported
Drivers</span></p>
-<ul>
-<li class="toctree-l1"><a class="reference internal"
href="pm/index.html">Power Management</a><ul>
-<li class="toctree-l2"><a class="reference internal"
href="pm/index.html#interfaces">Interfaces</a></li>
-<li class="toctree-l2"><a class="reference internal"
href="pm/index.html#callbacks">Callbacks</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal"
href="regulator.html">Regulator Drivers</a><ul>
-<li class="toctree-l2"><a class="reference internal"
href="regulator.html#consumer-interface">Consumer interface</a></li>
-<li class="toctree-l2"><a class="reference internal"
href="regulator.html#writing-a-regulator-driver">Writing a regulator
driver</a></li>
-<li class="toctree-l2"><a class="reference internal"
href="regulator.html#proc-regulator">/proc/regulator</a></li>
-<li class="toctree-l2"><a class="reference internal"
href="regulator.html#remote-regulators">Remote regulators</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal"
href="battery/fakegauge.html">Battery Gauge</a><ul>
-<li class="toctree-l2"><a class="reference internal"
href="battery/fakegauge.html#fake-gauge">Fake Gauge</a></li>
-<li class="toctree-l2"><a class="reference internal"
href="battery/fakegauge.html#features">Features</a></li>
-<li class="toctree-l2"><a class="reference internal"
href="battery/fakegauge.html#usage">Usage</a></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="toctree-wrapper compound">
-<ul>
-<li class="toctree-l1"><a class="reference internal"
href="power_management.html">Power Management</a></li>
-</ul>
-</div>
+ <section id="switched-mode-power-supply-smps">
+<h1>Switched-Mode Power Supply (<code class="docutils literal
notranslate"><span class="pre">smps</span></code>)<a class="headerlink"
href="#switched-mode-power-supply-smps" title="Permalink to this
heading"></a></h1>
+<p>The SMPS driver is split into an “upper half” character driver
+(<code class="docutils literal notranslate"><span
class="pre">drivers/power/supply/smps.c</span></code>) and chip-specific “lower
half” drivers.
+It is enabled with <code class="docutils literal notranslate"><span
class="pre">CONFIG_DRIVERS_SMPS</span></code>. The application interface is
+defined in <code class="docutils literal notranslate"><span
class="pre">include/nuttx/power/smps.h</span></code> and
+<code class="docutils literal notranslate"><span
class="pre">include/nuttx/power/power_ioctl.h</span></code>. A lower half
registers itself with
+<code class="docutils literal notranslate"><span
class="pre">smps_register()</span></code> as <code class="docutils literal
notranslate"><span class="pre">/dev/smpsN</span></code>.</p>
+<section id="application-interface">
+<h2>Application interface<a class="headerlink" href="#application-interface"
title="Permalink to this heading"></a></h2>
+<table class="docutils align-default">
+<thead>
+<tr class="row-odd"><th class="head"><p>IOCTL</p></th>
+<th class="head"><p>Argument</p></th>
+<th class="head"><p>Description</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span
class="pre">PWRIOC_SET_MODE</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span
class="pre">enum</span> <span class="pre">smps_opmode_e</span></code></p></td>
+<td><p>Select the
+operation mode</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span
class="pre">PWRIOC_SET_LIMITS</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span
class="pre">struct</span> <span class="pre">smps_limits_s</span> <span
class="pre">*</span></code></p></td>
+<td><p>Set the absolute
+limits</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span
class="pre">PWRIOC_SET_PARAMS</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span
class="pre">struct</span> <span class="pre">smps_params_s</span> <span
class="pre">*</span></code></p></td>
+<td><p>Set the output
+voltage, current
+and power</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span
class="pre">PWRIOC_START</span></code></p></td>
+<td><p>none</p></td>
+<td><p>Start the
+converter</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span
class="pre">PWRIOC_STOP</span></code></p></td>
+<td><p>none</p></td>
+<td><p>Stop the converter</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span
class="pre">PWRIOC_GET_STATE</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span
class="pre">struct</span> <span class="pre">smps_state_s</span> <span
class="pre">*</span></code></p></td>
+<td><p>Get the state and
+the faults</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span
class="pre">PWRIOC_GET_FAULT</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span
class="pre">uint8_t</span> <span class="pre">*</span></code></p></td>
+<td><p>Get the faults</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span
class="pre">PWRIOC_SET_FAULT</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span
class="pre">uint8_t</span></code></p></td>
+<td><p>Set a fault</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span
class="pre">PWRIOC_CLEAN_FAULT</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span
class="pre">uint8_t</span></code></p></td>
+<td><p>Clear the latched
+faults</p></td>
+</tr>
+</tbody>
+</table>
+<p>Commands that the upper half does not know are forwarded to the <code
class="docutils literal notranslate"><span class="pre">ioctl</span></code>
+operation of the lower half.</p>
+</section>
+<section id="sequence">
+<h2>Sequence<a class="headerlink" href="#sequence" title="Permalink to this
heading"></a></h2>
+<ol class="arabic simple">
+<li><p>Select a mode with <code class="docutils literal notranslate"><span
class="pre">PWRIOC_SET_MODE</span></code>. The upper half refuses
+<code class="docutils literal notranslate"><span
class="pre">PWRIOC_START</span></code> while the mode is <code class="docutils
literal notranslate"><span class="pre">SMPS_OPMODE_INIT</span></code>.</p></li>
+<li><p>Set the limits with <code class="docutils literal notranslate"><span
class="pre">PWRIOC_SET_LIMITS</span></code>, with <code class="docutils literal
notranslate"><span class="pre">lock</span></code> set to true. The
+limits can not be changed after they are locked, and the upper half
+refuses <code class="docutils literal notranslate"><span
class="pre">PWRIOC_START</span></code> and <code class="docutils literal
notranslate"><span class="pre">PWRIOC_SET_PARAMS</span></code> until they are
set and
+locked.</p></li>
+<li><p>Set the parameters with <code class="docutils literal
notranslate"><span class="pre">PWRIOC_SET_PARAMS</span></code>. The upper half
refuses
+parameters above the limits with <code class="docutils literal
notranslate"><span class="pre">-EPERM</span></code>. The parameter that the mode
+regulates must be set: <code class="docutils literal notranslate"><span
class="pre">v_out</span></code> for <code class="docutils literal
notranslate"><span class="pre">SMPS_OPMODE_CV</span></code>, <code
class="docutils literal notranslate"><span class="pre">i_out</span></code> for
+<code class="docutils literal notranslate"><span
class="pre">SMPS_OPMODE_CC</span></code> and <code class="docutils literal
notranslate"><span class="pre">p_out</span></code> for <code class="docutils
literal notranslate"><span class="pre">SMPS_OPMODE_CP</span></code>. The
parameters
+can be set again while the converter runs, unless they are locked.</p></li>
+<li><p>Start and stop the converter with <code class="docutils literal
notranslate"><span class="pre">PWRIOC_START</span></code> and <code
class="docutils literal notranslate"><span
class="pre">PWRIOC_STOP</span></code>.</p></li>
+</ol>
+<p>The lower half <code class="docutils literal notranslate"><span
class="pre">setup</span></code> operation is called when the device is opened
for
+the first time and <code class="docutils literal notranslate"><span
class="pre">shutdown</span></code> when it is closed for the last time, with
+interrupts disabled. The open count is kept for every open, so closing a
+descriptor does not shut the converter down while another one is open.</p>
+</section>
+<section id="supported-chips">
+<h2>Supported chips<a class="headerlink" href="#supported-chips"
title="Permalink to this heading"></a></h2>
+<table class="docutils align-default">
+<thead>
+<tr class="row-odd"><th class="head"><p>Chip</p></th>
+<th class="head"><p>Bus</p></th>
+<th class="head"><p>Notes</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p>LM51772</p></td>
+<td><p>I2C</p></td>
+<td><p>Buck-boost controller, constant voltage only. See
+<a class="reference internal" href="lm51772.html"><span class="doc">TI LM51772
buck-boost controller</span></a>.</p></td>
+</tr>
+</tbody>
+</table>
+<p>The <code class="docutils literal notranslate"><span
class="pre">b-g474e-dpow1</span></code> and <code class="docutils literal
notranslate"><span class="pre">stm32f334-disco</span></code> boards register an
SMPS
+device that is driven by the <a class="reference internal"
href="../../../../applications/examples/smps/index.html"><span class="doc">smps
Switched-Mode Power Supply</span></a>
+example.</p>
+</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation"
aria-label="Footer">
- <a href="../pipes.html" class="btn btn-neutral float-left" title="FIFO
and named pipe drivers" accesskey="p" rel="prev"><span class="fa
fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
- <a href="pm/index.html" class="btn btn-neutral float-right"
title="Power Management" accesskey="n" rel="next">Next <span class="fa
fa-arrow-circle-right" aria-hidden="true"></span></a>
+ <a href="battery/fakegauge.html" class="btn btn-neutral float-left"
title="Battery Gauge" accesskey="p" rel="prev"><span class="fa
fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+ <a href="lm51772.html" class="btn btn-neutral float-right" title="TI
LM51772 buck-boost controller" accesskey="n" rel="next">Next <span class="fa
fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
diff --git a/content/docs/latest/os/filesystem/index.html
b/content/docs/latest/os/filesystem/index.html
index b1f4bd8e6d..09730ce14d 100644
--- a/content/docs/latest/os/filesystem/index.html
+++ b/content/docs/latest/os/filesystem/index.html
@@ -1010,7 +1010,9 @@ the root of the file system.</p></li>
only the ones that are required according to the flags.</p></li>
<li><p><strong>flags</strong> (<span><span class="c-expr sig sig-inline
c"><span class="kt">int</span></span></span>) – A bit field that can have
values including <code class="docutils literal notranslate"><span
class="pre">CH_STAT_MODE</span></code>
, <code class="docutils literal notranslate"><span
class="pre">CH_STAT_UID</span></code>, <code class="docutils literal
notranslate"><span class="pre">CH_STAT_GID</span></code>, <code class="docutils
literal notranslate"><span class="pre">CH_STAT_ATIME</span></code> or <code
class="docutils literal notranslate"><span
class="pre">CH_STAT_MTIME</span></code>
-which are or-ed together.</p></li>
+which are or-ed together. <code class="docutils literal notranslate"><span
class="pre">lchown()</span></code>, <code class="docutils literal
notranslate"><span class="pre">lchmod()</span></code> and <code class="docutils
literal notranslate"><span class="pre">lutimens()</span></code>
+also set <code class="docutils literal notranslate"><span
class="pre">CH_STAT_NOFOLLOW</span></code>: if <code class="docutils literal
notranslate"><span class="pre">relpath</span></code> names a symbolic link, the
+file system must change the link itself, not the file that it points
to.</p></li>
</ul>
</dd>
</dl>
diff --git
a/content/docs/latest/platforms/arm/stm32c0/boards/nucleo-c092rc/index.html
b/content/docs/latest/platforms/arm/stm32c0/boards/nucleo-c092rc/index.html
index 1306f1d993..d7a2b3d516 100644
--- a/content/docs/latest/platforms/arm/stm32c0/boards/nucleo-c092rc/index.html
+++ b/content/docs/latest/platforms/arm/stm32c0/boards/nucleo-c092rc/index.html
@@ -162,48 +162,28 @@
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a></li>
-<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
-<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
+<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a><ul
class="current">
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#unknown">(unknown)</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm">arm</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm64">arm64</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#avr">avr</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#hc">hc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#mips">mips</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#misoc">misoc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#or1k">or1k</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#renesas">renesas</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#risc-v">risc-v</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sim">sim</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sparc">sparc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tricore">tricore</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86">x86</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86-64">x86_64</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#xtensa">xtensa</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z16">z16</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z80">z80</a></li>
</ul>
</li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a></li>
</ul>
</li>
</ul>
diff --git
a/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
b/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
index b9d62e1b4d..16a9a4c7e6 100644
--- a/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
+++ b/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
@@ -160,56 +160,52 @@
<li class="toctree-l2"><a class="reference internal"
href="../../../../z80/index.html">Z80</a></li>
<li class="toctree-l2 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html">Tags</a><ul class="current">
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
-<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a><ul class="current">
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-aifoundry.html">vendor:aifoundry (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-allwinner.html">vendor:allwinner (4)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-amd.html">vendor:amd (1)</a></li>
-<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/vendor-arm.html">vendor:arm (5)</a><ul
class="current">
-<li class="toctree-l5"><a class="reference internal"
href="../../../../arm/fvp-v8r-aarch32/boards/fvp-armv8r-aarch32/index.html">ARM
Armv8-R AEM FVP</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../arm/mps/boards/mps2-an500/index.html">MPS2 AN500
Board</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../arm/mps/boards/mps2-an521/index.html">MPS2 AN521
Board</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../arm/mps/boards/mps3-an547/index.html">MPS3 AN547
Board</a></li>
-<li class="toctree-l5 current"><a class="current reference internal"
href="#">FVP ARMv8-r</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
+<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a></li>
+<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
</ul>
</li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-artery.html">vendor:artery (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-bouffalolab.html">vendor:bouffalolab
(2)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-broadcom.html">vendor:broadcom (2)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-canaan.html">vendor:canaan (2)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-espressif.html">vendor:espressif (35)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-eswin.html">vendor:eswin (3)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-example.html">vendor:example (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-gigadevice.html">vendor:gigadevice
(7)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-holtek.html">vendor:holtek (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-hpmicro.html">vendor:hpmicro (2)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-infineon.html">vendor:infineon (4)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-ingenic.html">vendor:ingenic (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-maxim.html">vendor:maxim (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-microchip.html">vendor:microchip (46)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-moxa.html">vendor:moxa (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-nations.html">vendor:nations (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-nordic.html">vendor:nordic (17)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-nuvoton.html">vendor:nuvoton (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-nxp.html">vendor:nxp (58)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-onsemi.html">vendor:onsemi (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-phyplus.html">vendor:phyplus (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-quicklogic.html">vendor:quicklogic
(1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-raspberry-pi.html">vendor:raspberry-pi
(18)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-realtek.html">vendor:realtek (4)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-renesas.html">vendor:renesas (7)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-rockchip.html">vendor:rockchip (4)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-sifive.html">vendor:sifive (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-silabs.html">vendor:silabs (3)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-sony.html">vendor:sony (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-sophgo.html">vendor:sophgo (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-st.html">vendor:st (114)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-starfive.html">vendor:starfive (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-thead.html">vendor:thead (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-ti.html">vendor:ti (10)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-zilog.html">vendor:zilog (9)</a></li>
</ul>
</li>
-<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a></li>
</ul>
</li>
</ul>
diff --git
a/content/docs/latest/platforms/arm64/zynq-mpsoc/boards/zcu111/index.html
b/content/docs/latest/platforms/arm64/zynq-mpsoc/boards/zcu111/index.html
index ddbdeb68a6..217f57789a 100644
--- a/content/docs/latest/platforms/arm64/zynq-mpsoc/boards/zcu111/index.html
+++ b/content/docs/latest/platforms/arm64/zynq-mpsoc/boards/zcu111/index.html
@@ -162,48 +162,28 @@
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a></li>
-<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
-<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
+<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a><ul
class="current">
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#unknown">(unknown)</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm">arm</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm64">arm64</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#avr">avr</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#hc">hc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#mips">mips</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#misoc">misoc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#or1k">or1k</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#renesas">renesas</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#risc-v">risc-v</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sim">sim</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sparc">sparc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tricore">tricore</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86">x86</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86-64">x86_64</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#xtensa">xtensa</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z16">z16</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z80">z80</a></li>
</ul>
</li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a></li>
</ul>
</li>
</ul>
diff --git
a/content/docs/latest/platforms/risc-v/esp32c3-legacy/boards/esp32c3-legacy-devkit/index.html
b/content/docs/latest/platforms/risc-v/esp32c3-legacy/boards/esp32c3-legacy-devkit/index.html
index 32edde40cb..1340af87f4 100644
---
a/content/docs/latest/platforms/risc-v/esp32c3-legacy/boards/esp32c3-legacy-devkit/index.html
+++
b/content/docs/latest/platforms/risc-v/esp32c3-legacy/boards/esp32c3-legacy-devkit/index.html
@@ -291,14 +291,14 @@ mount ESP32-C3 DevKit on a breadboard.</p>
<table class="docutils align-center">
<tbody>
<tr class="row-odd"><td><figure class="align-center" id="id1">
-<img alt="../../../../../_images/ESP32-C3-DevKitC-02-v1.1.png"
src="../../../../../_images/ESP32-C3-DevKitC-02-v1.1.png" />
+<img alt="../../../../../_images/ESP32-C3-DevKitC-02-v1.11.png"
src="../../../../../_images/ESP32-C3-DevKitC-02-v1.11.png" />
<figcaption>
<p><span class="caption-text">ESP32-C3-DevKitC-02</span><a class="headerlink"
href="#id1" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</td>
<td><figure class="align-center" id="id2">
-<img alt="../../../../../_images/ESP32-C3-DevKitM-1-v1.0.png"
src="../../../../../_images/ESP32-C3-DevKitM-1-v1.0.png" />
+<img alt="../../../../../_images/ESP32-C3-DevKitM-1-v1.01.png"
src="../../../../../_images/ESP32-C3-DevKitM-1-v1.01.png" />
<figcaption>
<p><span class="caption-text">ESP32-C3-DevKitM-1</span><a class="headerlink"
href="#id2" title="Permalink to this image"></a></p>
</figcaption>
diff --git
a/content/docs/latest/platforms/risc-v/esp32c3/boards/esp32c3-devkit/index.html
b/content/docs/latest/platforms/risc-v/esp32c3/boards/esp32c3-devkit/index.html
index ecc81e53a0..20ed033ab8 100644
---
a/content/docs/latest/platforms/risc-v/esp32c3/boards/esp32c3-devkit/index.html
+++
b/content/docs/latest/platforms/risc-v/esp32c3/boards/esp32c3-devkit/index.html
@@ -297,14 +297,14 @@ For the compact third-party ESP32-C3 SuperMini, see
<table class="docutils align-center">
<tbody>
<tr class="row-odd"><td><figure class="align-center" id="id1">
-<img alt="../../../../../_images/ESP32-C3-DevKitC-02-v1.11.png"
src="../../../../../_images/ESP32-C3-DevKitC-02-v1.11.png" />
+<img alt="../../../../../_images/ESP32-C3-DevKitC-02-v1.1.png"
src="../../../../../_images/ESP32-C3-DevKitC-02-v1.1.png" />
<figcaption>
<p><span class="caption-text">ESP32-C3-DevKitC-02</span><a class="headerlink"
href="#id1" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</td>
<td><figure class="align-center" id="id2">
-<img alt="../../../../../_images/ESP32-C3-DevKitM-1-v1.01.png"
src="../../../../../_images/ESP32-C3-DevKitM-1-v1.01.png" />
+<img alt="../../../../../_images/ESP32-C3-DevKitM-1-v1.0.png"
src="../../../../../_images/ESP32-C3-DevKitM-1-v1.0.png" />
<figcaption>
<p><span class="caption-text">ESP32-C3-DevKitM-1</span><a class="headerlink"
href="#id2" title="Permalink to this image"></a></p>
</figcaption>
@@ -814,7 +814,7 @@ and 2, respectively. The RMT peripheral is better explained
in the ESP-IDF documentation. The minimal data unit in the frame is called the
RMT symbol, which is represented by <code class="docutils literal
notranslate"><span class="pre">rmt_item32_t</span></code> in the driver:</p>
<figure class="align-center">
-<img alt="../../../../../_images/rmt_symbol3.png"
src="../../../../../_images/rmt_symbol3.png" />
+<img alt="../../../../../_images/rmt_symbol.png"
src="../../../../../_images/rmt_symbol.png" />
</figure>
<p>The example <code class="docutils literal notranslate"><span
class="pre">irtest</span></code> can be used to test the RMT peripheral.
Connecting
these pins externally to each other will make the transmitter send RMT items
diff --git
a/content/docs/latest/platforms/risc-v/esp32c6/boards/esp32c6-devkitc/index.html
b/content/docs/latest/platforms/risc-v/esp32c6/boards/esp32c6-devkitc/index.html
index 3a174ed688..153ce8f996 100644
---
a/content/docs/latest/platforms/risc-v/esp32c6/boards/esp32c6-devkitc/index.html
+++
b/content/docs/latest/platforms/risc-v/esp32c6/boards/esp32c6-devkitc/index.html
@@ -857,7 +857,7 @@ and 2, respectively. The RMT peripheral is better explained
in the ESP-IDF documentation. The minimal data unit in the frame is called the
RMT symbol, which is represented by <code class="docutils literal
notranslate"><span class="pre">rmt_item32_t</span></code> in the driver:</p>
<figure class="align-center">
-<img alt="../../../../../_images/rmt_symbol.png"
src="../../../../../_images/rmt_symbol.png" />
+<img alt="../../../../../_images/rmt_symbol1.png"
src="../../../../../_images/rmt_symbol1.png" />
</figure>
<p>The example <code class="docutils literal notranslate"><span
class="pre">irtest</span></code> can be used to test the RMT peripheral.
Connecting
these pins externally to each other will make the transmitter send RMT items
diff --git
a/content/docs/latest/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/index.html
b/content/docs/latest/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/index.html
index 3f375014dc..52b871a748 100644
---
a/content/docs/latest/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/index.html
+++
b/content/docs/latest/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/index.html
@@ -641,7 +641,7 @@ and 2, respectively. The RMT peripheral is better explained
in the ESP-IDF documentation. The minimal data unit in the frame is called the
RMT symbol, which is represented by <code class="docutils literal
notranslate"><span class="pre">rmt_item32_t</span></code> in the driver:</p>
<figure class="align-center">
-<img alt="../../../../../_images/rmt_symbol1.png"
src="../../../../../_images/rmt_symbol1.png" />
+<img alt="../../../../../_images/rmt_symbol2.png"
src="../../../../../_images/rmt_symbol2.png" />
</figure>
<p>The example <code class="docutils literal notranslate"><span
class="pre">irtest</span></code> can be used to test the RMT peripheral.
Connecting
these pins externally to each other will make the transmitter send RMT items
diff --git
a/content/docs/latest/platforms/risc-v/esp32h2/boards/esp32h2-devkit/index.html
b/content/docs/latest/platforms/risc-v/esp32h2/boards/esp32h2-devkit/index.html
index c2e7bb4c00..1c34e27a9f 100644
---
a/content/docs/latest/platforms/risc-v/esp32h2/boards/esp32h2-devkit/index.html
+++
b/content/docs/latest/platforms/risc-v/esp32h2/boards/esp32h2-devkit/index.html
@@ -837,7 +837,7 @@ and 2, respectively. The RMT peripheral is better explained
in the ESP-IDF documentation. The minimal data unit in the frame is called the
RMT symbol, which is represented by <code class="docutils literal
notranslate"><span class="pre">rmt_item32_t</span></code> in the driver:</p>
<figure class="align-center">
-<img alt="../../../../../_images/rmt_symbol2.png"
src="../../../../../_images/rmt_symbol2.png" />
+<img alt="../../../../../_images/rmt_symbol3.png"
src="../../../../../_images/rmt_symbol3.png" />
</figure>
<p>The example <code class="docutils literal notranslate"><span
class="pre">irtest</span></code> can be used to test the RMT peripheral.
Connecting
these pins externally to each other will make the transmitter send RMT items
diff --git a/content/docs/latest/searchindex.js
b/content/docs/latest/searchindex.js
index 397e024603..4785f677d9 100644
--- a/content/docs/latest/searchindex.js
+++ b/content/docs/latest/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["ReleaseNotes/NuttX-0.1.0",
"ReleaseNotes/NuttX-0.1.1", "ReleaseNotes/NuttX-0.1.2",
"ReleaseNotes/NuttX-0.2.1", "ReleaseNotes/NuttX-0.2.2",
"ReleaseNotes/NuttX-0.2.3", "ReleaseNotes/NuttX-0.2.4",
"ReleaseNotes/NuttX-0.2.5", "ReleaseNotes/NuttX-0.2.6",
"ReleaseNotes/NuttX-0.2.7", "ReleaseNotes/NuttX-0.2.8",
"ReleaseNotes/NuttX-0.2.9", "ReleaseNotes/NuttX-0.3.0",
"ReleaseNotes/NuttX-0.3.1", "ReleaseNotes/NuttX-0.3.10",
"ReleaseNotes/NuttX-0.3.11", "ReleaseNote [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["ReleaseNotes/NuttX-0.1.0",
"ReleaseNotes/NuttX-0.1.1", "ReleaseNotes/NuttX-0.1.2",
"ReleaseNotes/NuttX-0.2.1", "ReleaseNotes/NuttX-0.2.2",
"ReleaseNotes/NuttX-0.2.3", "ReleaseNotes/NuttX-0.2.4",
"ReleaseNotes/NuttX-0.2.5", "ReleaseNotes/NuttX-0.2.6",
"ReleaseNotes/NuttX-0.2.7", "ReleaseNotes/NuttX-0.2.8",
"ReleaseNotes/NuttX-0.2.9", "ReleaseNotes/NuttX-0.3.0",
"ReleaseNotes/NuttX-0.3.1", "ReleaseNotes/NuttX-0.3.10",
"ReleaseNotes/NuttX-0.3.11", "ReleaseNote [...]
\ No newline at end of file