mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andrew Lunn <andrew@lunn.ch>
To: Shenwei Wang <shenwei.wang@nxp.com>
Cc: Arnaud POULIQUEN <arnaud.pouliquen@foss.st.com>,
	Linus Walleij <linusw@kernel.org>,
	Bartosz Golaszewski <brgl@kernel.org>,
	Jonathan Corbet <corbet@lwn.net>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Bjorn Andersson <andersson@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Frank Li <frank.li@nxp.com>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Shuah Khan <skhan@linuxfoundation.org>,
	"linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>, Peng Fan <peng.fan@nxp.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-remoteproc@vger.kernel.org"
	<linux-remoteproc@vger.kernel.org>,
	"imx@lists.linux.dev" <imx@lists.linux.dev>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	dl-linux-imx <linux-imx@nxp.com>,
	Bartosz Golaszewski <brgl@bgdev.pl>
Subject: Re: [PATCH v8 3/4] gpio: rpmsg: add generic rpmsg GPIO driver
Date: Tue, 24 Feb 2026 19:18:23 +0100	[thread overview]
Message-ID: <91701822-df30-4feb-9e9a-4ee82e2a5d23@lunn.ch> (raw)
In-Reply-To: <PAXPR04MB9185F1A67384E4886282227A8974A@PAXPR04MB9185.eurprd04.prod.outlook.com>

> I don’t think we can remove port_idx if the protocol is expected to support multiple 
> instances. If you only ever support a single instance, then sure, it becomes redundant—but 
> imposing a single‑instance limitation on a generic protocol doesn’t seem appropriate.

The DT binding example is:

+      rpmsg {
+        rpmsg-io-channel {
+          #address-cells = <1>;
+          #size-cells = <0>;
+
+          gpio@0 {
+            compatible = "rpmsg-gpio";
+            reg = <0>;
+            gpio-controller;
+            #gpio-cells = <2>;
+            #interrupt-cells = <2>;
+            interrupt-controller;
+          };
+
+          gpio@1 {
+            compatible = "rpmsg-gpio";
+            reg = <1>;
+            gpio-controller;
+            #gpio-cells = <2>;
+            #interrupt-cells = <2>;
+            interrupt-controller;
+          };
+        };
+      };

Doesn't this instantiates the driver twice, once on channel 0 and once
on channel 1?

How does port_idx fit into this?

> Regarding type, it’s needed, especially for the in packets. There are two distinct kinds of incoming 
> packets: notification‑in and reply‑in. Because of that differences, Combining cmd and type would 
> blur that distinction and complicate the implementation.

> > #define GPIO_RPMSG_CMD_DIR_INPUT        1
> > #define GPIO_RPMSG_CMD_DIR_OUTPUT       2
> > #define GPIO_RPMSG_CMD_GET_DIR          3
> > #define GPIO_RPMSG_CMD_GET              4
> > #define GPIO_RPMSG_CMD_SET              5

These are all simple RPCs. You make a request, your get a reply, using
the same CMD. I don't see how you can make any mixup here.

> > These map onto the gpio_chip ops. And i leave space for the _multiple ops if they
> > are needed in the future.
> > 
> > #define GPIO_PRMSG_CMD_INTR_CONFIG      32
> > #define GPIO_PRMSG_CMD_INTR_EVENT       33

GPIO_PRMSG_CMD_INTR_CONFIG is again just a plain RPC, request of
"please configure the interrupt handling like this", replay of
"yes, done".

GPIO_PRMSG_CMD_INTR_EVENT is more interesting. The other end can
spontaneously send this, indicating an interrupt. Once Linux has
handled the interrupt, especially level interrupts, it needs to be
acknowledged. So it sends back an GPIO_PRMSG_CMD_INTR_EVENT. It could
be considered an RPC in the opposite direction, but i think that would
be wrong. I expect there are multiple overlapping
GPIO_PRMSG_CMD_INTR_EVENT flying around, so you cannot enforce a
strict RPC style communication.

What is blurry or complicated here?

       Andrew

  reply	other threads:[~2026-02-24 18:18 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-12 21:36 [PATCH v8 0/4] Enable Remote GPIO over RPMSG on i.MX Platform Shenwei Wang
2026-02-12 21:36 ` [PATCH v8 1/4] docs: driver-api: gpio: rpmsg gpio driver over rpmsg bus Shenwei Wang
2026-02-12 21:36 ` [PATCH v8 2/4] dt-bindings: remoteproc: imx_rproc: Add "rpmsg" subnode support Shenwei Wang
2026-02-12 21:36 ` [PATCH v8 3/4] gpio: rpmsg: add generic rpmsg GPIO driver Shenwei Wang
2026-02-18 10:20   ` Bartosz Golaszewski
2026-02-18 16:28     ` Shenwei Wang
2026-02-19  9:20   ` Arnaud POULIQUEN
2026-02-19 13:26     ` Andrew Lunn
2026-02-19 14:17       ` Shenwei Wang
2026-02-19 15:25         ` Andrew Lunn
2026-02-19 16:42           ` Shenwei Wang
2026-02-19 13:42     ` Andrew Lunn
2026-02-20  9:16       ` Arnaud POULIQUEN
2026-02-20 13:48         ` Andrew Lunn
2026-02-20 16:36           ` Shenwei Wang
2026-02-20 17:45             ` Andrew Lunn
2026-02-20 18:57               ` Shenwei Wang
2026-02-20 20:21                 ` Mathieu Poirier
2026-02-20 20:59                 ` Andrew Lunn
2026-02-22 14:48                 ` Linus Walleij
2026-02-23 14:24                   ` Arnaud POULIQUEN
2026-02-23 14:42                     ` Bjorn Andersson
2026-02-24 15:56                       ` Shenwei Wang
2026-02-24 16:04                         ` Daniel Baluta
2026-02-24 16:56                           ` Shenwei Wang
2026-02-24 18:09                         ` Mathieu Poirier
2026-02-24 20:16                           ` Shenwei Wang
2026-02-24 20:41                             ` Mathieu Poirier
2026-02-24 21:12                               ` Shenwei Wang
2026-02-24 22:14                                 ` Andrew Lunn
2026-02-24 22:43                                   ` Shenwei Wang
2026-02-25 15:52                                     ` Bjorn Andersson
2026-02-25 17:54                                       ` Shenwei Wang
2026-02-25 19:43                                         ` Bjorn Andersson
2026-02-25 20:31                                           ` Shenwei Wang
2026-02-25 21:02                                             ` Bjorn Andersson
2026-02-27  0:00                                               ` Linus Walleij
2026-02-23 20:33                     ` Shenwei Wang
2026-02-24  8:46                       ` Arnaud POULIQUEN
2026-02-24 16:05                         ` Shenwei Wang
2026-02-24 17:31                           ` Andrew Lunn
2026-02-24 17:54                             ` Shenwei Wang
2026-02-24 18:18                               ` Andrew Lunn [this message]
2026-02-24 19:51                                 ` Shenwei Wang
2026-02-24 21:01                                   ` Andrew Lunn
2026-02-24 21:18                                     ` [EXT] " Shenwei Wang
2026-02-24 22:22                                       ` Andrew Lunn
2026-02-24 22:31                                         ` Shenwei Wang
2026-02-24 22:47                                           ` Mathieu Poirier
2026-02-25 15:18                                             ` Shenwei Wang
2026-02-24 18:26                               ` Andrew Lunn
2026-02-24 20:33                                 ` Shenwei Wang
2026-02-24  9:37                       ` Linus Walleij
2026-02-19 20:04     ` Shenwei Wang
2026-02-19 20:50       ` Andrew Lunn
2026-02-19 21:12         ` Shenwei Wang
2026-02-20  9:12       ` Arnaud POULIQUEN
2026-02-20 15:47         ` Shenwei Wang
2026-02-20 16:19           ` Andrew Lunn
2026-02-20 17:09             ` Shenwei Wang
2026-02-20 17:42               ` Andrew Lunn
2026-02-20 19:09                 ` Shenwei Wang
2026-02-20 20:41                   ` Andrew Lunn
2026-02-19 21:13     ` Shenwei Wang
2026-02-20  9:32       ` Arnaud POULIQUEN
2026-02-20 15:12         ` Shenwei Wang
2026-02-12 21:36 ` [PATCH v8 4/4] arm64: dts: imx8ulp: Add rpmsg node under imx_rproc Shenwei Wang
2026-02-20  9:18 ` [PATCH v8 0/4] Enable Remote GPIO over RPMSG on i.MX Platform Daniel Baluta
2026-02-20 15:24   ` Shenwei Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=91701822-df30-4feb-9e9a-4ee82e2a5d23@lunn.ch \
    --to=andrew@lunn.ch \
    --cc=andersson@kernel.org \
    --cc=arnaud.pouliquen@foss.st.com \
    --cc=brgl@bgdev.pl \
    --cc=brgl@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=corbet@lwn.net \
    --cc=devicetree@vger.kernel.org \
    --cc=festevam@gmail.com \
    --cc=frank.li@nxp.com \
    --cc=imx@lists.linux.dev \
    --cc=kernel@pengutronix.de \
    --cc=krzk+dt@kernel.org \
    --cc=linusw@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=mathieu.poirier@linaro.org \
    --cc=peng.fan@nxp.com \
    --cc=robh@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shenwei.wang@nxp.com \
    --cc=skhan@linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®