Message ID | 7538d5806003b8f67e7e0d35638315974b7c2b50.1547559542.git.baolin.wang@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/4] spi: sprd: Fix the error data length in SPI read-only mode | expand |
On Tue, Jan 15, 2019 at 7:47 AM Baolin Wang <baolin.wang@linaro.org> wrote: > > From: Lanqing Liu <lanqing.liu@spreadtrum.com> The email address should be updated with unisoc.com. > Add the DMA properties for the SPI dma mode. > > Signed-off-by: Lanqing Liu <lanqing.liu@spreadtrum.com> > Signed-off-by: Baolin Wang <baolin.wang@linaro.org> > --- > 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'? > #address-cells = <1>; > #size-cells = <0>; > }; > -- > 1.7.9.5 >
On Mon, 21 Jan 2019 at 21:53, Rob Herring <robh+dt@kernel.org> wrote: > > On Tue, Jan 15, 2019 at 7:47 AM Baolin Wang <baolin.wang@linaro.org> wrote: > > > > From: Lanqing Liu <lanqing.liu@spreadtrum.com> > > 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@spreadtrum.com> > > Signed-off-by: Baolin Wang <baolin.wang@linaro.org> > > --- > > 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.
Hi Baolin, On Tue, Jan 22, 2019 at 3:23 AM Baolin Wang <baolin.wang@linaro.org> wrote: > On Mon, 21 Jan 2019 at 21:53, Rob Herring <robh+dt@kernel.org> wrote: > > On Tue, Jan 15, 2019 at 7:47 AM Baolin Wang <baolin.wang@linaro.org> wrote: > > > From: Lanqing Liu <lanqing.liu@spreadtrum.com> > > > > 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@spreadtrum.com> > > > Signed-off-by: Baolin Wang <baolin.wang@linaro.org> > > > --- > > > 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? Gr{oetje,eeting}s, Geert
Hi Geert, On Tue, 22 Jan 2019 at 16:11, Geert Uytterhoeven <geert@linux-m68k.org> wrote: > > Hi Baolin, > > On Tue, Jan 22, 2019 at 3:23 AM Baolin Wang <baolin.wang@linaro.org> wrote: > > On Mon, 21 Jan 2019 at 21:53, Rob Herring <robh+dt@kernel.org> wrote: > > > On Tue, Jan 15, 2019 at 7:47 AM Baolin Wang <baolin.wang@linaro.org> wrote: > > > > From: Lanqing Liu <lanqing.liu@spreadtrum.com> > > > > > > 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@spreadtrum.com> > > > > Signed-off-by: Baolin Wang <baolin.wang@linaro.org> > > > > --- > > > > 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.
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>; #address-cells = <1>; #size-cells = <0>; };