Re: [PATCH 2/3] dt-bindings: mailbox: Add Apple mailbox bindings
From: Sven Peter
Date: Wed Sep 08 2021 - 11:36:56 EST
On Tue, Sep 7, 2021, at 22:48, Alyssa Rosenzweig wrote:
> > > > + - description:
> > > > + M3 mailboxes are an older variant with a slightly different MMIO
> > > > + interface still found on the M1.
> > > > + items:
> > > > + - const: apple,t8103-m3-mailbox
> > >
> > > Would be nice to document an example of where an M3 mailbox is found.
> >
> > Sure, I can add a comment that this is used for the coprocessor controlling Thunderbolt.
>
> That raises another issue ... how do we know the M3 code works at all
> without TB support yet? It "looks" correct but some of the IRQ handling
> stuff is nontrivial.
Enabling the mailbox interface just requires a few clocks to be ungated.
Then I injected messages manually to verify that the code works.
In addition I also brought up parts of the Thunderbolt controller which
then allowed the co-processor on the other end of the mailbox to boot.
After that I was also able to successfully talk to that processor using
the same protocol used by most other processors.
>
> > > > + interrupts:
> > > > + minItems: 4
> > > > + items:
> > > > + - description: send fifo is empty interrupt
> > > > + - description: send fifo is not empty interrupt
> > > > + - description: receive fifo is empty interrupt
> > > > + - description: receive fifo is not empty interrupt
> > > > +
> > > > + interrupt-names:
> > > > + minItems: 4
> > > > + items:
> > > > + - const: send-empty
> > > > + - const: send-not-empty
> > > > + - const: recv-empty
> > > > + - const: recv-not-empty
> > >
> > > If the names became not-constant the asprintf thing goes away, not sure
> > > that's better or worse.
> >
> > I'm not sure I understand your comment here. This property just gives a name
> > to the interrupts so that they can be referenced by that instead of a magic
> > number between 0 and 4 in the driver.
>
> D'oh, right, retracted. (Both this comment and the corresponding comment
> on the driver itself). Sorry about that.
>
> > > > + clocks:
> > > > + description:
> > > > + Reference to the clock gate phandle(s) if required for this mailbox.
> > > > + Optional since not all mailboxes are attached to a clock gate.
> > >
> > > Do we do anything with the clocks at this point?
> > >
> >
> > The device tree bindings describe the hardware (as best as we can without proper
> > documentation) and some of these mailboxes have clock gates which need to be turned
> > on before accessing their MMIO. This driver already tries to do that and works fine
> > with the downstream clock driver(s) we have.
>
> Good enough for me, thanks for clarifying 👍
>
> Commit r-b, though Rob will surely point out problems and I'll need to
> rereview 😉
>
Thanks!
Sven