On Thu, Dec 19, 2024 at 4:51 AM Tudor Ambarus <tudor.ambarus@xxxxxxxxxx> wrote: > > Hi, Krzysztof, Jassi, > > On 12/17/24 9:40 AM, Tudor Ambarus wrote: > > > diff --git a/Documentation/devicetree/bindings/mailbox/google,gs101-mbox.yaml b/Documentation/devicetree/bindings/mailbox/google,gs101-mbox.yaml > > cut > > > + > > + '#mbox-cells': > > + description: | > > + <&phandle type channel> > > + phandle : label name of controller. > > + type : channel type, doorbell or data-transfer. > > + channel : channel number. > > + > > + Here is how a client can reference them: > > + mboxes = <&ap2apm_mailbox DOORBELL 2>; > > + mboxes = <&ap2apm_mailbox DATA 3>; > > + const: 2 > > + > > Revisiting this, I think that for the ACPM interface mailbox client use > case, it would be better to introduce a mbox property where I reference > just the phandle to the controller: > mbox = <&ap2apm_mailbox>; > > The ACPM interface discovers the mailbox channel IDs at runtime by > parsing SRAM. And all ACPM's channels are of type DOORBELL, thus > specifying the type and channel in DT is redundant. > > It would require to extend a bit the mailbox core to provide a > mbox_request_channel_by_args() method. I already wrote a draft and > tested it. > > Do you find the idea fine? > Looking at v6, I prefer this version... maybe modify it a bit. Even if you get the channel number at runtime, the type (Data vs Doorbell) is static and needs to be passed via DT. You may have mbox = <&ap2apm_mailbox DOORBELL>; and in your custom of_xlate implementation return any available "virtual" channel. You could use 'void *data' in exynos_mbox_send_data() to pass the h/w channel-id, instead of the index of the virtual channel. Thanks.