linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: b-cousson@ti.com (Cousson, Benoit)
To: linux-arm-kernel@lists.infradead.org
Subject: How to handle named resources with DT?
Date: Tue, 9 Aug 2011 19:47:20 +0200	[thread overview]
Message-ID: <4E4172A8.3030101@ti.com> (raw)
In-Reply-To: <CACxGe6tbEW1EZhqXy78EZVM_sQLH0Qbr7QOzbgbsKBRn1FtVrg@mail.gmail.com>

On 8/9/2011 7:23 PM, Grant Likely wrote:
> On Tue, Aug 9, 2011 at 10:57 AM, Cousson, Benoit<b-cousson@ti.com>  wrote:
>> Hi Manju,
>>
>> On 8/9/2011 6:29 PM, G, Manjunath Kondaiah wrote:
>>>
>>> Hi Benoit,
>>>
>>> On Tue, Aug 09, 2011 at 11:23:20AM +0200, Cousson, Benoit wrote:
>>>>
>>>> Hi Grant,
>>>>
>>>> Trying to bind hwmod informations with DT, I'm facing a little
>>>> limitation.
>>>> A bunch of drivers are using the platform_get_resource_byname, so
>>>> the name for the resource is needed.
>>>>
>>>> The name is used so far for IORESOURCE_MEM, IORESOURCE_IRQ and
>>>> IORESOURCE_DMA types of resources.
>>>
>>> IORESOURCE_MEM and IORESOURCE_IRQ's are fetched from dt blob and
>>> it will be part of pdev.
>>
>> Yes, but without the proper name in the resource structure. It will be then
>> impossible to use the platform_get_resource_byname function that is
>> currently used by a bunch of drivers.
>
> There is no analogous mechanism for _byname in the device tree.  The
> DT binding for a device must explicitly state what order the register
> ranges are in.  The driver will need to be adapted.

That seems to be a small regression for my point of view. Relying on the 
order is not super safe. This is not very readable either. That's for 
that exact reason that we changed our drivers to use 
platform_get_resource_byname. That's probably the reason why that API is 
there as well.
For the same IP, the number of entries can vary depending of the SoC 
revision.
By using the _byname, we can check if the resource is there or not 
without having to care about the position.

>>> For IORESOURCE_DMA, you can have property
>>> "dma-channel" in dtsi file and fetch dma-channel in driver probe
>>> through "of_property_read_u32()" api.
>>
>> That will not be enough to get the name. So maybe something like:
>>         dmas =<12>, "rx_req",<13>, "tx_req";
>> will be doable.
>> The issue is that the name is optional so managing the multiple entries
>> might be tricky.
>
> DMA channels will never show up in the resource structure anyway.

Can you elaborate on that point? AFAIK, IORESOURCE_DMA is already used 
today.

> The
> common code only takes care of translating IRQ and register ranges.
> For DMA you'll need a binding for the dma channels.  You can either
> make them explicitly ordered, or use different property names for each
> of the dma channels.

FWIW, DMA channel != DMA request. The DMA request is a physical line 
that is connected to a DMA controller. It is similar to an IRQ connected 
to an interrupt controller. It is a HW resource like an IRQ.
The DMA channel is a logical entry in the DMA controller that will be 
used by the driver.

>> BTW, it's strange that a default support does not exist for dma request (and
>> not channel).
>> The mechanism is similar to irq line, and quite standard to many SoC AFAIK.
>> Or maybe I missed it.
>
> DMA channels haven't historically had the same global scope that irq
> numbers have.  There hasn't been a pressing need up to now to have
> common infrastructure, though it is probably a good idea to define a
> common binding.

Cool, I think so as well.

Regards,
Benoit

  reply	other threads:[~2011-08-09 17:47 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-09  9:23 How to handle named resources with DT? Cousson, Benoit
2011-08-09 16:29 ` G, Manjunath Kondaiah
2011-08-09 16:57   ` Cousson, Benoit
2011-08-09 17:23     ` Grant Likely
2011-08-09 17:47       ` Cousson, Benoit [this message]
2011-08-09 17:52         ` Matt Porter
2011-08-09 18:26         ` Scott Wood
2011-08-09 20:57           ` Grant Likely
2011-08-09 21:08             ` Cousson, Benoit
2011-08-09 21:17               ` Grant Likely
2011-08-09 21:44                 ` Cousson, Benoit
2011-08-09 21:49                   ` Grant Likely
2011-08-09 21:53                     ` Cousson, Benoit
2011-08-10  1:52                       ` David Gibson
2011-08-10  7:11                         ` Paul Walmsley
2011-08-10 15:01                         ` Cousson, Benoit
2011-08-10 15:18                         ` Scott Wood
2011-08-10 15:21                           ` Cousson, Benoit
2011-08-10 19:22                         ` Grant Likely
2011-08-10 19:57                           ` David Brown
2011-08-10 20:12                             ` Grant Likely
2011-08-11 12:28                           ` Cousson, Benoit
2011-08-12  3:02                             ` David Gibson
2011-08-12  8:14                               ` Cousson, Benoit
2011-08-12  8:41                               ` Felipe Balbi
2011-08-12 14:35                                 ` Arnd Bergmann
2011-08-12 15:09                                   ` Cousson, Benoit
2011-08-12 17:21                                     ` Grant Likely
2011-08-24 19:15                                       ` Kevin Hilman
2011-08-24 23:16                                         ` Felipe Balbi
2011-08-25 10:28                                           ` Russell King - ARM Linux
2011-08-25 15:05                                             ` Arnd Bergmann
2011-08-25 18:16                                               ` Kevin Hilman
2011-08-25 21:02                                                 ` Arnd Bergmann
2011-08-26 11:01                                                   ` Removing platform_get_resource_byname() (was Re: How to handle named resources with DT?) Paul Walmsley
2011-08-26  4:12                                                 ` How to handle named resources with DT? David Gibson
2011-08-26 10:58                                                   ` Arnd Bergmann
2011-08-26 13:06                                                     ` David Gibson
2011-08-26 15:35                                                       ` Arnd Bergmann
2011-08-26 15:41                                                         ` Arnd Bergmann
2011-08-27 14:37                                                           ` David Gibson
2011-08-27 18:13                                                             ` Arnd Bergmann
2011-08-27 19:31                                                               ` Paul Walmsley
2011-08-29 17:16                                                                 ` Arnd Bergmann
2011-08-28  8:39                                                               ` David Gibson
2011-08-28 23:06                                                                 ` Paul Walmsley
2011-08-28 23:43                                                                   ` Russell King - ARM Linux
2011-08-29  1:57                                                                   ` Paul Walmsley
2011-08-29 17:18                                                                 ` Arnd Bergmann
2011-08-27 21:47                                                       ` Paul Walmsley
2011-08-29 21:54                                                         ` Mark Brown
2011-08-26 14:13                                                     ` Cousson, Benoit
2011-08-30  2:29                                                       ` David Gibson
2011-08-30  9:27                                                         ` Felipe Balbi
2011-08-31  2:32                                                           ` David Gibson
2011-08-27 20:00                                                     ` Paul Walmsley
2011-08-25 17:38                                             ` Cousson, Benoit
2011-08-09 21:52                   ` Scott Wood
2011-08-09 20:55         ` Grant Likely
2011-08-09 21:06           ` Cousson, Benoit
2011-08-09 21:16             ` Grant Likely
2011-08-09 21:37               ` Cousson, Benoit
2011-08-12  4:10                 ` Shawn Guo
2011-08-12  8:56                   ` Cousson, Benoit
2011-08-12 11:47                     ` Shawn Guo
2011-08-12 14:40                     ` Arnd Bergmann
2011-08-10  1:29       ` David Gibson
2011-08-10  6:08         ` Paul Walmsley
2011-08-09 19:51 ` Russell King - ARM Linux
2011-08-09 20:59   ` Cousson, Benoit

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=4E4172A8.3030101@ti.com \
    --to=b-cousson@ti.com \
    --cc=linux-arm-kernel@lists.infradead.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).