Re: [PATCH 3/4] dt-bindings: spi: Add the DMA properties for the SPI dma mode

From: Baolin Wang
Date: Tue Jan 22 2019 - 03:44:19 EST


Hi Geert,
On Tue, 22 Jan 2019 at 16:11, Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
>
> Hi Baolin,
>
> On Tue, Jan 22, 2019 at 3:23 AM Baolin Wang <baolin.wang@xxxxxxxxxx> wrote:
> > On Mon, 21 Jan 2019 at 21:53, Rob Herring <robh+dt@xxxxxxxxxx> wrote:
> > > On Tue, Jan 15, 2019 at 7:47 AM Baolin Wang <baolin.wang@xxxxxxxxxx> wrote:
> > > > From: Lanqing Liu <lanqing.liu@xxxxxxxxxxxxxx>
> > >
> > > The email address should be updated with unisoc.com.
> >
> > Sure.
> >
> > >
> > > > Add the DMA properties for the SPI dma mode.
> > > >
> > > > Signed-off-by: Lanqing Liu <lanqing.liu@xxxxxxxxxxxxxx>
> > > > Signed-off-by: Baolin Wang <baolin.wang@xxxxxxxxxx>
> > > > ---
> > > > Documentation/devicetree/bindings/spi/spi-sprd.txt | 9 +++++++++
> > > > 1 file changed, 9 insertions(+)
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/spi/spi-sprd.txt b/Documentation/devicetree/bindings/spi/spi-sprd.txt
> > > > index bad211a..01ef53f 100644
> > > > --- a/Documentation/devicetree/bindings/spi/spi-sprd.txt
> > > > +++ b/Documentation/devicetree/bindings/spi/spi-sprd.txt
> > > > @@ -14,6 +14,12 @@ Required properties:
> > > > address on the SPI bus. Should be set to 1.
> > > > - #size-cells: Should be set to 0.
> > > >
> > > > +Optional properties:
> > > > +dma-names: Should contain names of the SPI used DMA channel.
> > > > +dmas: Should contain DMA channels which the SPI used sorted in the
> > > > + same order as the dma-names property.
> > > > +sprd,dma-slave-ids: Should contain the DMA number that the SPI hardware required.
> > > > +
> > > > Example:
> > > > spi0: spi@70a00000{
> > > > compatible = "sprd,sc9860-spi";
> > > > @@ -21,6 +27,9 @@ spi0: spi@70a00000{
> > > > interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
> > > > clock-names = "spi", "source","enable";
> > > > clocks = <&clk_spi0>, <&ext_26m>, <&clk_ap_apb_gates 5>;
> > > > + dma-names = "rx_chn", "tx_chn";
> > > > + dmas = <&apdma 11>, <&apdma 12>;
> > > > + sprd,dma-slave-ids = <11 12>;
> > >
> > > When would this be different values from what's in 'dmas'?
> >
> > Slave id is not always same with the DMA channel number in 'dmas', and
> > it is just coincident for SPI driver. Moreover for different SoC , the
> > slave ids for DMA engine consumers are not same. So we need one
> > property to specify the slave id for the consumers to trigger DMA
> > transfer.
>
> Perhaps the DMA controller should use #dma-cells = <2>, so you can specify
> the second value in the dmas property?

Yes, that's a good point. I will try to change our DMA driver. Thanks.

--
Baolin Wang
Best Regards