1 // SPDX-License-Identifier: ISC
2 /* Copyright (C) 2019 MediaTek Inc.
4 * Author: Ryder Lee <ryder.lee@mediatek.com>
5 * Felix Fietkau <nbd@nbd.name>
8 #include <linux/kernel.h>
9 #include <linux/module.h>
10 #include <linux/pci.h>
14 static const struct pci_device_id mt7615_pci_device_table[] = {
15 { PCI_DEVICE(0x14c3, 0x7615) },
19 static int mt7615_pci_probe(struct pci_dev *pdev,
20 const struct pci_device_id *id)
24 ret = pcim_enable_device(pdev);
28 ret = pcim_iomap_regions(pdev, BIT(0), pci_name(pdev));
34 ret = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
38 return mt7615_mmio_probe(&pdev->dev, pcim_iomap_table(pdev)[0], pdev->irq);
41 static void mt7615_pci_remove(struct pci_dev *pdev)
43 struct mt76_dev *mdev = pci_get_drvdata(pdev);
44 struct mt7615_dev *dev = container_of(mdev, struct mt7615_dev, mt76);
46 mt7615_unregister_device(dev);
49 struct pci_driver mt7615_pci_driver = {
50 .name = KBUILD_MODNAME,
51 .id_table = mt7615_pci_device_table,
52 .probe = mt7615_pci_probe,
53 .remove = mt7615_pci_remove,
56 MODULE_DEVICE_TABLE(pci, mt7615_pci_device_table);
57 MODULE_FIRMWARE(MT7615_FIRMWARE_CR4);
58 MODULE_FIRMWARE(MT7615_FIRMWARE_N9);
59 MODULE_FIRMWARE(MT7615_ROM_PATCH);