[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