public inbox for linux-tegra@vger.kernel.org
 help / color / mirror / Atom feed
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

  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