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

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

commit 227d7237abbdfd5bd3c9e79ebfa4816b8cb85681
Author: yezhonghui <[email protected]>
AuthorDate: Thu Apr 24 17:41:11 2025 +0800

    gpiochip: export ioexpander pointer to user
    
    sim gpiochip ioexpander export to user
    
    Signed-off-by: yezhonghui <[email protected]>
---
 arch/sim/src/sim/sim_gpiochip.c | 23 +++++++++++++++++++++++
 arch/sim/src/sim/sim_internal.h |  1 +
 2 files changed, 24 insertions(+)

diff --git a/arch/sim/src/sim/sim_gpiochip.c b/arch/sim/src/sim/sim_gpiochip.c
index 8ce4bba6df1..ad44b837af3 100644
--- a/arch/sim/src/sim/sim_gpiochip.c
+++ b/arch/sim/src/sim/sim_gpiochip.c
@@ -93,6 +93,8 @@ static struct ioexpander_ops_s g_sim_gpiochip_ops =
 #endif
 };
 
+struct ioexpander_dev_s *g_gpiochip = NULL;
+
 /****************************************************************************
  * Private Functions
  ****************************************************************************/
@@ -450,5 +452,26 @@ int sim_gpiochip_initialize(const char *path)
   wd_start(&priv->wdog, SIM_GPIOCHIP_WDOG_DELAY,
            sim_gpiochip_interrupt, (wdparm_t)priv);
 
+  g_gpiochip = (struct ioexpander_dev_s *)priv;
+
   return 0;
 }
+
+/****************************************************************************
+ * Name: sim_gpiochip_get_ioe
+ *
+ * Description:
+ *   Get the ioexpander pointer of gpiochip device
+ *
+ * Input Parameters:
+ *   None.
+ *
+ * Returned Value:
+ *   The pointer to the instance of sim gpiochip device.
+ *
+ ****************************************************************************/
+
+struct ioexpander_dev_s *sim_gpiochip_get_ioe(void)
+{
+  return g_gpiochip;
+}
diff --git a/arch/sim/src/sim/sim_internal.h b/arch/sim/src/sim/sim_internal.h
index f278222772f..68247ebb7da 100644
--- a/arch/sim/src/sim/sim_internal.h
+++ b/arch/sim/src/sim/sim_internal.h
@@ -518,6 +518,7 @@ void sim_stack_color(void *stackbase, size_t nbytes);
 
 #ifdef CONFIG_SIM_GPIOCHIP
 int sim_gpiochip_initialize(const char *filename);
+struct ioexpander_dev_s *sim_gpiochip_get_ioe(void);
 #endif
 
 #endif /* __ASSEMBLY__ */

Reply via email to