Re: [PATCH v13 3/4] gpio: rpmsg: add generic rpmsg GPIO driver
From: Padhi, Beleswar
Date: Wed Apr 29 2026 - 13:55:57 EST
On 4/29/2026 10:23 PM, Shenwei Wang wrote:
-----Original Message-----You still need a way to let the remote side know which port the endpoint maps to,
From: Mathieu Poirier <mathieu.poirier@xxxxxxxxxx>
Sent: Wednesday, April 29, 2026 10:42 AM
To: Shenwei Wang <shenwei.wang@xxxxxxx>
Cc: Andrew Lunn <andrew@xxxxxxx>; Padhi, Beleswar <b-padhi@xxxxxx>; Linus
Walleij <linusw@xxxxxxxxxx>; Bartosz Golaszewski <brgl@xxxxxxxxxx>; Jonathan
Corbet <corbet@xxxxxxx>; Rob Herring <robh@xxxxxxxxxx>; Krzysztof Kozlowski
<krzk+dt@xxxxxxxxxx>; Conor Dooley <conor+dt@xxxxxxxxxx>; Bjorn Andersson
<andersson@xxxxxxxxxx>; Frank Li <frank.li@xxxxxxx>; Sascha Hauer
<s.hauer@xxxxxxxxxxxxxx>; Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx>; linux-
gpio@xxxxxxxxxxxxxxx; linux-doc@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
Pengutronix Kernel Team <kernel@xxxxxxxxxxxxxx>; Fabio Estevam
<festevam@xxxxxxxxx>; Peng Fan <peng.fan@xxxxxxx>;
devicetree@xxxxxxxxxxxxxxx; linux-remoteproc@xxxxxxxxxxxxxxx;
imx@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; dl-linux-imx <linux-
imx@xxxxxxx>; Bartosz Golaszewski <brgl@xxxxxxxx>
Subject: [EXT] Re: [PATCH v13 3/4] gpio: rpmsg: add generic rpmsg GPIO driver
On Tue, Apr 28, 2026 at 03:24:59PM +0000, Shenwei Wang wrote:
replies, and a second one for events.
-----Original Message-----Some changes to the message format are necessary.
From: Andrew Lunn <andrew@xxxxxxx>
Sent: Monday, April 27, 2026 3:49 PM
To: Shenwei Wang <shenwei.wang@xxxxxxx>
Cc: Padhi, Beleswar <b-padhi@xxxxxx>; Linus Walleij
<linusw@xxxxxxxxxx>; Bartosz Golaszewski <brgl@xxxxxxxxxx>; Jonathan
Corbet <corbet@xxxxxxx>; Rob Herring <robh@xxxxxxxxxx>; Krzysztof
Kozlowski <krzk+dt@xxxxxxxxxx>; Conor Dooley <conor+dt@xxxxxxxxxx>;
Bjorn Andersson <andersson@xxxxxxxxxx>; Mathieu Poirier
<mathieu.poirier@xxxxxxxxxx>; Frank Li <frank.li@xxxxxxx>; Sascha
Hauer <s.hauer@xxxxxxxxxxxxxx>; Shuah Khan
<skhan@xxxxxxxxxxxxxxxxxxx>; linux-gpio@xxxxxxxxxxxxxxx; linux-
doc@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Pengutronix
Kernel Team <kernel@xxxxxxxxxxxxxx>; Fabio Estevam
<festevam@xxxxxxxxx>; Peng Fan <peng.fan@xxxxxxx>;
devicetree@xxxxxxxxxxxxxxx; linux- remoteproc@xxxxxxxxxxxxxxx;
imx@xxxxxxxxxxxxxxx; linux-arm- kernel@xxxxxxxxxxxxxxxxxxx;
dl-linux-imx <linux-imx@xxxxxxx>; Bartosz Golaszewski
<brgl@xxxxxxxx>
Subject: [EXT] Re: [PATCH v13 3/4] gpio: rpmsg: add generic rpmsg
GPIO driver
(GET_DIRECTION) below:struct virtio_gpio_response {It is the same message format. Please see the message definition
__u8 status;
__u8 value;
};
+ +-----+-----+-----+-----+-----+----+Sorry, but i don't see how two u8 vs six u8 are the same message format.
+ |0x00 |0x01 |0x02 |0x03 |0x04 |0x05|
+ | 1 | 2 |port |line | err | dir|
+ +-----+-----+-----+-----+-----+----+
Virtio uses two communication channels (virtqueues): one for requests and
In contrast, rpmsg provides only a single communication channel, so aline is introduced to handle both cases.
type field is required to distinguish between different kinds of messages.
Since rpmsg replies and events share the same message format, an additional
Finally, rpmsg supports multiple GPIO controllers, so a port field is added touniquely identify the target controller.
I have commented on this before - RPMSG is already providing multiplexing
capability by way of endpoints. There is no need for a port field. One endpoint,
one GPIO controller.
About this, we only need to do this because you are defining the gpio
controller instances "statically" in the device tree. I understand gpio
nodes can act as providers, but I do not see any device referencing the
gpio nodes you are defining in the device tree. If that is the case, you
can completely remove the nodes from device tree, and "dynamically"
announce the existence of these nodes from the firmware itself
(similar to what is done for rpmsg-tty currently). In response to that
announce message, Linux could send the "ept" it allocated for the
controller. That way, Linux only cares about "ept" and there is no need
to maintain port 'idx' info anywhere in the Linux side anymore.
Thanks,
Beleswar