[PATCH v2 3/4] dt-bindings: mailbox: goog-mba: Add goog-mba mailbox bindings
Krzysztof Kozlowski
krzk at kernel.org
Fri Oct 30 03:48:42 PDT 2026
On Fri, Oct 23, 2026 at 04:52:20PM -0700, Douglas Anderson wrote:
> +properties:
> + compatible:
> + const: google,lga-mailbox-array
> +
> + reg:
> + minItems: 1
> + items:
> + - description: Host registers (not accessible to client)
> + - description: Global registers (not present on newer IP blocks)
That's still confusing. Last time you said:
1. You identified 4x instances of MBA
2. Each of the instance has global registers (quotting: "Each of these 4
MBA instances has its own "global" registers."), then why does the
binding say otherwise?
You repeat here again "newer IP blocks" so how many versions does your SoC have?
> +
> + ranges: true
> +
> + "#address-cells":
> + const: 1
> +
> + "#size-cells":
> + const: 1
> +
> +patternProperties:
> + "^mailbox@[0-9a-f]+$":
> + type: object
> + description:
> + Each sub-node is a single-channel mailbox.
> +
> + properties:
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + "#mbox-cells":
> + const: 0
> +
> + google,rx-payload-words:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + maximum: 256
> + default: 0
> + description:
> + The number of 32-bit words in each mailbox message from the remote
> + processor. May be 0 for doorbell-only. If not specified this is
> + assumed to be 0.
> +
> + google,tx-payload-words:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + maximum: 256
> + default: 0
> + description:
> + For queue-mode only, the number of 32-bit words in each message we
> + send to the remote processor. If not specified, this is assumed to
> + be 0. This is only for queue mode where we need to divide up the
> + message buffer into chunks.
> +
> + google,mba-queue-mode:
> + type: boolean
> + description:
> + The remote processor is expecting the shared memory to be treated
> + as a circular queue and that there may be several outstanding
> + messages at once. Only usable on instances with counted doorbell
> + interrupts.
> +
> + dependencies:
> + google,tx-payload-words: ['google,mba-queue-mode']
> +
> + required:
> + - reg
> + - interrupts
> + - "#mbox-cells"
> +
> + additionalProperties: false
> +
> +required:
> + - compatible
> + - ranges
> + - reg
> + - "#address-cells"
> + - "#size-cells"
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + #include <dt-bindings/interrupt-controller/irq.h>
> +
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + mailbox-array at 5240000 {
> + compatible = "google,lga-mailbox-array";
> + reg = <0x0 0x05240000 0x0 0x00010000>,
> + <0x0 0x05250000 0x0 0x00010000>;
> + ranges = <0x0 0x0 0x05260000 0x00020000>;
> +
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + mailbox at 0 {
> + reg = <0x0000 0x1000>;
> + interrupts = <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH 0>;
> +
> + #mbox-cells = <0>;
> +
> + google,tx-payload-words = <4>;
> + google,mba-queue-mode;
> + };
> +
> + mailbox at 1000 {
> + reg = <0x1000 0x1000>;
> + interrupts = <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH 0>;
> +
Please make the example complete. Last time you wrote:
"If we tried to represent the mailbox array as a single mailbox with a
bunch of channels, each instance would have a different number of
"reg" entries and a different number of interrupts."
and I do not see that. I see each instance having exactly one reg entry,
exactly one interrupt with difference in RX and TX.
The DTS here:
https://lore.kernel.org/all/20261026144346.1.Iaf8214205f496225013f482f6e0035e89ac624f2@changeid/
has the same.
Best regards,
Krzysztof
More information about the linux-arm-kernel
mailing list