You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gi...@apache.org on 2025/11/22 22:37:33 UTC

(nuttx-website) branch asf-site updated: Publishing web: e35a0265171ce43761d2d9b734018301e79ae3e9 docs: e758e92830e53a632e74bd0dbc5c9a56b8e777d0

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

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/nuttx-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new c8bdbbfc9 Publishing web: e35a0265171ce43761d2d9b734018301e79ae3e9 docs: e758e92830e53a632e74bd0dbc5c9a56b8e777d0
c8bdbbfc9 is described below

commit c8bdbbfc9b3f785205ae207f9a658b84b2fc5110
Author: Niall Pemberton <ni...@gmail.com>
AuthorDate: Sat Nov 22 22:36:30 2025 +0000

    Publishing web: e35a0265171ce43761d2d9b734018301e79ae3e9 docs: e758e92830e53a632e74bd0dbc5c9a56b8e777d0
---
 content/docs/10.0.0/index.html                     |   2 +-
 content/docs/10.0.1/index.html                     |   2 +-
 content/docs/10.1.0/index.html                     |   2 +-
 content/docs/10.2.0/index.html                     |   2 +-
 content/docs/10.3.0/index.html                     |   2 +-
 content/docs/11.0.0/index.html                     |   2 +-
 content/docs/12.0.0/index.html                     |   2 +-
 content/docs/12.0.0/searchindex.js                 |   2 +-
 content/docs/12.1.0/index.html                     |   2 +-
 content/docs/12.1.0/searchindex.js                 |   2 +-
 content/docs/12.10.0/index.html                    |   2 +-
 content/docs/12.10.0/searchindex.js                |   2 +-
 content/docs/12.11.0/guides/fully_linked_elf.html  |   2 +-
 .../docs/12.11.0/guides/partially_linked_elf.html  |   2 +-
 content/docs/12.11.0/index.html                    |   2 +-
 content/docs/12.11.0/searchindex.js                |   2 +-
 content/docs/12.2.0/index.html                     |   2 +-
 content/docs/12.2.0/searchindex.js                 |   2 +-
 content/docs/12.2.1/index.html                     |   2 +-
 content/docs/12.2.1/searchindex.js                 |   2 +-
 content/docs/12.3.0/index.html                     |   2 +-
 content/docs/12.3.0/searchindex.js                 |   2 +-
 content/docs/12.4.0/index.html                     |   2 +-
 content/docs/12.4.0/searchindex.js                 |   2 +-
 content/docs/12.5.0/index.html                     |   2 +-
 content/docs/12.5.0/searchindex.js                 |   2 +-
 content/docs/12.5.1/index.html                     |   2 +-
 content/docs/12.5.1/searchindex.js                 |   2 +-
 content/docs/12.6.0/index.html                     |   2 +-
 content/docs/12.6.0/searchindex.js                 |   2 +-
 content/docs/12.7.0/index.html                     |   2 +-
 content/docs/12.7.0/searchindex.js                 |   2 +-
 content/docs/12.8.0/index.html                     |   2 +-
 content/docs/12.8.0/searchindex.js                 |   2 +-
 content/docs/12.9.0/index.html                     |   2 +-
 content/docs/12.9.0/searchindex.js                 |   2 +-
 .../components/drivers/character/gpio.rst.txt      | 161 ++++++++++++++
 .../components/drivers/character/index.rst.txt     |   1 +
 .../latest/components/drivers/character/1wire.html |   1 +
 .../character/analog/adc/adc1242/index.html        |   1 +
 .../character/analog/adc/ads1115/index.html        |   1 +
 .../character/analog/adc/ads7828/index.html        |   1 +
 .../drivers/character/analog/adc/hx711/index.html  |   1 +
 .../drivers/character/analog/adc/index.html        |   1 +
 .../character/analog/adc/ltc1867l/index.html       |   1 +
 .../character/analog/adc/max1161x/index.html       |   1 +
 .../character/analog/adc/mcp3008/index.html        |   1 +
 .../drivers/character/analog/adc/pga11x/index.html |   1 +
 .../character/analog/dac/dac7554/index.html        |   1 +
 .../character/analog/dac/dac7571/index.html        |   1 +
 .../drivers/character/analog/dac/index.html        |   1 +
 .../character/analog/dac/mcp47x6/index.html        |   1 +
 .../character/analog/dac/mcp48xx/index.html        |   1 +
 .../components/drivers/character/analog/index.html |   1 +
 .../latest/components/drivers/character/bch.html   |   1 +
 .../latest/components/drivers/character/can.html   |   1 +
 .../components/drivers/character/contactless.html  |   1 +
 .../components/drivers/character/crypto/index.html |   1 +
 .../components/drivers/character/crypto/se05x.html |   1 +
 .../components/drivers/character/eeprom.html       |   1 +
 .../latest/components/drivers/character/efuse.html |   5 +-
 .../character/{quadrature.html => gpio.html}       | 246 ++++++++++++---------
 .../latest/components/drivers/character/i2s.html   |   5 +-
 .../latest/components/drivers/character/index.html |   7 +
 .../components/drivers/character/input/index.html  |   1 +
 .../components/drivers/character/input/keypad.html |   1 +
 .../drivers/character/input/sbutton.html           |   1 +
 .../latest/components/drivers/character/ipcc.html  |   1 +
 .../components/drivers/character/leds/index.html   |   1 +
 .../components/drivers/character/leds/ktd2052.html |   1 +
 .../components/drivers/character/leds/userled.html |   1 +
 .../components/drivers/character/leds/ws2812.html  |   1 +
 .../latest/components/drivers/character/loop.html  |   1 +
 .../latest/components/drivers/character/math.html  |   1 +
 .../latest/components/drivers/character/modem.html |   1 +
 .../components/drivers/character/motor/foc.html    |   1 +
 .../components/drivers/character/motor/index.html  |   1 +
 .../latest/components/drivers/character/note.html  |   1 +
 .../components/drivers/character/nullzero.html     |   1 +
 .../components/drivers/character/quadrature.html   |   1 +
 .../latest/components/drivers/character/rc.html    |   1 +
 .../latest/components/drivers/character/rf.html    |   1 +
 .../components/drivers/character/serial.html       |   1 +
 .../drivers/character/timers/capture.html          |   1 +
 .../components/drivers/character/timers/index.html |   1 +
 .../components/drivers/character/timers/pwm.html   |   1 +
 .../components/drivers/character/timers/rtc.html   |   1 +
 .../components/drivers/character/timers/timer.html |   1 +
 .../drivers/character/timers/watchdog.html         |   1 +
 .../components/drivers/character/touchscreen.html  |   1 +
 .../drivers/character/wireless/index.html          |   1 +
 .../drivers/character/wireless/lpwan/index.html    |   1 +
 .../drivers/character/wireless/lpwan/sx126x.html   |   1 +
 content/docs/latest/genindex.html                  |  16 +-
 content/docs/latest/guides/fully_linked_elf.html   |   2 +-
 .../docs/latest/guides/partially_linked_elf.html   |   2 +-
 content/docs/latest/index.html                     |   2 +-
 content/docs/latest/objects.inv                    | Bin 170061 -> 170170 bytes
 content/docs/latest/searchindex.js                 |   2 +-
 content/feed.xml                                   |   4 +-
 100 files changed, 420 insertions(+), 156 deletions(-)

diff --git a/content/docs/10.0.0/index.html b/content/docs/10.0.0/index.html
index 1a2c7d4ab..fa7d92082 100644
--- a/content/docs/10.0.0/index.html
+++ b/content/docs/10.0.0/index.html
@@ -207,7 +207,7 @@ by following these <a class="reference internal" href="contributing/documentatio
 <div class="section" id="nuttx-documentation">
 <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1>
 <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 32-bit microcontroller environments, the primary governing standards in NuttX are Posix and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:09</p>
+<p>Last Updated: 22 November 25 at 22:16</p>
 <div class="toctree-wrapper compound">
 <p class="caption"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/10.0.1/index.html b/content/docs/10.0.1/index.html
index e0076ffa1..d211bca24 100644
--- a/content/docs/10.0.1/index.html
+++ b/content/docs/10.0.1/index.html
@@ -247,7 +247,7 @@ by following these <a class="reference internal" href="contributing/documentatio
 <div class="section" id="nuttx-documentation">
 <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1>
 <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 32-bit microcontroller environments, the primary governing standards in NuttX are Posix and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:10</p>
+<p>Last Updated: 22 November 25 at 22:16</p>
 <div class="toctree-wrapper compound">
 <p class="caption"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/10.1.0/index.html b/content/docs/10.1.0/index.html
index f08dcf12a..fdf431cce 100644
--- a/content/docs/10.1.0/index.html
+++ b/content/docs/10.1.0/index.html
@@ -247,7 +247,7 @@ by following these <a class="reference internal" href="contributing/documentatio
 <div class="section" id="nuttx-documentation">
 <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1>
 <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:10</p>
+<p>Last Updated: 22 November 25 at 22:16</p>
 <div class="toctree-wrapper compound">
 <p class="caption"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/10.2.0/index.html b/content/docs/10.2.0/index.html
index e0fab7e71..25905576b 100644
--- a/content/docs/10.2.0/index.html
+++ b/content/docs/10.2.0/index.html
@@ -248,7 +248,7 @@ by following these <a class="reference internal" href="contributing/documentatio
 <div class="section" id="nuttx-documentation">
 <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1>
 <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:10</p>
+<p>Last Updated: 22 November 25 at 22:16</p>
 <div class="toctree-wrapper compound">
 <p class="caption"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/10.3.0/index.html b/content/docs/10.3.0/index.html
index 0041e4f28..e8df8b87d 100644
--- a/content/docs/10.3.0/index.html
+++ b/content/docs/10.3.0/index.html
@@ -248,7 +248,7 @@ by following these <a class="reference internal" href="contributing/documentatio
 <div class="section" id="nuttx-documentation">
 <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1>
 <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:11</p>
+<p>Last Updated: 22 November 25 at 22:17</p>
 <div class="toctree-wrapper compound">
 <p class="caption"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/11.0.0/index.html b/content/docs/11.0.0/index.html
index 0041e4f28..e8df8b87d 100644
--- a/content/docs/11.0.0/index.html
+++ b/content/docs/11.0.0/index.html
@@ -248,7 +248,7 @@ by following these <a class="reference internal" href="contributing/documentatio
 <div class="section" id="nuttx-documentation">
 <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1>
 <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:11</p>
+<p>Last Updated: 22 November 25 at 22:17</p>
 <div class="toctree-wrapper compound">
 <p class="caption"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/12.0.0/index.html b/content/docs/12.0.0/index.html
index 2b86a9751..e8748952b 100644
--- a/content/docs/12.0.0/index.html
+++ b/content/docs/12.0.0/index.html
@@ -173,7 +173,7 @@ by following these <a class="reference internal" href="contributing/documentatio
 <section id="nuttx-documentation">
 <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline"></a></h1>
 <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:11</p>
+<p>Last Updated: 22 November 25 at 22:17</p>
 <div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/12.0.0/searchindex.js b/content/docs/12.0.0/searchindex.js
index ba7024cf2..49bceebd4 100644
--- a/content/docs/12.0.0/searchindex.js
+++ b/content/docs/12.0.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["applications/index","applications/nsh/builtin","applications/nsh/commands","applications/nsh/config","applications/nsh/customizing","applications/nsh/index","applications/nsh/installation","applications/nsh/login","applications/nsh/nsh","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/foc","components/drivers/character/index","components/drivers/character [...]
\ No newline at end of file
+Search.setIndex({docnames:["applications/index","applications/nsh/builtin","applications/nsh/commands","applications/nsh/config","applications/nsh/customizing","applications/nsh/index","applications/nsh/installation","applications/nsh/login","applications/nsh/nsh","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/foc","components/drivers/character/index","components/drivers/character [...]
\ No newline at end of file
diff --git a/content/docs/12.1.0/index.html b/content/docs/12.1.0/index.html
index 294f09528..6abf0aded 100644
--- a/content/docs/12.1.0/index.html
+++ b/content/docs/12.1.0/index.html
@@ -173,7 +173,7 @@ by following these <a class="reference internal" href="contributing/documentatio
 <section id="nuttx-documentation">
 <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline"></a></h1>
 <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:12</p>
+<p>Last Updated: 22 November 25 at 22:18</p>
 <div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/12.1.0/searchindex.js b/content/docs/12.1.0/searchindex.js
index e7b71b5f2..16c270c0e 100644
--- a/content/docs/12.1.0/searchindex.js
+++ b/content/docs/12.1.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["applications/index","applications/nsh/builtin","applications/nsh/commands","applications/nsh/config","applications/nsh/customizing","applications/nsh/index","applications/nsh/installation","applications/nsh/login","applications/nsh/nsh","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/foc","components/drivers/character/index","components/drivers/character [...]
\ No newline at end of file
+Search.setIndex({docnames:["applications/index","applications/nsh/builtin","applications/nsh/commands","applications/nsh/config","applications/nsh/customizing","applications/nsh/index","applications/nsh/installation","applications/nsh/login","applications/nsh/nsh","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/foc","components/drivers/character/index","components/drivers/character [...]
\ No newline at end of file
diff --git a/content/docs/12.10.0/index.html b/content/docs/12.10.0/index.html
index 8442c78f6..266752343 100644
--- a/content/docs/12.10.0/index.html
+++ b/content/docs/12.10.0/index.html
@@ -185,7 +185,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as
 VxWorks) are adopted for functionality not available under these standards, or
 for functionality that is not appropriate for deeply-embedded environments (such
 as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:24</p>
+<p>Last Updated: 22 November 25 at 22:30</p>
 <div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/12.10.0/searchindex.js b/content/docs/12.10.0/searchindex.js
index 81e31ca18..6b4295398 100644
--- a/content/docs/12.10.0/searchindex.js
+++ b/content/docs/12.10.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr", "_tags/arch-example", "_tags/chip-a527", "_tags/chip-a64", "_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega2560", "_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s", "_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3", "_tags/chip-esp32wroom32", "_tags/chip-esp32wrover32", "_tags/chip-example", "_tags/chip-fpga", "_tags/chip-imx8", "_tags/chip-imx93", "_tags/chip-nrf52", "_tags/ [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr", "_tags/arch-example", "_tags/chip-a527", "_tags/chip-a64", "_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega2560", "_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s", "_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3", "_tags/chip-esp32wroom32", "_tags/chip-esp32wrover32", "_tags/chip-example", "_tags/chip-fpga", "_tags/chip-imx8", "_tags/chip-imx93", "_tags/chip-nrf52", "_tags/ [...]
\ No newline at end of file
diff --git a/content/docs/12.11.0/guides/fully_linked_elf.html b/content/docs/12.11.0/guides/fully_linked_elf.html
index 7626e14c5..0cc380069 100644
--- a/content/docs/12.11.0/guides/fully_linked_elf.html
+++ b/content/docs/12.11.0/guides/fully_linked_elf.html
@@ -477,7 +477,7 @@ NuttX package: <code class="docutils literal notranslate"><span class="pre">nutt
 <div class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version admonition">
 <p class="admonition-title">Here is an alternative minimal (and possibly outdated) version</p>
 <div class="sphinx_collapse docutils">
-<input class="sphinx_collapse__input" id="41897903-75d2-409f-82cf-f6ac45d9fd2a" name="41897903-75d2-409f-82cf-f6ac45d9fd2a" type="checkbox"><label class="sphinx_collapse__label" for="41897903-75d2-409f-82cf-f6ac45d9fd2a"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input" id="a56ea239-721c-41fd-8c54-b0f4b52fbbb4" name="a56ea239-721c-41fd-8c54-b0f4b52fbbb4" type="checkbox"><label class="sphinx_collapse__label" for="a56ea239-721c-41fd-8c54-b0f4b52fbbb4"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils">
 <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>SECTIONS
 {
 .text 0x00000000 :
diff --git a/content/docs/12.11.0/guides/partially_linked_elf.html b/content/docs/12.11.0/guides/partially_linked_elf.html
index da78656ef..c98c1186f 100644
--- a/content/docs/12.11.0/guides/partially_linked_elf.html
+++ b/content/docs/12.11.0/guides/partially_linked_elf.html
@@ -503,7 +503,7 @@ NuttX package: <code class="docutils literal notranslate"><span class="pre">nutt
 <div class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version admonition">
 <p class="admonition-title">Here is an alternative minimal (and possibly outdated) version</p>
 <div class="sphinx_collapse docutils">
-<input class="sphinx_collapse__input" id="49254bb0-cdfe-454e-9053-f4de4392a811" name="49254bb0-cdfe-454e-9053-f4de4392a811" type="checkbox"><label class="sphinx_collapse__label" for="49254bb0-cdfe-454e-9053-f4de4392a811"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input" id="88b87c5c-48d7-470d-9a77-41a79f37b104" name="88b87c5c-48d7-470d-9a77-41a79f37b104" type="checkbox"><label class="sphinx_collapse__label" for="88b87c5c-48d7-470d-9a77-41a79f37b104"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils">
 <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>SECTIONS
 {
 .text 0x00000000 :
diff --git a/content/docs/12.11.0/index.html b/content/docs/12.11.0/index.html
index 14bf919d0..e53cf5b6f 100644
--- a/content/docs/12.11.0/index.html
+++ b/content/docs/12.11.0/index.html
@@ -187,7 +187,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as
 VxWorks) are adopted for functionality not available under these standards, or
 for functionality that is not appropriate for deeply-embedded environments (such
 as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:26</p>
+<p>Last Updated: 22 November 25 at 22:31</p>
 <div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/12.11.0/searchindex.js b/content/docs/12.11.0/searchindex.js
index aa733f62e..aa914f2c4 100644
--- a/content/docs/12.11.0/searchindex.js
+++ b/content/docs/12.11.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr", "_tags/arch-example", "_tags/chip-a527", "_tags/chip-a64", "_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega2560", "_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s", "_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3", "_tags/chip-esp32wroom32", "_tags/chip-esp32wrover32", "_tags/chip-example", "_tags/chip-fpga", "_tags/chip-imx8", "_tags/chip-imx93", "_tags/chip-imx95", "_tags/ [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr", "_tags/arch-example", "_tags/chip-a527", "_tags/chip-a64", "_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega2560", "_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s", "_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3", "_tags/chip-esp32wroom32", "_tags/chip-esp32wrover32", "_tags/chip-example", "_tags/chip-fpga", "_tags/chip-imx8", "_tags/chip-imx93", "_tags/chip-imx95", "_tags/ [...]
\ No newline at end of file
diff --git a/content/docs/12.2.0/index.html b/content/docs/12.2.0/index.html
index 815b6ca96..b1916e824 100644
--- a/content/docs/12.2.0/index.html
+++ b/content/docs/12.2.0/index.html
@@ -174,7 +174,7 @@ by following these <a class="reference internal" href="contributing/documentatio
 <section id="nuttx-documentation">
 <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1>
 <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:12</p>
+<p>Last Updated: 22 November 25 at 22:18</p>
 <div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/12.2.0/searchindex.js b/content/docs/12.2.0/searchindex.js
index d58a6552d..314df51b2 100644
--- a/content/docs/12.2.0/searchindex.js
+++ b/content/docs/12.2.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...]
\ No newline at end of file
diff --git a/content/docs/12.2.1/index.html b/content/docs/12.2.1/index.html
index 815b6ca96..b1916e824 100644
--- a/content/docs/12.2.1/index.html
+++ b/content/docs/12.2.1/index.html
@@ -174,7 +174,7 @@ by following these <a class="reference internal" href="contributing/documentatio
 <section id="nuttx-documentation">
 <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1>
 <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:12</p>
+<p>Last Updated: 22 November 25 at 22:18</p>
 <div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/12.2.1/searchindex.js b/content/docs/12.2.1/searchindex.js
index 476d5289a..9c2146465 100644
--- a/content/docs/12.2.1/searchindex.js
+++ b/content/docs/12.2.1/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...]
\ No newline at end of file
diff --git a/content/docs/12.3.0/index.html b/content/docs/12.3.0/index.html
index 5df628a9a..4c9f5db1b 100644
--- a/content/docs/12.3.0/index.html
+++ b/content/docs/12.3.0/index.html
@@ -174,7 +174,7 @@ by following these <a class="reference internal" href="contributing/documentatio
 <section id="nuttx-documentation">
 <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1>
 <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:13</p>
+<p>Last Updated: 22 November 25 at 22:19</p>
 <div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/12.3.0/searchindex.js b/content/docs/12.3.0/searchindex.js
index 6b2f81ba4..118d902db 100644
--- a/content/docs/12.3.0/searchindex.js
+++ b/content/docs/12.3.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...]
\ No newline at end of file
diff --git a/content/docs/12.4.0/index.html b/content/docs/12.4.0/index.html
index 29892ef71..32a443b66 100644
--- a/content/docs/12.4.0/index.html
+++ b/content/docs/12.4.0/index.html
@@ -181,7 +181,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as
 VxWorks) are adopted for functionality not available under these standards, or
 for functionality that is not appropriate for deeply-embedded environments (such
 as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:13</p>
+<p>Last Updated: 22 November 25 at 22:19</p>
 <div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/12.4.0/searchindex.js b/content/docs/12.4.0/searchindex.js
index 943c6dfcd..a23bbdc17 100644
--- a/content/docs/12.4.0/searchindex.js
+++ b/content/docs/12.4.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...]
\ No newline at end of file
diff --git a/content/docs/12.5.0/index.html b/content/docs/12.5.0/index.html
index 02024d787..10cb8581a 100644
--- a/content/docs/12.5.0/index.html
+++ b/content/docs/12.5.0/index.html
@@ -181,7 +181,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as
 VxWorks) are adopted for functionality not available under these standards, or
 for functionality that is not appropriate for deeply-embedded environments (such
 as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:15</p>
+<p>Last Updated: 22 November 25 at 22:21</p>
 <div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/12.5.0/searchindex.js b/content/docs/12.5.0/searchindex.js
index 2c83c39d7..4b42cad83 100644
--- a/content/docs/12.5.0/searchindex.js
+++ b/content/docs/12.5.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...]
\ No newline at end of file
diff --git a/content/docs/12.5.1/index.html b/content/docs/12.5.1/index.html
index bec60e5a7..80f23e505 100644
--- a/content/docs/12.5.1/index.html
+++ b/content/docs/12.5.1/index.html
@@ -181,7 +181,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as
 VxWorks) are adopted for functionality not available under these standards, or
 for functionality that is not appropriate for deeply-embedded environments (such
 as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:16</p>
+<p>Last Updated: 22 November 25 at 22:22</p>
 <div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/12.5.1/searchindex.js b/content/docs/12.5.1/searchindex.js
index ab0dafaf6..fc3440b38 100644
--- a/content/docs/12.5.1/searchindex.js
+++ b/content/docs/12.5.1/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...]
\ No newline at end of file
diff --git a/content/docs/12.6.0/index.html b/content/docs/12.6.0/index.html
index 864a92657..a3ffa069f 100644
--- a/content/docs/12.6.0/index.html
+++ b/content/docs/12.6.0/index.html
@@ -182,7 +182,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as
 VxWorks) are adopted for functionality not available under these standards, or
 for functionality that is not appropriate for deeply-embedded environments (such
 as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:18</p>
+<p>Last Updated: 22 November 25 at 22:23</p>
 <div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/12.6.0/searchindex.js b/content/docs/12.6.0/searchindex.js
index d7cd1df2a..a7fe22a10 100644
--- a/content/docs/12.6.0/searchindex.js
+++ b/content/docs/12.6.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...]
\ No newline at end of file
diff --git a/content/docs/12.7.0/index.html b/content/docs/12.7.0/index.html
index e0d7953a6..cb21f28d2 100644
--- a/content/docs/12.7.0/index.html
+++ b/content/docs/12.7.0/index.html
@@ -181,7 +181,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as
 VxWorks) are adopted for functionality not available under these standards, or
 for functionality that is not appropriate for deeply-embedded environments (such
 as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:19</p>
+<p>Last Updated: 22 November 25 at 22:25</p>
 <div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/12.7.0/searchindex.js b/content/docs/12.7.0/searchindex.js
index a802965b5..8e02756c9 100644
--- a/content/docs/12.7.0/searchindex.js
+++ b/content/docs/12.7.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...]
\ No newline at end of file
diff --git a/content/docs/12.8.0/index.html b/content/docs/12.8.0/index.html
index 019abf759..8a034415d 100644
--- a/content/docs/12.8.0/index.html
+++ b/content/docs/12.8.0/index.html
@@ -181,7 +181,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as
 VxWorks) are adopted for functionality not available under these standards, or
 for functionality that is not appropriate for deeply-embedded environments (such
 as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:21</p>
+<p>Last Updated: 22 November 25 at 22:26</p>
 <div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/12.8.0/searchindex.js b/content/docs/12.8.0/searchindex.js
index 1ace035ab..7fb62fb4f 100644
--- a/content/docs/12.8.0/searchindex.js
+++ b/content/docs/12.8.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...]
\ No newline at end of file
diff --git a/content/docs/12.9.0/index.html b/content/docs/12.9.0/index.html
index 95028da76..27f7e0a10 100644
--- a/content/docs/12.9.0/index.html
+++ b/content/docs/12.9.0/index.html
@@ -181,7 +181,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as
 VxWorks) are adopted for functionality not available under these standards, or
 for functionality that is not appropriate for deeply-embedded environments (such
 as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:22</p>
+<p>Last Updated: 22 November 25 at 22:28</p>
 <div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/12.9.0/searchindex.js b/content/docs/12.9.0/searchindex.js
index 5af0e8cca..1391572cd 100644
--- a/content/docs/12.9.0/searchindex.js
+++ b/content/docs/12.9.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/cyclictest/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/b [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/cyclictest/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/b [...]
\ No newline at end of file
diff --git a/content/docs/latest/_sources/components/drivers/character/gpio.rst.txt b/content/docs/latest/_sources/components/drivers/character/gpio.rst.txt
new file mode 100644
index 000000000..1728b0f37
--- /dev/null
+++ b/content/docs/latest/_sources/components/drivers/character/gpio.rst.txt
@@ -0,0 +1,161 @@
+============
+GPIO Drivers
+============
+
+-  ``include/nuttx/ioexpander/gpio.h``. All structures and APIs needed
+   to work with GPIO pins as drivers are provided in this header file. This
+   header file includes:
+
+   #. Structures and interface descriptions needed to develop a
+      low-level, board-specific, GPIO driver.
+   #. To register the GPIO driver with a common GPIO character
+      driver.
+   #. Interfaces needed for interfacing user programs with the
+      common GPIO character driver.
+
+-  ``drivers/ioexpander/gpio.c``. The implementation of the common GPIO
+   character driver.
+
+Application Programming Interface
+=================================
+
+The Application Programming Interface is included in the application with
+the following header file.
+
+
+.. code-block:: c
+
+  #include <nuttx/ioexpander/gpio.h>
+
+A GPIO pin is either an input pin or an output pin.
+
+One GPIO pin is registered as a POSIX character device file into ``/dev``
+namespace. It is necessary to open the device to get a file descriptor for
+further operations. This can be done with standard POSIX ``open()`` call.
+Only one pir per driver is supported by the peripheral.
+
+Standard POSIX ``read()`` and ``write()`` operations are not allowed for GPIO
+based drivers. All interface is routed through IOCTL calls. Following commands
+are supported:
+
+ * :c:macro:`GPIOC_WRITE`
+ * :c:macro:`GPIOC_READ`
+ * :c:macro:`GPIOC_PINTYPE`
+ * :c:macro:`GPIOC_REGISTER`
+ * :c:macro:`GPIOC_UNREGISTER`
+ * :c:macro:`GPIOC_SETPINTYPE`
+
+
+.. c:macro:: GPIOC_WRITE
+
+The ``GPIOC_WRITE`` command sets the value of an output GPIO. The argument
+is either 0 (set low value) or 1 (set high value). It is possible to write
+to output pins only. Typical use case is:
+
+.. code-block:: c
+
+  bool value = true;
+  int ret = ioctl(fd, GPIOC_WRITE, value);
+
+
+.. c:macro:: GPIOC_READ
+
+The ``GPIOC_READ`` command reads the value of a GPIO. The argument
+is a pointer to a bool value to receive the result. The result is either 0
+(low value) or 1 (high value). It is possible to read from both input and
+output pins. The currently set value is returned in case the pin is output
+pin. Typical use case is:
+
+.. code-block:: c
+
+  bool value;
+  int ret = ioctl(fd, GPIOC_READ, (unsigned long)(uintptr_t)&value);
+
+.. c:macro:: GPIOC_PINTYPE
+
+The ``GPIOC_PINTYPE`` command gets the type of GPIO pin. The argument
+is a pointer to an instance of type :c:enum:`gpio_pintype_e`.
+
+.. code-block:: c
+
+  enum gpio_pintype_e
+  {
+    GPIO_INPUT_PIN = 0, /* float */
+    GPIO_INPUT_PIN_PULLUP,
+    GPIO_INPUT_PIN_PULLDOWN,
+    GPIO_OUTPUT_PIN, /* push-pull */
+    GPIO_OUTPUT_PIN_OPENDRAIN,
+    GPIO_INTERRUPT_PIN,
+    GPIO_INTERRUPT_HIGH_PIN,
+    GPIO_INTERRUPT_LOW_PIN,
+    GPIO_INTERRUPT_RISING_PIN,
+    GPIO_INTERRUPT_FALLING_PIN,
+    GPIO_INTERRUPT_BOTH_PIN,
+    GPIO_INTERRUPT_PIN_WAKEUP,
+    GPIO_INTERRUPT_HIGH_PIN_WAKEUP,
+    GPIO_INTERRUPT_LOW_PIN_WAKEUP,
+    GPIO_INTERRUPT_RISING_PIN_WAKEUP,
+    GPIO_INTERRUPT_FALLING_PIN_WAKEUP,
+    GPIO_INTERRUPT_BOTH_PIN_WAKEUP,
+    GPIO_NPINTYPES
+  };
+
+.. c:macro:: GPIOC_REGISTER
+
+The ``GPIOC_REGISTER`` command registers a pin to receive a signal whenever
+there is an interrupt received on an input GPIO pin. This feature, of course,
+depends upon interript GPIO support in the platform specific code. Please
+refer to the documentation describing your target platform for futher
+information. The argument is the pointer to :c:type:`sigevent` value, a signal
+to be generated when the interrupt occurs.
+
+Typical use case is following:
+
+.. code-block:: c
+
+  struct sigevent notify;
+
+  notify.sigev_notify = SIGEV_SIGNAL;
+  notify.sigev_signo = SIGUSR1;
+
+  int ret = ioctl(fd, GPIOC_REGISTER, (unsigned long)&notify);
+
+.. c:macro:: GPIOC_UNREGISTER
+
+The ``GPIOC_UNREGISTER`` command unresigters a pin and stop receiving signals
+for pin interrupt.
+
+.. c:macro:: GPIOC_SETPINTYPE
+
+The ``GPIOC_SETPINTYPE`` command can be used to change the GPIO pin type
+(from input pin to output pin, changing interrupt edges and similar). The
+types to set are listed in :c:enum:`gpio_pintype_e`.
+
+Application Example
+~~~~~~~~~~~~~~~~~~~
+
+An example application can be found in ``nuttx-apps`` repository under
+path ``examples/gpio``. It is an example application that allows you
+to read, write or configure GPIO pins.
+
+Configuration
+=============
+
+This section describes GPIO driver configuration in ``Kconfig``. The reader
+should refer to target documentation for target specific configuration.
+
+GPIO peripheral is enabled by ``CONFIG_DEV_GPIO``. Option
+``CONFIG_DEV_NPOLLWAITERS`` is used to specify the maximum number of threads
+that can be waiting on poll with default set to one. It is also possible
+to register signals with the GPIO driver. The number of allowed signals
+is configured with ``CONFIG_DEV_NSIGNALS``.
+
+IO Expander Device Drivers
+==========================
+
+IO Expander device drivers are chips that provides more GPIO pins, usually
+connected to the MCU with SPI or I2C bus. It is possible to register
+individual GPIO pins of the expander as a separate pins if needed. This
+option is enabled by ``CONFIG_GPIO_LOWER_HALF`` option. Please refer
+to `ioexpander documentation <https://nuttx.apache.org/docs/latest/components/drivers/special/ioexpander.html>`_
+for more description.
diff --git a/content/docs/latest/_sources/components/drivers/character/index.rst.txt b/content/docs/latest/_sources/components/drivers/character/index.rst.txt
index 6bf18ac02..ab597a36a 100644
--- a/content/docs/latest/_sources/components/drivers/character/index.rst.txt
+++ b/content/docs/latest/_sources/components/drivers/character/index.rst.txt
@@ -62,6 +62,7 @@ Character device drivers have these properties:
   crypto/index.rst
   eeprom.rst
   efuse.rst
+  gpio.rst
   i2s.rst
   input/index.rst
   ipcc.rst
diff --git a/content/docs/latest/components/drivers/character/1wire.html b/content/docs/latest/components/drivers/character/1wire.html
index 8a24f8212..86b321494 100644
--- a/content/docs/latest/components/drivers/character/1wire.html
+++ b/content/docs/latest/components/drivers/character/1wire.html
@@ -147,6 +147,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/analog/adc/adc1242/index.html b/content/docs/latest/components/drivers/character/analog/adc/adc1242/index.html
index b6ddec646..2a4c9ad5b 100644
--- a/content/docs/latest/components/drivers/character/analog/adc/adc1242/index.html
+++ b/content/docs/latest/components/drivers/character/analog/adc/adc1242/index.html
@@ -147,6 +147,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../../../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/analog/adc/ads1115/index.html b/content/docs/latest/components/drivers/character/analog/adc/ads1115/index.html
index f4c5bde7c..a12c86d38 100644
--- a/content/docs/latest/components/drivers/character/analog/adc/ads1115/index.html
+++ b/content/docs/latest/components/drivers/character/analog/adc/ads1115/index.html
@@ -147,6 +147,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../../../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/analog/adc/ads7828/index.html b/content/docs/latest/components/drivers/character/analog/adc/ads7828/index.html
index bace85ade..dee4db979 100644
--- a/content/docs/latest/components/drivers/character/analog/adc/ads7828/index.html
+++ b/content/docs/latest/components/drivers/character/analog/adc/ads7828/index.html
@@ -147,6 +147,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../../../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/analog/adc/hx711/index.html b/content/docs/latest/components/drivers/character/analog/adc/hx711/index.html
index ae20105fd..c474ec933 100644
--- a/content/docs/latest/components/drivers/character/analog/adc/hx711/index.html
+++ b/content/docs/latest/components/drivers/character/analog/adc/hx711/index.html
@@ -147,6 +147,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../../../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/analog/adc/index.html b/content/docs/latest/components/drivers/character/analog/adc/index.html
index 68ff24fbc..f8f60b60f 100644
--- a/content/docs/latest/components/drivers/character/analog/adc/index.html
+++ b/content/docs/latest/components/drivers/character/analog/adc/index.html
@@ -147,6 +147,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/analog/adc/ltc1867l/index.html b/content/docs/latest/components/drivers/character/analog/adc/ltc1867l/index.html
index c0d66535d..ccbac9ef6 100644
--- a/content/docs/latest/components/drivers/character/analog/adc/ltc1867l/index.html
+++ b/content/docs/latest/components/drivers/character/analog/adc/ltc1867l/index.html
@@ -147,6 +147,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../../../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/analog/adc/max1161x/index.html b/content/docs/latest/components/drivers/character/analog/adc/max1161x/index.html
index 75e1d9f62..2ab05447f 100644
--- a/content/docs/latest/components/drivers/character/analog/adc/max1161x/index.html
+++ b/content/docs/latest/components/drivers/character/analog/adc/max1161x/index.html
@@ -147,6 +147,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../../../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/analog/adc/mcp3008/index.html b/content/docs/latest/components/drivers/character/analog/adc/mcp3008/index.html
index 24c14efcb..02e31364e 100644
--- a/content/docs/latest/components/drivers/character/analog/adc/mcp3008/index.html
+++ b/content/docs/latest/components/drivers/character/analog/adc/mcp3008/index.html
@@ -147,6 +147,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../../../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/analog/adc/pga11x/index.html b/content/docs/latest/components/drivers/character/analog/adc/pga11x/index.html
index bb1684cf5..3bbe67933 100644
--- a/content/docs/latest/components/drivers/character/analog/adc/pga11x/index.html
+++ b/content/docs/latest/components/drivers/character/analog/adc/pga11x/index.html
@@ -147,6 +147,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../../../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/analog/dac/dac7554/index.html b/content/docs/latest/components/drivers/character/analog/dac/dac7554/index.html
index 26f4cd68d..41c68dc61 100644
--- a/content/docs/latest/components/drivers/character/analog/dac/dac7554/index.html
+++ b/content/docs/latest/components/drivers/character/analog/dac/dac7554/index.html
@@ -147,6 +147,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../../../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/analog/dac/dac7571/index.html b/content/docs/latest/components/drivers/character/analog/dac/dac7571/index.html
index 9e3916c18..71ac6abf0 100644
--- a/content/docs/latest/components/drivers/character/analog/dac/dac7571/index.html
+++ b/content/docs/latest/components/drivers/character/analog/dac/dac7571/index.html
@@ -147,6 +147,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../../../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/analog/dac/index.html b/content/docs/latest/components/drivers/character/analog/dac/index.html
index 9c3fa2905..b45d835ec 100644
--- a/content/docs/latest/components/drivers/character/analog/dac/index.html
+++ b/content/docs/latest/components/drivers/character/analog/dac/index.html
@@ -147,6 +147,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/analog/dac/mcp47x6/index.html b/content/docs/latest/components/drivers/character/analog/dac/mcp47x6/index.html
index 097306fb5..cb8ce0a15 100644
--- a/content/docs/latest/components/drivers/character/analog/dac/mcp47x6/index.html
+++ b/content/docs/latest/components/drivers/character/analog/dac/mcp47x6/index.html
@@ -147,6 +147,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../../../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/analog/dac/mcp48xx/index.html b/content/docs/latest/components/drivers/character/analog/dac/mcp48xx/index.html
index 2ac7549f4..b62d79733 100644
--- a/content/docs/latest/components/drivers/character/analog/dac/mcp48xx/index.html
+++ b/content/docs/latest/components/drivers/character/analog/dac/mcp48xx/index.html
@@ -147,6 +147,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../../../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/analog/index.html b/content/docs/latest/components/drivers/character/analog/index.html
index 7622ab30b..cb34163e4 100644
--- a/content/docs/latest/components/drivers/character/analog/index.html
+++ b/content/docs/latest/components/drivers/character/analog/index.html
@@ -147,6 +147,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/bch.html b/content/docs/latest/components/drivers/character/bch.html
index 44eaff62b..a8c2ffb04 100644
--- a/content/docs/latest/components/drivers/character/bch.html
+++ b/content/docs/latest/components/drivers/character/bch.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/can.html b/content/docs/latest/components/drivers/character/can.html
index 49f3e483c..7e55d0a36 100644
--- a/content/docs/latest/components/drivers/character/can.html
+++ b/content/docs/latest/components/drivers/character/can.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/contactless.html b/content/docs/latest/components/drivers/character/contactless.html
index 1cb2e9b8a..42458d807 100644
--- a/content/docs/latest/components/drivers/character/contactless.html
+++ b/content/docs/latest/components/drivers/character/contactless.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/crypto/index.html b/content/docs/latest/components/drivers/character/crypto/index.html
index 9884d3c7a..3ce16ddf9 100644
--- a/content/docs/latest/components/drivers/character/crypto/index.html
+++ b/content/docs/latest/components/drivers/character/crypto/index.html
@@ -146,6 +146,7 @@
 </li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/crypto/se05x.html b/content/docs/latest/components/drivers/character/crypto/se05x.html
index 98c081f8b..11c41ed2d 100644
--- a/content/docs/latest/components/drivers/character/crypto/se05x.html
+++ b/content/docs/latest/components/drivers/character/crypto/se05x.html
@@ -146,6 +146,7 @@
 </li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/eeprom.html b/content/docs/latest/components/drivers/character/eeprom.html
index 02847b1ec..b5206e8e3 100644
--- a/content/docs/latest/components/drivers/character/eeprom.html
+++ b/content/docs/latest/components/drivers/character/eeprom.html
@@ -149,6 +149,7 @@
 </ul>
 </li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/efuse.html b/content/docs/latest/components/drivers/character/efuse.html
index 4f69c3750..098bff039 100644
--- a/content/docs/latest/components/drivers/character/efuse.html
+++ b/content/docs/latest/components/drivers/character/efuse.html
@@ -46,7 +46,7 @@
     <script src="../../../_static/js/theme.js"></script>
     <link rel="index" title="Index" href="../../../genindex.html" />
     <link rel="search" title="Search" href="../../../search.html" />
-    <link rel="next" title="I2S Drivers" href="i2s.html" />
+    <link rel="next" title="GPIO Drivers" href="gpio.html" />
     <link rel="prev" title="EEPROM" href="eeprom.html" /> 
 </head>
 
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4 current"><a class="current reference internal" href="#">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
@@ -239,7 +240,7 @@
           </div>
           <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
         <a href="eeprom.html" class="btn btn-neutral float-left" title="EEPROM" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
-        <a href="i2s.html" class="btn btn-neutral float-right" title="I2S Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="gpio.html" class="btn btn-neutral float-right" title="GPIO Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
 
   <hr/>
diff --git a/content/docs/latest/components/drivers/character/quadrature.html b/content/docs/latest/components/drivers/character/gpio.html
similarity index 54%
copy from content/docs/latest/components/drivers/character/quadrature.html
copy to content/docs/latest/components/drivers/character/gpio.html
index 394adef21..55808e751 100644
--- a/content/docs/latest/components/drivers/character/quadrature.html
+++ b/content/docs/latest/components/drivers/character/gpio.html
@@ -25,7 +25,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Quadrature Encoder Drivers &mdash; NuttX latest documentation</title>
+  <title>GPIO Drivers &mdash; NuttX latest documentation</title>
       <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css" />
       <link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css" />
       <link rel="stylesheet" type="text/css" href="../../../_static/copybutton.css" />
@@ -46,8 +46,8 @@
     <script src="../../../_static/js/theme.js"></script>
     <link rel="index" title="Index" href="../../../genindex.html" />
     <link rel="search" title="Search" href="../../../search.html" />
-    <link rel="next" title="Remote Control Devices" href="rc.html" />
-    <link rel="prev" title="dev_null.c and dev_zero.c" href="nullzero.html" /> 
+    <link rel="next" title="I2S Drivers" href="i2s.html" />
+    <link rel="prev" title="EFUSE Drivers" href="efuse.html" /> 
 </head>
 
 <body class="wy-body-for-nav"> 
@@ -143,6 +143,12 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4 current"><a class="current reference internal" href="#">GPIO Drivers</a><ul>
+<li class="toctree-l5"><a class="reference internal" href="#application-programming-interface">Application Programming Interface</a></li>
+<li class="toctree-l5"><a class="reference internal" href="#configuration">Configuration</a></li>
+<li class="toctree-l5"><a class="reference internal" href="#io-expander-device-drivers">IO Expander Device Drivers</a></li>
+</ul>
+</li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
@@ -153,11 +159,7 @@
 <li class="toctree-l4"><a class="reference internal" href="motor/index.html">Motor Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="note.html">Note Driver Interface</a></li>
 <li class="toctree-l4"><a class="reference internal" href="nullzero.html"><code class="docutils literal notranslate"><span class="pre">dev_null.c</span></code> and <code class="docutils literal notranslate"><span class="pre">dev_zero.c</span></code></a></li>
-<li class="toctree-l4 current"><a class="current reference internal" href="#">Quadrature Encoder Drivers</a><ul>
-<li class="toctree-l5"><a class="reference internal" href="#application-programming-interface">Application Programming Interface</a></li>
-<li class="toctree-l5"><a class="reference internal" href="#configuration">Configuration</a></li>
-</ul>
-</li>
+<li class="toctree-l4"><a class="reference internal" href="quadrature.html">Quadrature Encoder Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="rc.html">Remote Control Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="rf.html">RF Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="serial.html">Serial Device Drivers</a></li>
@@ -224,9 +226,9 @@
           <li class="breadcrumb-item"><a href="../../index.html">OS Components</a></li>
           <li class="breadcrumb-item"><a href="../index.html">Device Drivers</a></li>
           <li class="breadcrumb-item"><a href="index.html">Character Device Drivers</a></li>
-      <li class="breadcrumb-item active">Quadrature Encoder Drivers</li>
+      <li class="breadcrumb-item active">GPIO Drivers</li>
       <li class="wy-breadcrumbs-aside">
-              <a href="https://github.com/apache/nuttx/blob/master/Documentation/components/drivers/character/quadrature.rst" class="fa fa-github"> Edit on GitHub</a>
+              <a href="https://github.com/apache/nuttx/blob/master/Documentation/components/drivers/character/gpio.rst" class="fa fa-github"> Edit on GitHub</a>
       </li>
   </ul>
   <hr/>
@@ -234,137 +236,165 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
              
-  <section id="quadrature-encoder-drivers">
-<h1>Quadrature Encoder Drivers<a class="headerlink" href="#quadrature-encoder-drivers" title="Permalink to this heading"></a></h1>
-<p>NuttX supports a low-level, two-part Quadrature Encoder driver.</p>
+  <section id="gpio-drivers">
+<h1>GPIO Drivers<a class="headerlink" href="#gpio-drivers" title="Permalink to this heading"></a></h1>
+<ul class="simple">
+<li><p><code class="docutils literal notranslate"><span class="pre">include/nuttx/ioexpander/gpio.h</span></code>. All structures and APIs needed
+to work with GPIO pins as drivers are provided in this header file. This
+header file includes:</p>
 <ol class="arabic simple">
-<li><p>An “upper half”, generic driver that provides the common
-Quadrature Encoder interface to application level code, and</p></li>
-<li><p>A “lower half”, platform-specific driver that implements the
-low-level timer controls to implement the Quadrature Encoder
-functionality.</p></li>
+<li><p>Structures and interface descriptions needed to develop a
+low-level, board-specific, GPIO driver.</p></li>
+<li><p>To register the GPIO driver with a common GPIO character
+driver.</p></li>
+<li><p>Interfaces needed for interfacing user programs with the
+common GPIO character driver.</p></li>
 </ol>
-<p>Files supporting the Quadrature Encoder can be found in the
-following locations:</p>
-<ul class="simple">
-<li><p><strong>Interface Definition</strong>. The header file for the NuttX
-Quadrature Encoder driver reside at
-<code class="docutils literal notranslate"><span class="pre">include/nuttx/sensors/qencoder.h</span></code>. This header file includes
-both the application level interface to the Quadrature Encoder
-driver as well as the interface between the “upper half” and
-“lower half” drivers. The Quadrature Encoder module uses a
-standard character driver framework.</p></li>
-<li><p><strong>“Upper Half” Driver</strong>. The generic, “upper half” Quadrature
-Encoder driver resides at <code class="docutils literal notranslate"><span class="pre">drivers/sensors/qencoder.c</span></code>.</p></li>
-<li><p><strong>“Lower Half” Drivers</strong>. Platform-specific Quadrature Encoder
-drivers reside in
-<code class="docutils literal notranslate"><span class="pre">arch/&lt;architecture&gt;/src/&lt;hardware&gt;</span></code> directory
-for the specific processor <code class="docutils literal notranslate"><span class="pre">&lt;architecture&gt;</span></code> and for the
-specific <code class="docutils literal notranslate"><span class="pre">&lt;chip&gt;</span></code> Quadrature Encoder peripheral devices.</p></li>
+</li>
+<li><p><code class="docutils literal notranslate"><span class="pre">drivers/ioexpander/gpio.c</span></code>. The implementation of the common GPIO
+character driver.</p></li>
 </ul>
 <section id="application-programming-interface">
 <h2>Application Programming Interface<a class="headerlink" href="#application-programming-interface" title="Permalink to this heading"></a></h2>
-<p>The first thing to be done in order to use the quadrature encoder driver
-from an application is to include the correct header filer. It contains the
-Application Programming Interface to the driver. To do so, include</p>
-<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;nuttx/sensors/qencoder.h&gt;</span>
+<p>The Application Programming Interface is included in the application with
+the following header file.</p>
+<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;nuttx/ioexpander/gpio.h&gt;</span>
 </pre></div>
 </div>
-<p>Quadrature encoder driver is registered as a POSIX character device file
-into <code class="docutils literal notranslate"><span class="pre">/dev</span></code> namespace. It is necessary to open the device to get a file
-descriptor for further operations. This can be done with standard POSIX
-<code class="docutils literal notranslate"><span class="pre">open()</span></code> call.</p>
-<p>The driver is accessed only through <code class="docutils literal notranslate"><span class="pre">ioctl</span></code> interface, functions <code class="docutils literal notranslate"><span class="pre">read</span></code>
-and <code class="docutils literal notranslate"><span class="pre">write</span></code> does not have any affect. Following <code class="docutils literal notranslate"><span class="pre">ioctl</span></code> commands are
-available:</p>
+<p>A GPIO pin is either an input pin or an output pin.</p>
+<p>One GPIO pin is registered as a POSIX character device file into <code class="docutils literal notranslate"><span class="pre">/dev</span></code>
+namespace. It is necessary to open the device to get a file descriptor for
+further operations. This can be done with standard POSIX <code class="docutils literal notranslate"><span class="pre">open()</span></code> call.
+Only one pir per driver is supported by the peripheral.</p>
+<p>Standard POSIX <code class="docutils literal notranslate"><span class="pre">read()</span></code> and <code class="docutils literal notranslate"><span class="pre">write()</span></code> operations are not allowed for GPIO
+based drivers. All interface is routed through IOCTL calls. Following commands
+are supported:</p>
 <blockquote>
 <div><ul class="simple">
-<li><p><a class="reference internal" href="#c.QEIOC_POSITION" title="QEIOC_POSITION"><code class="xref c c-macro docutils literal notranslate"><span class="pre">QEIOC_POSITION</span></code></a></p></li>
-<li><p><a class="reference internal" href="#c.QEIOC_RESET" title="QEIOC_RESET"><code class="xref c c-macro docutils literal notranslate"><span class="pre">QEIOC_RESET</span></code></a></p></li>
-<li><p><a class="reference internal" href="#c.QEIOC_SETPOSMAX" title="QEIOC_SETPOSMAX"><code class="xref c c-macro docutils literal notranslate"><span class="pre">QEIOC_SETPOSMAX</span></code></a></p></li>
-<li><p><a class="reference internal" href="#c.QEIOC_SETINDEX" title="QEIOC_SETINDEX"><code class="xref c c-macro docutils literal notranslate"><span class="pre">QEIOC_SETINDEX</span></code></a></p></li>
-<li><p><a class="reference internal" href="#c.QEIOC_GETINDEX" title="QEIOC_GETINDEX"><code class="xref c c-macro docutils literal notranslate"><span class="pre">QEIOC_GETINDEX</span></code></a></p></li>
+<li><p><a class="reference internal" href="#c.GPIOC_WRITE" title="GPIOC_WRITE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">GPIOC_WRITE</span></code></a></p></li>
+<li><p><a class="reference internal" href="#c.GPIOC_READ" title="GPIOC_READ"><code class="xref c c-macro docutils literal notranslate"><span class="pre">GPIOC_READ</span></code></a></p></li>
+<li><p><a class="reference internal" href="#c.GPIOC_PINTYPE" title="GPIOC_PINTYPE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">GPIOC_PINTYPE</span></code></a></p></li>
+<li><p><a class="reference internal" href="#c.GPIOC_REGISTER" title="GPIOC_REGISTER"><code class="xref c c-macro docutils literal notranslate"><span class="pre">GPIOC_REGISTER</span></code></a></p></li>
+<li><p><a class="reference internal" href="#c.GPIOC_UNREGISTER" title="GPIOC_UNREGISTER"><code class="xref c c-macro docutils literal notranslate"><span class="pre">GPIOC_UNREGISTER</span></code></a></p></li>
+<li><p><a class="reference internal" href="#c.GPIOC_SETPINTYPE" title="GPIOC_SETPINTYPE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">GPIOC_SETPINTYPE</span></code></a></p></li>
 </ul>
 </div></blockquote>
 <dl class="c macro">
-<dt class="sig sig-object c" id="c.QEIOC_POSITION">
-<span class="sig-name descname"><span class="n"><span class="pre">QEIOC_POSITION</span></span></span><a class="headerlink" href="#c.QEIOC_POSITION" title="Permalink to this definition"></a><br /></dt>
+<dt class="sig sig-object c" id="c.GPIOC_WRITE">
+<span class="sig-name descname"><span class="n"><span class="pre">GPIOC_WRITE</span></span></span><a class="headerlink" href="#c.GPIOC_WRITE" title="Permalink to this definition"></a><br /></dt>
 <dd></dd></dl>
 
-<p>This call gets the current position from the encoder driver. Argument
-of the call is a pointer to <code class="docutils literal notranslate"><span class="pre">int32_t</span></code> variable.</p>
+<p>The <code class="docutils literal notranslate"><span class="pre">GPIOC_WRITE</span></code> command sets the value of an output GPIO. The argument
+is either 0 (set low value) or 1 (set high value). It is possible to write
+to output pins only. Typical use case is:</p>
+<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="kt">bool</span><span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">true</span><span class="p">;</span>
+<span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="n">GPIOC_WRITE</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">);</span>
+</pre></div>
+</div>
 <dl class="c macro">
-<dt class="sig sig-object c" id="c.QEIOC_RESET">
-<span class="sig-name descname"><span class="n"><span class="pre">QEIOC_RESET</span></span></span><a class="headerlink" href="#c.QEIOC_RESET" title="Permalink to this definition"></a><br /></dt>
+<dt class="sig sig-object c" id="c.GPIOC_READ">
+<span class="sig-name descname"><span class="n"><span class="pre">GPIOC_READ</span></span></span><a class="headerlink" href="#c.GPIOC_READ" title="Permalink to this definition"></a><br /></dt>
 <dd></dd></dl>
 
-<p>This command resets the current encoder positition to zero.</p>
+<p>The <code class="docutils literal notranslate"><span class="pre">GPIOC_READ</span></code> command reads the value of a GPIO. The argument
+is a pointer to a bool value to receive the result. The result is either 0
+(low value) or 1 (high value). It is possible to read from both input and
+output pins. The currently set value is returned in case the pin is output
+pin. Typical use case is:</p>
+<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="kt">bool</span><span class="w"> </span><span class="n">value</span><span class="p">;</span>
+<span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="n">GPIOC_READ</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">long</span><span class="p">)(</span><spa [...]
+</pre></div>
+</div>
 <dl class="c macro">
-<dt class="sig sig-object c" id="c.QEIOC_SETPOSMAX">
-<span class="sig-name descname"><span class="n"><span class="pre">QEIOC_SETPOSMAX</span></span></span><a class="headerlink" href="#c.QEIOC_SETPOSMAX" title="Permalink to this definition"></a><br /></dt>
+<dt class="sig sig-object c" id="c.GPIOC_PINTYPE">
+<span class="sig-name descname"><span class="n"><span class="pre">GPIOC_PINTYPE</span></span></span><a class="headerlink" href="#c.GPIOC_PINTYPE" title="Permalink to this definition"></a><br /></dt>
 <dd></dd></dl>
 
-<p>The <code class="docutils literal notranslate"><span class="pre">QEIOC_SETPOSMAX</span></code> call sets the maximum position for the encoder.
-An argument is an <code class="docutils literal notranslate"><span class="pre">uint32_t</span></code> variable with the maximum position value.</p>
+<p>The <code class="docutils literal notranslate"><span class="pre">GPIOC_PINTYPE</span></code> command gets the type of GPIO pin. The argument
+is a pointer to an instance of type <code class="xref c c-enum docutils literal notranslate"><span class="pre">gpio_pintype_e</span></code>.</p>
+<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">enum</span><span class="w"> </span><span class="n">gpio_pintype_e</span>
+<span class="p">{</span>
+<span class="w">  </span><span class="n">GPIO_INPUT_PIN</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="cm">/* float */</span>
+<span class="w">  </span><span class="n">GPIO_INPUT_PIN_PULLUP</span><span class="p">,</span>
+<span class="w">  </span><span class="n">GPIO_INPUT_PIN_PULLDOWN</span><span class="p">,</span>
+<span class="w">  </span><span class="n">GPIO_OUTPUT_PIN</span><span class="p">,</span><span class="w"> </span><span class="cm">/* push-pull */</span>
+<span class="w">  </span><span class="n">GPIO_OUTPUT_PIN_OPENDRAIN</span><span class="p">,</span>
+<span class="w">  </span><span class="n">GPIO_INTERRUPT_PIN</span><span class="p">,</span>
+<span class="w">  </span><span class="n">GPIO_INTERRUPT_HIGH_PIN</span><span class="p">,</span>
+<span class="w">  </span><span class="n">GPIO_INTERRUPT_LOW_PIN</span><span class="p">,</span>
+<span class="w">  </span><span class="n">GPIO_INTERRUPT_RISING_PIN</span><span class="p">,</span>
+<span class="w">  </span><span class="n">GPIO_INTERRUPT_FALLING_PIN</span><span class="p">,</span>
+<span class="w">  </span><span class="n">GPIO_INTERRUPT_BOTH_PIN</span><span class="p">,</span>
+<span class="w">  </span><span class="n">GPIO_INTERRUPT_PIN_WAKEUP</span><span class="p">,</span>
+<span class="w">  </span><span class="n">GPIO_INTERRUPT_HIGH_PIN_WAKEUP</span><span class="p">,</span>
+<span class="w">  </span><span class="n">GPIO_INTERRUPT_LOW_PIN_WAKEUP</span><span class="p">,</span>
+<span class="w">  </span><span class="n">GPIO_INTERRUPT_RISING_PIN_WAKEUP</span><span class="p">,</span>
+<span class="w">  </span><span class="n">GPIO_INTERRUPT_FALLING_PIN_WAKEUP</span><span class="p">,</span>
+<span class="w">  </span><span class="n">GPIO_INTERRUPT_BOTH_PIN_WAKEUP</span><span class="p">,</span>
+<span class="w">  </span><span class="n">GPIO_NPINTYPES</span>
+<span class="p">};</span>
+</pre></div>
+</div>
 <dl class="c macro">
-<dt class="sig sig-object c" id="c.QEIOC_SETINDEX">
-<span class="sig-name descname"><span class="n"><span class="pre">QEIOC_SETINDEX</span></span></span><a class="headerlink" href="#c.QEIOC_SETINDEX" title="Permalink to this definition"></a><br /></dt>
+<dt class="sig sig-object c" id="c.GPIOC_REGISTER">
+<span class="sig-name descname"><span class="n"><span class="pre">GPIOC_REGISTER</span></span></span><a class="headerlink" href="#c.GPIOC_REGISTER" title="Permalink to this definition"></a><br /></dt>
 <dd></dd></dl>
 
-<p>This ioctl sets the index position of the encoder. An argument is an
-<code class="docutils literal notranslate"><span class="pre">uint32_t</span></code> variable with the maximum position value.</p>
+<p>The <code class="docutils literal notranslate"><span class="pre">GPIOC_REGISTER</span></code> command registers a pin to receive a signal whenever
+there is an interrupt received on an input GPIO pin. This feature, of course,
+depends upon interript GPIO support in the platform specific code. Please
+refer to the documentation describing your target platform for futher
+information. The argument is the pointer to <a class="reference internal" href="../../../reference/user/structures.html#c.sigevent" title="sigevent"><code class="xref c c-type docutils literal notranslate"><span class="pre">sigevent</span></code></a> value, a signal
+to be generated when the interrupt occurs.</p>
+<p>Typical use case is following:</p>
+<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span><span class="w"> </span><span class="nc">sigevent</span><span class="w"> </span><span class="n">notify</span><span class="p">;</span>
+
+<span class="n">notify</span><span class="p">.</span><span class="n">sigev_notify</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SIGEV_SIGNAL</span><span class="p">;</span>
+<span class="n">notify</span><span class="p">.</span><span class="n">sigev_signo</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SIGUSR1</span><span class="p">;</span>
+
+<span class="kt">int</span><span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="n">GPIOC_REGISTER</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">long</span><span class="p">)</span>< [...]
+</pre></div>
+</div>
 <dl class="c macro">
-<dt class="sig sig-object c" id="c.QEIOC_GETINDEX">
-<span class="sig-name descname"><span class="n"><span class="pre">QEIOC_GETINDEX</span></span></span><a class="headerlink" href="#c.QEIOC_GETINDEX" title="Permalink to this definition"></a><br /></dt>
+<dt class="sig sig-object c" id="c.GPIOC_UNREGISTER">
+<span class="sig-name descname"><span class="n"><span class="pre">GPIOC_UNREGISTER</span></span></span><a class="headerlink" href="#c.GPIOC_UNREGISTER" title="Permalink to this definition"></a><br /></dt>
 <dd></dd></dl>
 
-<p>This ioctl gets the index position of the encoder. An argument is a
-pointer to <code class="docutils literal notranslate"><span class="pre">qe_index_s</span></code> structure.</p>
-<dl class="c struct">
-<dt class="sig sig-object c" id="c.qe_index_s">
-<span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">qe_index_s</span></span></span><a class="headerlink" href="#c.qe_index_s" title="Permalink to this definition"></a><br /></dt>
+<p>The <code class="docutils literal notranslate"><span class="pre">GPIOC_UNREGISTER</span></code> command unresigters a pin and stop receiving signals
+for pin interrupt.</p>
+<dl class="c macro">
+<dt class="sig sig-object c" id="c.GPIOC_SETPINTYPE">
+<span class="sig-name descname"><span class="n"><span class="pre">GPIOC_SETPINTYPE</span></span></span><a class="headerlink" href="#c.GPIOC_SETPINTYPE" title="Permalink to this definition"></a><br /></dt>
 <dd></dd></dl>
 
-<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span><span class="w"> </span><span class="nc">qe_index_s</span>
-<span class="p">{</span>
-<span class="w">   </span><span class="cm">/* Qencoder actual position */</span>
-<span class="w">   </span><span class="kt">int32_t</span><span class="w"> </span><span class="n">qenc_pos</span><span class="p">;</span>
-<span class="w">   </span><span class="cm">/* Index last position */</span>
-<span class="w">   </span><span class="kt">int32_t</span><span class="w"> </span><span class="n">indx_pos</span><span class="p">;</span>
-<span class="w">   </span><span class="cm">/* Number of index occurrences */</span>
-<span class="w">   </span><span class="kt">int16_t</span><span class="w"> </span><span class="n">indx_cnt</span><span class="p">;</span>
-<span class="p">};</span>
-</pre></div>
-</div>
-<p>The pointer to this structure is used as an argument to <code class="docutils literal notranslate"><span class="pre">QEIOC_GETINDEX</span></code>
-ioctl command. It gets the current encoder position, the last position of
-index and the number of index occurrences.</p>
+<p>The <code class="docutils literal notranslate"><span class="pre">GPIOC_SETPINTYPE</span></code> command can be used to change the GPIO pin type
+(from input pin to output pin, changing interrupt edges and similar). The
+types to set are listed in <code class="xref c c-enum docutils literal notranslate"><span class="pre">gpio_pintype_e</span></code>.</p>
 <section id="application-example">
 <h3>Application Example<a class="headerlink" href="#application-example" title="Permalink to this heading"></a></h3>
 <p>An example application can be found in <code class="docutils literal notranslate"><span class="pre">nuttx-apps</span></code> repository under
-path <code class="docutils literal notranslate"><span class="pre">examples/qencoder</span></code>. It demonstrates the basic data read
-from an encoder device.</p>
-<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">nsh&gt; qe</span>
-<span class="go">1.  0</span>
-<span class="go">2.  0</span>
-<span class="go">3.  0</span>
-<span class="go">4.  1</span>
-<span class="go">5.  1</span>
-<span class="go">6.  1</span>
-<span class="go">7.  2</span>
-<span class="go">8.  2</span>
-<span class="go">9.  3</span>
-</pre></div>
-</div>
+path <code class="docutils literal notranslate"><span class="pre">examples/gpio</span></code>. It is an example application that allows you
+to read, write or configure GPIO pins.</p>
 </section>
 </section>
 <section id="configuration">
 <h2>Configuration<a class="headerlink" href="#configuration" title="Permalink to this heading"></a></h2>
-<p>This section describes qencoder driver configuration in <code class="docutils literal notranslate"><span class="pre">Kconfig</span></code>. The
-reader should refer to target documentation for target specific configuration.</p>
-<p>The <code class="docutils literal notranslate"><span class="pre">CONFIG_SENSORS</span></code> option has to be enabled in order to use the qencoder
-peripheral. The peripheral itself is enabled by <code class="docutils literal notranslate"><span class="pre">CONFIG_SENSORS_QENCODER</span></code>
-option.</p>
+<p>This section describes GPIO driver configuration in <code class="docutils literal notranslate"><span class="pre">Kconfig</span></code>. The reader
+should refer to target documentation for target specific configuration.</p>
+<p>GPIO peripheral is enabled by <code class="docutils literal notranslate"><span class="pre">CONFIG_DEV_GPIO</span></code>. Option
+<code class="docutils literal notranslate"><span class="pre">CONFIG_DEV_NPOLLWAITERS</span></code> is used to specify the maximum number of threads
+that can be waiting on poll with default set to one. It is also possible
+to register signals with the GPIO driver. The number of allowed signals
+is configured with <code class="docutils literal notranslate"><span class="pre">CONFIG_DEV_NSIGNALS</span></code>.</p>
+</section>
+<section id="io-expander-device-drivers">
+<h2>IO Expander Device Drivers<a class="headerlink" href="#io-expander-device-drivers" title="Permalink to this heading"></a></h2>
+<p>IO Expander device drivers are chips that provides more GPIO pins, usually
+connected to the MCU with SPI or I2C bus. It is possible to register
+individual GPIO pins of the expander as a separate pins if needed. This
+option is enabled by <code class="docutils literal notranslate"><span class="pre">CONFIG_GPIO_LOWER_HALF</span></code> option. Please refer
+to <a class="reference external" href="https://nuttx.apache.org/docs/latest/components/drivers/special/ioexpander.html">ioexpander documentation</a>
+for more description.</p>
 </section>
 </section>
 
@@ -372,8 +402,8 @@ option.</p>
            </div>
           </div>
           <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
-        <a href="nullzero.html" class="btn btn-neutral float-left" title="dev_null.c and dev_zero.c" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
-        <a href="rc.html" class="btn btn-neutral float-right" title="Remote Control Devices" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="efuse.html" class="btn btn-neutral float-left" title="EFUSE Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="i2s.html" class="btn btn-neutral float-right" title="I2S Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
 
   <hr/>
diff --git a/content/docs/latest/components/drivers/character/i2s.html b/content/docs/latest/components/drivers/character/i2s.html
index 38d8f9a3e..74b5e345a 100644
--- a/content/docs/latest/components/drivers/character/i2s.html
+++ b/content/docs/latest/components/drivers/character/i2s.html
@@ -47,7 +47,7 @@
     <link rel="index" title="Index" href="../../../genindex.html" />
     <link rel="search" title="Search" href="../../../search.html" />
     <link rel="next" title="Input Devices" href="input/index.html" />
-    <link rel="prev" title="EFUSE Drivers" href="efuse.html" /> 
+    <link rel="prev" title="GPIO Drivers" href="gpio.html" /> 
 </head>
 
 <body class="wy-body-for-nav"> 
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4 current"><a class="current reference internal" href="#">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
@@ -239,7 +240,7 @@
            </div>
           </div>
           <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
-        <a href="efuse.html" class="btn btn-neutral float-left" title="EFUSE Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="gpio.html" class="btn btn-neutral float-left" title="GPIO Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
         <a href="input/index.html" class="btn btn-neutral float-right" title="Input Devices" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
 
diff --git a/content/docs/latest/components/drivers/character/index.html b/content/docs/latest/components/drivers/character/index.html
index 18957e1a4..defb9794f 100644
--- a/content/docs/latest/components/drivers/character/index.html
+++ b/content/docs/latest/components/drivers/character/index.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
@@ -301,6 +302,12 @@ documented in the following paragraphs.</p>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l1"><a class="reference internal" href="gpio.html">GPIO Drivers</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="gpio.html#application-programming-interface">Application Programming Interface</a></li>
+<li class="toctree-l2"><a class="reference internal" href="gpio.html#configuration">Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="gpio.html#io-expander-device-drivers">IO Expander Device Drivers</a></li>
+</ul>
+</li>
 <li class="toctree-l1"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l1"><a class="reference internal" href="input/index.html">Input Devices</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="input/keypad.html">Keyboard/Keypad Drivers</a></li>
diff --git a/content/docs/latest/components/drivers/character/input/index.html b/content/docs/latest/components/drivers/character/input/index.html
index 9f1e608d6..a428de881 100644
--- a/content/docs/latest/components/drivers/character/input/index.html
+++ b/content/docs/latest/components/drivers/character/input/index.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4 current"><a class="current reference internal" href="#">Input Devices</a><ul>
 <li class="toctree-l5"><a class="reference internal" href="keypad.html">Keyboard/Keypad Drivers</a></li>
diff --git a/content/docs/latest/components/drivers/character/input/keypad.html b/content/docs/latest/components/drivers/character/input/keypad.html
index f547c48bc..9da7e85ce 100644
--- a/content/docs/latest/components/drivers/character/input/keypad.html
+++ b/content/docs/latest/components/drivers/character/input/keypad.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4 current"><a class="reference internal" href="index.html">Input Devices</a><ul class="current">
 <li class="toctree-l5 current"><a class="current reference internal" href="#">Keyboard/Keypad Drivers</a></li>
diff --git a/content/docs/latest/components/drivers/character/input/sbutton.html b/content/docs/latest/components/drivers/character/input/sbutton.html
index 0d2271ca3..1f7c6e223 100644
--- a/content/docs/latest/components/drivers/character/input/sbutton.html
+++ b/content/docs/latest/components/drivers/character/input/sbutton.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4 current"><a class="reference internal" href="index.html">Input Devices</a><ul class="current">
 <li class="toctree-l5"><a class="reference internal" href="keypad.html">Keyboard/Keypad Drivers</a></li>
diff --git a/content/docs/latest/components/drivers/character/ipcc.html b/content/docs/latest/components/drivers/character/ipcc.html
index 843380537..ce1c1593e 100644
--- a/content/docs/latest/components/drivers/character/ipcc.html
+++ b/content/docs/latest/components/drivers/character/ipcc.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4 current"><a class="current reference internal" href="#">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/leds/index.html b/content/docs/latest/components/drivers/character/leds/index.html
index 2fa730be0..2f0f9e7c9 100644
--- a/content/docs/latest/components/drivers/character/leds/index.html
+++ b/content/docs/latest/components/drivers/character/leds/index.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/leds/ktd2052.html b/content/docs/latest/components/drivers/character/leds/ktd2052.html
index 5e231154d..f26109b94 100644
--- a/content/docs/latest/components/drivers/character/leds/ktd2052.html
+++ b/content/docs/latest/components/drivers/character/leds/ktd2052.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/leds/userled.html b/content/docs/latest/components/drivers/character/leds/userled.html
index 92be1f19e..c29bf2335 100644
--- a/content/docs/latest/components/drivers/character/leds/userled.html
+++ b/content/docs/latest/components/drivers/character/leds/userled.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/leds/ws2812.html b/content/docs/latest/components/drivers/character/leds/ws2812.html
index fb0444488..892415ff0 100644
--- a/content/docs/latest/components/drivers/character/leds/ws2812.html
+++ b/content/docs/latest/components/drivers/character/leds/ws2812.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/loop.html b/content/docs/latest/components/drivers/character/loop.html
index 848bc9459..6cb2be8f1 100644
--- a/content/docs/latest/components/drivers/character/loop.html
+++ b/content/docs/latest/components/drivers/character/loop.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/math.html b/content/docs/latest/components/drivers/character/math.html
index faa1cf942..4c14b55f8 100644
--- a/content/docs/latest/components/drivers/character/math.html
+++ b/content/docs/latest/components/drivers/character/math.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/modem.html b/content/docs/latest/components/drivers/character/modem.html
index c53c5c769..e78ffdc63 100644
--- a/content/docs/latest/components/drivers/character/modem.html
+++ b/content/docs/latest/components/drivers/character/modem.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/motor/foc.html b/content/docs/latest/components/drivers/character/motor/foc.html
index a2faee0c8..20996b11a 100644
--- a/content/docs/latest/components/drivers/character/motor/foc.html
+++ b/content/docs/latest/components/drivers/character/motor/foc.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/motor/index.html b/content/docs/latest/components/drivers/character/motor/index.html
index 3edad8738..0d179bc5b 100644
--- a/content/docs/latest/components/drivers/character/motor/index.html
+++ b/content/docs/latest/components/drivers/character/motor/index.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/note.html b/content/docs/latest/components/drivers/character/note.html
index fa8e19ee6..9a72dd023 100644
--- a/content/docs/latest/components/drivers/character/note.html
+++ b/content/docs/latest/components/drivers/character/note.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/nullzero.html b/content/docs/latest/components/drivers/character/nullzero.html
index 71e258125..a84fcf8a3 100644
--- a/content/docs/latest/components/drivers/character/nullzero.html
+++ b/content/docs/latest/components/drivers/character/nullzero.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/quadrature.html b/content/docs/latest/components/drivers/character/quadrature.html
index 394adef21..13f140c5d 100644
--- a/content/docs/latest/components/drivers/character/quadrature.html
+++ b/content/docs/latest/components/drivers/character/quadrature.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/rc.html b/content/docs/latest/components/drivers/character/rc.html
index e67947a5b..48439b4c1 100644
--- a/content/docs/latest/components/drivers/character/rc.html
+++ b/content/docs/latest/components/drivers/character/rc.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/rf.html b/content/docs/latest/components/drivers/character/rf.html
index 19ba314d1..781440c0d 100644
--- a/content/docs/latest/components/drivers/character/rf.html
+++ b/content/docs/latest/components/drivers/character/rf.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/serial.html b/content/docs/latest/components/drivers/character/serial.html
index 51fd5fada..65317cd81 100644
--- a/content/docs/latest/components/drivers/character/serial.html
+++ b/content/docs/latest/components/drivers/character/serial.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/timers/capture.html b/content/docs/latest/components/drivers/character/timers/capture.html
index 3513e831b..92336b777 100644
--- a/content/docs/latest/components/drivers/character/timers/capture.html
+++ b/content/docs/latest/components/drivers/character/timers/capture.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/timers/index.html b/content/docs/latest/components/drivers/character/timers/index.html
index 42c5da157..f19a7ece1 100644
--- a/content/docs/latest/components/drivers/character/timers/index.html
+++ b/content/docs/latest/components/drivers/character/timers/index.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/timers/pwm.html b/content/docs/latest/components/drivers/character/timers/pwm.html
index 51f3d035e..c06a519c3 100644
--- a/content/docs/latest/components/drivers/character/timers/pwm.html
+++ b/content/docs/latest/components/drivers/character/timers/pwm.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/timers/rtc.html b/content/docs/latest/components/drivers/character/timers/rtc.html
index 3b5a15dfa..c9fccd010 100644
--- a/content/docs/latest/components/drivers/character/timers/rtc.html
+++ b/content/docs/latest/components/drivers/character/timers/rtc.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/timers/timer.html b/content/docs/latest/components/drivers/character/timers/timer.html
index 542e9400b..1dc5facdb 100644
--- a/content/docs/latest/components/drivers/character/timers/timer.html
+++ b/content/docs/latest/components/drivers/character/timers/timer.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/timers/watchdog.html b/content/docs/latest/components/drivers/character/timers/watchdog.html
index eb91ca559..93f1121ea 100644
--- a/content/docs/latest/components/drivers/character/timers/watchdog.html
+++ b/content/docs/latest/components/drivers/character/timers/watchdog.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/touchscreen.html b/content/docs/latest/components/drivers/character/touchscreen.html
index d0c61991a..1c1b8f0d0 100644
--- a/content/docs/latest/components/drivers/character/touchscreen.html
+++ b/content/docs/latest/components/drivers/character/touchscreen.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/wireless/index.html b/content/docs/latest/components/drivers/character/wireless/index.html
index c4e6dfd36..6128b4eac 100644
--- a/content/docs/latest/components/drivers/character/wireless/index.html
+++ b/content/docs/latest/components/drivers/character/wireless/index.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/wireless/lpwan/index.html b/content/docs/latest/components/drivers/character/wireless/lpwan/index.html
index 05da25101..99126904e 100644
--- a/content/docs/latest/components/drivers/character/wireless/lpwan/index.html
+++ b/content/docs/latest/components/drivers/character/wireless/lpwan/index.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/components/drivers/character/wireless/lpwan/sx126x.html b/content/docs/latest/components/drivers/character/wireless/lpwan/sx126x.html
index 91ca6f4b6..d81053beb 100644
--- a/content/docs/latest/components/drivers/character/wireless/lpwan/sx126x.html
+++ b/content/docs/latest/components/drivers/character/wireless/lpwan/sx126x.html
@@ -143,6 +143,7 @@
 <li class="toctree-l4"><a class="reference internal" href="../../crypto/index.html">Crypto Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../eeprom.html">EEPROM</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../efuse.html">EFUSE Drivers</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../gpio.html">GPIO Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../i2s.html">I2S Drivers</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../input/index.html">Input Devices</a></li>
 <li class="toctree-l4"><a class="reference internal" href="../../ipcc.html">IPCC (Inter Processor Communication Controller) Driver</a></li>
diff --git a/content/docs/latest/genindex.html b/content/docs/latest/genindex.html
index 65fd3a31f..768625d31 100644
--- a/content/docs/latest/genindex.html
+++ b/content/docs/latest/genindex.html
@@ -545,17 +545,29 @@
 </li>
       <li><a href="components/drivers/character/timers/timer.html#c.getstatus">getstatus (C function)</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="reference/user/06_clocks_timers.html#c.gettimeofday">gettimeofday (C function)</a>
 </li>
       <li><a href="glossary.html#term-GMAC"><strong>GMAC</strong></a>
 </li>
       <li><a href="reference/user/06_clocks_timers.html#c.gmtime">gmtime (C function)</a>
 </li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="reference/user/06_clocks_timers.html#c.gmtime_r">gmtime_r (C function)</a>
 </li>
       <li><a href="glossary.html#term-GPIO"><strong>GPIO</strong></a>
+</li>
+      <li><a href="components/drivers/character/gpio.html#c.GPIOC_PINTYPE">GPIOC_PINTYPE (C macro)</a>
+</li>
+      <li><a href="components/drivers/character/gpio.html#c.GPIOC_READ">GPIOC_READ (C macro)</a>
+</li>
+      <li><a href="components/drivers/character/gpio.html#c.GPIOC_REGISTER">GPIOC_REGISTER (C macro)</a>
+</li>
+      <li><a href="components/drivers/character/gpio.html#c.GPIOC_SETPINTYPE">GPIOC_SETPINTYPE (C macro)</a>
+</li>
+      <li><a href="components/drivers/character/gpio.html#c.GPIOC_UNREGISTER">GPIOC_UNREGISTER (C macro)</a>
+</li>
+      <li><a href="components/drivers/character/gpio.html#c.GPIOC_WRITE">GPIOC_WRITE (C macro)</a>
 </li>
   </ul></td>
 </tr></table>
diff --git a/content/docs/latest/guides/fully_linked_elf.html b/content/docs/latest/guides/fully_linked_elf.html
index 425e1a958..9fac9377f 100644
--- a/content/docs/latest/guides/fully_linked_elf.html
+++ b/content/docs/latest/guides/fully_linked_elf.html
@@ -477,7 +477,7 @@ NuttX package: <code class="docutils literal notranslate"><span class="pre">nutt
 <div class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version admonition">
 <p class="admonition-title">Here is an alternative minimal (and possibly outdated) version</p>
 <div class="sphinx_collapse docutils">
-<input class="sphinx_collapse__input" id="25b65cae-266d-4ed8-8e02-a1b82f06bf50" name="25b65cae-266d-4ed8-8e02-a1b82f06bf50" type="checkbox"><label class="sphinx_collapse__label" for="25b65cae-266d-4ed8-8e02-a1b82f06bf50"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input" id="91162190-1dd2-4ace-a517-c8430249b552" name="91162190-1dd2-4ace-a517-c8430249b552" type="checkbox"><label class="sphinx_collapse__label" for="91162190-1dd2-4ace-a517-c8430249b552"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils">
 <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>SECTIONS
 {
 .text 0x00000000 :
diff --git a/content/docs/latest/guides/partially_linked_elf.html b/content/docs/latest/guides/partially_linked_elf.html
index 21072a83c..51e346434 100644
--- a/content/docs/latest/guides/partially_linked_elf.html
+++ b/content/docs/latest/guides/partially_linked_elf.html
@@ -503,7 +503,7 @@ NuttX package: <code class="docutils literal notranslate"><span class="pre">nutt
 <div class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version admonition">
 <p class="admonition-title">Here is an alternative minimal (and possibly outdated) version</p>
 <div class="sphinx_collapse docutils">
-<input class="sphinx_collapse__input" id="a2ec0e8e-9bb4-4145-8781-91290ba740ad" name="a2ec0e8e-9bb4-4145-8781-91290ba740ad" type="checkbox"><label class="sphinx_collapse__label" for="a2ec0e8e-9bb4-4145-8781-91290ba740ad"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input" id="5acd609c-4852-44b8-9e95-f7a518f6f34b" name="5acd609c-4852-44b8-9e95-f7a518f6f34b" type="checkbox"><label class="sphinx_collapse__label" for="5acd609c-4852-44b8-9e95-f7a518f6f34b"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils">
 <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>SECTIONS
 {
 .text 0x00000000 :
diff --git a/content/docs/latest/index.html b/content/docs/latest/index.html
index 101f5ff30..c8627ddcd 100644
--- a/content/docs/latest/index.html
+++ b/content/docs/latest/index.html
@@ -187,7 +187,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as
 VxWorks) are adopted for functionality not available under these standards, or
 for functionality that is not appropriate for deeply-embedded environments (such
 as fork()).</p>
-<p>Last Updated: 22 November 25 at 14:28</p>
+<p>Last Updated: 22 November 25 at 22:33</p>
 <div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/latest/objects.inv b/content/docs/latest/objects.inv
index 1b996eb1f..862ff8dc4 100644
Binary files a/content/docs/latest/objects.inv and b/content/docs/latest/objects.inv differ
diff --git a/content/docs/latest/searchindex.js b/content/docs/latest/searchindex.js
index f4e4bf64d..99bdd162e 100644
--- a/content/docs/latest/searchindex.js
+++ b/content/docs/latest/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr", "_tags/arch-example", "_tags/arch-renesas", "_tags/arch-risc-v", "_tags/arch-riscv", "_tags/arch-sim", "_tags/chip-a527", "_tags/chip-a64", "_tags/chip-at32uc3", "_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega128", "_tags/chip-atmega1284p", "_tags/chip-atmega2560", "_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s", "_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3", "_tags/ch [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr", "_tags/arch-example", "_tags/arch-renesas", "_tags/arch-risc-v", "_tags/arch-riscv", "_tags/arch-sim", "_tags/chip-a527", "_tags/chip-a64", "_tags/chip-at32uc3", "_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega128", "_tags/chip-atmega1284p", "_tags/chip-atmega2560", "_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s", "_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3", "_tags/ch [...]
\ No newline at end of file
diff --git a/content/feed.xml b/content/feed.xml
index b43d82177..dfe9b0e41 100644
--- a/content/feed.xml
+++ b/content/feed.xml
@@ -5,8 +5,8 @@
     <description></description>
     <link>/</link>
     <atom:link href="/feed.xml" rel="self" type="application/rss+xml"/>
-    <pubDate>Sat, 22 Nov 2025 14:30:54 +0000</pubDate>
-    <lastBuildDate>Sat, 22 Nov 2025 14:30:54 +0000</lastBuildDate>
+    <pubDate>Sat, 22 Nov 2025 22:36:10 +0000</pubDate>
+    <lastBuildDate>Sat, 22 Nov 2025 22:36:10 +0000</lastBuildDate>
     <generator>Jekyll v4.3.2</generator>
     
       <item>