You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ac...@apache.org on 2023/10/27 16:21:53 UTC

(nuttx) 07/10: Documentation: add dummy pages for missing filesystems and drivers

This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit d72c6802c12f78816c52c842f1f677c12ab0acce
Author: raiden00pl <ra...@railab.me>
AuthorDate: Fri Oct 27 12:57:14 2023 +0200

    Documentation: add dummy pages for missing filesystems and drivers
---
 Documentation/components/boards.rst                |   2 +-
 .../drivers/block/{index.rst => eeprom.rst}        |  56 +-----
 Documentation/components/drivers/block/index.rst   | 111 +-----------
 Documentation/components/drivers/block/ramdisk.rst |   7 +
 .../components/drivers/character/1wire.rst         |   3 +
 Documentation/components/drivers/character/bch.rst |   3 +
 .../components/drivers/character/contactless.rst   |   3 +
 .../components/drivers/character/crypto/index.rst  |   8 +
 .../drivers/character/{ => crypto}/se05x.rst       |   0
 .../components/drivers/character/efuse.rst         |   3 +
 Documentation/components/drivers/character/i2s.rst |   5 +
 .../components/drivers/character/index.rst         |  32 ++--
 .../components/drivers/character/input/index.rst   |  10 ++
 .../drivers/character/{ => input}/keypad.rst       |   0
 .../components/drivers/character/ipcc.rst          |   3 +
 .../components/drivers/character/leds/index.rst    |   8 +
 .../drivers/character/{ => leds}/ws2812.rst        |   0
 .../components/drivers/character/loop.rst          |   6 +
 .../components/drivers/character/math.rst          |   3 +
 .../components/drivers/character/modem.rst         |   3 +
 .../drivers/character/{ => motor}/foc.rst          |   0
 .../components/drivers/character/motor/index.rst   |   8 +
 Documentation/components/drivers/character/rc.rst  |   3 +
 Documentation/components/drivers/character/rf.rst  |   3 +
 .../components/drivers/character/timers/index.rst  |  12 ++
 .../drivers/character/{ => timers}/pwm.rst         |   0
 .../drivers/character/{ => timers}/rtc.rst         |   0
 .../drivers/character/{ => timers}/timer.rst       |   0
 .../drivers/character/{ => timers}/watchdog.rst    |   0
 Documentation/components/drivers/index.rst         | 188 +++++++++++++--------
 Documentation/components/drivers/special/audio.rst |   6 +
 Documentation/components/drivers/special/clk.rst   |   3 +
 .../components/drivers/special/devicetree.rst      |   3 +
 Documentation/components/drivers/special/dma.rst   |   3 +
 Documentation/components/drivers/special/i2c.rst   |   5 +-
 Documentation/components/drivers/special/index.rst |  32 +++-
 .../components/drivers/special/ioexpander.rst      |   3 +
 Documentation/components/drivers/special/mmcsd.rst |   6 +
 .../drivers/special/{ => net}/ethernet.rst         |   0
 .../components/drivers/special/net/index.rst       |  14 ++
 Documentation/components/drivers/special/pipes.rst |   3 +
 .../components/drivers/special/power/index.rst     |   8 +
 .../special/power/pm/index.rst}                    |   8 +-
 .../{ => drivers/special/power/pm}/pm.png          | Bin
 Documentation/components/drivers/special/reset.rst |   3 +
 Documentation/components/drivers/special/rptun.rst |  23 +++
 .../components/drivers/special/segger.rst          |  10 ++
 .../components/drivers/special/usbmisc.rst         |   3 +
 .../components/drivers/special/usbmonitor.rst      |   3 +
 .../components/drivers/special/usrsock.rst         |   3 +
 Documentation/components/drivers/special/video.rst |   3 +
 .../components/drivers/special/virtio.rst          |   3 +
 .../components/drivers/special/wireless.rst        |   3 +
 Documentation/components/filesystem/aio.rst        |   5 +
 Documentation/components/filesystem/cromfs.rst     |   2 +-
 Documentation/components/filesystem/fat.rst        |   5 +
 Documentation/components/filesystem/hostfs.rst     |  13 ++
 Documentation/components/filesystem/index.rst      |  12 +-
 Documentation/components/filesystem/littlefs.rst   |   6 +
 Documentation/components/filesystem/nfs.rst        |   5 +
 Documentation/components/filesystem/romfs.rst      |   3 +
 Documentation/components/filesystem/rpmsgfs.rst    |   5 +
 Documentation/components/filesystem/shmfs.rst      |   5 +
 Documentation/components/filesystem/tmpfs.rst      |   5 +
 Documentation/components/filesystem/userfs.rst     |   5 +
 Documentation/components/index.rst                 |   2 +-
 Documentation/introduction/about.rst               |   2 +-
 Documentation/platforms/xtensa/esp32/index.rst     |   4 +-
 Documentation/platforms/xtensa/esp32s2/index.rst   |   4 +-
 Documentation/reference/user/13_boardctl.rst       |   2 +-
 70 files changed, 447 insertions(+), 266 deletions(-)

diff --git a/Documentation/components/boards.rst b/Documentation/components/boards.rst
index 3d8b5e8038..b4dcb44680 100644
--- a/Documentation/components/boards.rst
+++ b/Documentation/components/boards.rst
@@ -1,5 +1,5 @@
 ==============
-Boards support
+Boards Support
 ==============
 
 This page discusses the board support logic for NuttX.
diff --git a/Documentation/components/drivers/block/index.rst b/Documentation/components/drivers/block/eeprom.rst
similarity index 66%
copy from Documentation/components/drivers/block/index.rst
copy to Documentation/components/drivers/block/eeprom.rst
index b79bbdc80b..9d4d253cdd 100644
--- a/Documentation/components/drivers/block/index.rst
+++ b/Documentation/components/drivers/block/eeprom.rst
@@ -1,50 +1,4 @@
-====================
-Block Device Drivers
-====================
-
-Block device drivers have these properties:
-
--  ``include/nuttx/fs/fs.h``. All structures and APIs needed
-   to work with block drivers are provided in this header file.
-
--  ``struct block_operations``. Each block device driver must
-   implement an instance of ``struct block_operations``. That
-   structure defines a call table with the following methods:
-
--  ``int register_blockdriver(const char *path, const struct block_operations *bops, mode_t mode, void *priv);``.
-   Each block driver registers itself by calling
-   ``register_blockdriver()``, passing it the ``path`` where it
-   will appear in the :ref:`pseudo file system <file_system_overview>` and
-   it's initialized instance of ``struct block_operations``.
-
--  **User Access**. Users do not normally access block drivers
-   directly, rather, they access block drivers indirectly through
-   the ``mount()`` API. The ``mount()`` API binds a block driver
-   instance with a file system and with a mountpoint. Then the
-   user may use the block driver to access the file system on the
-   underlying media. *Example*: See the ``cmd_mount()``
-   implementation in ``apps/nshlib/nsh_fscmds.c``.
-
--  **Accessing a Character Driver as a Block Device**. See the
-   loop device at ``drivers/loop.c``. *Example*: See the
-   ``cmd_losetup()`` implementation in
-   ``apps/nshlib/nsh_fscmds.c``.
-
--  **Accessing a Block Driver as Character Device**. See the
-   Block-to-Character (BCH) conversion logic in ``drivers/bch/``.
-   *Example*: See the ``cmd_dd()`` implementation in
-   ``apps/nshlib/nsh_ddcmd.c``.
-
--  **Examples**. ``drivers/loop.c``,
-   ``drivers/mmcsd/mmcsd_spi.c``, ``drivers/ramdisk.c``, etc.
-
-``ramdisk.c``
-=============
-
-Can be used to set up a block of memory or (read-only) FLASH as
-a block driver that can be mounted as a file system.  See
-include/nuttx/drivers/ramdisk.h.
-
+======
 EEPROM
 ======
 
@@ -61,10 +15,10 @@ EEPROMs are a form of Memory
   the simple character interface provided by the EEPROM drivers.
 
 EEPROM Device Support
----------------------
+=====================
 
 drivers/eeprom/spi_xx25xx.c
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
+---------------------------
 
 This is a driver for SPI EEPROMs that use the same commands as the
 25AA160::
@@ -110,14 +64,14 @@ This is a driver for SPI EEPROMs that use the same commands as the
                  AT25M01   131072  256     3
 
 drivers/mtd/at24xx.c
-~~~~~~~~~~~~~~~~~~~~
+--------------------
 
 This is a driver for I2C-based at24cxx EEPROM (at24c32, at24c64, at24c128,
 at24c256, at24c512).  This driver is currently provided as an MTD driver
 but could easily be modified to support the character driver interface.
 
 File Systems
-------------
+============
 
 Most EEPROM parts are too small to be candidates for use with a file
 system.  The character driver interface is optimal for these small parts
diff --git a/Documentation/components/drivers/block/index.rst b/Documentation/components/drivers/block/index.rst
index b79bbdc80b..ffd45b04db 100644
--- a/Documentation/components/drivers/block/index.rst
+++ b/Documentation/components/drivers/block/index.rst
@@ -2,6 +2,13 @@
 Block Device Drivers
 ====================
 
+.. toctree::
+  :maxdepth: 1
+
+  eeprom.rst
+  ramdisk.rst
+
+
 Block device drivers have these properties:
 
 -  ``include/nuttx/fs/fs.h``. All structures and APIs needed
@@ -37,107 +44,3 @@ Block device drivers have these properties:
 
 -  **Examples**. ``drivers/loop.c``,
    ``drivers/mmcsd/mmcsd_spi.c``, ``drivers/ramdisk.c``, etc.
-
-``ramdisk.c``
-=============
-
-Can be used to set up a block of memory or (read-only) FLASH as
-a block driver that can be mounted as a file system.  See
-include/nuttx/drivers/ramdisk.h.
-
-EEPROM
-======
-
-EEPROMs are a form of Memory
-  Technology Device (MTD).  EEPROMs are non-volatile memory like FLASH, but
-  differ in underlying memory technology and differ in usage in many respects:
-  They may not be organized into blocks (at least from the standpoint of the
-  user) and it is not necessary to erase the EEPROM memory before re-writing
-  it.  In addition, EEPROMs tend to be much smaller than FLASH parts, usually
-  only a few kilobytes vs megabytes for FLASH.  EEPROM tends to be used to
-  retain a small amount of device configuration information; FLASH tends
-  to be used for program or massive data storage. For these reasons, it may
-  not be convenient to use the more complex MTD interface but instead use
-  the simple character interface provided by the EEPROM drivers.
-
-EEPROM Device Support
----------------------
-
-drivers/eeprom/spi_xx25xx.c
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-This is a driver for SPI EEPROMs that use the same commands as the
-25AA160::
-
-    Manufacturer Device     Bytes PgSize AddrLen
-    Microchip
-                 25xx010A     128   16     1
-                 25xx020A     256   16     1
-                 25AA02UID    256   16     1
-                 25AA02E48    256   16     1
-                 25AA02E64    256   16     1
-                 25xx040      512   16     1+bit
-                 25xx040A     512   16     1+bit
-                 25xx080     1024   16     1
-                 25xx080A    1024   16     2
-                 25xx080B    1024   32     2
-                 25xx080C    1024   16     x
-                 25xx080D    1024   32     x
-                 25xx160     2048   16     2
-                 25xx160A/C  2048   16     2    TESTED
-                 25xx160B/D  2048   32     2
-                 25xx160C    2048   16     2
-                 25xx160D    2048   32     2
-                 25xx320     4096   32     2
-                 25xx320A    4096   32     2
-                 25xx640     8192   32     2
-                 25xx640A    8192   32     2
-                 25xx128    16384   64     2
-                 25xx256    32768   64     2
-                 25xx512    65536  128     2
-                 25xx1024  131072  256     3
-    Atmel
-                 AT25010B     128    8     1
-                 AT25020B     256    8     1
-                 AT25040B     512    8     1+bit
-                 AT25080B    1024   32     2
-                 AT25160B    2048   32     2
-                 AT25320B    4096   32     2
-                 AT25640B    8192   32     2
-                 AT25128B   16384   64     2
-                 AT25256B   32768   64     2
-                 AT25512    65536  128     2
-                 AT25M01   131072  256     3
-
-drivers/mtd/at24xx.c
-~~~~~~~~~~~~~~~~~~~~
-
-This is a driver for I2C-based at24cxx EEPROM (at24c32, at24c64, at24c128,
-at24c256, at24c512).  This driver is currently provided as an MTD driver
-but could easily be modified to support the character driver interface.
-
-File Systems
-------------
-
-Most EEPROM parts are too small to be candidates for use with a file
-system.  The character driver interface is optimal for these small parts
-because you can open and access the EEPROM part as if it were a single,
-fixed size file.
-
-It is also possible to use these character drivers with a file system.
-The character driver can converted to a block device using the NuttX loop
-device.  The loop device can be found the file drivers/loop.c.  Interface
-function prototypes can be found in include/nuttx/fs/fs.h::
-
-    int losetup(FAR const char *devname, FAR const char *filename,
-                uint16_t sectsize, off_t offset, bool readonly);
-
-Given a file or character devices at 'filename', losetup will create the
-block device 'devname' using a bogus sector size of sectsize.  'offset' is
-normally zero but can be used to provide an offset into the EEPROM where
-the block driver data starts;  The EEPROM block driver can also be read-
-only.
-
-There is a corresponding function that will destroy the loop device::
-
-    int loteardown(FAR const char *devname);
diff --git a/Documentation/components/drivers/block/ramdisk.rst b/Documentation/components/drivers/block/ramdisk.rst
new file mode 100644
index 0000000000..64f26726a2
--- /dev/null
+++ b/Documentation/components/drivers/block/ramdisk.rst
@@ -0,0 +1,7 @@
+=============
+``ramdisk.c``
+=============
+
+Can be used to set up a block of memory or (read-only) FLASH as
+a block driver that can be mounted as a file system.  See
+include/nuttx/drivers/ramdisk.h.
diff --git a/Documentation/components/drivers/character/1wire.rst b/Documentation/components/drivers/character/1wire.rst
new file mode 100644
index 0000000000..31cfeaa4a2
--- /dev/null
+++ b/Documentation/components/drivers/character/1wire.rst
@@ -0,0 +1,3 @@
+================
+One Wire Drivers
+================
diff --git a/Documentation/components/drivers/character/bch.rst b/Documentation/components/drivers/character/bch.rst
new file mode 100644
index 0000000000..3eb34ddf5e
--- /dev/null
+++ b/Documentation/components/drivers/character/bch.rst
@@ -0,0 +1,3 @@
+================================
+Block Driver to Character Driver
+================================
diff --git a/Documentation/components/drivers/character/contactless.rst b/Documentation/components/drivers/character/contactless.rst
new file mode 100644
index 0000000000..63f229f17e
--- /dev/null
+++ b/Documentation/components/drivers/character/contactless.rst
@@ -0,0 +1,3 @@
+====================
+Constactless Devices
+====================
diff --git a/Documentation/components/drivers/character/crypto/index.rst b/Documentation/components/drivers/character/crypto/index.rst
new file mode 100644
index 0000000000..cf172433b3
--- /dev/null
+++ b/Documentation/components/drivers/character/crypto/index.rst
@@ -0,0 +1,8 @@
+==============
+Crypto Drivers
+==============
+
+.. toctree::
+  :caption: Supported Drivers
+
+  se05x.rst
diff --git a/Documentation/components/drivers/character/se05x.rst b/Documentation/components/drivers/character/crypto/se05x.rst
similarity index 100%
rename from Documentation/components/drivers/character/se05x.rst
rename to Documentation/components/drivers/character/crypto/se05x.rst
diff --git a/Documentation/components/drivers/character/efuse.rst b/Documentation/components/drivers/character/efuse.rst
new file mode 100644
index 0000000000..ca0c526137
--- /dev/null
+++ b/Documentation/components/drivers/character/efuse.rst
@@ -0,0 +1,3 @@
+=============
+EFUSE Drivers
+=============
diff --git a/Documentation/components/drivers/character/i2s.rst b/Documentation/components/drivers/character/i2s.rst
new file mode 100644
index 0000000000..05572189fe
--- /dev/null
+++ b/Documentation/components/drivers/character/i2s.rst
@@ -0,0 +1,5 @@
+===========
+I2S Drivers
+===========
+
+See ``include/nuttx/audio/i2s.h``.
diff --git a/Documentation/components/drivers/character/index.rst b/Documentation/components/drivers/character/index.rst
index eeff407590..555b92bd0d 100644
--- a/Documentation/components/drivers/character/index.rst
+++ b/Documentation/components/drivers/character/index.rst
@@ -52,20 +52,28 @@ Character device drivers have these properties:
 
 .. toctree::
   :caption: Supported Drivers
+  :maxdepth: 2
 
-  serial.rst
-  touchscreen.rst
+  1wire.rst
   analog.rst
-  pwm.rst
+  bch.rst
   can.rst
-  quadrature.rst
-  timer.rst
-  rtc.rst
-  watchdog.rst
-  keypad.rst
+  contactless.rst
+  crypto/index.rst
+  efuse.rst
+  i2s.rst
+  input/index.rst
+  ipcc.rst
+  leds/index.rst
+  loop.rst
+  math.rst
+  modem.rst
+  motor/index.rst
   note.rst
-  foc.rst
-  ws2812.rst
-  se05x.rst
   nullzero.rst
-
+  quadrature.rst
+  rc.rst
+  rf.rst
+  serial.rst
+  timers/index.rst
+  touchscreen.rst
diff --git a/Documentation/components/drivers/character/input/index.rst b/Documentation/components/drivers/character/input/index.rst
new file mode 100644
index 0000000000..ce0d896c62
--- /dev/null
+++ b/Documentation/components/drivers/character/input/index.rst
@@ -0,0 +1,10 @@
+=============
+Input Devices
+=============
+
+.. toctree::
+  :caption: Supported Drivers
+
+  keypad.rst
+
+See ``include/nuttx/input/*.h`` for registration information.
diff --git a/Documentation/components/drivers/character/keypad.rst b/Documentation/components/drivers/character/input/keypad.rst
similarity index 100%
rename from Documentation/components/drivers/character/keypad.rst
rename to Documentation/components/drivers/character/input/keypad.rst
diff --git a/Documentation/components/drivers/character/ipcc.rst b/Documentation/components/drivers/character/ipcc.rst
new file mode 100644
index 0000000000..d7d2bb1beb
--- /dev/null
+++ b/Documentation/components/drivers/character/ipcc.rst
@@ -0,0 +1,3 @@
+======================================================
+IPCC (Inter Processor Communication Controller) Driver
+======================================================
diff --git a/Documentation/components/drivers/character/leds/index.rst b/Documentation/components/drivers/character/leds/index.rst
new file mode 100644
index 0000000000..bfed00549a
--- /dev/null
+++ b/Documentation/components/drivers/character/leds/index.rst
@@ -0,0 +1,8 @@
+====
+LEDS
+====
+
+.. toctree::
+  :caption: Supported Drivers
+
+  ws2812.rst
diff --git a/Documentation/components/drivers/character/ws2812.rst b/Documentation/components/drivers/character/leds/ws2812.rst
similarity index 100%
rename from Documentation/components/drivers/character/ws2812.rst
rename to Documentation/components/drivers/character/leds/ws2812.rst
diff --git a/Documentation/components/drivers/character/loop.rst b/Documentation/components/drivers/character/loop.rst
new file mode 100644
index 0000000000..e869123922
--- /dev/null
+++ b/Documentation/components/drivers/character/loop.rst
@@ -0,0 +1,6 @@
+===========
+Loop Device
+===========
+
+Supports the standard loop device that can be used to export a
+file (or character device) as a block device.
diff --git a/Documentation/components/drivers/character/math.rst b/Documentation/components/drivers/character/math.rst
new file mode 100644
index 0000000000..46a0640069
--- /dev/null
+++ b/Documentation/components/drivers/character/math.rst
@@ -0,0 +1,3 @@
+=========================
+Math Acceleration Drivers
+=========================
diff --git a/Documentation/components/drivers/character/modem.rst b/Documentation/components/drivers/character/modem.rst
new file mode 100644
index 0000000000..15e7e43026
--- /dev/null
+++ b/Documentation/components/drivers/character/modem.rst
@@ -0,0 +1,3 @@
+============
+Modem Device
+============
diff --git a/Documentation/components/drivers/character/foc.rst b/Documentation/components/drivers/character/motor/foc.rst
similarity index 100%
rename from Documentation/components/drivers/character/foc.rst
rename to Documentation/components/drivers/character/motor/foc.rst
diff --git a/Documentation/components/drivers/character/motor/index.rst b/Documentation/components/drivers/character/motor/index.rst
new file mode 100644
index 0000000000..8a58b8daf5
--- /dev/null
+++ b/Documentation/components/drivers/character/motor/index.rst
@@ -0,0 +1,8 @@
+=============
+Motor Drivers
+=============
+
+.. toctree::
+  :caption: Supported Drivers
+
+  foc.rst
diff --git a/Documentation/components/drivers/character/rc.rst b/Documentation/components/drivers/character/rc.rst
new file mode 100644
index 0000000000..4cb3d02d5e
--- /dev/null
+++ b/Documentation/components/drivers/character/rc.rst
@@ -0,0 +1,3 @@
+======================
+Remote Control Devices
+======================
diff --git a/Documentation/components/drivers/character/rf.rst b/Documentation/components/drivers/character/rf.rst
new file mode 100644
index 0000000000..311e510eec
--- /dev/null
+++ b/Documentation/components/drivers/character/rf.rst
@@ -0,0 +1,3 @@
+==========
+RF Devices
+==========
diff --git a/Documentation/components/drivers/character/timers/index.rst b/Documentation/components/drivers/character/timers/index.rst
new file mode 100644
index 0000000000..3ebe20aa3e
--- /dev/null
+++ b/Documentation/components/drivers/character/timers/index.rst
@@ -0,0 +1,12 @@
+==============
+Timers Drivers
+==============
+
+.. toctree::
+  :caption: Supported Drivers
+
+  timer.rst
+  pwm.rst
+  watchdog.rst
+  rtc.rst
+
diff --git a/Documentation/components/drivers/character/pwm.rst b/Documentation/components/drivers/character/timers/pwm.rst
similarity index 100%
rename from Documentation/components/drivers/character/pwm.rst
rename to Documentation/components/drivers/character/timers/pwm.rst
diff --git a/Documentation/components/drivers/character/rtc.rst b/Documentation/components/drivers/character/timers/rtc.rst
similarity index 100%
rename from Documentation/components/drivers/character/rtc.rst
rename to Documentation/components/drivers/character/timers/rtc.rst
diff --git a/Documentation/components/drivers/character/timer.rst b/Documentation/components/drivers/character/timers/timer.rst
similarity index 100%
rename from Documentation/components/drivers/character/timer.rst
rename to Documentation/components/drivers/character/timers/timer.rst
diff --git a/Documentation/components/drivers/character/watchdog.rst b/Documentation/components/drivers/character/timers/watchdog.rst
similarity index 100%
rename from Documentation/components/drivers/character/watchdog.rst
rename to Documentation/components/drivers/character/timers/watchdog.rst
diff --git a/Documentation/components/drivers/index.rst b/Documentation/components/drivers/index.rst
index 14f9b27aaf..dbf524ea8c 100644
--- a/Documentation/components/drivers/index.rst
+++ b/Documentation/components/drivers/index.rst
@@ -30,48 +30,57 @@ Drivers in NuttX generally work in two distinct layers:
   * A "lower half" which is typically hardware-specific. This is
     usually implemented at the architecture or board level.
 
-Subdirectories of `nuttx/drivers`
-=================================
+Subdirectories of ``nuttx/drivers``
+===================================
 
-* ``analog/``
+* ``1wire/`` :doc:`character/1wire`
+
+  1wire device drivers.
+
+* ``analog/`` :doc:`character/analog`
 
   This directory holds implementations of analog device drivers.
   This includes drivers for Analog to Digital Conversion (ADC) as
   well as drivers for Digital to Analog Conversion (DAC).
-  See ``include/nuttx/analog/*.h`` for registration information.
 
-* ``audio/`` 
+* ``audio/`` :doc:`special/audio`
 
   Audio device drivers.
 
-  See ``include/nuttx/audio/audio.h`` for interface definitions.
-  See also the audio subsystem at ``nuttx/audio/``.
-
-* ``bch/``
+* ``bch/`` :doc:`character/bch`
 
   Contains logic that may be used to convert a block driver into
   a character driver.  This is the complementary conversion as that
   performed by loop.c.
 
-  See ``include/nuttx/fs/fs.h`` for registration information.
-
-* ``can/``
+* ``can/`` :doc:`character/can`
 
   This is the CAN drivers and logic support.
 
-  See ``include/nuttx/can/can.h`` for usage information.
+* ``clk/``:doc:`special/clk`
+
+  Clock management (CLK) device drivers.
 
-* ``contactless/``
+* ``contactless/`` :doc:`character/contactless`
 
   Contactless devices are related to wireless devices.  They are not
   communication devices with other similar peers, but couplers/interfaces
   to contactless cards and tags.
 
-* ``crypto/``
+* ``crypto/`` :doc:`character/crypto/index`
+
+  Contains crypto drivers and support logic, including the
+  ``/dev/urandom`` device.
 
-  Contains crypto drivers and support logic, including the ``/dev/urandom`` device.
+* ``devicetree/`` :doc:`special/devicetree`
 
-* ``eeprom/``
+  Device Tree support.
+
+* ``dma/`` :doc:`special/dma`
+
+  DMA drivers support.
+
+* ``eeprom/`` :doc:`block/eeprom`
 
   An EEPROM is a form of Memory Technology Device (see ``drivers/mtd``).
   EEPROMs are non-volatile memory like FLASH, but differ in underlying
@@ -86,90 +95,123 @@ Subdirectories of `nuttx/drivers`
   interface but instead use the simple character interface provided by
   the EEPROM drivers.
 
-* ``i2c/``
+* ``efuse/`` :doc:`character/efuse`
 
-  I2C drivers and support logic.
+  EFUSE drivers support.
+
+* ``i2c/`` :doc:`special/i2c`
 
-  See ``include/nuttx/i2c/i2c_master.h``
+  I2C drivers and support logic.
 
-* ``i2s/``
+* ``i2s/`` :doc:`character/i2s`
 
   I2S drivers and support logic.
 
-  See ``include/nuttx/audio/i2s.h``
-
-* ``input/``
+* ``input/`` :doc:`character/input/index`
 
   This directory holds implementations of human input device (HID) drivers.
   This includes such things as mouse, touchscreen, joystick,
   keyboard and keypad drivers.
 
-  See ``include/nuttx/input/*.h`` for registration information.
-
   Note that USB HID devices are treated differently.  These can be found under
   ``usbdev/`` or ``usbhost/``.
 
-* ``lcd/``
+* ``ioexpander/`` :doc:`special/ioexpander`
+
+  IO Expander drivers.
+
+* ``ipcc/`` :doc:`character/ipcc`
+
+  IPCC (Inter Processor Communication Controller) driver.
 
-  Drivers for parallel and serial LCD and OLED type devices.  These drivers support
-  interfaces as defined in ``include/nuttx/lcd/lcd.h``
+* ``lcd/`` :doc:`special/lcd`
 
-* ``leds/``
+  Drivers for parallel and serial LCD and OLED type devices.
+
+* ``leds/`` :doc:`character/leds/index`
 
   Various LED-related drivers including discrete as well as PWM- driven LEDs.
 
-* ``loop/``
+* ``loop/`` :doc:`character/loop`
 
   Supports the standard loop device that can be used to export a
   file (or character device) as a block device.
 
   See ``losetup()`` and ``loteardown()`` in ``include/nuttx/fs/fs.h``.
 
-* ``mmcsd/``
+* ``math/`` :doc:`character/math`
+
+  MATH Acceleration drivers.
+
+* ``misc/`` :doc:`character/nullzero` :doc:`special/rwbuffer` :doc:`block/ramdisk`
+
+  Various drivers that don't fit elsewhere.
+
+* ``mmcsd/`` :doc:`special/sdio` :doc:`special/mmcsd`
 
   Support for MMC/SD block drivers.  MMC/SD block drivers based on
   SPI and SDIO/MCI interfaces are supported.
 
-  See include/nuttx/mmcsd.h and include/nuttx/sdio.h for further information.
+* ``modem/`` :doc:`character/modem`
 
-* ``mtd/``
+  Modem Support.
 
-  Memory Technology Device (MTD) drivers.  Some simple drivers for
-  memory technologies like FLASH, EEPROM, NVRAM, etc.
+* ``motor/`` :doc:`character/motor/index`
+
+  Motor control drivers.
 
+* ``mtd/`` :doc:`special/mtd`
 
-  See ``include/nuttx/mtd/mtd.h``
+  Memory Technology Device (MTD) drivers.  Some simple drivers for
+  memory technologies like FLASH, EEPROM, NVRAM, etc.
 
   (Note: This is a simple memory interface and should not be
   confused with the "real" MTD developed at infradead.org.  This
   logic is unrelated; I just used the name MTD because I am not
   aware of any other common way to refer to this class of devices).
 
-* ``net/``
+* ``net/`` :doc:`special/net/index`
 
   Network interface drivers.
 
-  See also ``include/nuttx/net/net.h``
+* ``notes/`` :doc:`character/note`
+
+  Note Driver Support.
+
+* ``pipes/`` :doc:`special/pipes`
+
+  FIFO and named pipe drivers.
+  Standard interfaces are declared in ``include/unistd.h``
+
+* ``power/`` :doc:`special/power/index`
+
+  Various drivers related to power managament.
+
+* ``rc/`` :doc:`character/rc`
 
-* ``pipes/``
+  Remote Control Device Support.
 
-  FIFO and named pipe drivers.  Standard interfaces are declared in ``include/unistd.h``
+* ``regmap/`` :doc:`special/regmap`
 
-* ``power/``
+  Regmap Subsystems Support.
 
-  Power management (PM) driver interfaces.  These interfaces are used
-  to manage power usage of a platform by monitoring driver activity
-  and by placing drivers into reduce power usage modes when the
-  drivers are not active.
+* ``reset/`` :doc:`special/reset`
 
-* ``pwm/``
+  Reset Driver Support.
 
-  Provides the "upper half" of a pulse width modulation (PWM) driver.
-  The "lower half" of the PWM driver is provided by device-specific logic.
+* ``rf/`` :doc:`character/rf`
 
-  See ``include/nuttx/timers/pwm.h`` for usage information.
+  RF Device Support.
 
-* ``sensors/``
+* ``rptun/`` :doc:`special/rptun`
+
+  Remote Proc Tunnel Driver Support.
+
+* ``segger/`` :doc:`special/segger`
+
+  Segger RTT drivers.
+
+* ``sensors/`` :doc:`special/sensors`
 
   Drivers for various sensors.  A sensor driver differs little from
   other types of drivers other than they are use to provide measurements
@@ -180,57 +222,53 @@ Subdirectories of `nuttx/drivers`
   measure and convert voltage levels.  DACs, however, are retained in
   the ``analog/`` sub-directory.
 
-* ``serial/``
+* ``serial/``:doc:`character/serial`
 
   Front-end character drivers for chip-specific UARTs.
   This provide some TTY-like functionality and are commonly used (but
   not required for) the NuttX system console.
 
-  See also ``include/nuttx/serial/serial.h``
-
-* ``spi/``
+* ``spi/`` :doc:`special/spi`
 
   SPI drivers and support logic.
 
-  See ``include/nuttx/spi/spi.h``
-
-* ``syslog/``
+* ``syslog/`` :doc:`special/syslog`
 
   System logging devices.
 
-  See ``include/syslog.h`` and ``include/nuttx/syslog/syslog.h``
+* ``timers/`` :doc:`character/timers/index`
 
-* ``timers/``
+  Includes support for various timer devices.
 
-  Includes support for various timer devices including:
+* ``usbdev/`` :doc:`special/usbdev`
 
-  - An "upper half" for a generic timer driver.
-    See ``include/nuttx/timers/timer.h`` for more information.
+  USB device drivers.
 
-  - An "upper half" for a generic watchdog driver.
-    See ``include/nuttx/timers/watchdog.h`` for more information.
+* ``usbhost/`` :doc:`special/usbhost`
 
-  - RTC drivers
+  USB host drivers.
 
-* ``usbdev/``
+* ``usbmisc/`` :doc:`special/usbmisc`
 
-  USB device drivers.
+  USB Miscellaneous drivers.
 
-  See also ``include/nuttx/usb/usbdev.h``
+* ``usbmonitor/`` :doc:`special/usbmonitor`
 
-* ``usbhost/``
+  USB Monitor support.
 
-  USB host drivers.
+* ``usrsock/`` :doc:`special/usrsock`
 
-  See also ``include/nuttx/usb/usbhost.h``
+  Usrsock Driver Support.
 
-* ``video/``
+* ``video/`` :doc:`special/video`
 
   Video-related drivers.
 
-  See ``include/nuttx/video/``
+* ``virtio/`` :doc:`special/virtio`
+
+  Virtio Device Support.
 
-* ``wireless/``
+* ``wireless/`` :doc:`special/wireless`
 
   Drivers for various wireless devices.
 
diff --git a/Documentation/components/drivers/special/audio.rst b/Documentation/components/drivers/special/audio.rst
new file mode 100644
index 0000000000..bc03c10b7b
--- /dev/null
+++ b/Documentation/components/drivers/special/audio.rst
@@ -0,0 +1,6 @@
+====================
+Audio Device Drivers
+====================
+
+See ``include/nuttx/audio/audio.h`` for interface definitions.
+See also the audio subsystem at ``nuttx/audio/``.
diff --git a/Documentation/components/drivers/special/clk.rst b/Documentation/components/drivers/special/clk.rst
new file mode 100644
index 0000000000..981d3de2d6
--- /dev/null
+++ b/Documentation/components/drivers/special/clk.rst
@@ -0,0 +1,3 @@
+======================
+Clock management (CLK)
+======================
diff --git a/Documentation/components/drivers/special/devicetree.rst b/Documentation/components/drivers/special/devicetree.rst
new file mode 100644
index 0000000000..08d4f0171f
--- /dev/null
+++ b/Documentation/components/drivers/special/devicetree.rst
@@ -0,0 +1,3 @@
+===================
+Device Tree support
+===================
diff --git a/Documentation/components/drivers/special/dma.rst b/Documentation/components/drivers/special/dma.rst
new file mode 100644
index 0000000000..47dddf24de
--- /dev/null
+++ b/Documentation/components/drivers/special/dma.rst
@@ -0,0 +1,3 @@
+===========
+DMA Drivers
+===========
diff --git a/Documentation/components/drivers/special/i2c.rst b/Documentation/components/drivers/special/i2c.rst
index a284468636..fa722cbf2b 100644
--- a/Documentation/components/drivers/special/i2c.rst
+++ b/Documentation/components/drivers/special/i2c.rst
@@ -2,8 +2,9 @@
 I2C Device Drivers
 ==================
 
--  ``include/nuttx/i2c/i2c.h``. All structures and APIs needed
-   to work with I2C drivers are provided in this header file.
+-  ``include/nuttx/i2c/i2c_master.h`` and ``include/nuttx/i2c/i2c_slave.h``.
+   All structures and APIs needed to work with I2C drivers are provided in
+   this header file.
 
 -  ``struct i2c_ops_s``. Each I2C device driver must implement
    an instance of ``struct i2c_ops_s``. That structure defines a
diff --git a/Documentation/components/drivers/special/index.rst b/Documentation/components/drivers/special/index.rst
index bf55b4d34a..5b28073f06 100644
--- a/Documentation/components/drivers/special/index.rst
+++ b/Documentation/components/drivers/special/index.rst
@@ -22,17 +22,33 @@ following section.
 .. toctree::
   :caption: Supported Drivers
 
-  syslog.rst
-  spi.rst
-  i2c.rst
-  ethernet.rst
+  audio.rst
+  clk.rst
+  devicetree.rst
+  dma.rst
   framebuffer.rst
+  i2c.rst
+  ioexpander.rst
   lcd.rst
   mtd.rst
-  sdio.rst
-  usbhost.rst
-  usbdev.rst
-  rwbuffer.rst
   regmap.rst
+  reset.rst
+  rptun.rst
+  rwbuffer.rst
   sensors.rst
+  segger.rst
+  spi.rst
+  syslog.rst
+  sdio.rst
+  usbdev.rst
+  usbhost.rst
+  usbmisc.rst
+  usbmonitor.rst
+  usrsock.rst
+  mmcsd.rst
+  net/index.rst
+  pipes.rst
+  power/index.rst
+  virtio.rst
   video.rst
+  wireless.rst
diff --git a/Documentation/components/drivers/special/ioexpander.rst b/Documentation/components/drivers/special/ioexpander.rst
new file mode 100644
index 0000000000..18d78e8311
--- /dev/null
+++ b/Documentation/components/drivers/special/ioexpander.rst
@@ -0,0 +1,3 @@
+==========================
+IO Expander Device Drivers
+==========================
diff --git a/Documentation/components/drivers/special/mmcsd.rst b/Documentation/components/drivers/special/mmcsd.rst
new file mode 100644
index 0000000000..5ba08b325b
--- /dev/null
+++ b/Documentation/components/drivers/special/mmcsd.rst
@@ -0,0 +1,6 @@
+====================
+MMCSD Device Drivers
+====================
+
+-  ``include/nuttx/mmcsd.h``. All structures and APIs needed to
+   work with MMCSD drivers are provided in this header file.
diff --git a/Documentation/components/drivers/special/ethernet.rst b/Documentation/components/drivers/special/net/ethernet.rst
similarity index 100%
rename from Documentation/components/drivers/special/ethernet.rst
rename to Documentation/components/drivers/special/net/ethernet.rst
diff --git a/Documentation/components/drivers/special/net/index.rst b/Documentation/components/drivers/special/net/index.rst
new file mode 100644
index 0000000000..483b70b4a1
--- /dev/null
+++ b/Documentation/components/drivers/special/net/index.rst
@@ -0,0 +1,14 @@
+=========================
+Network interface drivers
+=========================
+
+-  ``include/nuttx/net/net.h``. All structures and APIs
+   needed to work with network device drivers are provided in
+   this header file.
+
+
+.. toctree::
+  :caption: Supported Drivers
+
+  ethernet.rst
+
diff --git a/Documentation/components/drivers/special/pipes.rst b/Documentation/components/drivers/special/pipes.rst
new file mode 100644
index 0000000000..878e8e1625
--- /dev/null
+++ b/Documentation/components/drivers/special/pipes.rst
@@ -0,0 +1,3 @@
+===========================
+FIFO and named pipe drivers
+===========================
diff --git a/Documentation/components/drivers/special/power/index.rst b/Documentation/components/drivers/special/power/index.rst
new file mode 100644
index 0000000000..956088be16
--- /dev/null
+++ b/Documentation/components/drivers/special/power/index.rst
@@ -0,0 +1,8 @@
+=====================
+Power-related Drivers
+=====================
+
+.. toctree::
+  :caption: Supported Drivers
+
+  pm/index.rst
diff --git a/Documentation/components/power.rst b/Documentation/components/drivers/special/power/pm/index.rst
similarity index 98%
rename from Documentation/components/power.rst
rename to Documentation/components/drivers/special/power/pm/index.rst
index 06452e1295..ac21a1a386 100644
--- a/Documentation/components/power.rst
+++ b/Documentation/components/drivers/special/power/pm/index.rst
@@ -85,8 +85,8 @@ All PM interfaces are declared in the file ``include/nuttx/power/pm.h``.
 
   Called by a device driver in
   order to register to receive power management event callbacks.
-  Refer to the :ref:`components/power:Callbacks` section for more
-  details.
+  Refer to the `Callbacks`_
+  section for more details.
 
   :param callbacks:
     An instance of :c:struct:`pm_callback_s`
@@ -100,8 +100,8 @@ All PM interfaces are declared in the file ``include/nuttx/power/pm.h``.
 
   Called by a device driver in
   order to unregister previously registered power management event
-  callbacks. Refer to the :ref:`components/power:Callbacks` section for
-  more details.
+  callbacks. Refer to the `Callbacks`_
+  section for more details.
 
   **Input Parameters:**
 
diff --git a/Documentation/components/pm.png b/Documentation/components/drivers/special/power/pm/pm.png
similarity index 100%
rename from Documentation/components/pm.png
rename to Documentation/components/drivers/special/power/pm/pm.png
diff --git a/Documentation/components/drivers/special/reset.rst b/Documentation/components/drivers/special/reset.rst
new file mode 100644
index 0000000000..64bf4683e4
--- /dev/null
+++ b/Documentation/components/drivers/special/reset.rst
@@ -0,0 +1,3 @@
+============
+Reset Driver
+============
diff --git a/Documentation/components/drivers/special/rptun.rst b/Documentation/components/drivers/special/rptun.rst
new file mode 100644
index 0000000000..b977cde71a
--- /dev/null
+++ b/Documentation/components/drivers/special/rptun.rst
@@ -0,0 +1,23 @@
+==========================
+Remote Proc Tunnel Drivers
+==========================
+
+RPTUN driver is used for multi-cores' communication.
+
+Supported RPTUN drivers:
+
+- RPMSG File System
+- RPMSG domain (remote) sockets
+- RPMSG UART Driver
+- RPMSG net Driver
+- RPMSG Usersock
+- RPMSG Sensor Driver
+- RPMSG RTC Driver
+- RPMSG MTD
+- RPMSG Device
+- RPMSG Block Driver
+- RPMSG IO expander
+- RPMSG uinput
+- RPMSG clk Driver
+- RPMSG syslog
+- RPMSG regulator
diff --git a/Documentation/components/drivers/special/segger.rst b/Documentation/components/drivers/special/segger.rst
new file mode 100644
index 0000000000..37835720ee
--- /dev/null
+++ b/Documentation/components/drivers/special/segger.rst
@@ -0,0 +1,10 @@
+==================
+Segger RTT drivers
+==================
+
+Supported Segger drivers:
+
+- serial over RTT - ``CONFIG_SERIAL_RTTx``,
+- console over RTT - ``CONFIG_SERIAL_RTT_CONSOLE_CHANNEL``
+- Segger SystemView - ``CONFIG_SEGGER_SYSVIEW``
+- Note RTT - ``CONFIG_NOTE_RTT``
diff --git a/Documentation/components/drivers/special/usbmisc.rst b/Documentation/components/drivers/special/usbmisc.rst
new file mode 100644
index 0000000000..1b97b236d5
--- /dev/null
+++ b/Documentation/components/drivers/special/usbmisc.rst
@@ -0,0 +1,3 @@
+=========================
+USB Miscellaneous Drivers
+=========================
diff --git a/Documentation/components/drivers/special/usbmonitor.rst b/Documentation/components/drivers/special/usbmonitor.rst
new file mode 100644
index 0000000000..cc592d8d99
--- /dev/null
+++ b/Documentation/components/drivers/special/usbmonitor.rst
@@ -0,0 +1,3 @@
+===================
+USB Monitor support
+===================
diff --git a/Documentation/components/drivers/special/usrsock.rst b/Documentation/components/drivers/special/usrsock.rst
new file mode 100644
index 0000000000..7a98a50806
--- /dev/null
+++ b/Documentation/components/drivers/special/usrsock.rst
@@ -0,0 +1,3 @@
+==============
+Usrsock Driver
+==============
diff --git a/Documentation/components/drivers/special/video.rst b/Documentation/components/drivers/special/video.rst
index 7418da269b..9f948dfe87 100644
--- a/Documentation/components/drivers/special/video.rst
+++ b/Documentation/components/drivers/special/video.rst
@@ -2,6 +2,9 @@
 Video Device Drivers
 ====================
 
+-  ``include/nuttx/video/``. All structures and APIs
+   needed to work with video drivers are provided in this header
+   file.
 
 max7456
 -------
diff --git a/Documentation/components/drivers/special/virtio.rst b/Documentation/components/drivers/special/virtio.rst
new file mode 100644
index 0000000000..9e73d27a09
--- /dev/null
+++ b/Documentation/components/drivers/special/virtio.rst
@@ -0,0 +1,3 @@
+=====================
+Virtio Device Drivers
+=====================
diff --git a/Documentation/components/drivers/special/wireless.rst b/Documentation/components/drivers/special/wireless.rst
new file mode 100644
index 0000000000..9997ed887f
--- /dev/null
+++ b/Documentation/components/drivers/special/wireless.rst
@@ -0,0 +1,3 @@
+================
+Wireless Drivers
+================
diff --git a/Documentation/components/filesystem/aio.rst b/Documentation/components/filesystem/aio.rst
new file mode 100644
index 0000000000..a703a1b08d
--- /dev/null
+++ b/Documentation/components/filesystem/aio.rst
@@ -0,0 +1,5 @@
+========================
+Asynchronous I/O support
+========================
+
+See ``include/aio.h``.
diff --git a/Documentation/components/filesystem/cromfs.rst b/Documentation/components/filesystem/cromfs.rst
index 34f794bf36..381accf55d 100644
--- a/Documentation/components/filesystem/cromfs.rst
+++ b/Documentation/components/filesystem/cromfs.rst
@@ -1,5 +1,5 @@
 ======
-cromfs
+CROMFS
 ======
 
 Overview
diff --git a/Documentation/components/filesystem/fat.rst b/Documentation/components/filesystem/fat.rst
new file mode 100644
index 0000000000..326f458031
--- /dev/null
+++ b/Documentation/components/filesystem/fat.rst
@@ -0,0 +1,5 @@
+===
+FAT
+===
+
+Support for FAT filesystem.
diff --git a/Documentation/components/filesystem/hostfs.rst b/Documentation/components/filesystem/hostfs.rst
new file mode 100644
index 0000000000..b3f8b66c70
--- /dev/null
+++ b/Documentation/components/filesystem/hostfs.rst
@@ -0,0 +1,13 @@
+================
+Host File System
+================
+
+The Host file system provides a mechanism to mount directories from the host OS
+during simulation mode. The host directory to be "mounted" is specified during
+the mount command using the ``-o`` command line switch, such as::
+
+			mount -t hostfs -o fs=/home/user/nuttx_root /host
+
+For non-NSH operation, the option ``fs=home/user/nuttx_root`` would
+be passed to the ``mount()`` routine using the optional ``void *data``
+parameter.
diff --git a/Documentation/components/filesystem/index.rst b/Documentation/components/filesystem/index.rst
index 637ba4b903..b9e120f225 100644
--- a/Documentation/components/filesystem/index.rst
+++ b/Documentation/components/filesystem/index.rst
@@ -45,13 +45,23 @@ scalability from the very tiny platform to the moderate platform.
 .. toctree::
   :maxdepth: 1
 
+  aio.rst
   binfs.rst
   cromfs.rst
+  fat.rst
+  hostfs.rst
+  littlefs.rst
   mmap.rst
+  nfs.rst
   nxffs.rst
+  partition.rst
   procfs.rst
+  romfs.rst
+  rpmsgfs.rst
   smartfs.rst
+  shmfs.rst
   spiffs.rst
+  tmpfs.rst
   unionfs.rst
+  userfs.rst
   zipfs.rst
-  partition.rst
diff --git a/Documentation/components/filesystem/littlefs.rst b/Documentation/components/filesystem/littlefs.rst
new file mode 100644
index 0000000000..fb54b6adfd
--- /dev/null
+++ b/Documentation/components/filesystem/littlefs.rst
@@ -0,0 +1,6 @@
+========
+LITTLEFS
+========
+
+A little fail-safe filesystem designed for microcontrollers from
+https://github.com/littlefs-project/littlefs.
diff --git a/Documentation/components/filesystem/nfs.rst b/Documentation/components/filesystem/nfs.rst
new file mode 100644
index 0000000000..d883c323b1
--- /dev/null
+++ b/Documentation/components/filesystem/nfs.rst
@@ -0,0 +1,5 @@
+===
+NFS
+===
+
+Network file system (NFS) client file system.
diff --git a/Documentation/components/filesystem/romfs.rst b/Documentation/components/filesystem/romfs.rst
new file mode 100644
index 0000000000..f39fc8b2f2
--- /dev/null
+++ b/Documentation/components/filesystem/romfs.rst
@@ -0,0 +1,3 @@
+=====
+ROMFS
+=====
diff --git a/Documentation/components/filesystem/rpmsgfs.rst b/Documentation/components/filesystem/rpmsgfs.rst
new file mode 100644
index 0000000000..3d4b5ac58f
--- /dev/null
+++ b/Documentation/components/filesystem/rpmsgfs.rst
@@ -0,0 +1,5 @@
+=================
+RPMSG File System
+=================
+
+Use rpmsg file system to mount remote directories to local.
diff --git a/Documentation/components/filesystem/shmfs.rst b/Documentation/components/filesystem/shmfs.rst
new file mode 100644
index 0000000000..f5ed0b8315
--- /dev/null
+++ b/Documentation/components/filesystem/shmfs.rst
@@ -0,0 +1,5 @@
+=========================
+Shared Memory File System
+=========================
+
+Include support for shm_open() and shm_close.
diff --git a/Documentation/components/filesystem/tmpfs.rst b/Documentation/components/filesystem/tmpfs.rst
new file mode 100644
index 0000000000..97a88bf3c5
--- /dev/null
+++ b/Documentation/components/filesystem/tmpfs.rst
@@ -0,0 +1,5 @@
+=====
+TMPFS
+=====
+
+TMPFS filesystem.
diff --git a/Documentation/components/filesystem/userfs.rst b/Documentation/components/filesystem/userfs.rst
new file mode 100644
index 0000000000..40cebe5fbf
--- /dev/null
+++ b/Documentation/components/filesystem/userfs.rst
@@ -0,0 +1,5 @@
+================
+User file system
+================
+
+See ``include/nuttx/fs/userfs.h``.
diff --git a/Documentation/components/index.rst b/Documentation/components/index.rst
index ba2488dd4a..9e00cb0a72 100644
--- a/Documentation/components/index.rst
+++ b/Documentation/components/index.rst
@@ -1,3 +1,4 @@
+=============
 OS Components
 =============
 
@@ -10,7 +11,6 @@ case, you can head to the :doc:`reference <../reference/index>`.
    :maxdepth: 2
    :caption: Contents:
    
-   power.rst
    binfmt.rst
    drivers/index.rst
    nxflat.rst
diff --git a/Documentation/introduction/about.rst b/Documentation/introduction/about.rst
index 281fcada60..b7c21dee9c 100644
--- a/Documentation/introduction/about.rst
+++ b/Documentation/introduction/about.rst
@@ -120,7 +120,7 @@ Key features of NuttX include:
   * Graphics: framebuffer drivers, graphic- and segment-LCD drivers. VNC server.
   * Audio subsystem: CODECs, audio input and output drivers. Command line and graphic media player applications.
   * Cryptographic subsystem.
-  * :doc:`/components/power` sub-system.
+  * :doc:`/components/drivers/special/power/pm/index` sub-system.
   * ModBus support provided by built-in `FreeModBus <https://www.embedded-experts.at/en/freemodbus/>`__ version 1.5.0.
 
 * **C/C++ Libraries**
diff --git a/Documentation/platforms/xtensa/esp32/index.rst b/Documentation/platforms/xtensa/esp32/index.rst
index 8ec4058a1e..7a6bd10098 100644
--- a/Documentation/platforms/xtensa/esp32/index.rst
+++ b/Documentation/platforms/xtensa/esp32/index.rst
@@ -240,7 +240,7 @@ Linker Segments
 ESP32 has 4 generic timers of 64 bits (2 from Group 0 and 2 from Group 1). They're
 accessible as character drivers, the configuration along with a guidance on how
 to run the example and the description of the application level interface
-can be found :doc:`here </components/drivers/character/timer>`.
+can be found :doc:`here </components/drivers/character/timers/timer>`.
 
 Watchdog Timers
 ===============
@@ -249,7 +249,7 @@ ESP32 has 3 WDTs. 2 MWDTS from the Timers Module and 1 RWDT from the RTC Module
 (Currently not supported yet). They're accessible as character drivers,
 The configuration along with a guidance on how to run the example and the description
 of the application level interface can be found
-:doc:`here </components/drivers/character/watchdog>`.
+:doc:`here </components/drivers/character/timers/watchdog>`.
 
 SMP
 ===
diff --git a/Documentation/platforms/xtensa/esp32s2/index.rst b/Documentation/platforms/xtensa/esp32s2/index.rst
index 0b06ca092d..d61a41d088 100644
--- a/Documentation/platforms/xtensa/esp32s2/index.rst
+++ b/Documentation/platforms/xtensa/esp32s2/index.rst
@@ -242,7 +242,7 @@ Linker Segments
 ESP32-S2 has 4 generic timers of 64 bits (2 from Group 0 and 2 from Group 1).
 They're accessible as character drivers, the configuration along with a
 guidance on how to run the example and the description of the application level
-interface can be found in the :doc:`timer documentation </components/drivers/character/timer>`.
+interface can be found in the :doc:`timer documentation </components/drivers/character/timers/timer>`.
 
 Watchdog Timers
 ===============
@@ -251,7 +251,7 @@ ESP32-S2 has 3 WDTs. 2 MWDTs from the Timers Module and 1 RWDT from the RTC Modu
 (Currently not supported yet). They're accessible as character drivers,
 The configuration along with a guidance on how to run the example and the description
 of the application level interface can be found in the
-:doc:`watchdog documentation </components/drivers/character/watchdog>`.
+:doc:`watchdog documentation </components/drivers/character/timers/watchdog>`.
 
 I2S
 ===
diff --git a/Documentation/reference/user/13_boardctl.rst b/Documentation/reference/user/13_boardctl.rst
index b7feb59c98..f5326f43ef 100644
--- a/Documentation/reference/user/13_boardctl.rst
+++ b/Documentation/reference/user/13_boardctl.rst
@@ -88,7 +88,7 @@ Power Management
    Manage power state transition and query. The supplied argument
    indicates the specific PM operation to perform, which map to
    corresponding internal ``pm_<operation>`` functions
-   (see :doc:`/components/power`).
+   (see :doc:`/components/drivers/special/power/pm/index`).
    
    With this interface you can interact with PM handling arch/board logic
    (typically done in IDLE loop) or you can directly manage state transitions