fdcavalcanti opened a new pull request, #19558:
URL: https://github.com/apache/nuttx/pull/19558

   ## Summary
   - drives/ioexpander: add support to PI4IOE IO Expander
       Adds support for the PIO4IOE IO Expander, more specifically the 
PIO4IOE5V6408 version.
       
       Assisted-by: Cursor IDE agents
   
   Adds a NuttX IO expander driver for the Diodes Incorporated PI4IOE5V6408 
8-bit I2C GPIO expander.
   
   - Supports GPIO direction, input/output access, pull-up/pull-down 
configuration, high-impedance output mode, buffered state, and optional 
multi-pin operations.
   - Provides optional interrupt callbacks processed through the high-priority 
work queue.
   - Implements software reset and restores the device’s documented default 
register state.
   - Adds Kconfig, Make, and CMake integration, plus the public initialization 
API and configuration structure.
   - Supports both device addresses, 0x43 and 0x44.
   
   ## Impact
   
   - Requires I2C support and board-provided I2C bus configuration.
   - Interrupt support is optional; enabling it requires board interrupt hooks 
and SCHED_HPWORK.
   - Currently only used by `esp32p4-tab5` board
   - No expected security, documentation, or backward-compatibility impact.
   
   ## AI Disclaimer
   
   Since we do not have AI guidelines yet, I will disclaim its use here.
   
   This addition has been generated by Cursor IDE (mostly Grok 4.5 Agent) using 
the PI4IOE5V6408 driver available for 
[ESP-IDF](https://components.espressif.com/components/espressif/esp_io_expander_pi4ioe5v6408/versions/1.0.0/dependencies?language=en)
 and its datasheet as sources, while using all the other IO Expander drivers as 
the NuttX reference.
   
   I have personally reviewed the implementation before submitting.
   
   ## Testing
   I do not have this IC as an individual part. I tested it as embedded in the 
`esp32p4-tab5` board.
   
   Schematics can be found [here](https://docs.m5stack.com/en/core/Tab5) and 
this is the part I tested:
   <img width="522" height="512" alt="image" 
src="https://github.com/user-attachments/assets/d80aa33c-d393-47a9-846f-93779770f58d";
 />
   
   I have used it to enable and disable the LCD_RST line and it is working fine.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to