--- a/arch/mips/pci/ifxmips_pcie.c +++ b/arch/mips/pci/ifxmips_pcie.c @@ -18,6 +18,8 @@ #include #include +#include + #include "ifxmips_pcie.h" #include "ifxmips_pcie_reg.h" @@ -1045,7 +1047,7 @@ pcie_rc_initialize(int pcie_port) return 0; } -static int __init ifx_pcie_bios_init(void) +static int __init ifx_pcie_bios_probe(struct platform_device *pdev) { void __iomem *io_map_base; int pcie_port; @@ -1083,6 +1085,30 @@ static int __init ifx_pcie_bios_init(voi return 0; } + +static const struct of_device_id ifxmips_pcie_match[] = { + { .compatible = "lantiq,pcie-xrx200" }, + {}, +}; +MODULE_DEVICE_TABLE(of, ifxmips_pcie_match); + +static struct platform_driver ltq_pci_driver = { + .probe = ifx_pcie_bios_probe, + .driver = { + .name = "pcie-xrx200", + .owner = THIS_MODULE, + .of_match_table = ifxmips_pcie_match, + }, +}; + +int __init ifx_pcie_bios_init(void) +{ + int ret = platform_driver_register(<q_pci_driver); + if (ret) + pr_info("pcie-xrx200: Error registering platform driver!"); + return ret; +} + arch_initcall(ifx_pcie_bios_init); MODULE_LICENSE("GPL");