From: Rob Herring <robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Cc: "Grant Likely
(grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org)"
<grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>,
"devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org"
<devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>,
"linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"Mark Brown
(broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org)"
<broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
Subject: Re: DT DMA channel binding for Tegra I2S
Date: Wed, 23 Nov 2011 15:54:44 -0600 [thread overview]
Message-ID: <4ECD6BA4.1010607@gmail.com> (raw)
In-Reply-To: <74CDBE0F657A3D45AFBB94109FB122FF174F08C803-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
On 11/23/2011 03:25 PM, Stephen Warren wrote:
> Rob, Grant,
>
> Re: http://www.spinics.net/lists/arm-kernel/msg148899.html
>
> Background: Tegra's DMA controller needs to be told which DMA "request
> select" to use for each transfer. The identifies which peripheral to
> transfer to/from.
>
> The Tegra I2S driver needs to know its own "request select" value to
> pass to the audio driver DMA path. The board files typically provide
> this to the driver as an IORESOURCE_DMA. I don't think there's any
> standard binding that creates such a resource when instantiating a
> platform device from device tree, and the discussions I found when
> looking for one didn't seem to reach conclusion that there should be
> one. So, I proposed the following property in the I2S driver's DT
> binding for this:
I think this is a case of every platform being different and
IORESOURCE_DMA is not too widely used. Even on PPC, there's not a
standard way.
>
> Doc:
>
> - dma-channel : The Tegra DMA controller's channel ID for this I2S controller
>
> Example:
>
> i2s@70002800 {
> compatible = "nvidia,tegra20-i2s";
> reg = <0x70002800 0x200>;
> interrupts = < 45 >;
> dma-channel = < 2 >;
> };
>
> Does that look reasonable? Or, should I pursue some more standardized
> solution?
I had some discussion with Thomas Abraham about this for the pl330 dma:
http://lists.ozlabs.org/pipermail/devicetree-discuss/2011-September/008269.html
So I would just add a phandle to the dma controller here.
>
> (although perhaps dma-request-select would be a better name, since each
> of the DMA controller's 16 channels can be used for any of the DMA
> selects)
You'll find h/w with all sorts of relationships between requests and
channels on DMA controller h/w...
>
> For reference, the code turns out as below; it might be nicer if the
> DT parsing code could create this resource for us, although there was
> some previous discussion about IORESOURCE_DMA not being the correct
> representation for this anyway.
>
> dmareq = platform_get_resource(pdev, IORESOURCE_DMA, 0);
> if (!dmareq) {
> if (of_property_read_u32(pdev->dev.of_node,
> "nvidia,dma-channel",
> &dma_ch) < 0) {
It would, but I think IORESOURCE_DMA is supposed to be for ISA bus DMA.
Also, I think often you need more information than just a request line
like a mode or type of transfer or burst length parameters.
Rob
next prev parent reply other threads:[~2011-11-23 21:54 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-23 21:25 DT DMA channel binding for Tegra I2S Stephen Warren
[not found] ` <74CDBE0F657A3D45AFBB94109FB122FF174F08C803-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2011-11-23 21:54 ` Rob Herring [this message]
[not found] ` <4ECD6BA4.1010607-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-11-23 23:26 ` Stephen Warren
[not found] ` <74CDBE0F657A3D45AFBB94109FB122FF174F08C881-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2011-11-25 15:55 ` Rob Herring
[not found] ` <CAL_JsqLk=ExaPoy9f3CqEthjZsu7CVmAwcckpk5PyJA-NhMGVA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-11-25 16:09 ` Mark Brown
[not found] ` <20111125160908.GF5315-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2011-11-27 4:07 ` Rob Herring
[not found] ` <4ED1B765.9070107-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-11-27 12:02 ` Mark Brown
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=4ECD6BA4.1010607@gmail.com \
--to=robherring2-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org \
--cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=swarren-DDmLM1+adcrQT0dZR+AlfA@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