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:46 UTC

(nuttx) branch master updated (41762eb187 -> 8f7be6ce27)

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

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


    from 41762eb187 simwifi: host wlan0 obtains ip and set dns for wlan0 in the defwan wlan0
     new 82e260740a Documentation: cosmetics for unionfs.rst
     new a2bb55d8b7 Documentation: update copyright year
     new 408441bf15 Documentation: initialize cmake doc
     new 9c4f042c57 Documentation: add missing directories in net
     new 8090fb9d5c Documentation: add dummy pages for missing top directories
     new 870139e45f Documentation: move socketcan.rst to net/
     new d72c6802c1 Documentation: add dummy pages for missing filesystems and drivers
     new 770df6d820 Documentation: remove readme references
     new 579a35dc68 Documentation: fix ugly formating around some inline literals
     new 8f7be6ce27 Documentation: move nxwidgets to applications as it is apps-side lib

The 10 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../applications/examples/bastest/index.rst        |   3 +-
 .../applications/examples/mcuboot/index.rst        |   5 +-
 .../applications/examples/modbus/index.rst         |   5 +-
 .../applications/examples/qencoder/index.rst       |   4 +-
 .../applications/examples/thttpd/index.rst         |   3 +-
 .../applications/examples/unionfs/index.rst        |   4 +-
 .../applications/graphics/nxwidgets/index.rst      |  94 ++++++-----
 Documentation/applications/index.rst               |   2 -
 Documentation/applications/nsh/login.rst           |   6 +-
 Documentation/components/audio/index.rst           |   4 +-
 Documentation/components/boards.rst                |   4 +-
 Documentation/components/cmake.rst                 |   6 +
 Documentation/components/crypto.rst                |   5 +
 .../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 +
 .../components/drivers/character/analog.rst        |   6 +-
 Documentation/components/drivers/character/bch.rst |   3 +
 Documentation/components/drivers/character/can.rst |   6 +-
 .../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        |   6 +-
 .../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 +
 .../components/drivers/character/quadrature.rst    |   6 +-
 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         |   6 +-
 .../drivers/character/{ => timers}/rtc.rst         |   6 +-
 .../drivers/character/{ => timers}/timer.rst       |   6 +-
 .../drivers/character/{ => timers}/watchdog.rst    |   6 +-
 .../components/drivers/character/touchscreen.rst   |   4 +-
 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 |  33 +++-
 .../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/socketcan.rst       |  66 --------
 .../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/nxffs.rst      |   2 +-
 Documentation/components/filesystem/romfs.rst      |   3 +
 Documentation/components/filesystem/rpmsgfs.rst    |   5 +
 Documentation/components/filesystem/shmfs.rst      |   5 +
 Documentation/components/filesystem/smartfs.rst    |   4 +-
 Documentation/components/filesystem/tmpfs.rst      |   5 +
 Documentation/components/filesystem/unionfs.rst    |  32 ++--
 Documentation/components/filesystem/userfs.rst     |   5 +
 Documentation/components/index.rst                 |   8 +-
 Documentation/components/libs/libc/zoneinfo.rst    |   5 +-
 Documentation/components/mm/index.rst              |   4 +-
 Documentation/components/net/index.rst             |  11 +-
 Documentation/components/net/socketcan.rst         |  61 +++++++
 Documentation/components/nxgraphics/appendix.rst   |   5 +-
 Documentation/components/nxwidgets.rst             |  55 ------
 Documentation/components/openamp.rst               |   6 +
 Documentation/components/tools/index.rst           |  12 +-
 Documentation/components/video.rst                 |   5 +
 Documentation/components/wireless.rst              |  11 ++
 Documentation/conf.py                              |   2 +-
 Documentation/guides/zerolatencyinterrupts.rst     |   6 +-
 Documentation/introduction/about.rst               |   4 +-
 Documentation/platforms/xtensa/esp32/index.rst     |   4 +-
 Documentation/platforms/xtensa/esp32s2/index.rst   |   4 +-
 .../{compiling.rst => compiling_cmake.rst}         |  44 ++---
 .../{compiling.rst => compiling_make.rst}          |   6 +-
 Documentation/quickstart/configuring.rst           |   2 +-
 Documentation/quickstart/index.rst                 |   3 +-
 Documentation/quickstart/organization.rst          |   7 +-
 Documentation/reference/user/13_boardctl.rst       |   2 +-
 107 files changed, 705 insertions(+), 561 deletions(-)
 create mode 100644 Documentation/components/cmake.rst
 create mode 100644 Documentation/components/crypto.rst
 copy Documentation/components/drivers/block/{index.rst => eeprom.rst} (66%)
 create mode 100644 Documentation/components/drivers/block/ramdisk.rst
 create mode 100644 Documentation/components/drivers/character/1wire.rst
 create mode 100644 Documentation/components/drivers/character/bch.rst
 create mode 100644 Documentation/components/drivers/character/contactless.rst
 create mode 100644 Documentation/components/drivers/character/crypto/index.rst
 rename Documentation/components/drivers/character/{ => crypto}/se05x.rst (100%)
 create mode 100644 Documentation/components/drivers/character/efuse.rst
 create mode 100644 Documentation/components/drivers/character/i2s.rst
 create mode 100644 Documentation/components/drivers/character/input/index.rst
 rename Documentation/components/drivers/character/{ => input}/keypad.rst (100%)
 create mode 100644 Documentation/components/drivers/character/ipcc.rst
 create mode 100644 Documentation/components/drivers/character/leds/index.rst
 rename Documentation/components/drivers/character/{ => leds}/ws2812.rst (86%)
 create mode 100644 Documentation/components/drivers/character/loop.rst
 create mode 100644 Documentation/components/drivers/character/math.rst
 create mode 100644 Documentation/components/drivers/character/modem.rst
 rename Documentation/components/drivers/character/{ => motor}/foc.rst (100%)
 create mode 100644 Documentation/components/drivers/character/motor/index.rst
 create mode 100644 Documentation/components/drivers/character/rc.rst
 create mode 100644 Documentation/components/drivers/character/rf.rst
 create mode 100644 Documentation/components/drivers/character/timers/index.rst
 rename Documentation/components/drivers/character/{ => timers}/pwm.rst (89%)
 rename Documentation/components/drivers/character/{ => timers}/rtc.rst (84%)
 rename Documentation/components/drivers/character/{ => timers}/timer.rst (98%)
 rename Documentation/components/drivers/character/{ => timers}/watchdog.rst (98%)
 create mode 100644 Documentation/components/drivers/special/audio.rst
 create mode 100644 Documentation/components/drivers/special/clk.rst
 create mode 100644 Documentation/components/drivers/special/devicetree.rst
 create mode 100644 Documentation/components/drivers/special/dma.rst
 create mode 100644 Documentation/components/drivers/special/ioexpander.rst
 create mode 100644 Documentation/components/drivers/special/mmcsd.rst
 rename Documentation/components/drivers/special/{ => net}/ethernet.rst (100%)
 create mode 100644 Documentation/components/drivers/special/net/index.rst
 create mode 100644 Documentation/components/drivers/special/pipes.rst
 create mode 100644 Documentation/components/drivers/special/power/index.rst
 rename Documentation/components/{power.rst => drivers/special/power/pm/index.rst} (98%)
 rename Documentation/components/{ => drivers/special/power/pm}/pm.png (100%)
 create mode 100644 Documentation/components/drivers/special/reset.rst
 create mode 100644 Documentation/components/drivers/special/rptun.rst
 create mode 100644 Documentation/components/drivers/special/segger.rst
 delete mode 100644 Documentation/components/drivers/special/socketcan.rst
 create mode 100644 Documentation/components/drivers/special/usbmisc.rst
 create mode 100644 Documentation/components/drivers/special/usbmonitor.rst
 create mode 100644 Documentation/components/drivers/special/usrsock.rst
 create mode 100644 Documentation/components/drivers/special/virtio.rst
 create mode 100644 Documentation/components/drivers/special/wireless.rst
 create mode 100644 Documentation/components/filesystem/aio.rst
 create mode 100644 Documentation/components/filesystem/fat.rst
 create mode 100644 Documentation/components/filesystem/hostfs.rst
 create mode 100644 Documentation/components/filesystem/littlefs.rst
 create mode 100644 Documentation/components/filesystem/nfs.rst
 create mode 100644 Documentation/components/filesystem/romfs.rst
 create mode 100644 Documentation/components/filesystem/rpmsgfs.rst
 create mode 100644 Documentation/components/filesystem/shmfs.rst
 create mode 100644 Documentation/components/filesystem/tmpfs.rst
 create mode 100644 Documentation/components/filesystem/userfs.rst
 create mode 100644 Documentation/components/net/socketcan.rst
 delete mode 100644 Documentation/components/nxwidgets.rst
 create mode 100644 Documentation/components/openamp.rst
 create mode 100644 Documentation/components/video.rst
 create mode 100644 Documentation/components/wireless.rst
 copy Documentation/quickstart/{compiling.rst => compiling_cmake.rst} (54%)
 rename Documentation/quickstart/{compiling.rst => compiling_make.rst} (97%)


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

Posted by ac...@apache.org.
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


(nuttx) 05/10: Documentation: add dummy pages for missing top directories

Posted by ac...@apache.org.
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 8090fb9d5c144b4cfc925af2bb4899ceacc96653
Author: raiden00pl <ra...@railab.me>
AuthorDate: Fri Oct 27 11:39:30 2023 +0200

    Documentation: add dummy pages for missing top directories
    
    crypto, openamp, video and wireless
---
 Documentation/components/audio/index.rst |  4 ++--
 Documentation/components/crypto.rst      |  5 +++++
 Documentation/components/index.rst       |  5 +++++
 Documentation/components/openamp.rst     |  6 ++++++
 Documentation/components/video.rst       |  5 +++++
 Documentation/components/wireless.rst    | 11 +++++++++++
 6 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/Documentation/components/audio/index.rst b/Documentation/components/audio/index.rst
index de9a6637fc..0f1ccd2c9e 100644
--- a/Documentation/components/audio/index.rst
+++ b/Documentation/components/audio/index.rst
@@ -1,9 +1,9 @@
 ===============
-Audio subsystem
+Audio Subsystem
 ===============
 
 This page discusses the audio subsystem support for NuttX which is only built if
-CONFIG_AUDIO is defined in the NuttX configuration file.
+``CONFIG_AUDIO`` is defined in the NuttX configuration file.
 
 Files in nuttx/audio
 ====================
diff --git a/Documentation/components/crypto.rst b/Documentation/components/crypto.rst
new file mode 100644
index 0000000000..1a94ae0b05
--- /dev/null
+++ b/Documentation/components/crypto.rst
@@ -0,0 +1,5 @@
+====================
+Crypto API Subsystem
+====================
+
+In the future this page will contain details about the Crypto API in NuttX.
diff --git a/Documentation/components/index.rst b/Documentation/components/index.rst
index 72d48a8adc..ba2488dd4a 100644
--- a/Documentation/components/index.rst
+++ b/Documentation/components/index.rst
@@ -26,3 +26,8 @@ case, you can head to the :doc:`reference <../reference/index>`.
    tools/index.rst
    arch/index.rst
    boards.rst
+   cmake.rst
+   openamp.rst
+   video.rst
+   crypto.rst
+   wireless.rst
diff --git a/Documentation/components/openamp.rst b/Documentation/components/openamp.rst
new file mode 100644
index 0000000000..4e9349536c
--- /dev/null
+++ b/Documentation/components/openamp.rst
@@ -0,0 +1,6 @@
+===============
+OpenAMP Support
+===============
+
+Asymmetric Multi Processing support in NuttX is implemented via
+`OpenAMP <https://www.openampproject.org/>`_ framework.
diff --git a/Documentation/components/video.rst b/Documentation/components/video.rst
new file mode 100644
index 0000000000..3a75d82a9a
--- /dev/null
+++ b/Documentation/components/video.rst
@@ -0,0 +1,5 @@
+===============
+Video Subsystem
+===============
+
+In the future this page will contain details about the video support in NuttX.
diff --git a/Documentation/components/wireless.rst b/Documentation/components/wireless.rst
new file mode 100644
index 0000000000..41acafa806
--- /dev/null
+++ b/Documentation/components/wireless.rst
@@ -0,0 +1,11 @@
+==================
+Wireless Subsystem
+==================
+
+In the future this page will contain details about the wireless support in NuttX.
+
+Components:
+
+- ``wireless/bluetooth`` - Bluetooth Low Energy Support
+- ``wireless/pktradio`` - Packet Radio Support
+- ``wireless/ieee802154`` - IEEE 802.15.4 Support


(nuttx) 08/10: Documentation: remove readme references

Posted by ac...@apache.org.
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 770df6d82014154cf7c96073ec2c3fe3c77861f7
Author: raiden00pl <ra...@railab.me>
AuthorDate: Fri Oct 27 16:53:12 2023 +0200

    Documentation: remove readme references
---
 Documentation/applications/examples/bastest/index.rst  |  3 +--
 Documentation/applications/examples/mcuboot/index.rst  |  5 +++--
 Documentation/applications/examples/modbus/index.rst   |  5 +++--
 Documentation/applications/examples/qencoder/index.rst |  4 ++--
 Documentation/applications/examples/thttpd/index.rst   |  3 +--
 Documentation/applications/examples/unionfs/index.rst  |  4 ++--
 Documentation/applications/index.rst                   |  2 --
 Documentation/applications/nsh/login.rst               |  6 ++----
 Documentation/components/boards.rst                    |  2 +-
 Documentation/components/filesystem/nxffs.rst          |  2 +-
 Documentation/components/filesystem/smartfs.rst        |  4 ++--
 Documentation/components/filesystem/unionfs.rst        |  2 +-
 Documentation/components/libs/libc/zoneinfo.rst        |  5 +++--
 Documentation/components/mm/index.rst                  |  4 ++--
 Documentation/components/nxgraphics/appendix.rst       |  5 ++---
 Documentation/components/tools/index.rst               | 12 ++++++------
 Documentation/guides/zerolatencyinterrupts.rst         |  6 +++---
 Documentation/quickstart/organization.rst              |  7 ++-----
 18 files changed, 37 insertions(+), 44 deletions(-)

diff --git a/Documentation/applications/examples/bastest/index.rst b/Documentation/applications/examples/bastest/index.rst
index 603ad69dac..e8ef918e23 100644
--- a/Documentation/applications/examples/bastest/index.rst
+++ b/Documentation/applications/examples/bastest/index.rst
@@ -3,8 +3,7 @@
 =================================
 
 This directory contains a small program that will mount a ROMFS file system
-containing the BASIC test files extracted from the Bas ``2.4`` release. See
-``examples/bastest/README.md`` for licensing and usage information.
+containing the BASIC test files extracted from the Bas ``2.4`` release.
 
 - ``CONFIG_EXAMPLES_BASTEST_DEVMINOR`` – The minor device number of the ROMFS
   block driver. For example, the ``N`` in ``/dev/ramN``. Used for registering the
diff --git a/Documentation/applications/examples/mcuboot/index.rst b/Documentation/applications/examples/mcuboot/index.rst
index b883deed4c..2006e7c717 100644
--- a/Documentation/applications/examples/mcuboot/index.rst
+++ b/Documentation/applications/examples/mcuboot/index.rst
@@ -14,7 +14,7 @@ valid images.
 
 This application add 3 Builtin Apps to NuttX NSH: version, set_img and confirm.
 After application is build and ``nuttx.bin`` be generated, the binary must be
-signed. Consult your board README file to get instructions how to do it.
+signed. Consult your board documentation page to get instructions how to do it.
 
 How to build and flash
 ......................
@@ -33,7 +33,8 @@ as output file.
 The ``signedv1.bin`` file must be at MCUboot Slot-0 partition and ``signedv2.bin``
 at Slot-1.
 
-More instructions about how to sign and flash can be found at board README file.
+More instructions about how to sign and flash can be found at board documentation
+page.
 
 Running swap image test
 .......................
diff --git a/Documentation/applications/examples/modbus/index.rst b/Documentation/applications/examples/modbus/index.rst
index 88f21cc4fd..7f09ca0bd3 100644
--- a/Documentation/applications/examples/modbus/index.rst
+++ b/Documentation/applications/examples/modbus/index.rst
@@ -15,5 +15,6 @@ http://developer.berlios.de/project/showfiles.php?group_id=6120.
 - ``CONFIG_EXAMPLES_MODBUS_REG_HOLDING_START``, Default ``2000``.
 - ``CONFIG_EXAMPLES_MODBUS_REG_HOLDING_NREGS``, Default ``130``.
 
-The FreeModBus library resides at ``apps/modbus``. See ``apps/modbus/README.txt``
-for additional configuration information.
+The FreeModBus library resides at ``apps/modbus``.
+See :doc:`/applications/industry/modbus/index` for additional configuration
+information.
diff --git a/Documentation/applications/examples/qencoder/index.rst b/Documentation/applications/examples/qencoder/index.rst
index df74fa42ff..97cbb51d46 100644
--- a/Documentation/applications/examples/qencoder/index.rst
+++ b/Documentation/applications/examples/qencoder/index.rst
@@ -14,8 +14,8 @@ specific PWM settings might require additional settings).
   Default: Built as a standalone program.
 
 Additional configuration options will mostly likely be required for the board-
-specific lower-half driver. See the ``README.txt`` file in your board
-configuration directory.
+specific lower-half driver. See the documentation page for your board.
+
 
 Specific configuration options for this example include:
 
diff --git a/Documentation/applications/examples/thttpd/index.rst b/Documentation/applications/examples/thttpd/index.rst
index 164dccf260..9699cdb2ea 100644
--- a/Documentation/applications/examples/thttpd/index.rst
+++ b/Documentation/applications/examples/thttpd/index.rst
@@ -3,8 +3,7 @@
 ========================
 
 An example that builds ``netutils/thttpd`` with some simple NXFLAT CGI programs.
-See ``boards/README.txt`` for most THTTPD settings. In addition to those, this
-example accepts:
+In addition to those, this example accepts:
 
 - ``CONFIG_EXAMPLES_THTTPD_NOMAC``    – (May be defined to use software assigned
   MAC)
diff --git a/Documentation/applications/examples/unionfs/index.rst b/Documentation/applications/examples/unionfs/index.rst
index de1367018c..f1979edb5f 100644
--- a/Documentation/applications/examples/unionfs/index.rst
+++ b/Documentation/applications/examples/unionfs/index.rst
@@ -25,5 +25,5 @@ Configuration options. Use the defaults if you are unsure of what you are doing:
   number.
 - ``CONFIG_EXAMPLES_UNIONFS_SECTORSIZE`` – ROM disk sector size.
 
-See the ``README.txt`` file at ``nuttx/boards/sim/sim/sim/README.txt`` for a
-walk-through of the output of this text.
+See :doc:`/platforms/sim/sim/boards/sim/index` page for a walk-through of the
+output of this text.
diff --git a/Documentation/applications/index.rst b/Documentation/applications/index.rst
index 926844e753..bed0932dc5 100644
--- a/Documentation/applications/index.rst
+++ b/Documentation/applications/index.rst
@@ -7,8 +7,6 @@ Applications
 
 NuttX ships a large number of applications covering a wide spectrum of functionality.
 These can be found in the `apps <https://github.com/apache/nuttx-apps>`_ repository.
-At the moment, these are documented in their individual README files so you can find
-more information at the repository.
 
 .. toctree::
    :maxdepth: 2
diff --git a/Documentation/applications/nsh/login.rst b/Documentation/applications/nsh/login.rst
index 9003f9e7b9..9a92d96ff3 100644
--- a/Documentation/applications/nsh/login.rst
+++ b/Documentation/applications/nsh/login.rst
@@ -257,7 +257,5 @@ configuration at
 `boards/sim/sim/sim/configs/nsh <https://github.com/apache/nuttx/blob/master/boards/sim/sim/sim/configs/nsh/>`__.
 The ROMFS support files are provided at
 `boards/sim/include <https://github.com/apache/nuttx/blob/master/boards/sim/sim/sim/include/>`__
-and the
-`README.txt <https://github.com/apache/nuttx/blob/master/boards/sim/sim/sim/README.txt>`__
-file at the location provides detailed information about creating and
-modifying the ROMFS file system.
+and the :doc:`/platforms/sim/sim/boards/sim/index` page provides detailed
+information about creating and modifying the ROMFS file system.
diff --git a/Documentation/components/boards.rst b/Documentation/components/boards.rst
index b4dcb44680..229c156575 100644
--- a/Documentation/components/boards.rst
+++ b/Documentation/components/boards.rst
@@ -168,7 +168,7 @@ Configuring NuttX requires only copying::
 
     tools\configure.bat <board>:<config-dir>
 
-  See ``tools/README.txt`` for more information about these scripts.
+  See :doc:`tools/index` for more information about these scripts.
 
   And if your application directory is not in the standard location (``../apps``
   or ``../apps-<version>``), then you should also specify the location of the
diff --git a/Documentation/components/filesystem/nxffs.rst b/Documentation/components/filesystem/nxffs.rst
index c9457eae1c..b3936e7106 100644
--- a/Documentation/components/filesystem/nxffs.rst
+++ b/Documentation/components/filesystem/nxffs.rst
@@ -2,7 +2,7 @@
 NXFFS
 =====
 
-This README file contains information about the implementation of the NuttX
+This page contains information about the implementation of the NuttX
 wear-leveling FLASH file system, NXFFS.
 
 General NXFFS organization
diff --git a/Documentation/components/filesystem/smartfs.rst b/Documentation/components/filesystem/smartfs.rst
index 27d7dd0985..f5f83b99f1 100644
--- a/Documentation/components/filesystem/smartfs.rst
+++ b/Documentation/components/filesystem/smartfs.rst
@@ -2,7 +2,7 @@
 SMARTFS
 =======
 
-This README file contains information about the implementation of the NuttX
+This page contains information about the implementation of the NuttX
 Sector Mapped Allocation for Really Tiny (SMART) FLASH file system, SMARTFS.
 
 Features
@@ -116,7 +116,7 @@ have a smaller erase size available also.  Vendors have different names
 for the smaller erase size; In the NuttX MTD layer it is called
 SUBSECTOR_ERASE.  For FLASH devices that support the smaller erase size,
 this configuration item can be added to the underlying MTD driver, and
-SMART will use it.  As of the writing of this README, only the
+SMART will use it.  As of the writing of this page, only the
 drivers/mtd/m25px.c driver had support for SUBSECTOR_ERASE.
 
 The BYTE_WRITE config option enables use of the underlying MTD driver's
diff --git a/Documentation/components/filesystem/unionfs.rst b/Documentation/components/filesystem/unionfs.rst
index 518f48a7ae..2dfdf502f6 100644
--- a/Documentation/components/filesystem/unionfs.rst
+++ b/Documentation/components/filesystem/unionfs.rst
@@ -92,5 +92,5 @@ Example Configurations
   however, because the LPC1766 has insufficient RAM to support the THTTPD
   application in this configuration.
 
-See the README.txt file in each of these board directories for additional
+See the documentation pages for each of these board for additional
 information about these configurations.
diff --git a/Documentation/components/libs/libc/zoneinfo.rst b/Documentation/components/libs/libc/zoneinfo.rst
index f87f7a2c8d..f068c711c7 100644
--- a/Documentation/components/libs/libc/zoneinfo.rst
+++ b/Documentation/components/libs/libc/zoneinfo.rst
@@ -42,7 +42,7 @@ doing this:
   before there is any need for time-related services.
 
 Both of these steps are shown together in the following code sample at the
-end of this README file.
+end of this page.
 
 Example Configuration
 =====================
@@ -84,7 +84,8 @@ force rebuilding of the ROMFS filesystem be removing some files::
   make
 
 If you have problems building the simulator on your platform, check out
-nuttx/boards/sim/sim/sim/README.txt.  You might find some help there.
+:doc:`/platforms/sim/sim/boards/sim/index`.
+You might find some help there.
 
 Here is a sample run.  I have not seen any errors in single stepping through
 the logic but neither am I certain that everything is working properly::
diff --git a/Documentation/components/mm/index.rst b/Documentation/components/mm/index.rst
index 55c81a4369..aabe835503 100644
--- a/Documentation/components/mm/index.rst
+++ b/Documentation/components/mm/index.rst
@@ -217,8 +217,8 @@ Sub-Directories:
 
 - ``mm/shm`` - The shared memory logic
 
-The shared memory management logic has its own README file that can be
-found at ``Documentation/components/mm/shm.rst``.
+The shared memory management logic has its own page that can be
+found at :doc:`shm`.
 
 I/O Buffers
 -----------
diff --git a/Documentation/components/nxgraphics/appendix.rst b/Documentation/components/nxgraphics/appendix.rst
index 15e6ccadd2..570e439825 100644
--- a/Documentation/components/nxgraphics/appendix.rst
+++ b/Documentation/components/nxgraphics/appendix.rst
@@ -487,9 +487,8 @@ configurations for building the simulation:
       The build will also fail to locate the X header files unless you
       install an X11 development package.
 
-   -  Refer to the readme file in sim configuration
-      `README.txt <https://github.com/apache/nuttx/blob/master/boards/sim/sim/sim/README.txt>`__
-      file for additional information.
+   -  Refer to the :doc:`/platforms/sim/sim/boards/sim/index` file for
+      additional information.
 
 **Test Coverage**. At present, ``apps/examples/nx``\ t only exercises a
 subset of NX; the remainder is essentially untested. The following table
diff --git a/Documentation/components/tools/index.rst b/Documentation/components/tools/index.rst
index 870a70002b..b86bf0dd07 100644
--- a/Documentation/components/tools/index.rst
+++ b/Documentation/components/tools/index.rst
@@ -56,7 +56,7 @@ configure.sh configure.bat configure.c, cfgparser.c, and cfgparser.h
 
 configure.sh is a bash script that is used to configure NuttX for a given
 target board in a environment that supports POSIX paths (Linux, Cygwin,
-macOS, or similar).  See boards/README.txt or Documentation/NuttXPortingGuide.html
+macOS, or similar).  See :doc:`/components/boards` or Documentation/NuttXPortingGuide.html
 for a description of how to configure NuttX with this script.
 
 configure.c, cfgparser.c, and cfgparser.h can be used to build a work-alike
@@ -190,7 +190,7 @@ These are C files that are used to build mkconfig program.  The mkconfig
 program is used during the initial NuttX build.
 
 When you configure NuttX, you will copy a configuration file called .config
-in the top level NuttX directory (See boards/README.txt or
+in the top level NuttX directory (See :doc:`/components/boards` or
 Documentation/NuttXPortingGuide.html).  The first time you make NuttX,
 the top-level makefile will build the mkconfig executable from mkconfig.c
 (using Makefile.host).  The top-level Makefile will then execute the mkconfig
@@ -284,7 +284,7 @@ kernel function call (in kernel-mode) on behalf of the proxy function.
 Information about the stubs and proxies is maintained in a comma separated
 value (CSV) file in the syscall/ directory.  The mksyscall program will
 accept this CVS file as input and generate all of the required proxy or
-stub files as output.  See syscall/README.txt for additional information.
+stub files as output.  See :doc:`/components/syscall` for additional information.
 
 mksymtab.c, cvsparser.c, and cvsparser.h
 ----------------------------------------
@@ -805,7 +805,7 @@ mkdeps.c, cnvwindeps.c, mkwindeps.sh, and mknulldeps.sh
 NuttX uses the GCC compiler's capabilities to create Makefile dependencies.
 The program mkdeps is used to run GCC in order to create the dependencies.
 If a NuttX configuration uses the GCC toolchain, its Make.defs file (see
-boards/README.txt) will include a line like::
+:doc:`/components/boards`) will include a line like::
 
     MKDEP = $(TOPDIR)/tools/mkdeps[.exe] (See NOTE below)
 
@@ -846,8 +846,8 @@ General usage:
       Usage: tools/netusb.sh <main-interface> <usb-net-interface> <on|off>
 
 This has been tested on the SAMA5D3-Xplained board; see
-`boards/arm/sama5/sama5d3-xplained/README.txt` for more information on how
-to configure the CDC ECM driver for that board.
+`Documentation/platforms/arm/sama5/boards/sama5d3-xplained/README.txt`
+for more information on how to configure the CDC ECM driver for that board.
 
 refresh.sh
 ----------
diff --git a/Documentation/guides/zerolatencyinterrupts.rst b/Documentation/guides/zerolatencyinterrupts.rst
index fb45b5bf0b..c44a0ce23b 100644
--- a/Documentation/guides/zerolatencyinterrupts.rst
+++ b/Documentation/guides/zerolatencyinterrupts.rst
@@ -240,11 +240,11 @@ Example Code
 
 You can find an example that tests the high priority, nested interrupts in the NuttX source:
 
-* nuttx/boards/arm/stm32/viewtool-stm32f107/README.txt. Description of
+* :doc:`/platforms/arm/stm32f1/boards/viewtool-stm32f107/index` Description of
   the configuration
 
-* nuttx/boards/arm/stm32/viewtool-stm32f107/highpri. Test configuration
+* ``nuttx/boards/arm/stm32/viewtool-stm32f107/highpri`` Test configuration
 
-* nuttx/boards/arm/stm32/viewtool-stm32f107/src/stm32_highpri. Test
+* ``nuttx/boards/arm/stm32/viewtool-stm32f107/src/stm32_highpri`` Test
   driver.
 
diff --git a/Documentation/quickstart/organization.rst b/Documentation/quickstart/organization.rst
index 8b0c2a1b54..20bc1c0583 100644
--- a/Documentation/quickstart/organization.rst
+++ b/Documentation/quickstart/organization.rst
@@ -349,10 +349,7 @@ contents of these configuration files.
 Supported Boards
 ----------------
 
-All of the specific boards supported by NuttX are identified in
-the
-`README.txt <https://github.com/apache/nuttx/blob/master/boards/README.txt>`__
-file.
+The list of supported boards can be found in :ref:`Supported Platforms <platforms>`.
 
 Adding a New Board Configuration
 --------------------------------
@@ -494,7 +491,7 @@ user-mode applications and the kernel-mode RTOS.
 This directory holds a collection of tools and scripts to simplify
 configuring, building and maintaining NuttX.
 
-Refer to the README file in the ``tools`` directory for more
+Refer to the :doc:`/components/tools/index` page for more
 information about the individual files. Some of these tools are
 discussed below as well in the discussion of `configuring and
 building <#configandbuild>`__ NuttX.


(nuttx) 03/10: Documentation: initialize cmake doc

Posted by ac...@apache.org.
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 408441bf15c2a335bcf910686ede419d27ba37f8
Author: raiden00pl <ra...@railab.me>
AuthorDate: Fri Oct 27 11:26:25 2023 +0200

    Documentation: initialize cmake doc
---
 Documentation/components/cmake.rst                 |  6 +++
 .../{compiling.rst => compiling_cmake.rst}         | 44 +++++++---------------
 .../{compiling.rst => compiling_make.rst}          |  6 +--
 Documentation/quickstart/configuring.rst           |  2 +-
 Documentation/quickstart/index.rst                 |  3 +-
 5 files changed, 26 insertions(+), 35 deletions(-)

diff --git a/Documentation/components/cmake.rst b/Documentation/components/cmake.rst
new file mode 100644
index 0000000000..c0b133f644
--- /dev/null
+++ b/Documentation/components/cmake.rst
@@ -0,0 +1,6 @@
+=============
+CMake Support
+=============
+
+In the future this page will contain details about the CMake build system
+support in NuttX.
diff --git a/Documentation/quickstart/compiling.rst b/Documentation/quickstart/compiling_cmake.rst
similarity index 54%
copy from Documentation/quickstart/compiling.rst
copy to Documentation/quickstart/compiling_cmake.rst
index a1f4453cd1..069d38d4c2 100644
--- a/Documentation/quickstart/compiling.rst
+++ b/Documentation/quickstart/compiling_cmake.rst
@@ -1,16 +1,9 @@
-.. include:: /substitutions.rst
-.. _compiling:
+====================
+Compiling with CMake
+====================
 
-=========
-Compiling
-=========
-
-Now that we've installed Apache NuttX prerequisites and downloaded the source code,
-we are ready to compile the source code into an executable binary file that can
-be run on the embedded board.
-
-Initialize Configuration
-========================
+Initialize Configuration with CMake
+===================================
 
 The first step is to initialize NuttX configuration for a given board, based on
 a pre-existing configuration. To list all supported configurations you can do:
@@ -25,16 +18,14 @@ generally all boards support the ``nsh`` configuration which is a good starting
 since it enables booting into the interactive command line
 :doc:`/applications/nsh/index`.
 
-To choose a configuration you pass the ``<board name>:<board configuration>`` option
-to ``configure.sh`` and indicate your host platform, such as:
+To choose a configuration you pass the ``<board name>:<board configuration>`` such as:
 
     .. code-block:: console
 
        $ cd nuttx
-       $ ./tools/configure.sh -l stm32f4discovery:nsh
+       $ cmake -B build -DBOARD_CONFIG=stm32f4discovery:nsh -GNinja
 
-The ``-l`` tells use that we're on Linux (macOS and Windows builds are
-possible). Use the ``-h`` argument to see all available options.
+The ``-B build`` tells what is the build direcotry.
 
 You can then customize this configuration by using the menu based
 configuration system with:
@@ -42,22 +33,22 @@ configuration system with:
 .. code-block:: console
 
    $ cd nuttx
-   $ make menuconfig
+   $ cmake --build build -t menuconfig 
 
 Modifying the configuration is covered in :doc:`configuring`.
 
-Build NuttX
-===========
+Build NuttX with CMake
+======================
 
 We can now build NuttX. To do so, you can simply run:
 
   .. code-block:: console
 
      $ cd nuttx
-     $ make
+     $ cmake --build build -t menuconfig 
 
 The build will complete by generating the binary outputs
-inside ``nuttx`` directory. Typically this includes the ``nuttx``
+inside ``build/nuttx`` directory. Typically this includes the ``nuttx``
 ELF file (suitable for debugging using ``gdb``) and a ``nuttx.bin``
 file that can be flashed to the board.
 
@@ -65,11 +56,4 @@ To clean the build, you can do:
 
   .. code-block:: console
 
-     $ make clean
-
-.. tip::
-
-  To increase build speed (or of any other target such as ``clean``), you can
-  pass the ``-jN`` flag to ``make``, where ``N`` is the number of parallel jobs
-  to start (usually, the number of processors on your machine).
-
+     $ cmake --build build -t clean
diff --git a/Documentation/quickstart/compiling.rst b/Documentation/quickstart/compiling_make.rst
similarity index 97%
rename from Documentation/quickstart/compiling.rst
rename to Documentation/quickstart/compiling_make.rst
index a1f4453cd1..204b2bb07f 100644
--- a/Documentation/quickstart/compiling.rst
+++ b/Documentation/quickstart/compiling_make.rst
@@ -1,9 +1,9 @@
 .. include:: /substitutions.rst
 .. _compiling:
 
-=========
-Compiling
-=========
+===================
+Compiling with Make
+===================
 
 Now that we've installed Apache NuttX prerequisites and downloaded the source code,
 we are ready to compile the source code into an executable binary file that can
diff --git a/Documentation/quickstart/configuring.rst b/Documentation/quickstart/configuring.rst
index 9d197d9e48..5add3d6748 100644
--- a/Documentation/quickstart/configuring.rst
+++ b/Documentation/quickstart/configuring.rst
@@ -13,7 +13,7 @@ The Apache NuttX configuration system uses Linux's
 includes various frontends that allow you to modify configuration easily. Usually, the ``menuconfig``
 frontend is used, which is a console based menu system (more info `here <https://en.wikipedia.org/wiki/Menuconfig>`_).
 
-As previously explained in :doc:`compiling`, the first step is to load a premade configuration for
+As previously explained in :doc:`compiling_make`, the first step is to load a premade configuration for
 your board. Then, you can modify this configuration to your liking. In this example, we will show
 how you modify the default configuration of the ``sim`` build, a build of NuttX which runs on your own
 computer.
diff --git a/Documentation/quickstart/index.rst b/Documentation/quickstart/index.rst
index 24da7183e2..c77e8329e5 100644
--- a/Documentation/quickstart/index.rst
+++ b/Documentation/quickstart/index.rst
@@ -9,7 +9,8 @@ required step:
   :maxdepth: 1
 
   install.rst
-  compiling.rst
+  compiling_make.rst
+  compiling_cmake.rst
   running.rst
   configuring.rst
   debugging.rst


(nuttx) 09/10: Documentation: fix ugly formating around some inline literals

Posted by ac...@apache.org.
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 579a35dc68c6c839f03fe09081a777d7f60ca719
Author: raiden00pl <ra...@railab.me>
AuthorDate: Fri Oct 27 17:22:27 2023 +0200

    Documentation: fix ugly formating around some inline literals
---
 Documentation/components/drivers/character/analog.rst          | 6 +++---
 Documentation/components/drivers/character/can.rst             | 6 +++---
 Documentation/components/drivers/character/leds/ws2812.rst     | 6 +++---
 Documentation/components/drivers/character/quadrature.rst      | 6 +++---
 Documentation/components/drivers/character/timers/pwm.rst      | 6 +++---
 Documentation/components/drivers/character/timers/rtc.rst      | 6 +++---
 Documentation/components/drivers/character/timers/timer.rst    | 6 +++---
 Documentation/components/drivers/character/timers/watchdog.rst | 6 +++---
 Documentation/components/drivers/character/touchscreen.rst     | 4 ++--
 9 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/Documentation/components/drivers/character/analog.rst b/Documentation/components/drivers/character/analog.rst
index f4714d8442..bbdad04e70 100644
--- a/Documentation/components/drivers/character/analog.rst
+++ b/Documentation/components/drivers/character/analog.rst
@@ -16,9 +16,9 @@ The NuttX analog drivers are split into two parts:
 -  Common analog logic and share-able analog drivers reside in the
    ``drivers/analog/``.
 -  Platform-specific drivers reside in
-   ``arch/``\ *<architecture>*\ ``/src/``\ *<hardware>* directory
-   for the specific processor *<architecture>* and for the
-   specific *<chip>* analog peripheral devices.
+   ``arch/<architecture>//src/<hardware>`` directory
+   for the specific processor ``<architecture>`` and for the
+   specific ``<chip>`` analog peripheral devices.
 
 ADC Drivers
 -----------
diff --git a/Documentation/components/drivers/character/can.rst b/Documentation/components/drivers/character/can.rst
index b08ebb0e1a..68d95686a1 100644
--- a/Documentation/components/drivers/character/can.rst
+++ b/Documentation/components/drivers/character/can.rst
@@ -23,9 +23,9 @@ Files supporting CAN can be found in the following locations:
 -  **"Upper Half" Driver**. The generic, "upper half" CAN driver
    resides at ``drivers/can.c``.
 -  **"Lower Half" Drivers**. Platform-specific CAN drivers reside
-   in ``arch/``\ *<architecture>*\ ``/src/``\ *<hardware>*
-   directory for the specific processor *<architecture>* and for
-   the specific *<chip>* CAN peripheral devices.
+   in ``arch/<architecture>/src/<hardware>``
+   directory for the specific processor ``<architecture>`` and for
+   the specific ``<chip>`` CAN peripheral devices.
 
 **Usage Note**: When reading from the CAN driver multiple messages
 may be returned, depending on (1) the size the returned can
diff --git a/Documentation/components/drivers/character/leds/ws2812.rst b/Documentation/components/drivers/character/leds/ws2812.rst
index c173a8c4ae..4f9f8a4486 100644
--- a/Documentation/components/drivers/character/leds/ws2812.rst
+++ b/Documentation/components/drivers/character/leds/ws2812.rst
@@ -27,6 +27,6 @@ Files supporting ws2812 can be found in the following locations:
 -  **"Upper Half" Driver**. The generic, "upper half" ws2812 driver
    resides at ``drivers/leds/ws2812.c``.
 -  **"Lower Half" Drivers**. Platform-specific ws2812 drivers reside
-   in ``arch/``\ *<architecture>*\ ``/src/``\ *<hardware>*
-   directory for the specific processor *<architecture>* and for
-   the specific *<chip>* ws2812 peripheral devices.
+   in ``arch/<architecture>/src/<hardware>``
+   directory for the specific processor ``<architecture>`` and for
+   the specific ``<chip>`` ws2812 peripheral devices.
diff --git a/Documentation/components/drivers/character/quadrature.rst b/Documentation/components/drivers/character/quadrature.rst
index 6cf17c7a19..cd8013217b 100644
--- a/Documentation/components/drivers/character/quadrature.rst
+++ b/Documentation/components/drivers/character/quadrature.rst
@@ -24,7 +24,7 @@ following locations:
    Encoder driver resides at ``drivers/sensors/qencoder.c``.
 -  **"Lower Half" Drivers**. Platform-specific Quadrature Encoder
    drivers reside in
-   ``arch/``\ *<architecture>*\ ``/src/``\ *<hardware>* directory
-   for the specific processor *<architecture>* and for the
-   specific *<chip>* Quadrature Encoder peripheral devices.
+   ``arch/<architecture>/src/<hardware>`` directory
+   for the specific processor ``<architecture>`` and for the
+   specific ``<chip>`` Quadrature Encoder peripheral devices.
 
diff --git a/Documentation/components/drivers/character/timers/pwm.rst b/Documentation/components/drivers/character/timers/pwm.rst
index 62226378a3..5d584afdea 100644
--- a/Documentation/components/drivers/character/timers/pwm.rst
+++ b/Documentation/components/drivers/character/timers/pwm.rst
@@ -29,6 +29,6 @@ Files supporting PWM can be found in the following locations:
 -  **"Upper Half" Driver**. The generic, "upper half" PWM driver
    resides at ``drivers/timers/pwm.c``.
 -  **"Lower Half" Drivers**. Platform-specific PWM drivers reside
-   in ``arch/``\ *<architecture>*\ ``/src/``\ *<hardware>*
-   directory for the specific processor *<architecture>* and for
-   the specific *<chip>* PWM peripheral devices.
+   in ``arch/<architecture>/src/<hardware>``
+   directory for the specific processor ``<architecture>`` and for
+   the specific ``<chip>`` PWM peripheral devices.
diff --git a/Documentation/components/drivers/character/timers/rtc.rst b/Documentation/components/drivers/character/timers/rtc.rst
index 59552c2293..184cada193 100644
--- a/Documentation/components/drivers/character/timers/rtc.rst
+++ b/Documentation/components/drivers/character/timers/rtc.rst
@@ -21,6 +21,6 @@ locations:
 -  **"Upper Half" Driver**. The generic, "upper half" RTC driver
    resides at ``drivers/timers/rtc.c``.
 -  **"Lower Half" Drivers**. Platform-specific RTC drivers reside
-   in ``arch/``\ *<architecture>*\ ``/src/``\ *<hardware>*
-   directory for the specific processor *<architecture>* and for
-   the specific *<chip>* RTC peripheral devices.
+   in ``arch/<architecture>/src/<hardware>``
+   directory for the specific processor ``<architecture>`` and for
+   the specific ``<chip>`` RTC peripheral devices.
diff --git a/Documentation/components/drivers/character/timers/timer.rst b/Documentation/components/drivers/character/timers/timer.rst
index cf15655a58..659316255a 100644
--- a/Documentation/components/drivers/character/timers/timer.rst
+++ b/Documentation/components/drivers/character/timers/timer.rst
@@ -13,9 +13,9 @@ locations:
 -  **"Upper Half" Driver**. The generic, "upper half" timer driver
    resides at ``drivers/timers/timer.c``.
 -  **"Lower Half" Drivers**. Platform-specific timer drivers
-   reside in ``arch/``\ *<architecture>*\ ``/src/``\ *<hardware>*
-   directory for the specific processor *<architecture>* and for
-   the specific *<chip>* timer peripheral devices.
+   reside in ``arch/<architecture>/src/<hardware>``
+   directory for the specific processor ``<architecture>`` and for
+   the specific ``<chip>`` timer peripheral devices.
 
 There are two ways to enable Timer Support along with the Timer Example. The
 first is faster and simpler. Just run the following command to use a ready
diff --git a/Documentation/components/drivers/character/timers/watchdog.rst b/Documentation/components/drivers/character/timers/watchdog.rst
index 47580d4766..94b689811d 100644
--- a/Documentation/components/drivers/character/timers/watchdog.rst
+++ b/Documentation/components/drivers/character/timers/watchdog.rst
@@ -24,9 +24,9 @@ following locations:
    timer driver resides at ``drivers/timers/watchdog.c``.
 -  **"Lower Half" Drivers**. Platform-specific watchdog timer
    drivers reside in
-   ``arch/``\ *<architecture>*\ ``/src/``\ *<hardware>* directory
-   for the specific processor *<architecture>* and for the
-   specific *<chip>* watchdog timer peripheral devices.
+   ``arch/<architecture>//src/<hardware>`` directory
+   for the specific processor ``<architecture>`` and for the
+   specific ``<chip>`` watchdog timer peripheral devices.
 
 There are two ways to enable Watchdog Timer Support along with the Watchdog Example.
 The first is faster and simpler. Just run the following command to use a ready config
diff --git a/Documentation/components/drivers/character/touchscreen.rst b/Documentation/components/drivers/character/touchscreen.rst
index 70876d5ab1..00448e30af 100644
--- a/Documentation/components/drivers/character/touchscreen.rst
+++ b/Documentation/components/drivers/character/touchscreen.rst
@@ -30,9 +30,9 @@ found in the following locations:
    touchscreen drivers reside in the directory ``drivers/input``.
 -  **"Lower Half" Drivers**. Platform-specific touchscreen drivers
    reside in either: (1) The
-   ``arch/``\ *<architecture>*\ ``/src/``\ *<hardware>* directory
+   ``arch/<architecture>/src/<hardware>`` directory
    for the processor architectures that have build in touchscreen
    controllers or (2) the
-   ``boards/``\ *<arch>*\ ``/``\ *<chip>*\ ``/``\ *<board>*\ ``/src/``
+   ``boards/<arch>/<chip>/<board>/src/``
    directory for boards that use an external touchscreen
    controller chip.


(nuttx) 01/10: Documentation: cosmetics for unionfs.rst

Posted by ac...@apache.org.
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 82e260740ac3da09d951e9adf16883e965fef6f3
Author: raiden00pl <ra...@railab.me>
AuthorDate: Fri Oct 27 09:44:48 2023 +0200

    Documentation: cosmetics for unionfs.rst
---
 Documentation/components/filesystem/unionfs.rst | 30 ++++++++++++-------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/Documentation/components/filesystem/unionfs.rst b/Documentation/components/filesystem/unionfs.rst
index 076e407b09..518f48a7ae 100644
--- a/Documentation/components/filesystem/unionfs.rst
+++ b/Documentation/components/filesystem/unionfs.rst
@@ -1,6 +1,6 @@
-==============
-``fs/unionfs``
-==============
+=================
+Union File System
+=================
 
 Overview
 ========
@@ -9,21 +9,21 @@ This directory contains the NuttX Union File System.  The Union file
 system is provides a mechanism to overlay two different, mounted file
 systems so that they appear as one.  In general this works like this:
 
-  1) Mount file system 1 at some location, say /mnt/file1
-  2) Mount file system 2 at some location, say /mnt/file2
-  3) Call mount() to combine and overly /mnt/file1 and mnt/file2
-     as a new mount point, say /mnt/unionfs.
+  1) Mount file system 1 at some location, say ``/mnt/file1``
+  2) Mount file system 2 at some location, say ``/mnt/file2``
+  3) Call ``mount()`` to combine and overly ``/mnt/file1`` and ``mnt/file2``
+     as a new mount point, say ``/mnt/unionfs``.
 
-/mnt/file1 and /mnt/file2 will disappear and be replaced by the single
-mountpoint /mnut/unionfs.  The previous contents under /mnt/file1 and
-/mnt/file2 will appear merged under /mnt/unionfs. Files at the same
+``/mnt/file1`` and ``/mnt/file2`` will disappear and be replaced by the single
+mountpoint ``/mnt/unionfs``.  The previous contents under ``/mnt/file1`` and
+``/mnt/file2`` will appear merged under ``/mnt/unionfs``. Files at the same
 relative path in file system1 will take presence. If another file of the
 same name and same relative location exists 	in file system 2, it will
 not be visible because it will be occluded by the file in file system1.
 
-See include/nutts/unionfs.h for additional information.
+See ``include/nutts/unionfs.h`` for additional information.
 
-The Union File System is enabled by selecting the CONFIG_FS_UNIONFS option
+The Union File System is enabled by selecting the ``CONFIG_FS_UNIONFS`` option
 in the NuttX configuration file.
 
 Disclaimer:  This Union File System was certainly inspired by UnionFS
@@ -63,11 +63,11 @@ combined in by the Union File System.  For example, suppose that:
 
 * File system 1 is a ROMFS file system with prefix == NULL,
 * File system 2 is a BINFS file system with prefix == "cgin-bin", and
-* The union file system is mounted at /mnt/www.
+* The union file system is mounted at ``/mnt/www``.
 
 Then the content in the in the ROMFS file system would appear at
-/mnt/www and the content of the BINFS file system would appear at
-/mnt/www/cgi-gin.
+``/mnt/www`` and the content of the BINFS file system would appear at
+``/mnt/www/cgi-gin``.
 
 Example Configurations
 ======================


(nuttx) 10/10: Documentation: move nxwidgets to applications as it is apps-side lib

Posted by ac...@apache.org.
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 8f7be6ce270b03ee688f36317bd8f4a0cc482bd9
Author: raiden00pl <ra...@railab.me>
AuthorDate: Fri Oct 27 17:34:21 2023 +0200

    Documentation: move nxwidgets to applications as it is apps-side lib
---
 .../applications/graphics/nxwidgets/index.rst      | 94 +++++++++++-----------
 Documentation/components/index.rst                 |  1 -
 Documentation/components/nxwidgets.rst             | 55 -------------
 Documentation/introduction/about.rst               |  2 +-
 4 files changed, 49 insertions(+), 103 deletions(-)

diff --git a/Documentation/applications/graphics/nxwidgets/index.rst b/Documentation/applications/graphics/nxwidgets/index.rst
index ef9bd79f20..587d9db94d 100644
--- a/Documentation/applications/graphics/nxwidgets/index.rst
+++ b/Documentation/applications/graphics/nxwidgets/index.rst
@@ -1,55 +1,57 @@
+.. _nxwidgets:
+
 =======================
 ``nxwidgets`` NXWidgets
 =======================
-
-In order to better support NuttX based platforms, a special graphical user
-interface has been created called NXWidgets. NXWidgets is written in C++ and
-integrates seamlessly with the NuttX NX graphics subsystem in order to provide
-graphic objects, or _widgets_, in the NX Graphics Subsystem
+In order to better support NuttX based platforms, a special graphical
+userinterface has been created called NXWidgets. NXWidgets is written in
+C++ and integrates seamlessly with the NuttX :ref:`NX graphics
+subsystem <nxgraphics>` in order to provide graphic
+objects, or "widgets," in the NX Graphics Subsystem
 
 Some of the features of NXWidgets include:
 
-- Conservative C++
-
-  NXWidgets is written entirely in C++ but using only selected "embedded
-  friendly" C++ constructs that are fully supported under NuttX. No additional
-  C++ support libraries are required.
-
-- NX Integration
-
-  NXWidgets integrate seamlessly with the NX graphics system. Think of the X
-  server under Linux – the NX graphics system is like a tiny X server that
-  provides windowing under NuttX. By adding NXWidgets, you can support graphics
-  objects like buttons and text boxes in the NX windows and toolbars.
-
-- Small Footprint
-
-  NXWidgets is tailored for use MCUs in embedded applications. It is ideally
-  suited for mid- and upper-range of most MCU families. A complete NXWidgets is
-  possible in as little as 40Kb of FLASH and maybe 4Kb of SRAM.
-
-- Output Devices
-
-  NXWidgets will work on the high-end frame buffer devices as well as on LCDs
-  connected via serial or parallel ports to a small MCU.
-
-- Input Devices
-
-  NXWidgets will accept position and selection inputs from a mouse or a
-  touchscreen. It will also support character input from a keyboard such as a
-  USB keyboard. NXWidgets supports on very special widget called ``CKeypad`` that
-  will provide keyboard input via an on-screen keypad that can be operated via
-  mouse or touchscreen inputs.
-
-- Many Graphic Objects
-
-  Some of the graphic objects supported by NXWidgets include labels, buttons,
-  text boxes, button arrays, check boxes, cycle buttons, images, sliders,
-  scrollable list boxes, progress bars, and more.
-
-**Note**: Many of the fundamental classed in NxWidgets derive from the Antony
-Dzeryn's _Woopsi_ project: http://woopsi.org/ which also has a BSD style
-license. See the ``COPYING`` file for details.
+-  **Conservative C++**. NXWidgets is written entirely in C++ but using
+   only selected "embedded friendly" C++ constructs that are fully
+   supported under NuttX. No additional C++ support libraries are
+   required.
+-  **NX Integration**. NXWidgets integrate seamlessly with the
+   :ref:`NX graphics subsystem <nxgraphics>`. Think of the X
+   server under Linux … the NX graphics system is like a tiny X server
+   that provides windowing under NuttX. By adding NXWidgets, you can
+   support graphics objects like buttons and text boxes in the NX
+   windows and toolbars.
+-  **Small Footprint**. NXWidgets is tailored for use MCUs in embedded
+   applications. It is ideally suited for mid- and upper-range of most
+   MCU families. A complete NXWidgets is possible in as little as 40K of
+   FLASH and maybe 4K of SRAM.
+-  **Output Devices**. NXWidgets will work on the high-end frame buffer
+   devices as well as on LCDs connected via serial or parallel ports to
+   a small MCU.
+-  **Input Devices**. NXWidgets will accept position and selection
+   inputs from a mouse or a touchscreen. It will also support character
+   input from a keyboard such as a USB keyboard. NXWidgets supports on
+   very special widget called CKeypad that will provide keyboard input
+   via an on-screen keypad that can be operated via mouse or touchscreen
+   inputs.
+-  **Many Graphic Objects**. Some of the graphic objects supported by
+   NXWidgets include labels, buttons, text boxes, button arrays, check
+   boxes, cycle buttons, images, sliders, scrollable list boxes,
+   progress bars, and more.
+-  **DOxygen Documentation** DOxygen documentation is available.
+
+Note: Many of the fundamental classed in NxWidgets derive from the
+Antony Dzeryn's "Woopsi" project which also has a
+BSD style license. See the COPYING file for details.
+
+NXWidgets Doxygen Documentation
+===============================
+
+.. todo::
+   NXWidgets supports building HTML documentation via Doxygen. We should
+   integrate this into the Sphinx documentation build.
+
+Thanks go to Jose Pablo Carballo for contributing this!
 
 Directory Structure
 -------------------
diff --git a/Documentation/components/index.rst b/Documentation/components/index.rst
index 9e00cb0a72..ae0d2a2e70 100644
--- a/Documentation/components/index.rst
+++ b/Documentation/components/index.rst
@@ -15,7 +15,6 @@ case, you can head to the :doc:`reference <../reference/index>`.
    drivers/index.rst
    nxflat.rst
    nxgraphics/index.rst
-   nxwidgets.rst
    paging.rst
    audio/index.rst
    filesystem/index.rst
diff --git a/Documentation/components/nxwidgets.rst b/Documentation/components/nxwidgets.rst
deleted file mode 100644
index 6db9cb69a5..0000000000
--- a/Documentation/components/nxwidgets.rst
+++ /dev/null
@@ -1,55 +0,0 @@
-.. _nxwidgets:
-
-=========
-NxWidgets
-=========
-
-In order to better support NuttX based platforms, a special graphical
-userinterface has been created called NXWidgets. NXWidgets is written in
-C++ and integrates seamlessly with the NuttX :ref:`NX graphics
-subsystem <nxgraphics>` in order to provide graphic
-objects, or "widgets," in the NX Graphics Subsystem
-
-Some of the features of NXWidgets include:
-
--  **Conservative C++**. NXWidgets is written entirely in C++ but using
-   only selected "embedded friendly" C++ constructs that are fully
-   supported under NuttX. No additional C++ support libraries are
-   required.
--  **NX Integration**. NXWidgets integrate seamlessly with the
-   :ref:`NX graphics subsystem <nxgraphics>`. Think of the X
-   server under Linux … the NX graphics system is like a tiny X server
-   that provides windowing under NuttX. By adding NXWidgets, you can
-   support graphics objects like buttons and text boxes in the NX
-   windows and toolbars.
--  **Small Footprint**. NXWidgets is tailored for use MCUs in embedded
-   applications. It is ideally suited for mid- and upper-range of most
-   MCU families. A complete NXWidgets is possible in as little as 40K of
-   FLASH and maybe 4K of SRAM.
--  **Output Devices**. NXWidgets will work on the high-end frame buffer
-   devices as well as on LCDs connected via serial or parallel ports to
-   a small MCU.
--  **Input Devices**. NXWidgets will accept position and selection
-   inputs from a mouse or a touchscreen. It will also support character
-   input from a keyboard such as a USB keyboard. NXWidgets supports on
-   very special widget called CKeypad that will provide keyboard input
-   via an on-screen keypad that can be operated via mouse or touchscreen
-   inputs.
--  **Many Graphic Objects**. Some of the graphic objects supported by
-   NXWidgets include labels, buttons, text boxes, button arrays, check
-   boxes, cycle buttons, images, sliders, scrollable list boxes,
-   progress bars, and more.
--  **DOxygen Documentation** DOxygen documentation is available.
-
-Note: Many of the fundamental classed in NxWidgets derive from the
-Antony Dzeryn's "Woopsi" project which also has a
-BSD style license. See the COPYING file for details.
-
-NXWidgets Doxygen Documentation
-===============================
-
-.. todo::
-   NXWidgets supports building HTML documentation via Doxygen. We should
-   integrate this into the Sphinx documentation build.
-
-Thanks go to Jose Pablo Carballo for contributing this!
diff --git a/Documentation/introduction/about.rst b/Documentation/introduction/about.rst
index b7c21dee9c..41b4cd23ea 100644
--- a/Documentation/introduction/about.rst
+++ b/Documentation/introduction/about.rst
@@ -197,7 +197,7 @@ Key features of NuttX include:
   * NX: A graphics library, tiny windowing system and tiny font support that works with either
     framebuffer or LCD drivers. Documented in the :doc:`/components/nxgraphics/index` manual.
   * Font management sub-system.
-  * :doc:`/components/nxwidgets`: NXWidgets is library of graphic objects, or "widgets," (labels,
+  * :doc:`/applications/graphics/nxwidgets/index`: NXWidgets is library of graphic objects, or "widgets," (labels,
     buttons, text boxes, images, sliders, progress bars, etc.). NXWidgets is written in C++ and
     integrates seamlessly with the NuttX NX graphics and font management subsystems.
   * NxWM is the tiny NuttX window manager based on NX and NxWidgets.


(nuttx) 02/10: Documentation: update copyright year

Posted by ac...@apache.org.
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 a2bb55d8b743306c3e15385377b6c1a3d5e4f0fb
Author: raiden00pl <ra...@railab.me>
AuthorDate: Fri Oct 27 10:23:43 2023 +0200

    Documentation: update copyright year
---
 Documentation/conf.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/conf.py b/Documentation/conf.py
index e05cdc5f34..8702f17598 100644
--- a/Documentation/conf.py
+++ b/Documentation/conf.py
@@ -38,7 +38,7 @@
 # -- Project information -----------------------------------------------------
 
 project = "NuttX"
-copyright = "2020, The Apache Software Foundation"
+copyright = "2023, The Apache Software Foundation"
 author = "NuttX community"
 version = release = "latest"
 


(nuttx) 06/10: Documentation: move socketcan.rst to net/

Posted by ac...@apache.org.
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 870139e45f4838d15bd4612e3849c4120e1c8d33
Author: raiden00pl <ra...@railab.me>
AuthorDate: Fri Oct 27 12:25:47 2023 +0200

    Documentation: move socketcan.rst to net/
---
 Documentation/components/drivers/special/index.rst |  1 -
 .../components/drivers/special/socketcan.rst       | 66 ----------------------
 Documentation/components/net/index.rst             |  1 +
 Documentation/components/net/socketcan.rst         | 61 ++++++++++++++++++++
 4 files changed, 62 insertions(+), 67 deletions(-)

diff --git a/Documentation/components/drivers/special/index.rst b/Documentation/components/drivers/special/index.rst
index 7f4cb07223..bf55b4d34a 100644
--- a/Documentation/components/drivers/special/index.rst
+++ b/Documentation/components/drivers/special/index.rst
@@ -26,7 +26,6 @@ following section.
   spi.rst
   i2c.rst
   ethernet.rst
-  socketcan.rst
   framebuffer.rst
   lcd.rst
   mtd.rst
diff --git a/Documentation/components/drivers/special/socketcan.rst b/Documentation/components/drivers/special/socketcan.rst
deleted file mode 100644
index b85905b40f..0000000000
--- a/Documentation/components/drivers/special/socketcan.rst
+++ /dev/null
@@ -1,66 +0,0 @@
-========================
-SocketCAN Device Drivers
-========================
-
-  -  ``include/nuttx/net/netdev.h``. All structures and APIs
-     needed to work with drivers are provided in this header file.
-     The structure struct net_driver_s defines the interface and is
-     passed to the network via netdev_register().
-
-  -  ``include/nuttx/can.h``. CAN & CAN FD frame data
-     structures.
-
-  -  ``int netdev_register(FAR struct net_driver_s *dev, enum net_lltype_e lltype)'``.
-     Each driver registers itself by calling netdev_register().
-
-  -  ``Include/nuttx/net/can.h``. contains lookup tables for CAN
-     dlc to CAN FD len sizes named
-
-     .. code-block:: c
-
-       extern const uint8_t can_dlc_to_len[16];
-       extern const uint8_t len_to_can_dlc[65];
-
-  -  **Initialization sequence is as follows**.
-
-     #. xxx_netinitialize(void) is called on startup of NuttX in this
-        function you call your own init function to initialize your
-        CAN driver
-     #. In your own init function you create the net_driver_s
-        structure set required init values and register the required
-        callbacks for SocketCAN
-     #. Then you ensure that the CAN interface is in down mode
-        (usually done by calling the d_ifdown function)
-     #. Register the net_driver_s using netdev_register
-
-  -  **Receive sequence is as follows**.
-
-     #. Device generates interrupt
-     #. Process this interrupt in your interrupt handler
-     #. When a new CAN frame has been received you process this
-        frame
-     #. When the CAN frame is a normal CAN frame you allocate the
-        can_frame struct, when it's a CAN FD frame you allocate a
-        canfd_frame struct (note you can of course preallocate and
-        just use the pointer).
-     #. Copy the frame from the driver to the struct you've
-        allocated in the previous step.
-     #. Point the net_driver_s d_buf pointer to the allocated
-        can_frame
-     #. Call the ``can_input(FAR struct net_driver_s *dev)``
-        function ``include/nuttx/net/can.h``
-
-  -  **Transmit sequence is as follows**.
-
-     #. Socket layer executes d_txavail callback
-     #. An example of the txavail function can be found in
-        ``arch/arm/src/s32k1xx/s32k1xx_flexcan.c``
-     #. An example of the txpoll function can be found in
-        ``arch/arm/src/s32k1xx/s32k1xx_flexcan.c``
-     #. In your ``transmit(struct driver_s *priv)`` function you
-        check the length of ``net_driver_s.d_len`` whether it
-        matches the size of a ``struct can_frame`` or
-        ``struct canfd_frame`` then you cast the content of the
-        ``net_driver_s.d_buf`` pointer to the correct CAN frame
-        struct
-
diff --git a/Documentation/components/net/index.rst b/Documentation/components/net/index.rst
index c7ba4eba12..c7063af281 100644
--- a/Documentation/components/net/index.rst
+++ b/Documentation/components/net/index.rst
@@ -6,6 +6,7 @@ Network Support
   :maxdepth: 1
 
   sixlowpan.rst
+  socketcan.rst
 
 ``net`` Directory Structure ::
 
diff --git a/Documentation/components/net/socketcan.rst b/Documentation/components/net/socketcan.rst
new file mode 100644
index 0000000000..49b8d97396
--- /dev/null
+++ b/Documentation/components/net/socketcan.rst
@@ -0,0 +1,61 @@
+========================
+SocketCAN Device Drivers
+========================
+
+- ``include/nuttx/net/netdev.h``. All structures and APIs
+  needed to work with drivers are provided in this header file.
+  The structure struct net_driver_s defines the interface and is
+  passed to the network via ``netdev_register()``.
+
+- ``include/nuttx/can.h``. CAN & CAN FD frame data structures.
+
+- ``int netdev_register(FAR struct net_driver_s *dev, enum net_lltype_e lltype)'``.
+  Each driver registers itself by calling ``netdev_register()``.
+
+- ``Include/nuttx/net/can.h``. contains lookup tables for CAN
+  dlc to CAN FD len sizes named
+
+  .. code-block:: c
+
+     extern const uint8_t can_dlc_to_len[16];
+     extern const uint8_t len_to_can_dlc[65];
+
+- **Initialization sequence is as follows**.
+
+  #. ``xxx_netinitialize(void)`` is called on startup of NuttX in this
+     function you call your own init function to initialize your
+     CAN driver
+  #. In your own init function you create the net_driver_s
+     structure set required init values and register the required
+     callbacks for SocketCAN
+  #. Then you ensure that the CAN interface is in down mode
+     (usually done by calling the d_ifdown function)
+  #. Register the net_driver_s using netdev_register
+
+- **Receive sequence is as follows**.
+
+  #. Device generates interrupt
+  #. Process this interrupt in your interrupt handler
+  #. When a new CAN frame has been received you process this frame
+  #. When the CAN frame is a normal CAN frame you allocate the
+     can_frame struct, when it's a CAN FD frame you allocate a
+     canfd_frame struct (note you can of course preallocate and
+     just use the pointer).
+  #. Copy the frame from the driver to the struct you've
+     allocated in the previous step.
+  #. Point the net_driver_s d_buf pointer to the allocated can_frame
+  #. Call the ``can_input(FAR struct net_driver_s *dev)``
+     function ``include/nuttx/net/can.h``
+
+- **Transmit sequence is as follows**.
+
+  #. Socket layer executes d_txavail callback
+  #. An example of the txavail function can be found in
+     ``arch/arm/src/s32k1xx/s32k1xx_flexcan.c``
+  #. An example of the txpoll function can be found in
+     ``arch/arm/src/s32k1xx/s32k1xx_flexcan.c``
+  #. In your ``transmit(struct driver_s *priv)`` function you
+     check the length of ``net_driver_s.d_len`` whether it
+     matches the size of a ``struct can_frame`` or
+     ``struct canfd_frame`` then you cast the content of the
+     ``net_driver_s.d_buf`` pointer to the correct CAN frame struct


(nuttx) 04/10: Documentation: add missing directories in net

Posted by ac...@apache.org.
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 9c4f042c5768b783f1f30fcb3d38e967c9906e42
Author: raiden00pl <ra...@railab.me>
AuthorDate: Fri Oct 27 11:26:44 2023 +0200

    Documentation: add missing directories in net
---
 Documentation/components/net/index.rst | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/Documentation/components/net/index.rst b/Documentation/components/net/index.rst
index 68fcfe8a62..c7ba4eba12 100644
--- a/Documentation/components/net/index.rst
+++ b/Documentation/components/net/index.rst
@@ -15,22 +15,28 @@ Network Support
        |
        +- arp        - Address resolution protocol (IPv4)
        +- bluetooth  - PF_BLUETOOTH socket interface
+       +- can        - SocketCAN
        +- devif      - Stack/device interface layer
-       +- ipfrag     - Fragmentation and reassembly
        +- icmp       - Internet Control Message Protocol (IPv4)
        +- icmpv6     - Internet Control Message Protocol (IPv6)
        +- ieee802154 - PF_IEEE802154 socket interface
+       +- igmp       - IGMPv2 client
        +- inet       - PF_INET/PF_INET6 socket interface
        +- ipforward  - IP forwarding logic
+       +- ipfrag     - Fragmentation and reassembly
        +- local      - Unix domain (local) sockets
        +- mld        - Multicast Listener Discovery (MLD)
+       +- nat        - Network Address Translation (NAT)
        +- neighbor   - Neighbor Discovery Protocol (IPv6)
        +- netdev     - Socket network device interface
+       +- netfiletr  - Iptables Interface
        +- netlink    - Netlink IPC socket interface
        +- pkt        - "Raw" packet socket support
+       +- procfs     - net devices PROCFS support
+       +- route      - Routing table support
+       +- rpmsg      - Rpmsg domain (remote) sockets
        +- sixlowpan  - 6LoWPAN implementation
        +- socket     - BSD socket interface
-       +- route      - Routing table support
        +- tcp        - Transmission Control Protocol
        +- udp        - User Datagram Protocol
        +- usrsock    - User socket API for user-space networking stack