[PATCH] of/platform: Allow missing address for dev name lookup

Rob Herring rob.herring at calxeda.com
Sat Nov 19 09:12:43 EST 2011


On 11/18/2011 10:45 AM, Wojciech Baranowski wrote:
> On Fri, Nov 18, 2011 at 11:10 AM, Rob Herring <rob.herring at calxeda.com> wrote:
>> On 11/18/2011 09:09 AM, Wojciech Baranowski wrote:
>>> While looking up linux name for platform device, check the address only if it
>>> has been supplied in lookup table.
>>>
>> And the reason you want to do this is?
> 
> Name lookup table is used to provide names for platform devices on the
> board I'm working on. I'm adding /sound node without address for audio
> subsystem and don't want to break that convention.

auxdata is really meant to be a temporary solution to plug platform_data.

All platform devices do not necessarily go into the DT. The DT should
describe the h/w. For sound I would expect this to be all the h/w blocks
like i2s, dma, codec and then information on how they are connected. Can
you show what your sound binding looks like.

Rob

> 
>>> Signed-off-by: Wojciech Baranowski <baranowski at chromium.org>
>>> ---
>>>  drivers/of/platform.c |    8 +++++---
>>>  1 files changed, 5 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/of/platform.c b/drivers/of/platform.c
>>> index cbd5d70..94763c0 100644
>>> --- a/drivers/of/platform.c
>>> +++ b/drivers/of/platform.c
>>> @@ -314,12 +314,14 @@ static const struct of_dev_auxdata *of_dev_lookup(const struct of_dev_auxdata *l
>>>       if (!lookup)
>>>               return NULL;
>>>
>>> -     for(; lookup->name != NULL; lookup++) {
>>> +     for (; lookup->name != NULL; lookup++) {
>>>               if (!of_device_is_compatible(np, lookup->compatible))
>>>                       continue;
>>> -             if (of_address_to_resource(np, 0, &res))
>>> +             if (lookup->phys_addr &&
>>> +                             of_address_to_resource(np, 0, &res))
>>>                       continue;
>>> -             if (res.start != lookup->phys_addr)
>>> +             if (lookup->phys_addr &&
>>> +                             res.start != lookup->phys_addr)
>>>                       continue;
>>>               pr_debug("%s: devname=%s\n", np->full_name, lookup->name);
>>>               return lookup;
>>
>>



More information about the devicetree-discuss mailing list