diff options
author | Michael Buesch <mb@bu3sch.de> | 2007-09-18 15:12:50 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-10 19:51:36 -0400 |
commit | 61e115a56d1aafd6e6a8a9fee8ac099a6128ac7b (patch) | |
tree | add97bf6a1207a4caea3a86cf13495ad3dc477de /drivers/ssb/b43_pci_bridge.c | |
parent | 5ee3afba88f5a79d0bff07ddd87af45919259f91 (diff) |
[SSB]: add Sonics Silicon Backplane bus support
SSB is an SoC bus used in a number of embedded devices. The most
well-known of these devices is probably the Linksys WRT54G, but there
are others as well. The bus is also used internally on the BCM43xx
and BCM44xx devices from Broadcom.
This patch also includes support for SSB ID tables in modules, so
that SSB drivers can be loaded automatically.
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/ssb/b43_pci_bridge.c')
-rw-r--r-- | drivers/ssb/b43_pci_bridge.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/drivers/ssb/b43_pci_bridge.c b/drivers/ssb/b43_pci_bridge.c new file mode 100644 index 000000000000..fa3bd292f5f7 --- /dev/null +++ b/drivers/ssb/b43_pci_bridge.c | |||
@@ -0,0 +1,46 @@ | |||
1 | /* | ||
2 | * Broadcom 43xx PCI-SSB bridge module | ||
3 | * | ||
4 | * This technically is a seperate PCI driver module, but | ||
5 | * because of its small size we include it in the SSB core | ||
6 | * instead of creating a standalone module. | ||
7 | * | ||
8 | * Copyright 2007 Michael Buesch <mb@bu3sch.de> | ||
9 | * | ||
10 | * Licensed under the GNU/GPL. See COPYING for details. | ||
11 | */ | ||
12 | |||
13 | #include <linux/pci.h> | ||
14 | #include <linux/ssb/ssb.h> | ||
15 | |||
16 | |||
17 | static const struct pci_device_id b43_pci_bridge_tbl[] = { | ||
18 | { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4301) }, | ||
19 | { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4307) }, | ||
20 | { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4311) }, | ||
21 | { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4312) }, | ||
22 | { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4318) }, | ||
23 | { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4319) }, | ||
24 | { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4320) }, | ||
25 | { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4321) }, | ||
26 | { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4324) }, | ||
27 | { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4325) }, | ||
28 | { 0, }, | ||
29 | }; | ||
30 | MODULE_DEVICE_TABLE(pci, b43_pci_bridge_tbl); | ||
31 | |||
32 | static struct pci_driver b43_pci_bridge_driver = { | ||
33 | .name = "b43-pci-bridge", | ||
34 | .id_table = b43_pci_bridge_tbl, | ||
35 | }; | ||
36 | |||
37 | |||
38 | int __init b43_pci_ssb_bridge_init(void) | ||
39 | { | ||
40 | return ssb_pcihost_register(&b43_pci_bridge_driver); | ||
41 | } | ||
42 | |||
43 | void __exit b43_pci_ssb_bridge_exit(void) | ||
44 | { | ||
45 | ssb_pcihost_unregister(&b43_pci_bridge_driver); | ||
46 | } | ||