diff options
Diffstat (limited to 'board/eNET/eNET_pci.c')
| -rw-r--r-- | board/eNET/eNET_pci.c | 128 | 
1 files changed, 0 insertions, 128 deletions
diff --git a/board/eNET/eNET_pci.c b/board/eNET/eNET_pci.c deleted file mode 100644 index 5af4ef7d0..000000000 --- a/board/eNET/eNET_pci.c +++ /dev/null @@ -1,128 +0,0 @@ -/* - * (C) Copyright 2008,2009 - * Graeme Russ, <graeme.russ@gmail.com> - * - * (C) Copyright 2002 - * Daniel Engström, Omicron Ceti AB, <daniel@omicron.se> - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that 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 <common.h> -#include <pci.h> -#include <asm/pci.h> -#include <asm/arch/pci.h> - -static void pci_enet_fixup_irq(struct pci_controller *hose, pci_dev_t dev) -{ -	/* a configurable lists of IRQs to steal when we need one */ -	static int irq_list[] = { -		CONFIG_SYS_FIRST_PCI_IRQ, -		CONFIG_SYS_SECOND_PCI_IRQ, -		CONFIG_SYS_THIRD_PCI_IRQ, -		CONFIG_SYS_FORTH_PCI_IRQ -	}; -	static int next_irq_index; - -	uchar tmp_pin; -	int pin; - -	pci_hose_read_config_byte(hose, dev, PCI_INTERRUPT_PIN, &tmp_pin); -	pin = tmp_pin; - -	pin -= 1; /* PCI config space use 1-based numbering */ -	if (pin == -1) -		return; /* device use no irq */ - -	/* map device number +  pin to a pin on the sc520 */ -	switch (PCI_DEV(dev)) { -	case 12:	/* First Ethernet Chip */ -		pin += SC520_PCI_INTA; -		break; - -	case 13:	/* Second Ethernet Chip */ -		pin += SC520_PCI_INTB; -		break; - -	default: -		return; -	} - -	pin &= 3; /* wrap around */ - -	if (sc520_pci_ints[pin] == -1) { -		/* re-route one interrupt for us */ -		if (next_irq_index > 3) -			return; - -		if (pci_sc520_set_irq(pin, irq_list[next_irq_index])) -			return; - -		next_irq_index++; -	} - -	if (-1 != sc520_pci_ints[pin]) -		pci_hose_write_config_byte(hose, dev, PCI_INTERRUPT_LINE, -					   sc520_pci_ints[pin]); - -	printf("fixup_irq: device %d pin %c irq %d\n", -	       PCI_DEV(dev), 'A' + pin, sc520_pci_ints[pin]); -} - -static struct pci_controller enet_hose = { -	fixup_irq: pci_enet_fixup_irq, -}; - -void pci_init_board(void) -{ -	pci_sc520_init(&enet_hose); -} - -int pci_set_regions(struct pci_controller *hose) -{ -	/* System memory space */ -	pci_set_region(hose->regions + 0, -		       SC520_PCI_MEMORY_BUS, -		       SC520_PCI_MEMORY_PHYS, -		       SC520_PCI_MEMORY_SIZE, -		       PCI_REGION_MEM | PCI_REGION_SYS_MEMORY); - -	/* ISA/PCI memory space */ -	pci_set_region(hose->regions + 1, -		       SC520_ISA_MEM_BUS, -		       SC520_ISA_MEM_PHYS, -		       SC520_ISA_MEM_SIZE, -		       PCI_REGION_MEM); - -	/* PCI I/O space */ -	pci_set_region(hose->regions + 2, -		       SC520_PCI_IO_BUS, -		       SC520_PCI_IO_PHYS, -		       SC520_PCI_IO_SIZE, -		       PCI_REGION_IO); - -	/* ISA/PCI I/O space */ -	pci_set_region(hose->regions + 3, -		       SC520_ISA_IO_BUS, -		       SC520_ISA_IO_PHYS, -		       SC520_ISA_IO_SIZE, -		       PCI_REGION_IO); - -	return 4; -}  |