> -----Original Message-----
> From: Arnaud POULIQUEN <[email protected]>
> Sent: Tuesday, February 24, 2026 2:47 AM
> To: Shenwei Wang <[email protected]>; Linus Walleij
> <[email protected]>
> Cc: Andrew Lunn <[email protected]>; Bartosz Golaszewski <[email protected]>;
> Jonathan Corbet <[email protected]>; Rob Herring <[email protected]>; Krzysztof
> Kozlowski <[email protected]>; Conor Dooley <[email protected]>; Bjorn
> Andersson <[email protected]>; Mathieu Poirier
> <[email protected]>; Frank Li <[email protected]>; Sascha Hauer
> <[email protected]>; Shuah Khan <[email protected]>; linux-
> [email protected]; [email protected]; [email protected];
> Pengutronix Kernel Team <[email protected]>; Fabio Estevam
> <[email protected]>; Peng Fan <[email protected]>;
> [email protected]; [email protected];
> [email protected]; [email protected]; dl-linux-imx 
> <linux-
> [email protected]>; Bartosz Golaszewski <[email protected]>
> Subject: [EXT] Re: [PATCH v8 3/4] gpio: rpmsg: add generic rpmsg GPIO driver
> Hello Shenwei
>
> On 2/23/26 21:33, Shenwei Wang wrote:
> >
> >
> >> -----Original Message-----
> >> From: Arnaud POULIQUEN <[email protected]>
> >> Sent: Monday, February 23, 2026 8:25 AM
> >> To: Linus Walleij <[email protected]>; Shenwei Wang
> >> <[email protected]>
> >> Cc: Andrew Lunn <[email protected]>; Bartosz Golaszewski
> >> <[email protected]>; Jonathan Corbet <[email protected]>; Rob Herring
> >> <[email protected]>; Krzysztof Kozlowski <[email protected]>; Conor
> >> Dooley <[email protected]>; Bjorn Andersson <[email protected]>;
> >> Mathieu Poirier <[email protected]>; Frank Li
> >> <[email protected]>; Sascha Hauer <[email protected]>; Shuah Khan
> >> <[email protected]>; linux- [email protected];
> >> [email protected]; [email protected]; Pengutronix
> >> Kernel Team <[email protected]>; Fabio Estevam
> >> <[email protected]>; Peng Fan <[email protected]>;
> >> [email protected]; [email protected];
> >> [email protected]; [email protected];
> >> dl-linux-imx <linux- [email protected]>; Bartosz Golaszewski
> >> <[email protected]>
> >> Subject: [EXT] Re: [PATCH v8 3/4] gpio: rpmsg: add generic rpmsg GPIO
> >> driver Hello Linus,
> >>
> >> On 2/22/26 15:48, Linus Walleij wrote:
> >>> On Fri, Feb 20, 2026 at 7:57 PM Shenwei Wang <[email protected]>
> >> wrote:
> >>>
> >>>> Given that, I’d like to hear from the GPIO subsystem maintainers —
> >>>> @Linus Walleij and @Bartosz Golaszewski — on whether a driver that
> >>>> works with the current hardware/firmware design could still be
> >>>> acceptable for upstream inclusion. My understanding is that
> >>>> upstream
> >> generally supports existing, real-world hardware as long as the
> >> driver meets subsystem standards.
> >>>
> >>> What a swell party this has become.
> >>>
> >>> In this kind of situations I usually refer to
> >>> Documentation/process/management-style.rst
> >>>
> >>
> >> Thank you for pointing out the document, I was not aware of its
> >> existence. Very informative!
> >> That help me to understand you proposal below.
> >>
> >>
> >>> What is the message I as a maintainer is getting from NXP regarding
> >>> "gpio: rpmsg: add generic rpmsg GPIO driver"?
> >>>
> >>> Arnaud, who is the only person in this discussion who actually wrote
> >>> a standard RPMSG driver (drivers/tty/rpmsg_tty.c), must ACK this
> >>> patch if it wants to call itself a "generic" RPMSG GPIO driver, if
> >>> he does not, then it isn't.
> >>
> >> In Fact there are already 2 "generic" drivers, the second one it the
> >> drivers/rpmsg/rpmsg_char.c, both are used on several platforms.
> >>
> >> It is in my plan to test the rpmsg-gpio on ST platform if we go with
> >> the generic approach.
> >>
> >>>
> >>> Is it generic? If it is not, let's call it "NXP rpmsg GPIO driver"
> >>> and rename files etc accordingly. Maybe it can share code with the
> >>> actual generic RPMSG driver once that arrives, that is more of a library
> question.
> >>
> >> I would like to (re)express my concerns regarding the creation of an
> >> NXP-specific driver. To clarify my concerns, ST, like probably some
> >> other SoC vendors, has rpmsg-gpio and rpmsg-i2c drivers in downstream with
> plans to upstream them.
> >>
> >
> > Linus, thank you for jumping in and providing the guidance.
> >
> > I would like to clarify one point here: what we are discussing now is
> > not whether the driver itself is generic, but rather that the current
> > protocol is not as perfect as Arnaud would expect, since it contains a few 
> > fields
> that may not be required on their platforms.
> >
> > Arnaud, if you agree with the points above, my proposal is the following:
> >   - Remove the fields you mentioned in the protocol and update the
> > driver accordingly so that we can establish a true baseline for a generic
> implementation we all agree.
> >   - Then prepare a separate patch to add support for existing NXP
> > platforms by introducing the necessary fix‑up functions.
> >
> > Please let me know if this approach works for you. My goal is to find
> > a solution that works for everyone — even though I know that pleasing
> everyone is almost impossible.
> This looks reasonable to me, but I am not a maintainer, so I will let 
> maintainers
> share their opinions on your proposition.
>

Hi Arnaud,
Glad to hear you find this approach reasonable.
To be more specific, I’m proposing to do the following modifications for the 
protocol:

  - remove the “id” field (Message ID Code)
  - remove the “reserved[5]” field
  - and also reorder the fields so that port_idx appears before pin_idx

If you think additional fields should be removed or adjusted, please let me 
know.

Thanks,
Shenwei

> Please note that you have also to answer to Bjorn and Mathieu about the 
> rational
> to use RPMsg instead of the virtio protocol.
>
> For the ST platform, the main advantage of RPMsg is the ability to mix buses 
> on
> one virtio interface, whereas Virtio requires allocating vrings and mailbox
> channels per Virtio type. When data rate is not the priority, RPMsg may be
> preferable.
>
> Another limitation e observed, when prototyping a virtio-i2c between Linux 
> and a
> remote processor is the allocation of specific DMA memory region shared
> between the processors[1].
>
> [1]
> https://github.co/
> m%2Farnopo%2Flinux%2Fcommit%2Fae47a1cbf95125ab10952283622653d626e
> 56e6a&data=05%7C02%7Cshenwei.wang%40nxp.com%7Cdcff50d0e65541164d
> b908de73814b8f%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6390
> 75196360168552%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWU
> sIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%
> 7C0%7C%7C%7C&sdata=HcTtPbkXm%2BTDwrmgxWj5zwBCGE9Jp3fj9AWlBriw%
> 2BRY%3D&reserved=0
>
> Thanks and regards,
> Arnaud
>
> >
> > Thanks,
> > Shenwei
> >
> >> If we proceed in this direction:
> >>
> >> -Any vendor wishing to upstream an rpmsg-gpio driver might submit
> >> their own platform-specific version.
> >>
> >> - If NXP upstreams other rpmsg drivers, these will likely remain
> >> NXP-centric to maintain compatibility with their legacy firmware and
> >> the nxp-rpmsg-gpio driver, leading to platform-specific versions in several
> frameworks.
> >>
> >> - The implementation will impact not only the Linux side but also the 
> >> remote
> side.
> >> Indeed, some operating systems like Zephyr or NuttX implement the
> >> rpmsg device side (Zephyr already implements the rpmsg-tty)
> >>
> >> Maintaining a generic approach for RPMsg, similar to what is done for
> >> Virtio, seems to me a more reliable solution, even though it may
> >> induce some downstream costs (ST would also need to break
> >> compatibility with legacy ST remote proc firmware).
> >>
> >>
> >> In the end, I am just trying to influence the direction for RPMsg,
> >> but based on the discussions in this thread, it seems others share
> >> similar expectations, which should probably be taken into account as well.
> >>
> >> Thanks and Regards,
> >> Arnaud
> >>
> >>
> >> I just want to
> >>
> >>>
> >>> Yours,
> >>> Linus Walleij
> >

Reply via email to