[PATCH 3/4] gpio: imx-rpmsg: add imx-rpmsg GPIO driver

Arnaud POULIQUEN arnaud.pouliquen at foss.st.com
Tue Sep 2 05:34:37 PDT 2025



On 9/1/25 19:22, Shenwei Wang wrote:
>
>> -----Original Message-----
>> From: Arnaud POULIQUEN <arnaud.pouliquen at foss.st.com>
>> Sent: Monday, September 1, 2025 2:27 AM
>> To: Linus Walleij <linus.walleij at linaro.org>; Shenwei Wang
>> <shenwei.wang at nxp.com>; Bjorn Andersson <andersson at kernel.org>; Mathieu
>> Poirier <mathieu.poirier at linaro.org>
>> Cc: Rob Herring <robh at kernel.org>; Krzysztof Kozlowski <krzk+dt at kernel.org>;
>> Conor Dooley <conor+dt at kernel.org>; Shawn Guo <shawnguo at kernel.org>;
>> Sascha Hauer <s.hauer at pengutronix.de>; Bartosz Golaszewski <brgl at bgdev.pl>;
>> Pengutronix Kernel Team <kernel at pengutronix.de>; Fabio Estevam
>> <festevam at gmail.com>; Peng Fan <peng.fan at nxp.com>; linux-
>> remoteproc at vger.kernel.org; devicetree at vger.kernel.org; imx at lists.linux.dev;
>> linux-arm-kernel at lists.infradead.org; linux-kernel at vger.kernel.org; dl-linux-imx
>> <linux-imx at 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.wang at 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.wang at 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.




More information about the linux-arm-kernel mailing list