RE: [EXT] Re: [PATCH] arm64: dts: ls1028a: put SAIs into async mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
> >> >




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux