Re: [PATCH v5 1/3] dt-bindings: mailbox: add google,gs101-mbox
From: Jassi Brar <jassisinghbrar@gmail.com>
Date: 2024-12-21 02:19:25
Also in:
linux-devicetree, linux-samsung-soc, lkml
On Thu, Dec 19, 2024 at 4:51 AM Tudor Ambarus [off-list ref] wrote:
Hi, Krzysztof, Jassi, On 12/17/24 9:40 AM, Tudor Ambarus wrote:quoted
diff --git a/Documentation/devicetree/bindings/mailbox/google,gs101-mbox.yaml b/Documentation/devicetree/bindings/mailbox/google,gs101-mbox.yamlcutquoted
+ + '#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.