161e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch/* 261e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch * Broadcom 43xx PCI-SSB bridge module 361e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch * 4b8c268d10439bdd4ed469d58fbadf2c2f56801b0Joe Perches * This technically is a separate PCI driver module, but 561e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch * because of its small size we include it in the SSB core 661e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch * instead of creating a standalone module. 761e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch * 8eb032b9837a958e21ca000358a5bde5e17192ddbMichael Buesch * Copyright 2007 Michael Buesch <m@bues.ch> 961e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch * 1061e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch * Licensed under the GNU/GPL. See COPYING for details. 1161e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch */ 1261e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch 1361e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch#include <linux/pci.h> 1420a112d0ba37353c51e5a84f47f5c46a35c1a7e6Paul Gortmaker#include <linux/module.h> 1561e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch#include <linux/ssb/ssb.h> 1661e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch 176b9bafec6608539d07f7ccdeefe121dabe06604fMichael Buesch#include "ssb_private.h" 186b9bafec6608539d07f7ccdeefe121dabe06604fMichael Buesch 1961e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch 2061e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Bueschstatic const struct pci_device_id b43_pci_bridge_tbl[] = { 2161e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4301) }, 22dd970e43d86c253ff159d9668499aaf42d175722Michael Buesch { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4306) }, 2361e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4307) }, 2461e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4311) }, 2561e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4312) }, 266b1c7c67603efdf0b39f6056989b0f8194cdc1f3Michael Buesch { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4315) }, 2761e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4318) }, 281d8638d4038eb8709edc80e37a0bbb77253d86e9Daniel Klaffenbach { PCI_DEVICE(PCI_VENDOR_ID_BCM_GVC, 0x4318) }, 2961e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4319) }, 3061e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4320) }, 3161e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4321) }, 3261e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4324) }, 3361e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4325) }, 34c272ef4403c271799a7f09a4ab7a236c86643843Larry Finger { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4328) }, 35ca08a965a6c251f9c9002c1a7a0316e63d4c28ecMichael Buesch { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4329) }, 3692d6128e1766bb7a7b6dc58f012fdf772fdf1100Johannes Berg { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x432b) }, 3761e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch { 0, }, 3861e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch}; 3961e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael BueschMODULE_DEVICE_TABLE(pci, b43_pci_bridge_tbl); 4061e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch 4161e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Bueschstatic struct pci_driver b43_pci_bridge_driver = { 4261e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch .name = "b43-pci-bridge", 4361e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch .id_table = b43_pci_bridge_tbl, 4461e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch}; 4561e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch 4661e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch 4761e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Bueschint __init b43_pci_ssb_bridge_init(void) 4861e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch{ 4961e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch return ssb_pcihost_register(&b43_pci_bridge_driver); 5061e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch} 5161e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch 5261e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Bueschvoid __exit b43_pci_ssb_bridge_exit(void) 5361e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch{ 5461e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch ssb_pcihost_unregister(&b43_pci_bridge_driver); 5561e115a56d1aafd6e6a8a9fee8ac099a6128ac7bMichael Buesch} 56