18c2ecf20Sopenharmony_ci/* 28c2ecf20Sopenharmony_ci * Broadcom 43xx PCI-SSB bridge module 38c2ecf20Sopenharmony_ci * 48c2ecf20Sopenharmony_ci * This technically is a separate PCI driver module, but 58c2ecf20Sopenharmony_ci * because of its small size we include it in the SSB core 68c2ecf20Sopenharmony_ci * instead of creating a standalone module. 78c2ecf20Sopenharmony_ci * 88c2ecf20Sopenharmony_ci * Copyright 2007 Michael Buesch <m@bues.ch> 98c2ecf20Sopenharmony_ci * 108c2ecf20Sopenharmony_ci * Licensed under the GNU/GPL. See COPYING for details. 118c2ecf20Sopenharmony_ci */ 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci#include "ssb_private.h" 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci#include <linux/pci.h> 168c2ecf20Sopenharmony_ci#include <linux/module.h> 178c2ecf20Sopenharmony_ci#include <linux/ssb/ssb.h> 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_cistatic const struct pci_device_id b43_pci_bridge_tbl[] = { 218c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4301) }, 228c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4306) }, 238c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4307) }, 248c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4311) }, 258c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4312) }, 268c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4315) }, 278c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4318) }, 288c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BCM_GVC, 0x4318) }, 298c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4319) }, 308c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4320) }, 318c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4321) }, 328c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4322) }, 338c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 43222) }, 348c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4324) }, 358c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4325) }, 368c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4328) }, 378c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4329) }, 388c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x432b) }, 398c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x432c) }, 408c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4350) }, 418c2ecf20Sopenharmony_ci { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4351) }, 428c2ecf20Sopenharmony_ci { 0, }, 438c2ecf20Sopenharmony_ci}; 448c2ecf20Sopenharmony_ciMODULE_DEVICE_TABLE(pci, b43_pci_bridge_tbl); 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_cistatic struct pci_driver b43_pci_bridge_driver = { 478c2ecf20Sopenharmony_ci .name = "b43-pci-bridge", 488c2ecf20Sopenharmony_ci .id_table = b43_pci_bridge_tbl, 498c2ecf20Sopenharmony_ci}; 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ciint __init b43_pci_ssb_bridge_init(void) 538c2ecf20Sopenharmony_ci{ 548c2ecf20Sopenharmony_ci return ssb_pcihost_register(&b43_pci_bridge_driver); 558c2ecf20Sopenharmony_ci} 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_civoid __exit b43_pci_ssb_bridge_exit(void) 588c2ecf20Sopenharmony_ci{ 598c2ecf20Sopenharmony_ci ssb_pcihost_unregister(&b43_pci_bridge_driver); 608c2ecf20Sopenharmony_ci} 61