> -----Original Message-----
> From: Rob Herring <[email protected]>
> Sent: Friday, August 29, 2025 10:07 AM
> To: Shenwei Wang <[email protected]>
> Cc: Bjorn Andersson <[email protected]>; Mathieu Poirier
> <[email protected]>; Krzysztof Kozlowski <[email protected]>; Conor
> Dooley <[email protected]>; Shawn Guo <[email protected]>; Sascha
> Hauer <[email protected]>; Linus Walleij <[email protected]>;
> Bartosz Golaszewski <[email protected]>; Pengutronix Kernel Team
> <[email protected]>; Fabio Estevam <[email protected]>; Peng Fan
> <[email protected]>; [email protected];
> [email protected]; [email protected]; linux-arm-
> [email protected]; [email protected]; dl-linux-imx <linux-
> [email protected]>
> 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@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@0 and gpio@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@0 {
                                     compatible = "fsl,imx-rpmsg-gpio";
                                     reg = <0>;
                             };

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

                             ...
                     };
                     ...
             };

Thanks,
Shenwei

> Rob

Reply via email to