Re: Associating nodes with phandles for pci devices

Florian Fainelli
2015-01-23T22:40:38Z

On 23/01/15 11:38, Chris Packham wrote:
>
> Hi Arnd,
>
> Thanks for the quick response (and sorry for the horribly formatted
> message, travelling with only a webmail interface at the moment).
>
> On Fri, 23 Jan 2015, Arnd Bergmann wrote:
>
>> On Friday 23 January 2015 19:02:33 Chris Packham wrote:
>>> Hi,
>>>
>>> I'm working on a new board that has a marvell,dsa switch. Similar to
>>> the kirkwood-mv88f6281gtw-ge board. However the major difference is
>>> that instead of being connected to an integrated Ethernet port it is
>>> connected via a PCI-e Ethernet port (basically a NIC hardwired onto
>>> the board).
>>>
>>> Generally you don't need to define PCI devices in the .dts because
>>> the bus is scanned at run time and the method for identifying devices
>>> is well defined. But to satisfy the marvell,dsa binding[1] I need to
>>> tell it the Ethernet port it is connected to. The answer might be in
>>> the PCI bindings but the urls in the documentation[2] don't appear to
>>> be valid anymore.
>>>
>>> Is it possible to enumerate PCI devices in the .dts? Or is there a
>>> way of satisfying the dsa requirements without knowing the Ethernet
>>> device?
>>>
>>
>> In general, it is possible, and we do that on PowerPC, but it may be that
>> there are parts missing on ARM and you have to try it out.
>>
>> In particular, you need to know the address of the PCI device and then
>> create a device node that will be associated with the
>> pci_dev->dev.of_node
>> pointer.
>
> Encouraging to know. I think I can figure out the relevant addresses for
> my device based on the run-time scan.

BTW, one thing that is high in my TODO list regarding DSA is to stop
using this platform device/driver architecture and use the actual device
driver model. Your switch driver entry point would be a pci_drive
probe's function where you end-up registering a switch the DSA. This
should solve portions of your problem although this is a long shot as we
need to convert existing drivers as well.

>
> Can you think of a good example. I found a few ppc boards that have an
> PCI-ISA bridge that get's enumerated in the .dts. I think I can make sense
> of them but because they are bridges there's a lot of extra stuff for
> the down stream devices.