On Tue, Jan 16, 2018 at 04:46:12PM +0530, Kishon Vijay Abraham I wrote: [...] > > +static struct platform_driver cdns_pcie_host_driver = { > > + .driver = { > > + .name = "cdns-pcie-host", > > + .of_match_table = cdns_pcie_host_of_match, > > + }, > > + .probe = cdns_pcie_host_probe, > > +}; > > In the case of DWC, designware core is modeled as a library which has > API's to be invoked by various platform specific glue drivers. > > But with the cadence approach we'll have two separate drivers: the > cadence core driver and the platform specific glue drivers. Is this > approach chosen for a specific reason? That's a fair point but I do not think that's a concern at the moment. If/when other platform drivers are built around the generic IP we just have to refactor this driver and turn into a core library + a PCI host bridge driver like dwc does, at the moment I do not necessarily see the reason for splitting them. Cyrille ? Thanks, Lorenzo