Today, we have a product with a AMCC 440ep processor, and linux 2.6.32
built for PowerPC platform (44x).
On the OPB (processor's bus) we have an FPGA with many functions (bus
- Led managment
- Keyboard
- Video controler
- Many SPI controler
- An Interrupt controler

For each a this functions, we wrote the corresponding driver with the
linux driver model.
The content of this FPGA is describe into the DTS and all drivers are
probed to all devices.

The problem, for our futur products, we will use another processor,
and we can't use OPB for this multi-functions FPGA.
So we will put it on PCI-E bus with the xilinx IP (limited to 1 pci-

The question is, how we can write drivers with this conception ?

If I understand PCI drivers on linux, I will have 1 driver, with 1
pci_iomap, but, I need many driver for all function of this FPGA.

I look for many solutions:

1) The pci_driver use a unused node in DTS and use
of_platform_bus_probe to scan sub-devices
but in this case, how can I connect of_iomap into subdevice to the
mapped address of my pci_iomap ?

2) Write a bus driver ? how can i do ? There is some exemples ?

To resume, what is the good architecture to use a multi-function

Thanks for all leads....