Split up brcm63xx into files/
[openwrt/svn-archive/archive.git] / target / linux / brcm63xx-2.6 / files / arch / mips / pci / pci-bcm96348.c
diff --git a/target/linux/brcm63xx-2.6/files/arch/mips/pci/pci-bcm96348.c b/target/linux/brcm63xx-2.6/files/arch/mips/pci/pci-bcm96348.c
new file mode 100644 (file)
index 0000000..31e9d16
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+<:copyright-gpl
+ Copyright 2002 Broadcom Corp. All Rights Reserved.
+
+ This program is free software; you can distribute it and/or modify it
+ under the terms of the GNU General Public License (Version 2) as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
+:>
+*/
+#include <linux/types.h>
+#include <linux/pci.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+
+//#include <asm/pci_channel.h>
+#include <bcmpci.h>
+
+static struct resource bcm_pci_io_resource = {
+    .name   = "bcm96348 pci IO space",
+    .start  = BCM_PCI_IO_BASE,
+    .end    = BCM_PCI_IO_BASE + BCM_PCI_IO_SIZE_64KB - 1,
+    .flags  = IORESOURCE_IO
+};
+
+static struct resource bcm_pci_mem_resource = {
+    .name   = "bcm96348 pci memory space",
+    .start  = BCM_PCI_MEM_BASE,
+    .end    = BCM_PCI_MEM_BASE + BCM_PCI_MEM_SIZE_16MB - 1,
+    .flags  = IORESOURCE_MEM
+};
+
+extern struct pci_ops bcm96348_pci_ops;
+
+struct pci_controller bcm96348_controller = {
+    .pci_ops   = &bcm96348_pci_ops,
+    .io_resource       = &bcm_pci_io_resource,
+    .mem_resource      = &bcm_pci_mem_resource,
+};
+
+static void bcm96348_pci_init(void)
+{
+    register_pci_controller(&bcm96348_controller);
+}
+
+arch_initcall(bcm96348_pci_init);