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.
prev 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).