RE: [EXT] Re: [PATCH] arm64: dts: ls1028a: put SAIs into async mode
From: Alison Wang
Date: Tue Dec 10 2019 - 04:13:29 EST
Hi, Michael,
> Caution: EXT Email
>
> Hi Alison,
>
> Am 2019-12-10 06:35, schrieb Alison Wang:
> > Hi, Michael,
> >
> > In most of our cases, TX and RX are using the same BCLK and SYNC
> > clocks. So the default synchronous mode (sync Rx with Tx) is used,
> > which means both transmitter and receiver will send and receive data
> > by following clocks of transmitter. It is verified on our boards.
>
>
> I get that, but it doesn't make sense for the LS1028A SoC because, there is no
> way you have have the TX data and the RX clocks or vice versa. The hardware
> of the SoC doesn't allow that. I cannot speak of the QDS variant of the SoC, but
> the LS1028ARDB only has a transmitter. So there is no problem, because it will
> default to the TX clock. But as soon as you also have a receiver you have to use
> the clock of the receiver block. You could say, use fsl,sai-synchronous-rx, but
> that will only work if the SAI is used in RX mode. fsl,sai-asynchronous mode
> works for both on the other hand and can therefore be the default mode.
>
> -michael
[Alison] Your explanation is reasonable. LS1028A SoC is a specific one. Using fsl,sai-asynchronous
mode is the preferred choice.
Acked-by: Alison Wang <alison.wang@xxxxxxx>
Best Regards,
Alison Wang
>
>
> >
> >
> > Best Regards,
> > Alison Wang
> >
> >> -----Original Message-----
> >> From: Shawn Guo <shawnguo@xxxxxxxxxx>
> >> Sent: Monday, December 9, 2019 5:09 PM
> >> To: Michael Walle <michael@xxxxxxxx>; Alison Wang
> >> <alison.wang@xxxxxxx>
> >> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx;
> >> linux-kernel@xxxxxxxxxxxxxxx; Leo Li <leoyang.li@xxxxxxx>; Rob
> >> Herring <robh+dt@xxxxxxxxxx>; Mark Rutland <mark.rutland@xxxxxxx>
> >> Subject: [EXT] Re: [PATCH] arm64: dts: ls1028a: put SAIs into async
> >> mode
> >>
> >> Caution: EXT Email
> >>
> >> + Alison Wang
> >>
> >> On Fri, Nov 29, 2019 at 10:09:37PM +0100, Michael Walle wrote:
> >> > The LS1028A SoC has only unidirectional SAIs. Therefore, it doesn't
> >> > make sense to have the RX and TX part synchronous. Even worse, the
> >> > RX part wont work out of the box because by default it is
> >> > configured as synchronous to the TX part. And as said before, the
> >> > pinmux of the SoC can only be configured to route either the RX or
> >> > the TX signals to the SAI but never both at the same time. Thus
> >> > configure the asynchronous mode by default.
> >> >
> >> > Signed-off-by: Michael Walle <michael@xxxxxxxx>
> >>
> >> Alison, Leo,
> >>
> >> Looks good to you?
> >>
> >> Shawn
> >>
> >> > ---
> >> > arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 6 ++++++
> >> > 1 file changed, 6 insertions(+)
> >> >
> >> > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
> >> > b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
> >> > index 379913756e90..9be33426e5ce 100644
> >> > --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
> >> > +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
> >> > @@ -637,6 +637,7 @@
> >> > dma-names = "tx", "rx";
> >> > dmas = <&edma0 1 4>,
> >> > <&edma0 1 3>;
> >> > + fsl,sai-asynchronous;
> >> > status = "disabled";
> >> > };
> >> >
> >> > @@ -651,6 +652,7 @@
> >> > dma-names = "tx", "rx";
> >> > dmas = <&edma0 1 6>,
> >> > <&edma0 1 5>;
> >> > + fsl,sai-asynchronous;
> >> > status = "disabled";
> >> > };
> >> >
> >> > @@ -665,6 +667,7 @@
> >> > dma-names = "tx", "rx";
> >> > dmas = <&edma0 1 8>,
> >> > <&edma0 1 7>;
> >> > + fsl,sai-asynchronous;
> >> > status = "disabled";
> >> > };
> >> >
> >> > @@ -679,6 +682,7 @@
> >> > dma-names = "tx", "rx";
> >> > dmas = <&edma0 1 10>,
> >> > <&edma0 1 9>;
> >> > + fsl,sai-asynchronous;
> >> > status = "disabled";
> >> > };
> >> >
> >> > @@ -693,6 +697,7 @@
> >> > dma-names = "tx", "rx";
> >> > dmas = <&edma0 1 12>,
> >> > <&edma0 1 11>;
> >> > + fsl,sai-asynchronous;
> >> > status = "disabled";
> >> > };
> >> >
> >> > @@ -707,6 +712,7 @@
> >> > dma-names = "tx", "rx";
> >> > dmas = <&edma0 1 14>,
> >> > <&edma0 1 13>;
> >> > + fsl,sai-asynchronous;
> >> > status = "disabled";
> >> > };
> >> >
> >> > --
> >> > 2.20.1
> >> >