How to handle named resources with DT?
Grant Likely
grant.likely at secretlab.ca
Tue Aug 9 17:17:47 EDT 2011
On Tue, Aug 09, 2011 at 11:08:09PM +0200, Cousson, Benoit wrote:
> On 8/9/2011 10:57 PM, Grant Likely wrote:
> >On Tue, Aug 09, 2011 at 01:26:29PM -0500, Scott Wood wrote:
> >>On 08/09/2011 12:47 PM, Cousson, Benoit wrote:
> >>>On 8/9/2011 7:23 PM, Grant Likely wrote:
> >>>>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.
> >>
> >>You could have a named u32 property that contains the reg index, e.g.:
> >>
> >>dev {
> >> reg =<0x20000 0x200 0x24000 0x200>;
> >> foo-reg =<0>;
> >> bar-reg =<1>;
> >>};
> >
> >That's a little nasty. A reg-names = "foo", "bar"; would probably be
> >better.
>
> Yep, I agree.
>
> And what about something like that?
> reg = <0x20000 0x200>, "foo",
> <0x20000 0x200>, "bar" ;
>
> It is doable?
Definitely not. It would break all existing 'reg' parsing
implementations quite badly.
g.
More information about the linux-arm-kernel
mailing list