[PATCH 1/4] dt-bindings: remoteproc: imx_rproc: Add "rpmsg" subnode support

Shenwei Wang shenwei.wang at nxp.com
Sat Aug 30 10:44:08 PDT 2025



> -----Original Message-----
> From: Rob Herring <robh at kernel.org>
> Sent: Friday, August 29, 2025 10:07 AM
> To: Shenwei Wang <shenwei.wang at nxp.com>
> Cc: Bjorn Andersson <andersson at kernel.org>; Mathieu Poirier
> <mathieu.poirier at linaro.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>; Linus Walleij <linus.walleij at linaro.org>;
> 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 1/4] dt-bindings: remoteproc: imx_rproc: Add "rpmsg"
> subnode support
> > > >
> > > > All remote devices associated with a given channel are defined as
> > > > child nodes under the corresponding channel node.
> > >
> > > How is each channel addressed? Are they really grouped by type first
> > > (i2c, gpio,
> > > etc.) then an address within the group? Or is there some flat channel
> numbering?
> > > If the latter, then the addresses in the DT shoulc match the channel number.
> > >
> >
> > Yes, the channels are grouped by type and identified by unique channel
> > names assigned by the remote processor.
> >
> > The RPMSG bus dynamically assigns addresses to each channel at
> > runtime. Because these addresses are not static, they cannot be pre-defined in
> the dts.
> 
> But you did define addresses. How do you know which channel 'gpio at 1'
> corresponds to if RPMSG dynamically assigns addresses?
> 

The remote devices within the rpmsg channels use pre-defined addresses specified in 
the DTS. For example, the gpio at 0 and gpio at 1 nodes represent devices inside the 
rpmsg-io-channel, each assigned a unique address within that channel.

The rpmsg-io-channel itself does not have a fixed address, as its address is dynamically 
allocated by the RPMSG bus. Therefore, we only use the unique channel name here.

            rpmsg {
                     rpmsg-io-channel {
                             gpio at 0 {
                                     compatible = "fsl,imx-rpmsg-gpio";
                                     reg = <0>;
                             };

                             gpio at 1 {
                                     compatible = "fsl,imx-rpmsg-gpio";
                                     reg = <1>;
                             };

                             ...
                     };
                     ...
             };

Thanks,
Shenwei

> Rob



More information about the linux-arm-kernel mailing list