devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
To: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
Cc: Guo Shawn-R65073 <r65073-KZfg59tc24xl57MIdRCFDg@public.gmane.org>,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	Tabi Timur-B04825
	<B04825-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
Subject: Re: Is there a binding for IORESOURCE_DMA population?
Date: Sun, 17 Jul 2011 22:34:22 -0600	[thread overview]
Message-ID: <20110718043422.GC15023@ponder.secretlab.ca> (raw)
In-Reply-To: <201107161409.46719.arnd-r2nGTMty4D4@public.gmane.org>

On Sat, Jul 16, 2011 at 02:09:46PM +0200, Arnd Bergmann wrote:
> On Saturday 16 July 2011 09:57:49 Shawn Guo wrote:
> > If I understand this correctly, this is something I demonstrated in
> > the initial message.  I do not think we always have individual
> > device_node for each channel (struct dma_chan).  The most common
> > situation is all channels are backed by one device_node (dmaengine).
> > 
> > As I stated in the initial message, (for i.mx sdma example) the
> > problem is 'struct dma_chan' stands for a physical dma channel, while
> > all platform_device has is a virtual channel number (known as sdma
> > event) assigned by hardware.  This virtual channel can only be
> > dynamically mapped to a physical one by sdma driver.  That said there
> > is no way for us to specify a physical channel in device tree.  We can
> > only specify the virtual one there.  (I think this is kinda common,
> > and sdma is just one example.)
> 
> My assumption was that you would create a device_node for each channel
> in the device tree source, but not necessarily have a platform_device
> for each of them.
> 
> > i.mx sdma has 32 physically channels and 48 virtual ones (events).
> > If we go the way you are suggesting, we will have to have 48 nodes
> > under sdma node just for giving event number, and then have
> > dma-channels property of device specifying the phanldles to these
> > event nodes belonging to it.
> > 
> > So we get something like below, which looks silly to me.
> > 
> > sdma@83fb0000 {
> >         #address-cells = <1>;
> >         #size-cells = <0>;
> >         compatible = "fsl,imx51-sdma", "fsl,imx35-sdma";
> >         reg = <0x83fb0000 0x4000>;
> >         interrupts = <6>;
> >         fsl,sdma-ram-script-name = "sdma-imx51.bin";
> > 
> >         dma00: dma-channel@0 {
> >                 compatible = "fsl,sdma-channel";
> >                 reg = <0>;
> >         };
> > 
> >         dma01: dma-channel@1 {
> >                 compatible = "fsl,sdma-channel";
> >                 reg = <1>;
> >         };
> > 
> >         ......
> > 
> >         dma47: dma-channel@47 {
> >                 compatible = "fsl,sdma-channel";
> >                 reg = <47>;
> >         };
> > };
> > 
> > ssi@83fcc000 { /* SSI1 */
> >         compatible = "fsl,imx51-ssi", "fsl,imx1-ssi";
> >         reg = <0x83fcc000 0x4000>;
> >         interrupts = <29>;
> >         fsl,ssi-uses-dma;
> >         dma-channels = <&dma00, &dma01>;
> > };
> > 
> > Did I state the problem clear?  Or am I missing anything?
> 
> Right, this is what I had in mind. I think this is reasonable.
> If you need so many channels, the device tree will be huge already,
> so this doesn't add that much bloat either.
> 
> Another option would be to add a 'dma-parent' property akin to the
> interrupt-parent property and then just refer to the channel
> numbers within the parent dma controller.
> I guess you would prefer something like that in order to keep the
> device tree source more compact, right?

Rather than a dma-parent property, I'd recommend following approach
that the gpio binding uses and have:

	#dma-channel-cells = <n>

...in the dma controller, and...

	dma-channels = <&dma-controller (dma-specifier)>;

...in the dma user.  Then the dma controller binding can specify
how much data is required for a dma-specifier (number of cells), and
what each cell means.

g.

      parent reply	other threads:[~2011-07-18  4:34 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-15 16:32 Is there a binding for IORESOURCE_DMA population? Shawn Guo
     [not found] ` <20110715163254.GG1840-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-07-15 16:45   ` Tabi Timur-B04825
     [not found]     ` <CAOZdJXVeM4Axf=TC4qKNHyqb=iDoDceGr-xjLNpD20WfL2h46Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-07-15 18:11       ` Arnd Bergmann
     [not found]         ` <201107152011.41546.arnd-r2nGTMty4D4@public.gmane.org>
2011-07-15 23:49           ` Grant Likely
2011-07-16  7:57           ` Shawn Guo
     [not found]             ` <20110716075748.GI1840-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-07-16 12:09               ` Arnd Bergmann
     [not found]                 ` <201107161409.46719.arnd-r2nGTMty4D4@public.gmane.org>
2011-07-16 12:55                   ` Tabi Timur-B04825
     [not found]                     ` <4E218A4C.8000603-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-16 14:40                       ` Shawn Guo
     [not found]                         ` <20110716144026.GB2374-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-07-16 14:38                           ` Tabi Timur-B04825
     [not found]                             ` <4E21A252.4060606-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-17  7:18                               ` Shawn Guo
2011-07-16 19:16                           ` Rob Herring
     [not found]                             ` <4E21E398.4060808-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-07-17  7:30                               ` Shawn Guo
2011-07-16 20:18                           ` Tabi Timur-B04825
     [not found]                             ` <4E21F22C.3020804-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-16 20:44                               ` Arnd Bergmann
     [not found]                                 ` <201107162244.47740.arnd-r2nGTMty4D4@public.gmane.org>
2011-07-16 20:54                                   ` Tabi Timur-B04825
     [not found]                                     ` <4E21FA7C.2000602-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-17  7:38                                       ` Shawn Guo
2011-07-16 14:34                   ` Shawn Guo
     [not found]                     ` <20110716143456.GA2374-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-07-16 14:43                       ` Tabi Timur-B04825
     [not found]                         ` <4E21A392.3010608-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-17  7:41                           ` Shawn Guo
     [not found]                             ` <20110717074159.GF2374-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-07-17 13:41                               ` Tabi Timur-B04825
     [not found]                                 ` <4E22E66D.5010809-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-17 14:28                                   ` Shawn Guo
     [not found]                                     ` <20110717142838.GI2374-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-07-17 14:57                                       ` Tabi Timur-B04825
     [not found]                                         ` <4E22F867.5090707-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-17 15:47                                           ` Shawn Guo
     [not found]                                             ` <20110717154730.GK2374-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-07-17 16:04                                               ` Tabi Timur-B04825
     [not found]                                                 ` <4E230802.9030805-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-19 15:16                                                   ` Arnd Bergmann
     [not found]                                                     ` <201107191716.56203.arnd-r2nGTMty4D4@public.gmane.org>
2011-07-20  2:53                                                       ` Shawn Guo
2011-07-17 15:04                                       ` Arnd Bergmann
     [not found]                                         ` <201107171704.17779.arnd-r2nGTMty4D4@public.gmane.org>
2011-07-17 15:41                                           ` Shawn Guo
2011-07-18  4:39                                   ` Grant Likely
     [not found]                                     ` <20110718043940.GD15023-e0URQFbLeQY2iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2011-07-18 11:19                                       ` Tabi Timur-B04825
2011-07-16 15:19                       ` Arnd Bergmann
     [not found]                         ` <201107161719.32543.arnd-r2nGTMty4D4@public.gmane.org>
2011-07-16 15:27                           ` Tabi Timur-B04825
     [not found]                             ` <4E21ADC5.5010205-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-07-16 17:33                               ` Arnd Bergmann
2011-07-17  8:02                               ` Shawn Guo
2011-07-17  7:59                           ` Shawn Guo
2011-07-18  4:34                   ` Grant Likely [this message]

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=20110718043422.GC15023@ponder.secretlab.ca \
    --to=grant.likely-s3s/wqlpoipyb63q8fvjnq@public.gmane.org \
    --cc=B04825-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
    --cc=arnd-r2nGTMty4D4@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=r65073-KZfg59tc24xl57MIdRCFDg@public.gmane.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).