On 9/1/25 19:22, Shenwei Wang wrote:
-----Original Message-----
From: Arnaud POULIQUEN <[email protected]>
Sent: Monday, September 1, 2025 2:27 AM
To: Linus Walleij <[email protected]>; Shenwei Wang
<[email protected]>; Bjorn Andersson <[email protected]>; Mathieu
Poirier <[email protected]>
Cc: Rob Herring <[email protected]>; Krzysztof Kozlowski <[email protected]>;
Conor Dooley <[email protected]>; Shawn Guo <[email protected]>;
Sascha Hauer <[email protected]>; Bartosz Golaszewski <[email protected]>;
Pengutronix Kernel Team <[email protected]>; Fabio Estevam
<[email protected]>; Peng Fan <[email protected]>; linux-
[email protected]; [email protected]; [email protected];
[email protected]; [email protected]; dl-linux-imx
<[email protected]>
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 <[email protected]>
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 <[email protected]>
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.