On 9/1/25 19:22, Shenwei Wang wrote:

-----Original Message-----
From: Arnaud POULIQUEN <arnaud.pouliq...@foss.st.com>
Sent: Monday, September 1, 2025 2:27 AM
To: Linus Walleij <linus.wall...@linaro.org>; Shenwei Wang
<shenwei.w...@nxp.com>; Bjorn Andersson <anders...@kernel.org>; Mathieu
Poirier <mathieu.poir...@linaro.org>
Cc: Rob Herring <r...@kernel.org>; Krzysztof Kozlowski <krzk...@kernel.org>;
Conor Dooley <conor...@kernel.org>; Shawn Guo <shawn...@kernel.org>;
Sascha Hauer <s.ha...@pengutronix.de>; Bartosz Golaszewski <b...@bgdev.pl>;
Pengutronix Kernel Team <ker...@pengutronix.de>; Fabio Estevam
<feste...@gmail.com>; Peng Fan <peng....@nxp.com>; linux-
remotep...@vger.kernel.org; devicet...@vger.kernel.org; i...@lists.linux.dev;
linux-arm-ker...@lists.infradead.org; linux-kernel@vger.kernel.org; dl-linux-imx
<linux-...@nxp.com>
Subject: [EXT] Re: [PATCH 3/4] gpio: imx-rpmsg: add imx-rpmsg GPIO driver


Hello,

On 8/21/25 11:01, Linus Walleij wrote:
Hi Shenwei,

thanks for your patch!

On Mon, Aug 18, 2025 at 10:45 PM Shenwei Wang <shenwei.w...@nxp.com>
wrote:
On i.MX SoCs, the system may include two processors:
          - An MCU running an RTOS
          - An MPU running Linux

These processors communicate via the RPMSG protocol.
The driver implements the standard GPIO interface, allowing the Linux
side to control GPIO controllers which reside in the remote processor
via RPMSG protocol.

Signed-off-by: Shenwei Wang <shenwei.w...@nxp.com>
Since this is a first RPMSG GPIO driver, I'd like if Björn and/or
Mathieu have a look at it so I'm sure it is RPMSG-proper!
Could this driver be generic (platform independent) ?
Perhaps i missed something, but it seems to me that there is no IMX specific
code.
Making it generic would allow other platforms to reuse it instead of 
duplicating it.

The driver uses the RPMSG channel just as a transport layer, so the 
implementation is actually
platform-independent. However, it requires the remote side to implement the 
same communication
protocol and behavior for the GPIO controller.


Yes, pending implementation is needed on the remote processor, as is already the case for the rpmsg_char and rpmsg_tty Linux drivers. If a generic remote implementation is needed for this series, then it could be implemented in  the OpenAMP project as done for the rpmsg_tty and rpmsg_char [1].

The idea here would be to have an equivalent of the virtio-gpio driver but based on the RPMsg protocol instead of the
virtio one.

[1] https://github.com/OpenAMP/openamp-system-reference/tree/main/examples/zephyr/rpmsg_multi_services

Thanks,
Arnaud


Thanks,
Shenwei

Thanks,
Arnaud

diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index
a437fe652dbc..2ce4e9b5225e 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -402,6 +402,17 @@ config GPIO_ICH

            If unsure, say N.

+config GPIO_IMX_RPMSG
+       tristate "NXP i.MX SoC RPMSG GPIO support"
+       depends on IMX_REMOTEPROC && RPMSG && GPIOLIB
+       default IMX_REMOTEPROC
+       help
+         Say yes here to support the RPMSG GPIO functions on i.MX SoC based
+         platform.  Currently supported devices: i.MX7ULP, i.MX8ULP, i.MX8x,
+         and i.MX9x.
+
+         If unsure, say N.


Reply via email to