#include <linux/kernel.h>
#include <linux/mfd/syscon.h>
#include <linux/mm.h>
+#include <linux/module.h>
#include <linux/of_gpio.h>
#include <linux/of_irq.h>
#include <linux/of_pci.h>
.pci_ops = &bcm6328_pcie_ops,
.io_resource = &bcm6328_pcie_io_resource,
.mem_resource = &bcm6328_pcie_mem_resource,
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,13,0)
- .busn_resource = &bcm6328_pcie_busn_resource,
-#endif
};
static void bcm6328_pcie_reset(struct bcm6328_pcie *priv)
struct resource *res;
unsigned int i;
int ret;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,13,0)
LIST_HEAD(resources);
-#endif
pm_runtime_enable(dev);
pm_runtime_no_callbacks(dev);
return -EINVAL;
of_pci_parse_bus_range(np, &bcm6328_pcie_busn_resource);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,13,0)
pci_add_resource(&resources, &bcm6328_pcie_busn_resource);
-#endif
bcm6328_pcie_reset(priv);
bcm6328_pcie_setup(priv);
{ .compatible = "brcm,bcm6328-pcie", },
{ /* sentinel */ }
};
+MODULE_DEVICE_TABLE(of, bcm6328_pcie_of_match);
static struct platform_driver bcm6328_pcie_driver = {
.probe = bcm6328_pcie_probe,
.of_match_table = bcm6328_pcie_of_match,
},
};
+module_platform_driver(bcm6328_pcie_driver);
-int __init bcm6328_pcie_init(void)
-{
- int ret = platform_driver_register(&bcm6328_pcie_driver);
- if (ret)
- pr_err("pci-bcm6328: Error registering platform driver!\n");
- return ret;
-}
-late_initcall_sync(bcm6328_pcie_init);
+MODULE_AUTHOR("Álvaro Fernández Rojas <noltari@gmail.com>");
+MODULE_DESCRIPTION("BCM6328 PCIe Controller Driver");
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:bcm6328-pcie");