devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Heiko Stübner" <heiko@sntech.de>
To: Doug Anderson <dianders@chromium.org>
Cc: "devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Mike Turquette <mturquette@linaro.org>,
	Kever Yang <kever.yang@rock-chips.com>,
	arm@kernel.org, Eddie Cai <cf@rock-chips.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 3/4] ARM: dts: rockchip: add rk3288 dma controllers
Date: Mon, 11 Aug 2014 20:01:41 +0200	[thread overview]
Message-ID: <1560376.L4H27Lgx9N@diego> (raw)
In-Reply-To: <CAD=FV=VWBh3STfZWLDuYerS9wiceQL=UEJyjqp0-GLh0=-hTdw@mail.gmail.com>

Am Montag, 11. August 2014, 10:01:08 schrieb Doug Anderson:
> Heiko,
> 
> On Tue, Jul 29, 2014 at 12:12 PM, Heiko Stuebner <heiko@sntech.de> wrote:
> > Add both the bus and peripheral pl330 dma controllers present in rk3288
> > socs. The first dma controller can change between secure and non-secure
> > mode and is left by the bootloader in secure mode, which gets added here.
> > 
> > Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> > ---
> > 
> >  arch/arm/boot/dts/rk3288.dtsi | 27 +++++++++++++++++++++++++++
> >  1 file changed, 27 insertions(+)
> 
> This is outside of my area of expertise, but comparing this to
> bindings, TRM, and other platforms it looks reasonable to me.
> 
> > diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
> > index 3ef8951..3f39d26 100644
> > --- a/arch/arm/boot/dts/rk3288.dtsi
> > +++ b/arch/arm/boot/dts/rk3288.dtsi
> > @@ -62,6 +62,33 @@
> > 
> >                 };
> >         
> >         };
> > 
> > +       amba {
> > +               compatible = "arm,amba-bus";
> > +               #address-cells = <1>;
> > +               #size-cells = <1>;
> > +               ranges;
> > +
> > +               dmac1: dma@ffb20000 {
> 
> I'm curious: why did you choose "dmac1" for the alias here?  I would
> have called it "dmac_peri", "pdma", or something similar as per the
> address map in the TRM.  I found a single reference in the TRM to
> "dmac2" but it wasn't immediately clear to me which DMA that was
> referring to.  In a commit in a temporary tree I see that someone at
> Rockchip called the DMA at ff250000 "pdma1".

I think I just kept the alias similar to the clock-name. The naming of the 
dma-controllers seems to be inconsistent ... the clocks are named dmac1 and 
dmac2, while the interrupt table in the rk3188-TRM calls them dmac0 and dmac1. 
So I guess I just duplicated the naming for the rk3288.

I guess for the rk3288, the one at 0xffb20000 should be named something like 
dmac_bus and the other one dmac_peri, reflecting what they're called in the 
TRM, but I'm of course open for suggestions :-) .


Also for an upcoming v2, I've also changed the structure a bit, as the first 
dma-controller has both a secure and non-secure version of it.
So currently the rk3288.dtsi looks like [0]:

	amba {
		compatible = "arm,amba-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		/* dma1 in secure state */
		dma-controller@ffb20000 {
			compatible = "arm,pl330", "arm,primecell";
			reg = <0xffb20000 0x4000>;
			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
			#dma-cells = <1>;
			clocks = <&cru ACLK_DMAC1>;
			clock-names = "apb_pclk";
			status = "disabled";
		};

		/* dma1 in non-secure state */
		dma-controller@ffb60000 {
			compatible = "arm,pl330", "arm,primecell";
			reg = <0xffb60000 0x4000>;
			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
			#dma-cells = <1>;
			clocks = <&cru ACLK_DMAC1>;
			clock-names = "apb_pclk";
			status = "disabled";
		};

		dmac2: dma-controller@ff250000 {
			compatible = "arm,pl330", "arm,primecell";
			reg = <0xff250000 0x4000>;
			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
			#dma-cells = <1>;
			clocks = <&cru ACLK_DMAC2>;
			clock-names = "apb_pclk";
		};
	};

and the board is responsible for enabling the correct variant [1], as most 
likely the bootloader decides in which mode to start the dma controller:

	amba {
		/* dma1 in secure state */
		dmac1: dma-controller@ffb20000 {
			status = "okay";
		};
	};

This is based on some mailinglist discussion, I found at some point, about 
this but for the life of me am not able to find anymore. So of course feedback 
would appreciated there too.



[0] https://github.com/mmind/linux-rockchip/blob/devel/workbench/arch/arm/boot/dts/rk3288.dtsi
[1] https://github.com/mmind/linux-rockchip/blob/devel/workbench/arch/arm/boot/dts/rk3288-evb.dtsi

> 
> > +                       compatible = "arm,pl330", "arm,primecell";
> > +                       reg = <0xffb20000 0x4000>;
> > +                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
> > +                                    <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
> > +                       #dma-cells = <1>;
> > +                       clocks = <&cru ACLK_DMAC1>;
> > +                       clock-names = "apb_pclk";
> > +               };
> > +
> > +               dmac2: dma@ff250000 {
> 
> nit: when we have easy addresses to compare to, we should probably
> sort by address?

correct :-)

> 
> > +                       compatible = "arm,pl330", "arm,primecell";
> > +                       reg = <0xff250000 0x4000>;
> > +                       interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
> > +                                    <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
> > +                       #dma-cells = <1>;
> > +                       clocks = <&cru ACLK_DMAC2>;
> > +                       clock-names = "apb_pclk";
> > +               };
> > +       };
> > +
> > 
> >         xin24m: oscillator {
> >         
> >                 compatible = "fixed-clock";
> >                 clock-frequency = <24000000>;
> > 
> > --
> > 2.0.1

  reply	other threads:[~2014-08-11 18:01 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-29 19:12 [PATCH 0/4] ARM: rockchip: add dma support Heiko Stuebner
     [not found] ` <1406661128-7614-1-git-send-email-heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>
2014-07-29 19:12   ` [PATCH 1/4] clk: rockchip: protect critical clocks from getting disabled Heiko Stuebner
     [not found]     ` <1406661128-7614-2-git-send-email-heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>
2014-07-31 22:45       ` Mike Turquette
2014-07-31 23:29         ` Heiko Stübner
2014-08-01  0:30           ` Mike Turquette
2014-08-01  8:15             ` Heiko Stübner
2014-08-08 21:58               ` Doug Anderson
     [not found]                 ` <CAD=FV=XA31T9i6nLaDhVS+BkJ=U-PiMye_ouC1QY8EMoKqMCiQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-08-08 22:20                   ` Heiko Stübner
2014-08-11 10:03                     ` Kever Yang
     [not found]                       ` <53E894F5.4060205-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2014-08-11 10:22                         ` Heiko Stübner
2014-08-12  0:59       ` Kever Yang
2014-07-29 19:12   ` [PATCH 2/4] ARM: rockchip: enable the AMBA bus Heiko Stuebner
     [not found]     ` <1406661128-7614-3-git-send-email-heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>
2014-08-11  3:35       ` Kever Yang
     [not found]         ` <53E839F3.7040208-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2014-08-11  7:50           ` Heiko Stübner
2014-08-11 16:19       ` Doug Anderson
2014-08-12  1:00       ` Kever Yang
2014-07-29 19:12   ` [PATCH 3/4] ARM: dts: rockchip: add rk3288 dma controllers Heiko Stuebner
     [not found]     ` <1406661128-7614-4-git-send-email-heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>
2014-08-11 17:01       ` Doug Anderson
2014-08-11 18:01         ` Heiko Stübner [this message]
2014-08-11 18:37           ` Andreas Färber
     [not found]             ` <53E90D69.6000307-l3A5Bk7waGM@public.gmane.org>
2014-08-11 19:15               ` Heiko Stübner
2014-08-12  1:01       ` Kever Yang
2014-07-29 19:12   ` [PATCH 4/4] ARM: dts: rockchip: add rk3188 " Heiko Stuebner
     [not found]     ` <1406661128-7614-5-git-send-email-heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>
2014-07-29 19:55       ` Sergei Shtylyov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1560376.L4H27Lgx9N@diego \
    --to=heiko@sntech.de \
    --cc=arm@kernel.org \
    --cc=cf@rock-chips.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dianders@chromium.org \
    --cc=kever.yang@rock-chips.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=mturquette@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).