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.