Re: [PATCH v13 3/4] gpio: rpmsg: add generic rpmsg GPIO driver

From: Shenwei Wang

Date: Tue Apr 28 2026 - 11:31:54 EST




> -----Original Message-----
> 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
> > > struct virtio_gpio_response {
> > > __u8 status;
> > > __u8 value;
> > > };
>
> > It is the same message format. Please see the message definition
> (GET_DIRECTION) below:
>
> > + +-----+-----+-----+-----+-----+----+
> > + |0x00 |0x01 |0x02 |0x03 |0x04 |0x05|
> > + | 1 | 2 |port |line | err | dir|
> > + +-----+-----+-----+-----+-----+----+
>
> Sorry, but i don't see how two u8 vs six u8 are the same message format.
>

Some changes to the message format are necessary.

Virtio uses two communication channels (virtqueues): one for requests and replies, and a second one for events.
In contrast, rpmsg provides only a single communication channel, so a type field is required to distinguish between
different kinds of messages.

Since rpmsg replies and events share the same message format, an additional line is introduced to handle both cases.

Finally, rpmsg supports multiple GPIO controllers, so a port field is added to uniquely identify the target controller.

Shenwei

> Andrew